tests: make init.sh's warn_ emit to both the tty and the log file
authorJim Meyering <meyering@redhat.com>
Fri, 17 Jun 2011 07:02:09 +0000 (09:02 +0200)
committerJim Meyering <meyering@redhat.com>
Fri, 17 Jun 2011 07:17:30 +0000 (09:17 +0200)
* tests/init.sh (warn_): When $stderr_fileno_ != 2,
emit the diagnostic to both the tty and the log file.

tests/init.sh

index 5f06b5e..d7a5d83 100644 (file)
@@ -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.