glibc/locale
Carlos O'Donell 2ab8b74567 localedef: Update LC_MONETARY handling (Bug 28845)
ISO C17, POSIX Issue 7, and ISO 30112 all allow the char*
types to be empty strings i.e. "", integer or char values to
be -1 or CHAR_MAX respectively, with the exception of
decimal_point which must be non-empty in ISO C. Note that
the defaults for mon_grouping vary, but are functionaly
equivalent e.g. "\177" (no further grouping reuqired) vs.
"" (no grouping defined for all groups).

We include a broad comment talking about harmonizing ISO C,
POSIX, ISO 30112, and the default C/POSIX locale for glibc.

We reorder all setting based on locale/categories.def order.

We soften all missing definitions from errors to warnings when
defaults exist.

Given that ISO C, POSIX and ISO 30112 allow the empty string
we change LC_MONETARY handling of mon_decimal_point to allow
the empty string.  If mon_decimal_point is not defined at all
then we pick the existing legacy glibc default value of
<U002E> i.e. ".".

We also set the default for mon_thousands_sep_wc at the
same time as mon_thousands_sep, but this is not a change in
behaviour, it is always either a matching value or L'\0',
but if in the future we change the default to a non-empty
string we would need to update both at the same time.

Tested on x86_64 and i686 without regressions.
Tested with install-locale-archive target.
Tested with install-locale-files target.

Reviewed-by: DJ Delorie <dj@redhat.com>
2022-02-25 07:31:27 -05:00
..
bits Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
programs localedef: Update LC_MONETARY handling (Bug 28845) 2022-02-25 07:31:27 -05:00
tst-localedef-path-norm.root
broken_cur_max.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C_name.c
C-address.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-collate-seq.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-collate.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-ctype.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-identification.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-measurement.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-messages.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-monetary.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-name.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-numeric.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-paper.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-telephone.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-time.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
C-translit.h.in Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
categories.def Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
coll-lookup.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
coll-lookup.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
duplocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elem-hash.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
findlocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
freelocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gen-translit.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
global-locale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
hashval.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
indigits.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
indigitswc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
iso-639.def
iso-3166.def
iso-4217.def
langinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-address.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-collate.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-ctype.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-identification.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-measurement.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-messages.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-monetary.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-name.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-numeric.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-paper.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-telephone.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
lc-time.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
loadarchive.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
loadlocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
locale.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
localeconv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
localeinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
localename.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
locarchive.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Makefile Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mb_cur_max.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
newlocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nl_langinfo_l.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nl_langinfo.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
outdigits.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
outdigitswc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
setlocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
strlen-hash.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
SYS_libc.c
tst-C-locale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-duplocale.c
tst-locale-locpath.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-localedef-path-norm.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-locname.c
uselocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Versions
weight.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
weightwc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
xlocale.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00