glibc/locale/programs
Carlos O'Donell 87701a58e2 strcoll: Remove incorrect STRDIFF-based optimization (Bug 18589).
The optimization introduced in commit
f13c2a8dff, causes regressions in
sorting for languages that have digraphs that change sort order, like
cs_CZ which sorts ch between h and i.

My analysis shows the fast-forwarding optimization in STRCOLL advances
through a digraph while possibly stopping in the middle which results
in a subsequent skipping of the digraph and incorrect sorting. The
optimization is incorrect as implemented and because of that I'm
removing it for 2.23, and I will also commit this fix for 2.22 where
it was originally introduced.

This patch reverts the optimization, introduces a new bug-strcoll2.c
regression test that tests both cs_CZ.UTF-8 and da_DK.ISO-8859-1 and
ensures they sort one digraph each correctly. The optimization can't be
applied without regressing this test.

Checked on x86_64, bug-strcoll2.c fails without this patch and passes
after. This will also get a fix on 2.22 which has the same bug.
2015-10-08 16:41:45 -04:00
..
3level.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
charmap-dir.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
charmap-dir.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
charmap-kw.gperf Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
charmap-kw.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
charmap.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
charmap.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
config.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-address.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-collate.c strcoll: Remove incorrect STRDIFF-based optimization (Bug 18589). 2015-10-08 16:41:45 -04:00
ld-ctype.c Remove unused PREDEFINED_CLASSES code 2015-06-09 09:34:06 +02:00
ld-identification.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-measurement.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-messages.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-monetary.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-name.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-numeric.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-paper.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-telephone.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
ld-time.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
linereader.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
linereader.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locale-spec.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locale.c Update copyright dates not handled by scripts/update-copyrights. 2015-01-02 16:54:45 +00:00
localedef.c localedef: improve error message [BZ #16985] 2015-09-11 23:25:06 -04:00
localedef.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locarchive.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locfile-kw.gperf Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locfile-kw.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locfile-token.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locfile.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locfile.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
repertoire.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
repertoire.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
simple-hash.c Remove some references to bcopy/bcmp/bzero. 2015-01-13 11:12:55 -08:00
simple-hash.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
xmalloc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
xstrdup.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00