Red Hat Bugzilla – Bug 219908
Wrong collate order in many non-C locales (case-insensitive)
Last modified: 2007-11-30 17:11:51 EST
Description of problem:
When LC_COLLATE (or LANG) is set to
en_GB, ru_RU, uk_UA...
strcoll ignores case even for latin letters.
Version-Release number of selected component (if applicable):
glibc-2.4.* ... 2.5.90-12
Steps to Reproduce:
1. Create text file with text:
---------- cut here ------------------
---------- cut here -------------------
2. LC_COLLATE=C sort in.txt
3. LC_COLLATE=en_GB sort in.txt
Different output from runs:
C: A B C a b c (correct)
en_GB: A a B b C c (inrorrect)
The same results for some other locales (ru_RU, uk_UA, fr_FR)
both for latin and cyr hcaracters.
Similar results when using strcoll in C programs.
In any locales capital latin chars (A-Z) must be 'less'
than normal (a-z).
In cyrilic locales (and may be in other),
must be the same rule.
Please open any dictionary for the corresponding languages and see how things
Case is not ignored, but in most locales it is just secondary or tertiary
It seems to be "error by design" == feature.
Ok, its not a error, but it prevents from
locale-aware case-sensitive comparison
in most locales.