From: Paul Eggert Date: Tue, 26 Oct 2010 23:12:46 +0000 (-0700) Subject: docs: Posix now says "((cat))" isn't portable X-Git-Tag: v2.68b~136 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89ce53b3a0baafaccef80c2462bbed799169c759;p=thirdparty%2Fautoconf.git docs: Posix now says "((cat))" isn't portable * doc/autoconf.texi (Parenthesis): Update documentation to reflect what Posix 1003.1-2008 says about "((". --- diff --git a/ChangeLog b/ChangeLog index 34b3be42..6f9e4c90 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-10-26 Paul Eggert + + docs: Posix now says "((cat))" isn't portable + * doc/autoconf.texi (Parenthesis): Update documentation to reflect + what Posix 1003.1-2008 says about "((". + 2010-10-20 Eric Blake docs: document dash bug in <> diff --git a/doc/autoconf.texi b/doc/autoconf.texi index adbdded9..4af86631 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -16046,12 +16046,15 @@ for the rationale. @cindex Shell parentheses Beware of two opening parentheses in a row, as many shell -implementations treat them specially. Posix requires that the command -@samp{((cat))} must behave like @samp{(cat)}, but many shells, including +implementations treat them specially, and Posix says that a portable +script cannot use @samp{((} outside the @samp{$((} form used for shell +arithmetic. In traditional shells, @samp{((cat))} behaves like +@samp{(cat)}; but many shells, including Bash and the Korn shell, treat @samp{((cat))} as an arithmetic expression equivalent to @samp{let "cat"}, and may or may not report an error when they detect that @samp{cat} is not a number. As another -example, @samp{pdksh} 5.2.14 misparses the following code: +example, @samp{pdksh} 5.2.14 does not treat the following code +as a traditional shell would: @example if ((true) || false); then