From 228cc8780fc6cd31de3f81543c0c08f2b3e3cde9 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 4 Oct 2000 23:52:14 +0000 Subject: Update. * iconvdata/euc-kr.c (euckr_from_ucs4): Handle U20a9. (BODY from direction): Map \x5c to U20a9. * iconvdata/testdata/EUC-KR..UTF8: Adjust to this change. * iconvdata/EUC-KR.irreversible: New file. --- ChangeLog | 5 +++++ iconvdata/EUC-KR.irreversible | 1 + iconvdata/euc-kr.c | 28 ++++++++++++++++------------ iconvdata/testdata/EUC-KR..UTF8 | 2 +- localedata/charmaps/EUC-KR | 2 +- localedata/locales/ko_KR | 4 +--- 6 files changed, 25 insertions(+), 17 deletions(-) create mode 100644 iconvdata/EUC-KR.irreversible diff --git a/ChangeLog b/ChangeLog index ec30782a0c..7ed6556ab0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2000-10-04 Ulrich Drepper + * iconvdata/euc-kr.c (euckr_from_ucs4): Handle U20a9. + (BODY from direction): Map \x5c to U20a9. + * iconvdata/testdata/EUC-KR..UTF8: Adjust to this change. + * iconvdata/EUC-KR.irreversible: New file. + * argp/argp-parse.c (argp_default_argp): Set libc as message domain. (argp_version_argp): Likewise. diff --git a/iconvdata/EUC-KR.irreversible b/iconvdata/EUC-KR.irreversible new file mode 100644 index 0000000000..4eadbb376c --- /dev/null +++ b/iconvdata/EUC-KR.irreversible @@ -0,0 +1 @@ +0x5C 0x005C diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c index 9ea937c005..0b4e29abe3 100644 --- a/iconvdata/euc-kr.c +++ b/iconvdata/euc-kr.c @@ -29,7 +29,13 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp) { if (ch > 0x9f) { - if (__builtin_expect (ucs4_to_ksc5601 (ch, cp, 2), 0) + if (__builtin_expect (ch, 0) == 0x20a9) + { + /* Half-width Korean Currency WON sign. */ + cp[0] = '\\'; + cp[1] = '\0'; + } + else if (__builtin_expect (ucs4_to_ksc5601 (ch, cp, 2), 0) != __UNKNOWN_10646_CHAR) { cp[0] |= 0x80; @@ -38,9 +44,10 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp) else cp[0] = '\0'; } - /* XXX Think about 0x5c ; '\'. */ else { + /* There is no mapping for U005c but we nevertheless map it to + \x5c. */ cp[0] = (unsigned char) ch; cp[1] = '\0'; } @@ -67,17 +74,14 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp) { \ uint32_t ch = *inptr; \ \ - /* Half-width Korean Currency WON sign \ - \ - if (inchar == 0x5c) \ - ch = 0x20a9; \ - else if (inchar <= 0x7f) \ - ch = (uint32_t) inchar; \ - */ \ - \ if (ch <= 0x9f) \ - /* Plain ASCII. */ \ - ++inptr; \ + { \ + /* Plain ASCII with one exception. */ \ + if (ch == 0x5c) \ + /* Half-width Korean Currency WON sign. */ \ + ch = 0x20a9; \ + ++inptr; \ + } \ /* 0xfe(->0x7e : row 94) and 0xc9(->0x59 : row 41) are \ user-defined areas. */ \ else if (__builtin_expect (ch, 0xa1) == 0xa0 \ diff --git a/iconvdata/testdata/EUC-KR..UTF8 b/iconvdata/testdata/EUC-KR..UTF8 index e287e76c6f..b6c484fa11 100644 --- a/iconvdata/testdata/EUC-KR..UTF8 +++ b/iconvdata/testdata/EUC-KR..UTF8 @@ -1,7 +1,7 @@ ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O - P Q R S T U V W X Y Z [ \ ] ^ _ + P Q R S T U V W X Y Z [ ₩ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ diff --git a/localedata/charmaps/EUC-KR b/localedata/charmaps/EUC-KR index bf18ea6106..6a4326790c 100644 --- a/localedata/charmaps/EUC-KR +++ b/localedata/charmaps/EUC-KR @@ -100,7 +100,7 @@ CHARMAP /x59 LATIN CAPITAL LETTER Y /x5a LATIN CAPITAL LETTER Z /x5b LEFT SQUARE BRACKET - /x5c REVERSE SOLIDUS + /x5c WON SIGN /x5d RIGHT SQUARE BRACKET /x5e CIRCUMFLEX ACCENT /x5f LOW LINE diff --git a/localedata/locales/ko_KR b/localedata/locales/ko_KR index cfeeadc1e7..1b9ec128ce 100644 --- a/localedata/locales/ko_KR +++ b/localedata/locales/ko_KR @@ -11120,9 +11120,7 @@ END LC_CTYPE LC_MONETARY int_curr_symbol "" -% Should be U20A9 but this is not in EUC-KR. Or is it? -% currency_symbol "" -currency_symbol "" +currency_symbol "" mon_decimal_point "" mon_thousands_sep "" mon_grouping 3;3 -- cgit v1.2.3