Re: Use of double parentheses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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   eblake@xxxxxxxxxx    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
https://lists.gnu.org/mailman/listinfo/autoconf


[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux