This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Collation fix: make forward accent sorting the default [BZ #17750]
- From: Mike FABIAN <mfabian at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Cc: Alexandre Oliva <aoliva at redhat dot com>
- Date: Tue, 28 Nov 2017 17:44:48 +0100
- Subject: [PATCH] Collation fix: make forward accent sorting the default [BZ #17750]
- Authentication-results: sourceware.org; auth=none
Updated version of Alexandre Oliva’s patch to make forward accent
sorting the default.
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"
--
Mike FABIAN <mfabian@redhat.com>
>From ecfefc6000d2bec29bb3f61f2963b6d186c06aba Mon Sep 17 00:00:00 2001
From: Alexandre Oliva <aoliva@redhat.com>
Date: Tue, 28 Nov 2017 16:23:02 +0100
Subject: [PATCH] Collation fix: make forward accent sorting the default [BZ
#17750]
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[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"
Reviewed-by: Mike FABIAN <mfabian@redhat.com>
---
ChangeLog | 17 +++++++
localedata/Makefile | 4 +-
localedata/fr_CA.UTF-8.in | 96 +++++++++++++++++++++++++++++++++++
localedata/fr_FR.UTF-8.in | 22 ++++----
localedata/locales/cs_CZ | 2 -
localedata/locales/de_DE | 2 -
localedata/locales/fr_CA | 2 +
localedata/locales/hu_HU | 1 -
localedata/locales/iso14651_t1_common | 6 +--
localedata/locales/lb_LU | 2 -
localedata/locales/yuw_PG | 1 -
11 files changed, 131 insertions(+), 24 deletions(-)
create mode 100644 localedata/fr_CA.UTF-8.in
diff --git a/ChangeLog b/ChangeLog
index 9307f40fae..87d7874013 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2017-11-28 Alexandre Oliva <aoliva@redhat.com>
+
+ [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-28 Mike FABIAN <mfabian@redhat.com>
[BZ #22336]
diff --git a/localedata/Makefile b/localedata/Makefile
index b9f77d6c29..f8ca4041be 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 0000000000..1c05d69f5a
--- /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 dd5c5330d5..070eb4dc0d 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 163a40daec..f80d3e1b37 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 <c-caron>
diff --git a/localedata/locales/de_DE b/localedata/locales/de_DE
index dd1c1cfa48..eaa9f7ff8e 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 15401de337..e37d04226c 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 b860672748..01e45b958e 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 0e64f26a12..eb0fe9ec9d 100644
--- a/localedata/locales/iso14651_t1_common
+++ b/localedata/locales/iso14651_t1_common
@@ -5079,10 +5079,10 @@ order_start <SPECIAL>;forward;backward;forward;forward,position
<U009E> IGNORE;IGNORE;IGNORE;<U009E>
<U009F> IGNORE;IGNORE;IGNORE;<U009F>
-ifdef DIACRIT_FORWARD
-order_start <LATIN>;forward;forward;forward;forward,position
-else
+ifdef DIACRIT_BACKWARD
order_start <LATIN>;forward;backward;forward;forward,position
+else
+order_start <LATIN>;forward;forward;forward;forward,position
endif
#
<U00A0> <U0020>;<BAS>;<MIN>;IGNORE # 170<NBSP>
diff --git a/localedata/locales/lb_LU b/localedata/locales/lb_LU
index f8da9447ea..92f1e22e1a 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 f9341facdc..0cb3cadf4a 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
--
2.14.3