The en_US locale use a 12h am/pm format in both d_fmt and d_t_fmt, which
is correct, but does not define date_fmt. This causes the default value
to be used, which is in 24h format.
This patch adds the date_fmt entry to the en_US locale with the same
value as d_t_fmt as the latter already includes the timezone.
Changelog
[BZ #24046]
* localedata/locales/en_US (date_fmt): Add, set to
"%a %d %b %Y %r %Z".
It has been discovered that some locales use the 12-hour time formats but
do not use any AM/PM indicator thus making the time ambiguous. This
commit adds "%p" wherever it was missing. In some cases it has been
identified that a locale should use 24-hour time format rather than
12-hour. All time formats come from CLDR but this commit introduces as
few changes as possible (for example, it tries not to change the time zone
display). For the locales which are not supported by CLDR the consistency
with similar locales (which means the same language or the same country)
has been preserved: if the time formats were the same before the change
then they are still the same after the change.
The time format updates can be roughly summarized as follows:
* Most of the locales of Djibouti, Eritrea, and Ethiopia now use
"%l:%M:%S %p".
* Most of the locales of India and some surrounding countries (Bangladesh,
Nepal etc.) now use "%I:%M:%S %p %Z".
* Most of the Arabic locales now use "%Z %I:%M:%S %p".
* Ge'ez language (Eritrea and Ethiopia) now uses "%l:%M:%S፡%p" (note the
consistent use of Ethiopic wordspace character).
* Tamil (India) now uses "%p %I:%M:%S %Z".
* Chinese (Hong Kong) t_fmt now uses "%p %I<U6642>%M<U5206>%S<U79D2> %Z".
* Additionally, the following locales have been switched from 12-hour time
formats to 24-hour, according to CLDR: Arabic (Morocco), Maltese, Somali
(Kenya), and Tamil (Sri Lanka).
* Finally, the Bulgarian, Czech, and Slovak locales used 24-hour time
format correctly but their t_fmt_ampm field was not empty containing
12-hour time format which was incorrect so it is now replaced with an
empty string.
[BZ #10496]
* localedata/locales/aa_DJ (t_fmt): Set to "%l:%M:%S %p".
(t_fmt_ampm): Likewise.
* localedata/locales/aa_ER (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/aa_ER@saaho (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/aa_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/am_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/byn_ER (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/om_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/sid_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/so_DJ (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/so_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/so_SO (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/ti_ER (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/ti_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/tig_ER (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/wal_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/anp_IN (t_fmt): Set to "%I:%M:%S %p %Z".
* localedata/locales/ar_IN (t_fmt): Likewise.
* localedata/locales/bhb_IN (t_fmt): Likewise.
* localedata/locales/bho_IN (t_fmt): Likewise.
* localedata/locales/bi_VU (t_fmt): Likewise.
* localedata/locales/bn_BD (t_fmt): Likewise.
* localedata/locales/bn_IN (t_fmt): Likewise.
* localedata/locales/brx_IN (t_fmt): Likewise.
* localedata/locales/doi_IN (t_fmt): Likewise.
* localedata/locales/en_HK (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/en_IN (t_fmt): Likewise.
* localedata/locales/en_PH (t_fmt): Likewise.
* localedata/locales/gu_IN (t_fmt): Likewise.
* localedata/locales/hi_IN (t_fmt): Likewise.
* localedata/locales/hif_FJ (t_fmt): Likewise.
* localedata/locales/hne_IN (t_fmt): Likewise.
* localedata/locales/kn_IN (t_fmt): Likewise.
* localedata/locales/kok_IN (t_fmt): Likewise.
* localedata/locales/ks_IN (t_fmt): Likewise.
* localedata/locales/ks_IN@devanagari (t_fmt): Likewise.
* localedata/locales/mag_IN (t_fmt): Likewise.
* localedata/locales/mai_IN (t_fmt): Likewise.
* localedata/locales/mjw_IN (t_fmt): Likewise.
* localedata/locales/ml_IN (t_fmt): Likewise.
* localedata/locales/mni_IN (t_fmt): Likewise.
* localedata/locales/mr_IN (t_fmt): Likewise.
* localedata/locales/ms_MY (t_fmt): Likewise.
* localedata/locales/pa_IN (t_fmt): Likewise.
* localedata/locales/raj_IN (t_fmt): Likewise.
* localedata/locales/sa_IN (t_fmt): Likewise.
* localedata/locales/sat_IN (t_fmt): Likewise.
* localedata/locales/sd_IN (t_fmt): Likewise.
* localedata/locales/sd_IN@devanagari (t_fmt): Likewise.
* localedata/locales/tcy_IN (t_fmt): Likewise.
* localedata/locales/the_NP (t_fmt): Likewise.
* localedata/locales/to_TO (t_fmt): Likewise.
* localedata/locales/ur_IN (t_fmt): Likewise.
* localedata/locales/hif_FJ (d_t_fmt): Set to
"%A %d %b %Y %I:%M:%S %p".
(date_fmt): Add, set to "%A %d %b %Y %I:%M:%S %p %Z".
* localedata/locales/ar_AE (t_fmt): Set to "%Z %I:%M:%S %p".
* localedata/locales/ar_BH (t_fmt): Likewise.
* localedata/locales/ar_DZ (t_fmt): Likewise.
* localedata/locales/ar_EG (t_fmt): Likewise.
* localedata/locales/ar_IQ (t_fmt): Likewise.
* localedata/locales/ar_JO (t_fmt): Likewise.
* localedata/locales/ar_KW (t_fmt): Likewise.
* localedata/locales/ar_LB (t_fmt): Likewise.
* localedata/locales/ar_LY (t_fmt): Likewise.
* localedata/locales/ar_OM (t_fmt): Likewise.
* localedata/locales/ar_QA (t_fmt): Likewise.
* localedata/locales/ar_SD (t_fmt): Likewise.
* localedata/locales/ar_SS (t_fmt): Likewise.
* localedata/locales/ar_SY (t_fmt): Likewise.
* localedata/locales/ar_TN (t_fmt): Likewise.
* localedata/locales/ar_YE (t_fmt): Likewise.
* localedata/locales/gez_ER (t_fmt): Set to "%l:%M:%S<U1361>%p".
(t_fmt_ampm): Likewise.
* localedata/locales/gez_ET (t_fmt): Likewise.
(t_fmt_ampm): Likewise.
* localedata/locales/ta_IN (t_fmt): Set to "%p %I:%M:%S %Z".
(t_fmt_ampm): Likewise.
(d_t_fmt): Set to "%A %d %B %Y %p %I:%M:%S %Z".
* localedata/locales/zh_HK (t_fmt):
Set to "%p %I<U6642>%M<U5206>%S<U79D2> %Z".
* localedata/locales/ar_MA (t_fmt_ampm): Set to "" (empty string)
because this locale does not use the 12-hour clock.
(t_fmt): Set to "%Z %H:%M:%S".
(d_t_fmt): Set to "%d %b, %Y %Z %H:%M:%S".
* localedata/locales/mt_MT (t_fmt_ampm): Set to "" (empty string)
because this locale does not use the 12-hour clock.
(t_fmt): Set to "%H:%M:%S %Z".
(d_t_fmt): Set to "%A, %d ta %b, %Y %H:%M:%S %Z".
* localedata/locales/so_KE (t_fmt_ampm): Set to "" (empty string)
because this locale does not use the 12-hour clock.
(t_fmt): Set to "%T".
(d_t_fmt): Set to "%A, %B %e, %Y %X %Z".
(date_fmt): Set to "%A, %B %e, %X %Z %Y".
* localedata/locales/ta_LK (t_fmt_ampm): Set to "" (empty string)
because this locale does not use the 12-hour clock.
(t_fmt): Set to "%H:%M:%S %Z".
(d_t_fmt): Set to "%A %d %B %Y %H:%M:%S %Z".
* localedata/locales/bg_BG (t_fmt_ampm): Set to "" (empty string)
because this locale does not use the 12-hour clock.
* localedata/locales/cs_CZ (t_fmt_ampm): Likewise.
* localedata/locales/sk_SK (t_fmt_ampm): Likewise.
Albanian locale uses the 12-hour clock but some time formats did not
use any AM/PM indicator making the time ambiguous. This commit adds
"%p" wherever it was missing.
It also sets the correct date format because the old "%Y-%b-%d" produced
rather weird results like "2018-Sht-28".
All time formats come from CLDR but as few changes have been introduced
by this commit as possible. Some articles from MSDN and other available
online sources have been also taken into account.
[BZ #10496]
[BZ #23724]
* localedata/locales/sq_AL (t_fmt): Set to "%I:%M:%S.%p %Z".
(t_fmt_ampm): Likewise.
(d_t_fmt): Set to "%a %-d %b %Y %I:%M:%S.%p".
(date_fmt): Add, set to "%a %-d %b %Y %I:%M:%S.%p %Z".
(d_fmt): Set to "%-d.%-m.%y".
Month names as provided by Oqaasileriffik, the official Greenlandic
language regulator. They have recently reached the consensus regarding
the orthography of the month names.
Date formats updated to match the correct Greenlandic order which is MDY.
[BZ #23740]
* localedata/locales/kl_GL (mon): Update, the relative case.
(alt_mon): Add, fill with month names in the nominative case.
(d_t_fmt): Set to "%a %b %d %Y %T %Z".
(d_fmt): Set to "%b %d %Y".
Although CLDR says otherwise, it is confirmed by Oqaasileriffik, the
official Greenlandic language regulator, that this change is correct.
[BZ #20209]
* localedata/locales/kl_GL: (abday): Fix spelling of Sun (Sunday),
should be "sap" rather than "sab".
(day): Fix spelling of Sunday, should be "sapaat" rather than
"sabaat".
Synchronize some values with CLDR and apply some suggestions from Bugzilla.
[BZ #10425]
* localedata/locales/it_IT (d_t_fmt): Use "%a %-d %b %Y, %T".
(date_fmt): Use "%a %-d %b %Y, %T, %Z".
* localedata/locales/it_CH (d_t_fmt): Use "%a %-d %b %Y, %T"
which is the same as in it_IT.
(d_fmt): Use "%d.%m.%Y" which is the same as in de_CH.
(date_fmt): Use "%a %-d %b %Y, %T, %Z" which is the same as in it_IT.
CLDR and many other sources say that it_IT (Italian) should use a dot
(".") as a thousands separator and a comma (",") as a decimal separator.
For it_CH and de_CH CLDR says that they should use the Right Single
Quotation Mark ("’") as a thousands separator and a dot (".") as a
decimal separator. Consequently, the same rules are copied to all other
locales in Switzerland.
These rules apply to both LC_MONETARY and LC_NUMERIC.
[BZ #10797]
* localedata/locales/de_CH (mon_thousands_sep): Use "<U2019>" (Right
Single Quotation Mark).
(thousands_sep): Likewise.
* localedata/locales/it_CH (LC_NUMERIC): Use “copy "de_CH"”.
* localedata/locales/it_IT (thousands_sep): Use ".".
(grouping): Use "3;3".
This commit also fixes d_fmt in bn_BD which is identical to bn_IN,
in ne_NP which is identical to ne_IN (not supported by Glibc but supported
by CLDR), and in ta_LK which is identical to ta_IN.
For those locales which are supported by CLDR data is imported from
CLDR v33. For others it is copied from those locales which were identical
before this commit.
[BZ #17426]
* localedata/locales/anp_IN (d_fmt): Use "%-d//%-m//%y".
* localedata/locales/ar_IN (d_fmt): Likewise.
* localedata/locales/bhb_IN (d_fmt): Likewise.
* localedata/locales/bho_IN (d_fmt): Likewise.
* localedata/locales/bn_BD (d_fmt): Likewise.
* localedata/locales/bn_IN (d_fmt): Likewise.
* localedata/locales/doi_IN (d_fmt): Likewise.
* localedata/locales/gu_IN (d_fmt): Likewise.
* localedata/locales/hi_IN (d_fmt): Likewise.
* localedata/locales/hne_IN (d_fmt): Likewise.
* localedata/locales/kn_IN (d_fmt): Likewise.
* localedata/locales/mag_IN (d_fmt): Likewise.
* localedata/locales/mai_IN (d_fmt): Likewise.
* localedata/locales/mjw_IN (d_fmt): Likewise.
* localedata/locales/ml_IN (d_fmt): Likewise.
* localedata/locales/mni_IN (d_fmt): Likewise.
* localedata/locales/mr_IN (d_fmt): Likewise.
* localedata/locales/pa_IN (d_fmt): Likewise.
* localedata/locales/raj_IN (d_fmt): Likewise.
* localedata/locales/sat_IN (d_fmt): Likewise.
* localedata/locales/sd_IN (d_fmt): Likewise.
* localedata/locales/sd_IN@devanagari (d_fmt): Likewise.
* localedata/locales/ta_IN (d_fmt): Likewise.
* localedata/locales/ta_LK (d_fmt): Likewise.
* localedata/locales/tcy_IN (d_fmt): Likewise.
* localedata/locales/ur_IN (d_fmt): Likewise.
* localedata/locales/brx_IN (d_fmt): Use "%-m//%-d//%y".
* localedata/locales/ks_IN (d_fmt): Likewise.
* localedata/locales/ks_IN@devanagari (d_fmt): Likewise.
* localedata/locales/kok_IN (d_fmt): Use "%-d-%-m-%y".
* localedata/locales/ne_NP (d_fmt): Use "%y//%-m//%-d".
* localedata/locales/sa_IN (d_fmt): Use "%-d-%m-%y".
* localedata/locales/te_IN (d_fmt): Use "%d-%m-%y".
In commit 9479b6d5e0 we updated all of
the collation data to harmonize with the new version of ISO 14651
which is derived from Unicode 9.0.0. This collation update brought
with it some changes to locales which were not desirable by some
users, in particular it altered the meaning of the
locale-dependent-range regular expression, namely [a-z] and [A-Z], and
for en_US it caused uppercase letters to be matched by [a-z] for the
first time. The matching of uppercase letters by [a-z] is something
which is already known to users of other locales which have this
property, but this change could cause significant problems to en_US
and other similar locales that had never had this change before.
Whether this behaviour is desirable or not is contentious and GNU Awk
has this to say on the topic:
https://www.gnu.org/software/gawk/manual/html_node/Ranges-and-Locales.html
While the POSIX standard also has this further to say: "RE Bracket
Expression":
http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap09.html
"The current standard leaves unspecified the behavior of a range
expression outside the POSIX locale. ... As noted above, efforts were
made to resolve the differences, but no solution has been found that
would be specific enough to allow for portable software while not
invalidating existing implementations."
In glibc we implement the requirement of ISO POSIX-2:1993 and use
collation element order (CEO) to construct the range expression, the
API internally is __collseq_table_lookup(). The fact that we use CEO
and also have 4-level weights on each collation rule means that we can
in practice reorder the collation rules in iso14651_t1_common (the new
data) to provide consistent range expression resolution *and* the
weights should maintain the expected total order. Therefore this
patch does three things:
* Reorder the collation rules for the LATIN script in
iso14651_t1_common to deinterlace uppercase and lowercase letters in
the collation element orders.
* Adds new test data en_US.UTF-8.in for sort-test.sh which exercises
strcoll* and strxfrm* and ensures the ISO 14651 collation remains.
* Add back tests to tst-fnmatch.input and tst-regexloc.c which
exercise that [a-z] does not match A or Z.
The reordering of the ISO 14651 data is done in an entirely mechanical
fashion using the following program attached to the bug:
https://sourceware.org/bugzilla/show_bug.cgi?id=23393#c28
It is up for discussion if the iso14651_t1_common data should be
refined further to have 3 very tight collation element ranges that
include only a-z, A-Z, and 0-9, which would implement the solution
sought after in:
https://sourceware.org/bugzilla/show_bug.cgi?id=23393#c12
and implemented here:
https://www.sourceware.org/ml/libc-alpha/2018-07/msg00854.html
No regressions on x86_64.
Verified that removal of the iso14651_t1_common change causes tst-fnmatch
to regress with:
422: fnmatch ("[a-z]", "A", 0) = 0 (FAIL, expected FNM_NOMATCH) ***
...
425: fnmatch ("[A-Z]", "z", 0) = 0 (FAIL, expected FNM_NOMATCH) ***
Multiple updates for Occitan language including alternative month names,
update abday and abmon, fix typos in day, fix d_fmt, correct LC_NAME,
and use “copy "ca_ES"” as LC_COLLATE.
[BZ #23140]
* localedata/locales/oc_FR (mon): Rename to...
(alt_mon): This, then update October (typo fix).
(mon): New content (genitive case, month names preceded by
"de" or "d’").
[BZ #23422]
* localedata/locales/oc_FR (abday): Update all items.
(day): Update Wednesday and Saturday (typo fixes).
(abmon): Update all items, except May.
(d_fmt): Update "%d.%m.%Y" -> "%d/%m/%Y".
(LC_IDENTIFICATION): Bump the revision number and date.
Keep the "category" entries in alphabetic order.
(LC_ADDRESS): Remove no longer needed comment.
(LC_COLLATE): Use “copy "ca_ES"”.
(LC_NAME): Set the correct values of "name_fmt", "name_mr", and
"name_mrs".
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Fixed syntax error in the collation rules of Lower Sorbian language.
Collation test added in order to test the bugs like this early.
Reported-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
[BZ #23208]
* localedata/Makefile (test-input): Add dsb_DE.UTF-8.
(LOCALES): Likewise.
* localedata/dsb_DE.UTF-8.in: New file.
* localedata/locales/dsb_DE (LC_COLLATE): Fix syntax error.
In some places there was still the old Unicode version 10.0.0 in the files.
* localedata/charmaps/UTF-8: Use correct Unicode version 11.0.0 in comment.
* localedata/locales/i18n_ctype: Use correct Unicode version in comments
and headers.
* localedata/unicode-gen/utf8_gen.py: Add option to specify Unicode version
* localedata/unicode-gen/Makefile: Use option to specify Unicode version
for utf8_gen.py
Unicode 11.0.0 Support: Character encoding, character type info, and
transliteration tables are all updated to Unicode 11.0.0, using
the generator scripts contributed by Mike FABIAN (Red Hat).
Some info about the number of characters added:
Total added characters in newly generated CHARMAP: 684
Total added characters in newly generated WIDTH: 119
alpha: Added 380 characters in new ctype which were not in old ctype
combining: Added 56 characters in new ctype which were not in old ctype
combining_level3: Added 37 characters in new ctype which were not in old ctype
graph: Added 684 characters in new ctype which were not in old ctype
lower: Added 82 characters in new ctype which were not in old ctype
print: Added 684 characters in new ctype which were not in old ctype
punct: Added 304 characters in new ctype which were not in old ctype
tolower: Added 79 characters in new ctype which were not in old ctype
totitle: Added 33 characters in new ctype which were not in old ctype
toupper: Added 79 characters in new ctype which were not in old ctype
upper: Added 79 characters in new ctype which were not in old ctype
No characters were removed.
[BZ #23308]
* unicode-gen/Makefile (UNICODE_VERSION): Set to 11.0.0.
* localedata/unicode-gen/DerivedCoreProperties.txt: Update to Unicode 11.0.0.
* localedata/unicode-gen/EastAsianWidth.txt: likewise.
* localedata/unicode-gen/PropList.txt: likewise.
* localedata/unicode-gen/UnicodeData.txt: likewise.
* localedata/charmaps/UTF-8: Regenerate.
* localedata/locales/i18n_ctype: likewise.
* localedata/locales/tr_TR: likewise.
* localedata/locales/translit_circle: likewise.
* localedata/locales/translit_cjk_compat: likewise.
* localedata/locales/translit_combining: likewise.
* localedata/locales/translit_compat: likewise.
* localedata/locales/translit_font: likewise.
* localedata/locales/translit_fraction: likewise.
This locale already contained correct data in mon array. Updated from
CLDR to start the month names with the lowercase letters.
alt_mon is a new import from CLDR. The change has been consulted
off-list with a native speaker.
[BZ #23140]
* localedata/locales/hy_AM (mon): Synchronize with CLDR (lowercase,
genitive case).
(alt_mon): New entry, import from CLDR (nominative case).
Kashubian language is not supported by CLDR, data copied from Wikipedia
and documents released by RJK (official Kashubian Language Council),
also consulted with a native speaker.
Note that this language also needs ab_alt_mon feature due to the month
May: nominative "môj", genitive "maja"; abbreviated nominative "môj",
abbreviated genitive "maj".
[BZ #23140]
* localedata/locales/csb_PL (mon): Rename to...
(alt_mon): This.
(abmon): Rename to...
(ab_alt_mon): This.
(mon): Add with proper genitive forms, copy from Wikipedia.
(abmon): Likewise.
Thank you Michal Ostrowski for the feedback.
[BZ #19485]
* localedata/locales/csb_PL (mon): Fix typos:
"łżëkwiôt" -> "łżëkwiat" (April); "lëpinc" -> "lëpińc" (July).
(yesstr): Add, value is "jo".
(nostr): Add, value is "nié".
As a followup of fixing bug 10871, these three languages now support two
grammatical cases of the month names.
This commit does not resolve the bug because there are more languages
to be committed.
[BZ #23140]
* localedata/locales/gd_GB (mon): Rename to...
(alt_mon): This.
(mon): Import from CLDR (genitive case).
* localedata/locales/hsb_DE (mon): Rename to...
(alt_mon): This.
(mon): Import from CLDR (genitive case).
* localedata/locales/wa_BE (mon): Rename to...
(alt_mon): This.
(mon): Add, fill with the proper genitive forms, but CLDR data
is incomplete; completed according to the comments in this file.
(d_t_fmt): Do not use "di" before the month name, no longer needed.
* localedata/locales/wa_BE (country_name): Reword
"Beljike" -> "Beldjike".
[BZ #23152]
* localedata/locales/gd_GB (abmon): Fix typo in May:
"Mhàrt" -> "Cèit". Adjust the comment according to the change.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
As spotted by GNOME translation team, Greek language has the actually
visible difference between the abbreviated nominative and the abbreviated
genitive case for some month names. Examples:
May:
abbreviated nominative: "Μάι" -> abbreviated genitive: "Μαΐ"
July:
abbreviated nominative: "Ιούν" -> abbreviated genitive: "Ιουλ"
and more month names with similar differences.
Original discussion: https://bugzilla.gnome.org/show_bug.cgi?id=793645#c21
[BZ #22937]
* localedata/locales/el_CY (abmon): Rename to...
(ab_alt_mon): This.
(abmon): Import from CLDR (abbreviated genitive case).
* localedata/locales/el_GR (abmon): Rename to...
(ab_alt_mon): This.
(abmon): Import from CLDR (abbreviated genitive case).
A GNOME translator asked to use the same abbreviated month names
as provided by CLDR. This sounds reasonable. See the discussion:
https://bugzilla.gnome.org/show_bug.cgi?id=793645#c27
[BZ #22932]
* localedata/locales/lt_LT (abmon): Synchronize with CLDR.
Entries for characters which have “IGNORE” on all 4 levels like:
<U0001> IGNORE;IGNORE;IGNORE;IGNORE % START OF HEADING (in ISO 6429)
are changed into:
<U0001> IGNORE;IGNORE;IGNORE;<U0001> % START OF HEADING (in ISO 6429)
i.e. putting the code point of the character into the fourth level
instead of “IGNORE”. Without that change, all such characters
would compare equal which would make a wcscoll test case fail.
It is better to have a clearly defined sort order even for characters
like this so it is good to use the code point as a tie-break.
* localedata/locales/iso14651_t1_common: Use the code point of a
character in the fourth collation level instead of IGNORE for all
entries which have IGNORE on all 4 levels.
* localedata/locales/iso14651_t1_common: Add some convenient collation
symbols like <AFTER-A>, <BEFORE-A> to make tailoring easier using
rules similar to those in CLDR.
* localedata/locales/iso14651_t1_common: The new version of this
file downloaded from ISO contained several syntax errors which
are fixed by this patch.
[BZ #14095] - Review / update collation data from Unicode / ISO 14651
File downloaded from:
http://standards.iso.org/iso-iec/14651/ed-4/ISO14651_2016_TABLE1_en.txt
Updating this file alone is not enough, there are problems in the new
file which need to be fixed and the collation rules for many locales
need to be adapted. This is done by the following patches.
This update also fixes the problem that many characters are treated as
identical when sorting because they were not yet in the old
iso14651_t1_common file, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1336308
- Infinite (∞) and empty set (∅) are treated as if they were the same character by sort and uniq
[BZ #14095]
* localedata/locales/iso14651_t1_common: Update file to
latest version from ISO (ISO14651_2016_TABLE1_en.txt).
LC_TIME in these 4 locales is identical, using “copy "es_BO"” makes
that more obvious.
[BZ #22646]
* localedata/locales/es_CL (LC_TIME): copy "es_BO".
* localedata/locales/es_CU (LC_TIME): copy "es_BO".
* localedata/locales/es_EC (LC_TIME): copy "es_BO".
[BZ #10871]
* localedata/locales/ru_RU (mon): Rename to...
(alt_mon): This.
(abmon): Rename to...
(ab_alt_mon): This.
(mon): Import from CLDR (genitive case).
(abmon): Copy from the old content except the 5th month which is
now in the genitive case, even when abbreviated.
* localedata/locales/ru_UA: Likewise.
* time/tst-strptime.c (day_tests): Add an actual example of
a difference between %b and %Ob in Russian.