summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/init.sh8
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.