aboutsummaryrefslogtreecommitdiff
path: root/localedata
AgeCommit message (Collapse)Author
2019-02-22Break some lines before not after operators.Joseph Myers
The GNU Coding Standards specify that line breaks in expressions should go before an operator, not after one. This patch fixes various code to do this. It only changes code that appears to be mostly following GNU style anyway, not files and directories with substantially different formatting. It is not exhaustive even for files using GNU style (for example, changes to sysdeps files are deferred for subsequent cleanups). Some files changed are shared with gnulib, but most are specific to glibc. Changes were made manually, with places to change found by grep (so some cases, e.g. where the operator was followed by a comment at end of line, are particularly liable to have been missed by grep, but I did include cases where the operator was followed by backslash-newline). This patch generally does not attempt to address other coding style issues in the expressions changed (for example, missing spaces before '(', or lack of parentheses to ensure indentation of continuation lines properly reflects operator precedence). Tested for x86_64, and with build-many-glibcs.py. * benchtests/bench-memmem.c (simple_memmem): Break lines before rather than after operators. * benchtests/bench-skeleton.c (TIMESPEC_AFTER): Likewise. * crypt/md5.c (md5_finish_ctx): Likewise. * crypt/sha256.c (__sha256_finish_ctx): Likewise. * crypt/sha512.c (__sha512_finish_ctx): Likewise. * elf/cache.c (load_aux_cache): Likewise. * elf/dl-load.c (open_verify): Likewise. * elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise. * elf/readelflib.c (process_elf_file): Likewise. * elf/rtld.c (dl_main): Likewise. * elf/sprof.c (generate_call_graph): Likewise. * hurd/ctty-input.c (_hurd_ctty_input): Likewise. * hurd/ctty-output.c (_hurd_ctty_output): Likewise. * hurd/dtable.c (reauth_dtable): Likewise. * hurd/getdport.c (__getdport): Likewise. * hurd/hurd/signal.h (_hurd_interrupted_rpc_timeout): Likewise. * hurd/hurd/sigpreempt.h (HURD_PREEMPT_SIGNAL_P): Likewise. * hurd/hurdfault.c (_hurdsig_fault_catch_exception_raise): Likewise. * hurd/hurdioctl.c (fioctl): Likewise. * hurd/hurdselect.c (_hurd_select): Likewise. * hurd/hurdsig.c (_hurdsig_abort_rpcs): Likewise. (STOPSIGS): Likewise. * hurd/hurdstartup.c (_hurd_startup): Likewise. * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Likewise. * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise. * hurd/msgportdemux.c (msgport_server): Likewise. * hurd/setauth.c (_hurd_setauth): Likewise. * include/features.h (__GLIBC_USE_DEPRECATED_SCANF): Likewise. * libio/libioP.h [IO_DEBUG] (CHECK_FILE): Likewise. * locale/programs/ld-ctype.c (set_class_defaults): Likewise. * localedata/tests-mbwc/tst_swscanf.c (tst_swscanf): Likewise. * login/tst-utmp.c (do_check): Likewise. (simulate_login): Likewise. * mach/lowlevellock.h (lll_lock): Likewise. (lll_trylock): Likewise. * math/test-fenv.c (ALL_EXC): Likewise. * math/test-fenvinline.c (ALL_EXC): Likewise. * misc/sys/cdefs.h (__attribute_deprecated_msg__): Likewise. * nis/nis_call.c (__do_niscall3): Likewise. * nis/nis_callback.c (cb_prog_1): Likewise. * nis/nis_defaults.c (searchaccess): Likewise. * nis/nis_findserv.c (__nis_findfastest_with_timeout): Likewise. * nis/nis_ismember.c (internal_ismember): Likewise. * nis/nis_local_names.c (nis_local_principal): Likewise. * nis/nss_nis/nis-rpc.c (_nss_nis_getrpcbyname_r): Likewise. * nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_getnetgrent_r): Likewise. * nis/ypclnt.c (yp_match): Likewise. (yp_first): Likewise. (yp_next): Likewise. (yp_master): Likewise. (yp_order): Likewise. * nscd/hstcache.c (cache_addhst): Likewise. * nscd/initgrcache.c (addinitgroupsX): Likewise. * nss/nss_compat/compat-pwd.c (copy_pwd_changes): Likewise. (internal_getpwuid_r): Likewise. * nss/nss_compat/compat-spwd.c (copy_spwd_changes): Likewise. * posix/glob.h (__GLOB_FLAGS): Likewise. * posix/regcomp.c (peek_token): Likewise. (peek_token_bracket): Likewise. (parse_expression): Likewise. * posix/regexec.c (sift_states_iter_mb): Likewise. (check_node_accept_bytes): Likewise. * posix/tst-spawn3.c (do_test): Likewise. * posix/wordexp-test.c (testit): Likewise. * posix/wordexp.c (parse_tilde): Likewise. (exec_comm): Likewise. * posix/wordexp.h (__WRDE_FLAGS): Likewise. * resource/vtimes.c (TIMEVAL_TO_VTIMES): Likewise. * setjmp/sigjmp.c (__sigjmp_save): Likewise. * stdio-common/printf_fp.c (__printf_fp_l): Likewise. * stdio-common/tst-fileno.c (do_test): Likewise. * stdio-common/vfprintf-internal.c (vfprintf): Likewise. * stdlib/strfmon_l.c (__vstrfmon_l_internal): Likewise. * stdlib/strtod_l.c (round_and_return): Likewise. (____STRTOF_INTERNAL): Likewise. * stdlib/tst-strfrom.h (TEST_STRFROM): Likewise. * string/strcspn.c (STRCSPN): Likewise. * string/test-memmem.c (simple_memmem): Likewise. * termios/tcsetattr.c (tcsetattr): Likewise. * time/alt_digit.c (_nl_parse_alt_digit): Likewise. * time/asctime.c (asctime_internal): Likewise. * time/strptime_l.c (__strptime_internal): Likewise. * time/sys/time.h (timercmp): Likewise. * time/tzfile.c (__tzfile_compute): Likewise.
2019-01-07en_US: define date_fmt (bug 24046)Aurelien Jarno
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".
2019-01-02bs_BA: Fix a small typo in comment (bug 24011).PanderMusubi
[BZ #24011] * localedata/locales/bs_BA (LC_TELEPHONE): Fix a typo in comment.
2019-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2018-12-28Multiple locales: Use the correct 12-hour time formats (bug 10496).Rafal Luzynski
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.
2018-12-28sq_AL: Use the correct date and time formats (bug 10496, 23724).Rafal Luzynski
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".
2018-12-18localedata: Remove executable bit from localedata/locales/bi_VU [BZ #23995]Florian Weimer
2018-12-03Add --no-hard-links option to localedef (bug 23923)Carlos O'Donell
Downstream distributions need consistent sets of hardlinks in order for rpm to operate effectively. This means that even if locales are built with a high level of parallelism that the resulting files need to have consistent hardlink counts. The only way to achieve this is with a post-install hardlink pass using a program like 'hardlink' (shipped in Fedora). If the downstream distro wants to post-process the hardlinks then the time spent in localedef looking up sibling directories and processing hardlinks is wasted effort. To optimize the build and install pass we add a --no-hard-links option to localedef to avoid doing the hardlink optimziation for size. Tested on x86_64 with 'make localedata/install-locale-files' before and after. Without the patch we have files with 100+ hardlink counts. After the patch and running with --no-hard-links all link counts are 1. This patch also alters the convenience target 'make localedata/install-locale-files' to use the new option. Signed-off-by: Carlos O'Donell <carlos@redhat.com>
2018-10-29Currency symbol should not preceed amount for [BZ #23791]Sergi Almacellas Abellana
CLDR also has the currency symbol after the amount for Catalan. Also set grouping in LC_NUMERIC to 3;3. Reviewed-by: Mike FABIAN <mfabian@redhat.com>
2018-10-17Don't reduce test timeout to less than defaultAndreas Schwab
This removes all overrides of TIMEOUT that are less than or equal to the default timeout.
2018-10-08kl_GL: Update the month names and date formats (bug 23740).Rafal Luzynski
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".
2018-10-02kl_GL: Fix spelling of Sunday, should be "sapaat" (bug 20209).Rafal Luzynski
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".
2018-09-21it_CH/it_IT locales: Correct some LC_TIME formats (bug 10425).Rafal Luzynski
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.
2018-09-10Italian and Swiss locales: Use the correct separators (bug 10797).Rafal Luzynski
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".
2018-09-05Indian and similar locales: Set the correct date format (bug 17426).Rafal Luzynski
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".
2018-08-28en_IN: Set the correct date format for "%x" (bug 17426).Rafal Luzynski
[BZ #17426] * localedata/locales/en_IN (d_fmt): Use "%d/%m/%y".
2018-08-02Add convenience target 'install-locale-files'.Carlos O'Donell
The convenience install target 'install-locale-files' is created to allow distributions to install all of the SUPPORTED locales as files instead of into the locale-archive. You invoke the new convenience target like this: make localedata/install-locale-files DESTDIR=<prefix>
2018-07-25Add missing localedata/en_US.UTF-8.in (Bug 23393).Carlos O'Donell
Commit 7cd7d36f1feb3ccacf476e909b115b45cdd46e77 failed to include the new testing file en_US.UTF-8.in.
2018-07-25Keep expected behaviour for [a-z] and [A-z] (Bug 23393).Carlos O'Donell
In commit 9479b6d5e08eacce06c6ab60abc9b2f4eb8b71e4 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) ***
2018-07-18oc_FR locale: Multiple updates (bug 23140, bug 23422).Quentin PAGÈS
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>
2018-07-18New locale: Yakut (Sakha) for Russia (sah_RU) [BZ #22241]Valery Timiriliyev
* localedata/Makefile (test-input): Add sah_RU.UTF-8. (LOCALES): Likewise. * localedata/SUPPORTED (sah_RU/UTF-8): New entry. * localedata/locales/sah_RU: New file. * localedata/sah_RU.UTF-8.in: New file. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2018-07-17os_RU: Add alternative month names (bug 23140).Rafal Luzynski
[BZ #23140] * localedata/locales/os_RU (mon): Rename to... (alt_mon): This. (mon): Import from CLDR (genitive case). Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2018-07-13dsb_DE locale: Fix syntax error and add tests (bug 23208).Rafal Luzynski
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.
2018-07-10Put the correct Unicode version number 11.0.0 into the generated filesMike FABIAN
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
2018-07-04locale: XFAIL newlocale usage in static binary (Bug 23164)Carlos O'Donell
There is a glibc optimization which allows for locale categories to be removed during static compilation. There have been various bugs for this support over the years, with bug 16915 being the most recent. The solution there was to emit a reference to all the categories to avoid any being removed. This fix, although it's in the generic __nl_langinfo_l function, doesn't appear to be enough to fix the case for a statically linked program that uses newlocale and nl_langinfo_l. This commit doesn't fix the problem, but it does add a XFAIL'd test case such that a fix can be applied against this and the XFAIL removed. It's not entirely clear that the problem is the same as that which was seen in bug 16915.
2018-07-04Bug 23308: Update to Unicode 11.0.0Mike FABIAN
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.
2018-06-29New locale: Lower Sorbian (dsb_DE) [BZ #23208]Michael Wolf
[BZ #23208] * localedata/SUPPORTED (dsb_DE/UTF-8): New entry. * localedata/locales/dsb_DE: New file.
2018-06-29hy_AM: Add alternative month names (bug 23140).Rafal Luzynski
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).
2018-06-29es_BO locale: Change LC_PAPER to en_US (bug 22996).Sylvain Lesage
[BZ #22996] * localedata/locales/es_BO (LC_PAPER): Change to “copy "en_US"”.
2018-06-29ast_ES: Add alternative month names (bug 23140).Rafal Luzynski
[BZ #23140] * localedata/locales/ast_ES (mon): Rename to... (alt_mon): This. (mon): Import from CLDR (genitive case).
2018-06-25csb_PL: Add alternative month names (bug 23140).Rafal Luzynski
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.
2018-06-25csb_PL: Update month translations + add yesstr/nostr (bug 19485).Rafal Luzynski
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é".
2018-06-14localedata: Make IBM273 compatible with ISO-8859-1 [BZ #23290]Florian Weimer
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2018-06-12gd_GB, hsb_DE, wa_BE: Add alternative month names (bug 23140).Rafal Luzynski
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".
2018-05-11gd_GB: Fix typo in abbreviated "May" (bug 23152).Rafal Luzynski
[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>
2018-04-23hr_HR locale: fix thousands_sep and mon_thousands_sepDragan Stanojevic - Nevidljivi
[BZ #23094] * localedata/locales/hr_HR: fix thousands_sep and mon_thousands_sep
2018-03-15cs_CZ locale: Add alternative month names (bug 22963).Rafal Luzynski
Add alternative month names, primary month names are genitive now. [BZ #22963] * localedata/locales/cs_CZ (mon): Rename to... (alt_mon): This. (mon): Import from CLDR (genitive case).
2018-03-15Greek (el_CY, el_GR) locales: Introduce ab_alt_mon (bug 22937).Rafal Luzynski
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).
2018-03-15lt_LT locale: Update abbreviated month names (bug 22932).Rafal Luzynski
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.
2018-03-15ca_ES locale: Update LC_TIME (bug 22848).Robert Buj
Add/fix alternative month names, long & short formats, am_pm, abday settings, and improve indentation for Catalan. [BZ #22848] * localedata/locales/ca_ES (abmon): Rename to... (ab_alt_mon): This, then synchronize with CLDR (nominative case). (mon): Rename to... (alt_mon): This. (abmon): Import from CLDR (genitive case, month names preceded by "de" or "d’"). (mon): Likewise. (abday): Synchronize with CLDR. (d_t_fmt): Likewise. (d_fmt): Likewise. (am_pm): Likewise. (LC_TIME): Improve indentation. (LC_TELEPHONE): Likewise. (LC_NAME): Likewise. (LC_ADDRESS): Likewise.
2018-03-01an_ES locale: update some locale data [BZ #22896]Mike FABIAN
[BZ #22896] * localedata/locales/an_ES: update month and day names, improve d_fmt, improve postal_fmt, add country_post, add country_isbn
2018-03-01bg_BG locale: Fix a typo in a commentMike FABIAN
* localedata/locales/bg_BG (LC_COLLATE): The comment mentioned Ukrainian instead of Bulgarian.
2018-02-27Remove the lines from cmn_TW.UTF-8.in which cannot work at the moment.Mike FABIAN
See this bug https://sourceware.org/bugzilla/show_bug.cgi?id=22898 These lines don’t yet work because of a glibc bug, not because of problems in the locale data. No matter what sorting rules one uses, these characters cannot be sorted at all at the moment. As soon as that bug is fixed, these lines should be added back to the test file. * localedata/cmn_TW.UTF-8.in: Remove the lines which cannot be sorted correctly at the moment because of a bug.
2018-02-27Adapt collation in several locales to the new iso14651_t1_common fileMike FABIAN
[BZ #22550] - es_ES locale (and other es_* locales): collation should treat ñ as a primary different character, sync the collation for Spanish with CLDR [BZ #21547] - Tibetan script collation broken (Dzongkha and Tibetan) * localedata/Makefile: Add new test files. * localedata/lv_LV.UTF-8.in: Adapt test file to new collation order. * localedata/sv_SE.ISO-8859-1.in: Adapt test file to new collation order. * localedata/uk_UA.UTF-8.in: Adapt test file to new collation order. * localedata/am_ET.UTF-8.in: New test file. * localedata/az_AZ.UTF-8.in: Likewise. * localedata/be_BY.UTF-8.in: Likewise. * localedata/ber_DZ.UTF-8.in: Likewise. * localedata/ber_MA.UTF-8.in: Likewise. * localedata/bg_BG.UTF-8.in: Likewise. * localedata/br_FR.UTF-8.in: Likewise. * localedata/cmn_TW.UTF-8.in: Likewise. * localedata/crh_UA.UTF-8.in: Likewise. * localedata/csb_PL.UTF-8.in: Likewise. * localedata/cv_RU.UTF-8.in: Likewise. * localedata/cy_GB.UTF-8.in: Likewise. * localedata/dz_BT.UTF-8.in: Likewise. * localedata/eo.UTF-8.in: Likewise. * localedata/es_ES.UTF-8.in: Likewise. * localedata/fa_IR.UTF-8.in: Likewise. * localedata/fi_FI.UTF-8.in: Likewise. * localedata/fil_PH.UTF-8.in: Likewise. * localedata/fur_IT.UTF-8.in: Likewise. * localedata/gez_ER.UTF-8@abegede.in: Likewise. * localedata/ha_NG.UTF-8.in: Likewise. * localedata/ig_NG.UTF-8.in: Likewise. * localedata/ik_CA.UTF-8.in: Likewise. * localedata/kk_KZ.UTF-8.in: Likewise. * localedata/ku_TR.UTF-8.in: Likewise. * localedata/ky_KG.UTF-8.in: Likewise. * localedata/ln_CD.UTF-8.in: Likewise. * localedata/mi_NZ.UTF-8.in: Likewise. * localedata/ml_IN.UTF-8.in: Likewise. * localedata/mn_MN.UTF-8.in: Likewise. * localedata/mr_IN.UTF-8.in: Likewise. * localedata/mt_MT.UTF-8.in: Likewise. * localedata/nb_NO.UTF-8.in: Likewise. * localedata/om_KE.UTF-8.in: Likewise. * localedata/os_RU.UTF-8.in: Likewise. * localedata/ps_AF.UTF-8.in: Likewise. * localedata/ro_RO.UTF-8.in: Likewise. * localedata/ru_RU.UTF-8.in: Likewise. * localedata/sc_IT.UTF-8.in: Likewise. * localedata/se_NO.UTF-8.in: Likewise. * localedata/sq_AL.UTF-8.in: Likewise. * localedata/sv_SE.UTF-8.in: Likewise. * localedata/szl_PL.UTF-8.in: Likewise. * localedata/tg_TJ.UTF-8.in: Likewise. * localedata/tk_TM.UTF-8.in: Likewise. * localedata/tt_RU.UTF-8.in: Likewise. * localedata/tt_RU.UTF-8@iqtelif.in: Likewise. * localedata/ug_CN.UTF-8.in: Likewise. * localedata/uz_UZ.UTF-8.in: Likewise. * localedata/vi_VN.UTF-8.in: Likewise. * localedata/yi_US.UTF-8.in: Likewise. * localedata/yo_NG.UTF-8.in: Likewise. * localedata/zh_CN.UTF-8.in: Likewise. * localedata/locales/am_ET: Adapt collation rules to new iso14651_t1_common file and fix bugs in the collation. * localedata/locales/az_AZ: Likewise. * localedata/locales/be_BY: Likewise. * localedata/locales/ber_DZ: Likewise. * localedata/locales/ber_MA: Likewise. * localedata/locales/bg_BG: Likewise. * localedata/locales/br_FR: Likewise. * localedata/locales/br_FR@euro: Likewise. * localedata/locales/ca_ES: Likewise. * localedata/locales/cns11643_stroke: Likewise. * localedata/locales/crh_UA: Likewise. * localedata/locales/cs_CZ: Likewise. * localedata/locales/csb_PL: Likewise. * localedata/locales/cv_RU: Likewise. * localedata/locales/cy_GB: Likewise. * localedata/locales/da_DK: Likewise. * localedata/locales/dz_BT: Likewise. * localedata/locales/en_CA: Likewise. * localedata/locales/eo: Likewise. * localedata/locales/es_CU: Likewise. * localedata/locales/es_EC: Likewise. * localedata/locales/es_ES: Likewise. * localedata/locales/es_US: Likewise. * localedata/locales/et_EE: Likewise. * localedata/locales/fa_IR: Likewise. * localedata/locales/fi_FI: Likewise. * localedata/locales/fil_PH: Likewise. * localedata/locales/fur_IT: Likewise. * localedata/locales/gez_ER@abegede: Likewise. * localedata/locales/ha_NG: Likewise. * localedata/locales/hr_HR: Likewise. * localedata/locales/hsb_DE: Likewise. * localedata/locales/hu_HU: Likewise. * localedata/locales/ig_NG: Likewise. * localedata/locales/ik_CA: Likewise. * localedata/locales/is_IS: Likewise. * localedata/locales/iso14651_t1_pinyin: Likewise. * localedata/locales/kk_KZ: Likewise. * localedata/locales/ku_TR: Likewise. * localedata/locales/ky_KG: Likewise. * localedata/locales/ln_CD: Likewise. * localedata/locales/lt_LT: Likewise. * localedata/locales/lv_LV: Likewise. * localedata/locales/mi_NZ: Likewise. * localedata/locales/ml_IN: Likewise. * localedata/locales/mn_MN: Likewise. * localedata/locales/mr_IN: Likewise. * localedata/locales/mt_MT: Likewise. * localedata/locales/nb_NO: Likewise. * localedata/locales/om_KE: Likewise. * localedata/locales/os_RU: Likewise. * localedata/locales/pl_PL: Likewise. * localedata/locales/ps_AF: Likewise. * localedata/locales/ro_RO: Likewise. * localedata/locales/ru_RU: Likewise. * localedata/locales/ru_UA: Likewise. * localedata/locales/sc_IT: Likewise. * localedata/locales/se_NO: Likewise. * localedata/locales/si_LK: Likewise. * localedata/locales/sq_AL: Likewise. * localedata/locales/sv_FI: Likewise. * localedata/locales/sv_FI@euro: Likewise. * localedata/locales/sv_SE: Likewise. * localedata/locales/szl_PL: Likewise. * localedata/locales/tg_TJ: Likewise. * localedata/locales/ti_ER: Likewise. * localedata/locales/tk_TM: Likewise. * localedata/locales/tl_PH: Likewise. * localedata/locales/tr_TR: Likewise. * localedata/locales/tt_RU: Likewise. * localedata/locales/tt_RU@iqtelif: Likewise. * localedata/locales/ug_CN: Likewise. * localedata/locales/uk_UA: Likewise. * localedata/locales/uz_UZ: Likewise. * localedata/locales/uz_UZ@cyrillic: Likewise. * localedata/locales/vi_VN: Likewise. * localedata/locales/yi_US: Likewise. * localedata/locales/yo_NG: Likewise.
2018-02-27Improve gen-locales.mk and gen-locale.sh to make test files with @ options workMike FABIAN
With out this, adding collation test files like localedata/gez_ER.UTF-8@abegede.in does not work for locales which contain @ modifiers. * gen-locales.mk: Make test files which contain @ modifiers in their name work. * localedata/gen-locale.sh: Likewise.
2018-02-27Collation order of @-. and space has changed in new iso14651_t1_common file, ↵Mike FABIAN
adapt test files * localedata/da_DK.ISO-8859-1.in: In the new iso14651_t1_common file downloaded from ISO, the collation order of @-. and space has changed. Therefore, this test file needed to be adapted. * localedata/fr_CA.UTF-8.in: Likewise. * localedata/fr_FR.UTF-8.in: Likewise. * localedata/uk_UA.UTF-8.in: Likewise.
2018-02-27Collation order of ȥ has changed in new iso14651_t1_common file, adapt test ↵Mike FABIAN
files * localedata/cs_CZ.UTF-8.in: adapt this test file to the collation order of ȥ in the new iso14651_t1_common file. * localedata/pl_PL.UTF-8.in: Likewise.
2018-02-27Add sections for various scripts to the iso14651_t1_common fileMike FABIAN
* localedata/locales/iso14651_t1_common: Add sections for various scripts to the iso14651_t1_common file.
2018-02-27iso14651_t1_common: make the fourth level the codepoint for characters which ↵Mike FABIAN
are ignorable on all 4 levels 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.
2018-02-27Add convenience symbols like <AFTER-A>, <BEFORE-A> to iso14651_t1_commonMike FABIAN
* 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.