This is the mail archive of the
mailing list for the Cygwin project.
Re: regex library fails git tests
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin at cygwin dot com
- Date: Mon, 22 Jul 2013 10:12:00 +0200
- Subject: Re: regex library fails git tests
- References: <ksepor$cag$1 at ger dot gmane dot org> <20130721193953 dot GC2661 at calimero dot vinschen dot de> <51ECA00D dot 6030105 at gmail dot com>
- Reply-to: cygwin at cygwin dot com
On Jul 21 22:59, Mark Levedahl wrote:
> On 07/21/2013 03:39 PM, Corinna Vinschen wrote:
> >So, what I did now was this: I added a workaround to Cygwin's regcomp.
> >If the current codeset is ASCII, the characters in the pattern are
> >converted to wchar_t by simply using their unsigned value verbatim.
> >This allows to compile (and test) the patterns in the git testcases.
> >However, please note that this behaviour, while being provided by glibc
> >and now by Cygwin, is *not* standards-compliant. In the narrow sense
> >the characters beyond 0x7f are still invalid ASCII chars, and other
> >functions working with wchar_t strings won't be as forgiving when using
> >invalid input.
> Thank you. I confirm that git passes the two test cases (t4018 and
> t4034) using today's snapshot.
Thanks for your feedback and for testing the snapshot. I created them
yesterday but then forgot to mention them here.
> I will pass your comments about use
> of characters 0x80 and above to the git list to see if they wish to
> change anything.
After some sleep, I think I now understand why the glibc devs made
regcomp to work this way. This behaviour is backward compatible to non
locale-aware applications. In the "C" locale, a char is just some
arbitrary byte between 0 and 255. So this pattern always worked before
in the "C locale, therefore it makes sense that it continues to work,
even if it won't when using other locales/codesets.
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple