Subject: bug#10898: test-suite output of automake-1.11.3 - it requested I send it to you!

From: Stefano Lattarini <[email-masked]>
Date: Tue, 28 Feb 2012 18:14:27 +0100

On 02/28/2012 05:51 PM, Eric Blake wrote:
> [adding autoconf]
> 
> On 02/28/2012 09:42 AM, Stefano Lattarini wrote:
> 
>>>    Ah, likely the famous ksh bug with "$@" and empty arguments:
>>>
>>>      <http://lists.gnu.org/archive/html/automake-patches/2009-12/msg00037.html>
> 
>> See automake bug#10898.
>>
>> At least the AT&T and OpenSolaris versions of the Korn shell have a
>> strange bug regarding the expression ${1+"$@"}: when exactly *one*
>> empty argument is passed to a shell function, inside that function
>> the expression ${1+"$@"} will expand to *nothing*, rather than to
>> to the single empty string, as one would expect.  This was causing
>> a spurious failure in our testsuite when a shell suffering of this
>> bug was used to run the test cases.
> 
> Yuck - this sounds like it should be documented in the autoconf manual.
>  Is it only shell functions that are affected, but global use of
> ${1+"$@"} is still safe?
> 
I can't be sure anymore -- the only affected shell I've ever encountered was
Debian's /bin/ksh (from the Debian package 'ksh' - "The real, AT&T version of
the Korn shell"), and the bugs has been fixed in it meanwhile:

 $ /bin/ksh -c 'foo () { for i in ${1+"$@"}; do echo ":$i:"; done; }; foo ""'
 ::

Sorry,
  Stefano