delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; q=dns; s= | |
default; b=g6QhruoNgKfg9zr45+LMXh5NeVGGL69xzg+qYBVg9ubEp6XgPcJir | |
00ujasj4OP1GjvMLbx7eaCFtmZydye132fgrBOuPwgeQceDkTvqdGPrirMDXVCWs | |
bc1v7gYyHFKk1+gEqezQ1i1z/sK6ApQQadzi1JnMVPIWV+9cvL0A8Q= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; s=default; | |
bh=Z9GoWVSXHTeCDO/BJxszUlQfk5A=; b=o/gojJDCRXzvSCKLpDLiQ269oReg | |
plXheLR5Tw2rNMPz7FNZkGPUaAYhiFRzaYMlrb+zC+l/YJKHPRQAO09P/29cb6fn | |
NW6Nr456wYzg2H884IlHvKqj0O6PkNCO2a5JwjiCqhLIUyhqqg5FtaI2JaycdnC/ | |
40bM8YkiX0S/NVE= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
X-Spam-SWARE-Status: | No, score=-1.8 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.1 |
Date: | Wed, 26 Jun 2013 11:19:38 +0200 |
From: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> |
To: | cygwin AT cygwin DOT com |
Subject: | Re: [BUG REPORT]sed -e 's/[B-D]/_/g' replaces unexpected characters |
Message-ID: | <20130626091938.GA6966@calimero.vinschen.de> |
Reply-To: | cygwin AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
References: | <CA+nJC97He=j-O2FZ-Y2jJhYXEJn2o2EfC1wO39+2bZ=nj1f-zA AT mail DOT gmail DOT com> <20130625152356 DOT GD11958 AT calimero DOT vinschen DOT de> <5F8AAC04F9616747BC4CC0E803D5907D0C37C240 AT MLBXv04 DOT nih DOT gov> <20130625160359 DOT GB14459 AT calimero DOT vinschen DOT de> <20130625160911 DOT GC14459 AT calimero DOT vinschen DOT de> |
MIME-Version: | 1.0 |
In-Reply-To: | <20130625160911.GC14459@calimero.vinschen.de> |
User-Agent: | Mutt/1.5.21 (2010-09-15) |
On Jun 25 18:09, Corinna Vinschen wrote: > On Jun 25 18:03, Corinna Vinschen wrote: > > On Jun 25 15:38, Lavrentiev, Anton (NIH/NLM/NCBI) [C] wrote: > > > > Your locale is zh_CN.UTF-8. What you're expecting is only guaranteed > > > > in the C locale: > > > [...] > Which also means, AFAICS, Cygwin's sed is doing it right, Linux' sed > is doing it wrong. Yes, that puzzles me a bit at the moment, too. I had a discussion with my collegues from the Linux side of Red Hat. The bottom line is, we're both doing it right, just differently. As for the difference itself, here's what happened: The gawk maintainer was unhappy with how regex ranges worked when using locales other than the C locale. So he implemented a change to regex which he called "rational ranges". The idea being, that something like [b-d] always means lowercase only, [B-D] means uppercase only, independent of the locale we're in. This change to the regex handling not only made it into gawk(*), but also into glibc(**) and perl regex, but not into sed or bash, for instance. That's why sed under Cygwin shows the default, collation-abiding behaviour when using a non-C locale. Under Fedora 18 it shows the new "rational ranges" behaviour, because glibc supports them and sed has been built with the --without-included-regex option. I just checked the new upstream sed 4.2.2 (will upload shortly) and it still doesn't implement "rational ranges", even though its regex is derived from gnulib's regex. Corinna (*) Try echo abcdeABCDE | awk '{ gsub(/[B-D]/, "_"); print }' (**) http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |