This is the mail archive of the
libc-locales@sourceware.org
mailing list for the GNU libc locales project.
Re: Weird case-insensitive collation
- From: ludovic dot courtes at laas dot fr (Ludovic Courtès)
- To: Reshat Sabiq (Reşat)<tatar dot iqtelif dot i18n at gmail dot com>
- Cc: libc-locales at sources dot redhat dot com
- Date: Fri, 20 Oct 2006 11:28:45 +0200
- Subject: Re: Weird case-insensitive collation
- Organization: LAAS-CNRS
- References: <87k62w1r7f.fsf@laas.fr> <45381092.2070401@gmail.com>
Hi,
"Reshat Sabiq (Reşat)" <tatar.iqtelif.i18n@gmail.com> writes:
> I think this function is not locale-aware, so it compares characters'
> integral value, which naturally produces a positive.
> http://opengroup.org/onlinepubs/007908799/xsh/strcasecmp.html
> In the POSIX locale, strcasecmp() and strncasecmp() do upper to lower
> conversions, then a byte comparison. The results are unspecified in
> other locales.
It is true that POSIX is not so clear wrt. locale-dependence. However,
while it says how the function should behave under the `POSIX' locale,
it does not explicitly mention how it should deal with other locales.
The glibc manual is more explicit in that respect [0]:
In the standard "C"locale the characters and do not match but in a
locale which regards these characters as parts of the alphabet they do
match.
This seems to imply that `strcasecmp ()' knows how to deal with other
locales.
Thanks,
Ludovic.
[0] http://www.gnu.org/software/libc/manual/html_node/String_002fArray-Comparison.html#String_002fArray-Comparison