Il 27/06/2013 15:46, Aharon Robbins ha scritto:
>> Date: Thu, 27 Jun 2013 15:27:40 +0200
>> From: Paolo Bonzini <bonz...@gnu.org>
>> Subject: Re: locale specific ordering in EN_US -- why is a<A<b<B<y<Y<z<Z?
>>
>> Right now only gawk is different from the others, and not in a very
>> clean manner:
>>
>> #ifndef GAWK
>>               /* Defer to the system regex library about the meaning
>>                  of range expressions.  */
>>               regex_t re;
>>               char pattern[6] = { '[', 0, '-', 0, ']', 0 };
>>               char subject[2] = { 0, 0 };
>>               c1 = c;
>>               if (case_fold)
>>                 {
>>                   c1 = tolower (c1);
>>                   c2 = tolower (c2);
>>                 }
>>
>>               pattern[1] = c1;
>>               pattern[3] = c2;
>>               regcomp (&re, pattern, REG_NOSUB);
>>               for (c = 0; c < NOTCHAR; ++c)
>>                 {
>>                   if ((case_fold && isupper (c))
>>                       || (MB_CUR_MAX > 1 && btowc (c) == WEOF))
>>                     continue;
>>                   subject[0] = c;
>>                   if (regexec (&re, subject, 0, NULL, 0) != REG_NOMATCH)
>>                     setbit_case_fold_c (c, ccl);
>>                 }
>>               regfree (&re);
>> #else
>>               c1 = c;
>>               if (case_fold)
>>                 {
>>                   c1 = tolower (c1);
>>                   c2 = tolower (c2);
>>                 }
>>               for (c = c1; c <= c2; c++)
>>                 setbit_case_fold_c (c, ccl);
>> #endif
>>
>> I would suggest distros to rip out the #else part of this #ifndef.
> 
> And I wouldn't, but as I have no control over the distros, I'm
> not going to worry about it.
> 
> All I know is that with the non-gawk case, gawk fails its test suite,
> and I've given up discussing it.

You've also never tried understanding why you cannot "just do it"
without fixing glibc.

Paolo

Reply via email to