I tried following charset conversion test.

  EUC-KR -> UTF-8 ( by utf8_text() ) -> EUC-KR  ( by utf8_cstext() )

But, this test failed. ( The result string is different from input string. )

The attached patch fix this problem.

Thanks




---------------------------------------------------------

Choi, Sung-hoon 

DreamWiz Inc. - Development Team/Senior Manager 

Major : Mail/Web/Network/System/Security 
Phone : +82-2-3434-3541 
MSN   : [EMAIL PROTECTED] 
WWW   : http://my.dreamwiz.com/shoon/ 
E-mail: [EMAIL PROTECTED]



--- imap-2004d/src/c-client/utf8.c.orig 2005-04-08 09:44:41.000000000 +0900
+++ imap-2004d/src/c-client/utf8.c      2005-05-10 10:22:28.000000000 +0900
@@ -433,25 +433,25 @@
     case CT_DBYTE:             /* 2 byte ASCII + utf8_eucparam */
       for (param = (struct utf8_eucparam *) cs->tab,
           tab = (unsigned short *) param->tab,
-          ku = 0; ku <= param->max_ku; ku++)
-       for (ten = 0; ten <= param->max_ten; ten++)
+          ku = 0; ku < param->max_ku; ku++)
+       for (ten = 0; ten < param->max_ten; ten++)
          if ((u = tab[(ku * param->max_ten) + ten]) != UBOGON)
-           rmap[u] = ((ku + param->base_ku) << 8) + (ten + param->base_ten) +
+           rmap[u] = ((ku + param->base_ku) << 8) + (ten + param->base_ten) |
              0x8080;
       break;
     case CT_DBYTE2:            /* 2 byte ASCII + utf8_eucparam plane1/2 */
       for (param = (struct utf8_eucparam *) cs->tab,
           tab = (unsigned short *) param->tab,
-          ku = 0; ku <= param->max_ku; ku++)
-       for (ten = 0; ten <= param->max_ten; ten++)
+          ku = 0; ku < param->max_ku; ku++)
+       for (ten = 0; ten < param->max_ten; ten++)
          if ((u = tab[(ku * param->max_ten) + ten]) != UBOGON)
-           rmap[u] = ((ku + param->base_ku) << 8) + (ten + param->base_ten) +
+           rmap[u] = ((ku + param->base_ku) << 8) + (ten + param->base_ten) |
              0x8080;
       param++;
-      for (ku = 0; ku <= param->max_ku; ku++)
-       for (ten = 0; ten <= param->max_ten; ten++)
+      for (ku = 0; ku < param->max_ku; ku++)
+       for (ten = 0; ten < param->max_ten; ten++)
          if ((u = tab[(ku * param->max_ten) + ten]) != UBOGON)
-           rmap[u] = ((ku + param->base_ku) << 8) + (ten + param->base_ten) +
+           rmap[u] = ((ku + param->base_ku) << 8) + (ten + param->base_ten) |
              0x8080;
       break;
     case CT_SJIS:              /* 2 byte Shift-JIS */

_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to