This is the mail archive of the libc-locales@sourceware.org mailing list for the GNU libc locales project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][BZ 18934] hu_HU: Fix multiple sorting bugs.


Hi,

Could you please review and apply the attached patch?

Recommended commit message body (feel free to edit as you please):
-----
Fix sorting of long consonants, a regression introduced by #13547. Fix
inconsistencies in uppercase vs. lowercase sorting. Fix diacritic
ordering. Fix ordering of foreign accents.

Add an extensive test file.

    [BZ #18934]
    * locales/hu_HU: Fix multiple bugs.
    * hu_HU.in: New file.
    * Makefile (test-input): Add hu_HU.UTF-8.
-----

I know that generally one patch per issue is a cleaner approach, but
this time apologize for an all-in-one: the patches would heavily
conflict, and it would be really cumbersome to unittest an incremental
series. Instead, think about it as TDD (test driven development): I
attach a decent unittest with explanations and pointers to the rules,
and a locale definition that implements them.

The addressed bugs are:

- The fix to bug 13547 was incorrect and introduced a regression. It
fixed a corner case, whereas I didn't realize it broke a more typical
once. See details over there.

- Two minor bugs/inconsistencies wrt. sorting upper/lowercase values,
as described in bug 18587.

- Someone enabled backwards ordering of diacrits by default (bug
17750), breaking tons of locales including Hungarian. So disable
backwards ordering in this locale definition.

- Foreign accents should be sorted after the native Hungarian ones, it
wasn't the case so far.

Plus, a unittest is added which is far more extensive than any other
locale has. It includes all the examples from the official rules of
Hungarian orthography's corresponding sections, as well as thorough
testing of all corner cases I could think of, created by me; and
comments all around.

In addition to fixing a(n unfortunately relatively unsignificant)
locale, I hope that this unittest file will encourage other locale
maintainers to create similarly extensive tests, increasing the
quality of other locales in the long run and preventing regressions
(such as the backward diacritics ordering) from sneaking in.

Thanks a lot,
egmont

Attachment: glibc-18934-hu-collate-v4.patch
Description: application/mbox


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]