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