72195d4485
The ellipsis range support only allows <Uxxxx> or <Uxxxxxxxx> as valid unicode code points, otherwise it treats it as a symbol and since we don't define the symbol the entire range is unused.
287 lines
8.9 KiB
Diff
287 lines
8.9 KiB
Diff
Short description: Add C.UTF-8 support.
|
|
Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
|
|
Origin: PATCH
|
|
Upstream status: not-submitted
|
|
|
|
This patch needs to upstream as part of Carlos O'Donell
|
|
<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
|
|
work is currently blocked on cleaning up the test results to prove that
|
|
full code-point sorting is working as intended.
|
|
|
|
Note that this patch does not provide full code-point sorting as
|
|
expected.
|
|
|
|
This patch needs to upstream as soon as possible since it would be nice
|
|
to have this in F29 and fixed.
|
|
|
|
From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
|
|
From: Mike FABIAN <mfabian@redhat.com>
|
|
Date: Mon, 10 Aug 2015 15:58:12 +0200
|
|
Subject: [PATCH] Add a C.UTF-8 locale
|
|
|
|
---
|
|
localedata/SUPPORTED | 1 +
|
|
localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2 files changed, 239 insertions(+)
|
|
create mode 100644 localedata/locales/C
|
|
|
|
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
|
|
index 8ca023e..2a78391 100644
|
|
--- a/localedata/SUPPORTED
|
|
+++ b/localedata/SUPPORTED
|
|
@@ -1,6 +1,7 @@
|
|
# This file names the currently supported and somewhat tested locales.
|
|
# If you have any additions please file a glibc bug report.
|
|
SUPPORTED-LOCALES=\
|
|
+C.UTF-8/UTF-8 \
|
|
aa_DJ.UTF-8/UTF-8 \
|
|
aa_DJ/ISO-8859-1 \
|
|
aa_ER/UTF-8 \
|
|
diff --git a/localedata/locales/C b/localedata/locales/C
|
|
new file mode 100644
|
|
index 0000000..fdf460e
|
|
--- /dev/null
|
|
+++ b/localedata/locales/C
|
|
@@ -0,0 +1,238 @@
|
|
+escape_char /
|
|
+comment_char %
|
|
+% Locale for C locale in UTF-8
|
|
+
|
|
+LC_IDENTIFICATION
|
|
+title "C locale"
|
|
+source ""
|
|
+address ""
|
|
+contact ""
|
|
+email "mfabian@redhat.com"
|
|
+tel ""
|
|
+fax ""
|
|
+language "C"
|
|
+territory ""
|
|
+revision "1.0"
|
|
+date "2015-08-10"
|
|
+%
|
|
+category "i18n:2012";LC_IDENTIFICATION
|
|
+category "i18n:2012";LC_CTYPE
|
|
+category "i18n:2012";LC_COLLATE
|
|
+category "i18n:2012";LC_TIME
|
|
+category "i18n:2012";LC_NUMERIC
|
|
+category "i18n:2012";LC_MONETARY
|
|
+category "i18n:2012";LC_MESSAGES
|
|
+category "i18n:2012";LC_PAPER
|
|
+category "i18n:2012";LC_NAME
|
|
+category "i18n:2012";LC_ADDRESS
|
|
+category "i18n:2012";LC_TELEPHONE
|
|
+category "i18n:2012";LC_MEASUREMENT
|
|
+END LC_IDENTIFICATION
|
|
+
|
|
+LC_CTYPE
|
|
+copy "i18n"
|
|
+
|
|
+translit_start
|
|
+include "translit_combining";""
|
|
+translit_end
|
|
+
|
|
+END LC_CTYPE
|
|
+
|
|
+LC_COLLATE
|
|
+order_start forward
|
|
+<U0000>
|
|
+..
|
|
+<UFFFF>
|
|
+<U00010000>
|
|
+..
|
|
+<U0001FFFF>
|
|
+<U00020000>
|
|
+..
|
|
+<U0002FFFF>
|
|
+<U000E0000>
|
|
+..
|
|
+<U000EFFFF>
|
|
+<U000F0000>
|
|
+..
|
|
+<U000FFFFF>
|
|
+<U00100000>
|
|
+..
|
|
+<U0010FFFF>
|
|
+UNDEFINED
|
|
+order_end
|
|
+END LC_COLLATE
|
|
+
|
|
+LC_MONETARY
|
|
+% This is the 14652 i18n fdcc-set definition for
|
|
+% the LC_MONETARY category
|
|
+% (except for the int_curr_symbol and currency_symbol, they are empty in
|
|
+% the 14652 i18n fdcc-set definition and also empty in
|
|
+% glibc/locale/C-monetary.c. But localedef complains in that case).
|
|
+%
|
|
+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
|
|
+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
|
|
+int_curr_symbol "<U0055><U0053><U0044><U0020>"
|
|
+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
|
|
+% U+00A4 is the "generic currency symbol"
|
|
+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
|
|
+currency_symbol "<U0024>"
|
|
+mon_decimal_point "<U002E>"
|
|
+mon_thousands_sep ""
|
|
+mon_grouping -1
|
|
+positive_sign ""
|
|
+negative_sign "<U002D>"
|
|
+int_frac_digits -1
|
|
+frac_digits -1
|
|
+p_cs_precedes -1
|
|
+int_p_sep_by_space -1
|
|
+p_sep_by_space -1
|
|
+n_cs_precedes -1
|
|
+int_n_sep_by_space -1
|
|
+n_sep_by_space -1
|
|
+p_sign_posn -1
|
|
+n_sign_posn -1
|
|
+%
|
|
+END LC_MONETARY
|
|
+
|
|
+LC_NUMERIC
|
|
+% This is the POSIX Locale definition for
|
|
+% the LC_NUMERIC category.
|
|
+%
|
|
+decimal_point "<U002E>"
|
|
+thousands_sep ""
|
|
+grouping -1
|
|
+END LC_NUMERIC
|
|
+
|
|
+LC_TIME
|
|
+% This is the POSIX Locale definition for
|
|
+% the LC_TIME category.
|
|
+%
|
|
+% Abbreviated weekday names (%a)
|
|
+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
|
|
+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
|
|
+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
|
|
+ "<U0053><U0061><U0074>"
|
|
+
|
|
+% Full weekday names (%A)
|
|
+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
|
|
+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
|
|
+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
|
|
+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
|
|
+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
|
|
+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
|
|
+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
|
|
+
|
|
+% Abbreviated month names (%b)
|
|
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
|
|
+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
|
|
+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
|
|
+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
|
|
+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
|
|
+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
|
|
+
|
|
+% Full month names (%B)
|
|
+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
|
|
+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
|
|
+ "<U004D><U0061><U0072><U0063><U0068>";/
|
|
+ "<U0041><U0070><U0072><U0069><U006C>";/
|
|
+ "<U004D><U0061><U0079>";/
|
|
+ "<U004A><U0075><U006E><U0065>";/
|
|
+ "<U004A><U0075><U006C><U0079>";/
|
|
+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
|
|
+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
|
|
+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
|
|
+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
|
|
+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
|
|
+
|
|
+% Week description, consists of three fields:
|
|
+% 1. Number of days in a week.
|
|
+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
|
|
+% 3. The weekday number to be contained in the first week of the year.
|
|
+%
|
|
+% ISO 8601 conforming applications should use the values 7, 19971201 (a
|
|
+% Monday), and 4 (Thursday), respectively.
|
|
+week 7;19971201;4
|
|
+first_weekday 1
|
|
+first_workday 1
|
|
+
|
|
+% Appropriate date and time representation (%c)
|
|
+% "%a %b %e %H:%M:%S %Y"
|
|
+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
|
|
+
|
|
+% Appropriate date representation (%x)
|
|
+% "%m/%d/%y"
|
|
+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
|
|
+
|
|
+% Appropriate time representation (%X)
|
|
+% "%H:%M:%S"
|
|
+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
|
|
+
|
|
+% Appropriate AM/PM time representation (%r)
|
|
+% "%I:%M:%S %p"
|
|
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
|
|
+
|
|
+% Equivalent of AM/PM (%p) "AM"/"PM"
|
|
+%
|
|
+am_pm "<U0041><U004D>";"<U0050><U004D>"
|
|
+
|
|
+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
|
|
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
|
|
+END LC_TIME
|
|
+
|
|
+LC_MESSAGES
|
|
+% This is the POSIX Locale definition for
|
|
+% the LC_NUMERIC category.
|
|
+%
|
|
+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
|
|
+noexpr "<U005E><U005B><U006E><U004E><U005D>"
|
|
+yesstr "<U0059><U0065><U0073>"
|
|
+nostr "<U004E><U006F>"
|
|
+END LC_MESSAGES
|
|
+
|
|
+LC_PAPER
|
|
+% This is the ISO/IEC 14652 "i18n" definition for
|
|
+% the LC_PAPER category.
|
|
+% (A4 paper, this is also used in the built in C/POSIX
|
|
+% locale in glibc/locale/C-paper.c)
|
|
+height 297
|
|
+width 210
|
|
+END LC_PAPER
|
|
+
|
|
+LC_NAME
|
|
+% This is the ISO/IEC 14652 "i18n" definition for
|
|
+% the LC_NAME category.
|
|
+% "%p%t%g%t%m%t%f"
|
|
+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
|
|
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
|
|
+<U0025><U006D><U0025><U0074><U0025><U0066>"
|
|
+END LC_NAME
|
|
+
|
|
+LC_ADDRESS
|
|
+% This is the ISO/IEC 14652 "i18n" definition for
|
|
+% the LC_ADDRESS category.
|
|
+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
|
|
+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
|
|
+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
|
|
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
|
|
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
|
|
+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
|
|
+<U004E><U0025><U0063><U0025><U004E>"
|
|
+END LC_ADDRESS
|
|
+
|
|
+LC_TELEPHONE
|
|
+% This is the ISO/IEC 14652 "i18n" definition for
|
|
+% the LC_TELEPHONE category.
|
|
+% "+%c %a %l"
|
|
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
|
|
+<U006C>"
|
|
+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
|
|
+END LC_TELEPHONE
|
|
+
|
|
+LC_MEASUREMENT
|
|
+% This is the ISO/IEC 14652 "i18n" definition for
|
|
+% the LC_MEASUREMENT category.
|
|
+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
|
|
+%metric
|
|
+measurement 1
|
|
+END LC_MEASUREMENT
|
|
+
|
|
--
|
|
2.4.3
|
|
|