|
From: | Paolo Bonzini |
Subject: | Re: have you ever mistyped [[:lower:]] as [:lower:] ? |
Date: | Wed, 01 Sep 2010 15:53:00 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.10) Gecko/20100621 Fedora/3.0.5-1.fc13 Lightning/1.0b2pre Mnenhy/0.8.3 Thunderbird/3.0.5 |
On 09/01/2010 03:45 PM, Jim Meyering wrote:
It's a huge mistake, because making it an error means changing the regex grammar (and making it unnecessarily complicated and contrived).It's already done in grep, and wasn't a very big change.You're conflating the formal grammar and the code that implements it. The latter is allowed to include this kind of "hack", the former cannot. POSIXIt's done for grep. I see no need to change any formal grammar.
Do you honestly imagine http://opengroup.org/onlinepubs/007908775/xbd/re.html changed to say "If a bracket expression consists of a colon, a series of alphabetic characters, and another colon, the implementation's behavior is undefined?
It sounds like you're upset. Sorry it's come to that, but I feel strongly about this, too.I'm not upset, but I'm very much worried of making a mistake. What if someone proposes to warn for [A-Z] and [a-z] whenever they're not going to do what the user thinks (they're not synonyms of any of [[:upper:]], [[:lower:]], [[:alpha:]])? Are we going to make that an error?"We have nothing to fear but fear itself". But I doubt you're seriously worried about [A-Z], etc.
Not worried, but it honestly would be a sensible warning whenever strcoll ("A", "f") <= 0 && strcoll ("f", "Z") <= 0, as is the case in UTF-8 locales with glibc. It will basically never do the right thing, since [A-Z] and [a-z] exclude a and Z respectively.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |