From: Bernhard Voelker Date: Mon, 20 Jun 2011 07:46:06 +0000 (+0200) Subject: tests: improve init.sh by removing w2_ X-Git-Tag: v8.13~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b970f0a50546e7cc062b0f76df45ae69661b2846;p=thirdparty%2Fcoreutils.git tests: improve init.sh by removing w2_ * tests/init.sh (w2_): Remove, moving contents into... (warn_): ...here. Call self from subshell when IFS must be changed. --- diff --git a/tests/init.sh b/tests/init.sh index b8577305bd..5878179fc0 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -74,19 +74,18 @@ Exit () { set +e; (exit $1); exit $1; } # the reason for skip/failure to console, rather than to the .log files. : ${stderr_fileno_=2} -# Call w2_ only via warn_, since correct expansion of "$*" depends on -# IFS starting with ' '. Always write the full diagnostic to stderr. +# Note that correct expansion of "$*" depends on 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. case $IFS in - ' '*) w2_ "$@";; - *) (IFS=' '; w2_ "$@");; + ' '*) printf '%s\n' "$*" >&2 + test $stderr_fileno_ = 2 \ + || { printf '%s\n' "$*" | head -1 >&$stderr_fileno_ ; } ;; + *) (IFS=' '; warn_ "$@");; esac } fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; }