Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 25 Sep 2000 21:17:32 +0000 (21:17 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 25 Sep 2000 21:17:32 +0000 (21:17 +0000)
2000-09-25  Ulrich Drepper  <drepper@redhat.com>

* SUPPORTED: Remove ko_KR.JOHAB.  We don't want to encourage people
to use it.

2000-09-23  Bruno Haible  <haible@clisp.cons.org>

* charmaps/JOHAB: Add identity mapping for 0x7f.

iconv/gconv_conf.c
iconvdata/johab.c
iconvdata/tst-tables.sh
localedata/ChangeLog
localedata/SUPPORTED
localedata/charmaps/JOHAB

index 11fe050..4746f43 100644 (file)
@@ -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;
index e4603cb..a631140 100644 (file)
@@ -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);                                     \
              }                                                               \
index bc7706b..e743239 100755 (executable)
@@ -186,7 +186,7 @@ cat <<EOF |
   SJIS
   EUC-KR
   CP949
-  #JOHAB                                No charmap exists
+  JOHAB
   BIG5
   BIG5HKSCS
   EUC-JP
index 027526a..5ef3ea7 100644 (file)
@@ -1,3 +1,12 @@
+2000-09-25  Ulrich Drepper  <drepper@redhat.com>
+
+       * SUPPORTED: Remove ko_KR.JOHAB.  We don't want to encourage people
+       to use it.
+
+2000-09-23  Bruno Haible  <haible@clisp.cons.org>
+
+       * charmaps/JOHAB: Add identity mapping for 0x7f.
+
 2000-09-24  Ulrich Drepper  <drepper@redhat.com>
 
        * locales/en_GB: Update LC_PAPER and LC_MEASUREMENT information.
index d8ccc96..6d1487b 100644 (file)
@@ -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
index 195ab7f..ff6e325 100644 (file)
@@ -133,6 +133,7 @@ CHARMAP
 <U007C>     /x7c         VERTICAL LINE
 <U007D>     /x7d         RIGHT CURLY BRACKET
 <U007E>     /x7e         TILDE
+<U007F>     /x7f         DELETE (DEL)
 <U3133>     /x84/x44     HANGUL LETTER KIYEOK-SIOS
 <U3135>     /x84/x46     HANGUL LETTER NIEUN-CIEUC
 <U3136>     /x84/x47     HANGUL LETTER NIEUN-HIEUH