From: Stefano Lattarini Date: Sat, 4 Aug 2012 14:54:30 +0000 (+0200) Subject: tests: work around a ksh bug w.r.t. ${1+"$@"} X-Git-Tag: v1.12.3~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65dadf65814d7dd395d5cc35903f624b464091c6;p=thirdparty%2Fautomake.git tests: work around a ksh bug w.r.t. ${1+"$@"} Fixes automake bug#10898. See also the older (much older) thread: At least the AT&T and OpenSolaris versions of the Korn shell, as well as the /bin/sh from OpenIndiana 11, have a strange bug regarding the expansion of ${1+"$@"}: when exactly *one empty* argument is passed to a script run by one of this shells, inside that script ${1+"$@"} will expand to *nothing*, rather than to to the single empty string, as one would expect (OTOH, $# will correctly expand to 1). This buggy behaviour was causing a spurious failure in our testsuite (test 6 in 't/automake-cmdline.tap'). Work around it. * t/wrap/automake.in: Here. Signed-off-by: Stefano Lattarini --- diff --git a/t/wrap/automake.in b/t/wrap/automake.in index 14f437f1e..b77177cec 100644 --- a/t/wrap/automake.in +++ b/t/wrap/automake.in @@ -27,4 +27,10 @@ fi perllibdir="@abs_top_builddir@/lib@PATH_SEPARATOR@@abs_top_srcdir@/lib" export perllibdir -exec "@abs_top_builddir@/automake" "--libdir=@abs_top_srcdir@/lib" ${1+"$@"} +# Don't trust ${1+"$@"}: it has subtle bugs in some Korn shells (for very +# corner case only admittedly, but those have already bitten us -- see +# automake bug#10898). +case $# in + 0) exec "@abs_top_builddir@/automake" "--libdir=@abs_top_srcdir@/lib";; + *) exec "@abs_top_builddir@/automake" "--libdir=@abs_top_srcdir@/lib" "$@";; +esac