diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | iconvdata/EUC-KR.irreversible | 1 | ||||
-rw-r--r-- | iconvdata/euc-kr.c | 28 | ||||
-rw-r--r-- | iconvdata/testdata/EUC-KR..UTF8 | 2 | ||||
-rw-r--r-- | localedata/charmaps/EUC-KR | 2 | ||||
-rw-r--r-- | localedata/locales/ko_KR | 4 |
6 files changed, 25 insertions, 17 deletions
@@ -1,5 +1,10 @@ 2000-10-04 Ulrich Drepper <drepper@redhat.com> + * 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 <U0059> /x59 LATIN CAPITAL LETTER Y <U005A> /x5a LATIN CAPITAL LETTER Z <U005B> /x5b LEFT SQUARE BRACKET -<U005C> /x5c REVERSE SOLIDUS +<U20A9> /x5c WON SIGN <U005D> /x5d RIGHT SQUARE BRACKET <U005E> /x5e CIRCUMFLEX ACCENT <U005F> /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 "<U004B><U0052><U0057><U0020>" -% Should be U20A9 but this is not in EUC-KR. Or is it? -% currency_symbol "<U20A9>" -currency_symbol "<UFFE6>" +currency_symbol "<U20A9>" mon_decimal_point "<U002E>" mon_thousands_sep "<U002C>" mon_grouping 3;3 |