diff options
-rw-r--r-- | tests/init.sh | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tests/init.sh b/tests/init.sh index 5f06b5e0a..d7a5d8347 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -75,8 +75,12 @@ Exit () { set +e; (exit $1); exit $1; } : ${stderr_fileno_=2} # Call w2_ only via warn_, since correct expansion of "$*" depends on -# IFS starting with ' '. -w2_ () { printf '%s\n' "$*" 1>&$stderr_fileno_ ; } +# IFS starting with ' '. Always write the full diagnostic to stderr. +# When stderr_fileno_ is not 2, also emit the first line of the +# diagnostic to that file descriptor. +w2_ () { printf '%s\n' "$*" >&2 + test $stderr_fileno_ = 2 \ + || { printf '%s\n' "$*" | head -1 >&$stderr_fileno_ ; } ; } warn_ () { # If IFS does not start with ' ', set it and emit the warning in a subshell. |