Work around a bug of AT&T Ksh w.r.t. ${1+"$@"} * tests/defs.in (run_command): Don't use the expression `${1+"$@"}', as it might trigger a bug of AT&T Korn shell.
From a9eaf3260332105be6fa23b6d25b59f5961424ba Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Sun, 13 Dec 2009 16:12:49 +0100 Subject: [PATCH 4/4] Work around a bug of AT&T Ksh w.r.t. ${1+"$@"}
* tests/defs.in (run_command): Don't use the expression `${1+"$@"}', as it might trigger a bug of AT&T Korn shell. --- ChangeLog | 6 ++++++ tests/defs.in | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2da4f22..fcc23b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-12-13 Stefano Lattarini <stefano.lattar...@gmail.com> + + Work around a bug of AT&T Korn shell w.r.t. `${1+"$@"}'. + * tests/defs.in (run_command): Don't use the expression + `${1+"$@"}', as it might trigger a bug of AT&T Korn shell. + 2009-12-08 Stefano Lattarini <stefano.lattar...@gmail.com> Testsuite: remove AUTOMAKE_fails and AUTOMAKE_run diff --git a/tests/defs.in b/tests/defs.in index cf48981..8b48489 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -437,10 +437,17 @@ run_command () 0) echo "run_command: missing COMMAND argument" >&2; Exit 99;; *) run_cmd=$1; shift;; esac + # The use of `${1+"$@"}' might trigger a bug of some Korn shells + # if only one *empty* argument is given. + if test $# -eq 0; then + run_evald_cmd='"$run_cmd"' + else + run_evald_cmd='"$run_cmd" "$@"' + fi if test x"$run_mix_stdout_and_stderr" = x"yes"; then - run_evald_cmd='"$run_cmd" ${1+"$@"} >stdall 2>&1' + run_evald_cmd="$run_evald_cmd >stdall 2>&1" else - run_evald_cmd='"$run_cmd" ${1+"$@"} >stdout 2>stderr' + run_evald_cmd="$run_evald_cmd >stdout 2>stderr" fi # NOTE: do not use the apparently simpler construct: # if eval "$run_evald_cmd"; then -- 1.6.5