On 08/01/2011 09:13 AM, Paul Eggert wrote:
> On 08/01/11 05:23, Eric Blake wrote:
>>> && ( (unset $as_var) || exit 1)>/dev/null 2>&1&& unset $as_var || :
>>> done
>>>
>>>
>>> Wouldn't it mean that all '((' present in the "configure" script, and
>>> related to shell commands, should be rewritten to '( ('?
>>
>> It's not a bug in pdksh - POSIX was recently reworded to allow (( to
>> introduce arithmetic parsing on any shell that wants to provide it as an
>> extension.
>
> I just now looked at POSIX.1-2008, and can't see where it says that.
You didn't look at the open bug reports:
http://austingroupbugs.net/view.php?id=217
>
> First, only '$((' is special; '((' without a preceding '$' is not special
> <http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_03>.
> So if pdksh 5.2.4 mishandles the above, then it does appear to be a bug.
(( without preceding '$' is now allowed, but not required, to be
special. Portable programs must not use ((:
If a character sequence beginning with (( and ending with )) would
be syntactically valid as an arithmetic expansion if preceded by
a '$', shells which implement an extension whereby ((expression))
is evaluated as an arithmetic expression may treat the sequence
as an arithmetic evaluation instead of a grouping command. A
conforming application shall ensure that it separates the two
leading '(' characters with white space if a grouping command
beginning with '(' contains a compound-list beginning with '('
and ending with ')', and the grouping command is syntactically
valid as an arithmetic expression.
--
Eric Blake [email protected] +1-801-349-2682
Libvirt virtualization library http://libvirt.org
_______________________________________________
Autoconf mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/autoconf