From: Alexandre Oliva Date: Tue, 28 Nov 2017 15:23:02 +0000 (+0100) Subject: Collation fix: make forward accent sorting the default [BZ #17750] X-Git-Tag: glibc-2.27~404 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8da25eec0aaf4d86a06088fff8d175989835e071;p=thirdparty%2Fglibc.git Collation fix: make forward accent sorting the default [BZ #17750] [BZ #17750] * Makefile: add fr_CA.UTF-8 to test-input and LOCALES. * localedata/fr_CA.UTF-8.in: New file with test data for backward accents sorting. * localedata/fr_FR.UTF-8.in: Fix test data for forward accents sorting. * localedata/locales/cs_CZ (LC_COLLATE): Remove “define DIACRIT_FORWARD” * localedata/locales/de_DE (LC_COLLATE): Likewise. * localedata/locales/hu_HU (LC_COLLATE): Likewise. * localedata/locales/lb_LU (LC_COLLATE): Likewise. * localedata/locales/yuw_PG (LC_COLLATE): Likewise. * localedata/locales/fr_CA (LC_COLLATE): Add “define DIACRIT_BACKWARD” * localedata/locales/iso14651_t1_common: Use “ifdef DIACRIT_FORWARD” instead of “ifdef DIACRIT_BACKWARD”. The only locale which currently needs backward accents sorting is fr_CA. Therefore, forward accents sorting should be the default. Before this patch, backwards accent sorting was the default and all locales except fr_CA had to use define DIACRIT_FORWARD before copy "iso14651_t1" Most locales didn’t do that and thus got the inappropriate backwards accents sorting by accident. Now only the fr_CA locale needs to use define DIACRIT_BACKWARD before copy "iso14651_t1" Original patch slightly modified by: Mike FABIAN --- diff --git a/ChangeLog b/ChangeLog index 29bcf625892..a73e09fb2e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2017-11-28 Mike FABIAN , Alexandre Oliva + + [BZ #17750] + * Makefile: add fr_CA.UTF-8 to test-input and LOCALES. + * localedata/fr_CA.UTF-8.in: New file with test data for backward + accents sorting. + * localedata/fr_FR.UTF-8.in: Fix test data for forward accents + sorting. + * localedata/locales/cs_CZ (LC_COLLATE): Remove “define DIACRIT_FORWARD” + * localedata/locales/de_DE (LC_COLLATE): Likewise. + * localedata/locales/hu_HU (LC_COLLATE): Likewise. + * localedata/locales/lb_LU (LC_COLLATE): Likewise. + * localedata/locales/yuw_PG (LC_COLLATE): Likewise. + * localedata/locales/fr_CA (LC_COLLATE): Add “define DIACRIT_BACKWARD” + * localedata/locales/iso14651_t1_common: Use “ifdef DIACRIT_FORWARD” + instead of “ifdef DIACRIT_BACKWARD”. + 2017-11-29 Adhemerval Zanella * config.h.in (HAVE_AS_VIS3_SUPPORT): Remove check for VIS3 support. diff --git a/localedata/Makefile b/localedata/Makefile index b9f77d6c29b..f8ca4041bee 100644 --- a/localedata/Makefile +++ b/localedata/Makefile @@ -38,7 +38,7 @@ test-srcs := collate-test xfrm-test tst-fmon tst-rpmatch tst-trans \ test-input := de_DE.ISO-8859-1 en_US.ISO-8859-1 da_DK.ISO-8859-1 \ hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 tr_TR.UTF-8 fr_FR.UTF-8 \ si_LK.UTF-8 uk_UA.UTF-8 hu_HU.UTF-8 lv_LV.UTF-8 \ - pl_PL.UTF-8 cs_CZ.UTF-8 + pl_PL.UTF-8 cs_CZ.UTF-8 fr_CA.UTF-8 test-input-data = $(addsuffix .in, $(test-input)) test-output := $(foreach s, .out .xout, \ $(addsuffix $s, $(basename $(test-input)))) @@ -108,7 +108,7 @@ LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \ nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 tr_TR.UTF-8 cs_CZ.UTF-8 \ zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 si_LK.UTF-8 \ tr_TR.ISO-8859-9 en_GB.UTF-8 uk_UA.UTF-8 hu_HU.UTF-8 lv_LV.UTF-8 \ - pl_PL.UTF-8 + pl_PL.UTF-8 fr_CA.UTF-8 include ../gen-locales.mk endif diff --git a/localedata/fr_CA.UTF-8.in b/localedata/fr_CA.UTF-8.in new file mode 100644 index 00000000000..1c05d69f5a4 --- /dev/null +++ b/localedata/fr_CA.UTF-8.in @@ -0,0 +1,96 @@ +@@@@@ +0000 +9999 +Aalborg +aide +aïeul +air +@@@air +air@@@ +Ålborg +août +bohème +Bohême +Bohémien +caennais +cæsium +çà et là +C.A.F. +Canon +cañon +casanier +cølibat +colon +côlon +COOP +CO-OP +coop +co-op +Copenhagen +COTE +cote +CÔTE +côte +COTÉ +coté +CÔTÉ +côté +du +dû +élève +élevé +gène +gêne +gêné +Größe +Grossist +haie +haïe +île +Île d'Orléans +lame +l'âme +lamé +les +LÈS +lèse +lésé +L'Haÿ-les-Roses +MÂCON +maçon +McArthur +Mc Arthur +Mc Mahon +MODÈLE +modelé +NOËL +Noël +notre +nôtre +ode +œil +ou +OÙ +ovoïde +pèche +pêche +PÉCHÉ +péché +pêché +pécher +pêcher +pechère +péchère +relève +relevé +resume +resumé +résumé +révèle +révélé +vice-president +vice-président +vice-president's offices +vice-presidents' offices +VICE-VERSA +vice versa diff --git a/localedata/fr_FR.UTF-8.in b/localedata/fr_FR.UTF-8.in index dd5c5330d5c..070eb4dc0dc 100644 --- a/localedata/fr_FR.UTF-8.in +++ b/localedata/fr_FR.UTF-8.in @@ -29,16 +29,16 @@ CO-OP Copenhagen cote COTE -côte -CÔTE coté COTÉ +côte +CÔTE côté CÔTÉ du dû -élève élevé +élève gène gêne gêné @@ -49,20 +49,20 @@ haïe île Île d'Orléans lame -l'âme lamé +l'âme les LÈS -lèse lésé +lèse L'Haÿ-les-Roses -MÂCON maçon +MÂCON McArthur Mc Arthur Mc Mahon -MODÈLE modelé +MODÈLE Noël NOËL notre @@ -72,22 +72,22 @@ ode ou OÙ ovoïde -pèche -pêche péché PÉCHÉ +pèche +pêche pêché pécher pêcher pechère péchère -relève relevé +relève resume resumé résumé -révèle révélé +révèle vice-president vice-président vice-president's offices diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ index 163a40daec2..f80d3e1b37f 100644 --- a/localedata/locales/cs_CZ +++ b/localedata/locales/cs_CZ @@ -140,8 +140,6 @@ END LC_IDENTIFICATION LC_COLLATE -define DIACRIT_FORWARD - copy "iso14651_t1" collating-symbol diff --git a/localedata/locales/de_DE b/localedata/locales/de_DE index dd1c1cfa48f..eaa9f7ff8e4 100644 --- a/localedata/locales/de_DE +++ b/localedata/locales/de_DE @@ -84,8 +84,6 @@ END LC_CTYPE LC_COLLATE -define DIACRIT_FORWARD - % Copy the template from ISO/IEC 14651 copy "iso14651_t1" diff --git a/localedata/locales/fr_CA b/localedata/locales/fr_CA index 15401de3377..e37d04226ce 100644 --- a/localedata/locales/fr_CA +++ b/localedata/locales/fr_CA @@ -54,6 +54,8 @@ copy "fr_FR" END LC_CTYPE LC_COLLATE +define DIACRIT_BACKWARD + copy "en_CA" END LC_COLLATE diff --git a/localedata/locales/hu_HU b/localedata/locales/hu_HU index b8606727481..01e45b958e2 100644 --- a/localedata/locales/hu_HU +++ b/localedata/locales/hu_HU @@ -63,7 +63,6 @@ category "i18n:2012";LC_MEASUREMENT END LC_IDENTIFICATION LC_COLLATE -define DIACRIT_FORWARD copy "iso14651_t1" %% a b c cs d dz dzs e f g gy h i j k l ly m n ny o o: p q diff --git a/localedata/locales/iso14651_t1_common b/localedata/locales/iso14651_t1_common index 0e64f26a125..eb0fe9ec9d8 100644 --- a/localedata/locales/iso14651_t1_common +++ b/localedata/locales/iso14651_t1_common @@ -5079,10 +5079,10 @@ order_start ;forward;backward;forward;forward,position IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; -ifdef DIACRIT_FORWARD -order_start ;forward;forward;forward;forward,position -else +ifdef DIACRIT_BACKWARD order_start ;forward;backward;forward;forward,position +else +order_start ;forward;forward;forward;forward,position endif # ;;;IGNORE # 170 diff --git a/localedata/locales/lb_LU b/localedata/locales/lb_LU index f8da9447ea7..92f1e22e1af 100644 --- a/localedata/locales/lb_LU +++ b/localedata/locales/lb_LU @@ -83,8 +83,6 @@ END LC_CTYPE LC_COLLATE -define DIACRIT_FORWARD - % Copy the template from ISO/IEC 14651 copy "iso14651_t1" diff --git a/localedata/locales/yuw_PG b/localedata/locales/yuw_PG index f9341facdca..0cb3cadf4ae 100644 --- a/localedata/locales/yuw_PG +++ b/localedata/locales/yuw_PG @@ -45,7 +45,6 @@ translit_end END LC_CTYPE LC_COLLATE -define DIACRIT_FORWARD copy "iso14651_t1" END LC_COLLATE