From 079e46f04b61ba54be829f05c114e03b75460da9 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 25 Sep 2000 21:17:32 +0000 Subject: Update. 2000-09-25 Ulrich Drepper * SUPPORTED: Remove ko_KR.JOHAB. We don't want to encourage people to use it. 2000-09-23 Bruno Haible * charmaps/JOHAB: Add identity mapping for 0x7f. --- iconv/gconv_conf.c | 1 + iconvdata/johab.c | 35 +++++++++++++++++++---------------- iconvdata/tst-tables.sh | 2 +- localedata/ChangeLog | 9 +++++++++ localedata/SUPPORTED | 1 - localedata/charmaps/JOHAB | 1 + 6 files changed, 31 insertions(+), 18 deletions(-) diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index 11fe050e02..4746f43bbb 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -443,6 +443,7 @@ __gconv_get_path (void) cwd = __getcwd (NULL, 0); cwdlen = strlen (cwd); } + assert (default_gconv_path[0] == '/'); /* In a first pass we calculate the number of elements. */ oldp = NULL; diff --git a/iconvdata/johab.c b/iconvdata/johab.c index e4603cb423..a631140f09 100644 --- a/iconvdata/johab.c +++ b/iconvdata/johab.c @@ -68,8 +68,8 @@ static const uint32_t init_to_ucs[19] = static const uint32_t final_to_ucs[31] = { L'\0', L'\0', 0x3133, L'\0', 0x3135, 0x3136, L'\0', L'\0', - 0x313a, 0x313b, 0x314c, 0x313d, 0x313e, 0x313f, - 0x3140, L'\0', L'\0', L'\0', 0x3144, L'\0', L'\0', L'\0', + 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, + 0x3140, L'\0', L'\0', 0x3144, L'\0', L'\0', L'\0', L'\0', L'\0', L'\0', L'\0', L'\0', L'\0', L'\0', L'\0', L'\0', L'\0' }; @@ -120,11 +120,11 @@ static const uint16_t jamo_from_ucs_table[51] = 0x9041, 0x8446, 0x8447, 0x9441, 0x9841, 0x9c41, - 0x844a, 0x844b, 0x844c, 0x844d, 0x884e, 0x884f, 0x8450, + 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0xa041, 0xa441, 0xa841, 0x8454, 0xac41, 0xb041, 0xb441, 0xb841, 0xbc41, - 0xc041, 0xc441, 0xc841, 0xca41, 0xd041, + 0xc041, 0xc441, 0xc841, 0xcc41, 0xd041, 0x8461, 0x8481, 0x84a1, 0x84c1, 0x84e1, 0x8541, 0x8561, 0x8581, 0x85a1, 0x85c1, 0x85e1, 0x8641, 0x8661, 0x8681, 0x86a1, 0x86c1, 0x86e1, @@ -162,15 +162,13 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2) { \ uint32_t ch = *inptr; \ \ - /* half-width Korean Currency WON sign \ - if (ch == 0x5c) \ - ch = 0x20a9; \ - else if (ch < 0x7f) \ - ch = (uint32_t) ch; \ - */ \ - if (ch < 0x7f) \ - /* Plain ASCII. */ \ - ++inptr; \ + if (ch <= 0x7f) \ + { \ + /* Plain ISO646-KR. */ \ + if (ch == 0x5c) \ + ch = 0x20a9; /* half-width Korean Currency WON sign */ \ + ++inptr; \ + } \ /* Johab : 1. Hangul \ 1st byte : 0x84-0xd3 \ 2nd byte : 0x41-0x7e, 0x81-0xfe \ @@ -268,8 +266,10 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2) if (__builtin_expect (ch2, 0x31) < 0x31 \ || (__builtin_expect (ch2, 0x7e) > 0x7e && ch2 < 0x91) \ || __builtin_expect (ch2, 0) == 0xff \ + || (__builtin_expect (ch, 0) == 0xd9 && ch2 > 0xe5) \ || (__builtin_expect (ch, 0) == 0xda \ - && ch2 > 0xa0 && ch2 < 0xd4)) \ + && ch2 > 0xa0 && ch2 < 0xd4) \ + || (__builtin_expect (ch, 0) == 0xde && ch2 > 0xf1)) \ { \ /* This is illegal. */ \ if (! ignore_errors_p ()) \ @@ -346,7 +346,7 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2) cp = from_ucs4_lat1[ch]; \ */ \ \ - if (ch < 0x7f) \ + if (ch <= 0x7f && ch != 0x5c) \ *outptr++ = ch; \ else \ { \ @@ -410,6 +410,8 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2) \ outptr += 2; \ } \ + else if (ch == 0x20a9) \ + *outptr++ = 0x5c; \ else \ { \ size_t written; \ @@ -421,7 +423,8 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2) result = __GCONV_FULL_OUTPUT; \ break; \ } \ - if (__builtin_expect (written, 1) == __UNKNOWN_10646_CHAR) \ + if (__builtin_expect (written, 1) == __UNKNOWN_10646_CHAR \ + || (outptr[0] == 0x22 && outptr[1] > 0x65)) \ { \ STANDARD_ERR_HANDLER (4); \ } \ diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh index bc7706b1f5..e743239a76 100755 --- a/iconvdata/tst-tables.sh +++ b/iconvdata/tst-tables.sh @@ -186,7 +186,7 @@ cat < + + * SUPPORTED: Remove ko_KR.JOHAB. We don't want to encourage people + to use it. + +2000-09-23 Bruno Haible + + * charmaps/JOHAB: Add identity mapping for 0x7f. + 2000-09-24 Ulrich Drepper * locales/en_GB: Update LC_PAPER and LC_MEASUREMENT information. diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index d8ccc9612e..6d1487befe 100644 --- a/localedata/SUPPORTED +++ b/localedata/SUPPORTED @@ -99,7 +99,6 @@ iw_IL ISO-8859-8 ja_JP.EUC-JP EUC-JP kl_GL ISO-8859-1 ko_KR.EUC-KR EUC-KR -ko_KR.JOHAB JOHAB kw_GB ISO-8859-1 lt_LT ISO-8859-13 lv_LV ISO-8859-13 diff --git a/localedata/charmaps/JOHAB b/localedata/charmaps/JOHAB index 195ab7f2b7..ff6e325839 100644 --- a/localedata/charmaps/JOHAB +++ b/localedata/charmaps/JOHAB @@ -133,6 +133,7 @@ CHARMAP /x7c VERTICAL LINE /x7d RIGHT CURLY BRACKET /x7e TILDE + /x7f DELETE (DEL) /x84/x44 HANGUL LETTER KIYEOK-SIOS /x84/x46 HANGUL LETTER NIEUN-CIEUC /x84/x47 HANGUL LETTER NIEUN-HIEUH -- cgit 1.4.1