[w3m-dev 00704] Re: conv (was Re: form -> submit -> back)

From: Hironori Sakamoto (h-saka@lsi.nec.co.jp)
Date: Thu May 25 2000 - 03:04:49 CDT


$B:dK\$G$9!#(B

>> $B:dK\$G$9!#(B
>> $B;d$b=q$$$F$_$^$7$?!#(Bconv.c $B$OA4LLE*$K=q$-D>$7$F$$$^$9(B($B$4$a$s$J$5$$(B)
>> $BBg$-$$(B(32KB)$B$N$G!"(B
>> http://www2u.biglobe.ne.jp/~hsaka/w3m/patch/0110-pre+666-hsaka2.patch
>> $B$+$i$I$&$>!#(B
>> $B$^$@!";H$$9~$s$G$$$J$$$N$G%^!<%8$O$A$g$C$HBT$C$F$/$@$5$$!#(B

$B$d$C$Q$j$H$$$&$+%P%0$C$F$^$7$?!#$9$_$^$;$s!#(B
JIS $B$G=PNO$G$-$J$/$J$k$H$$$&!"$A$C$/$H>p$1$J$$%P%0$G$7$?!#(B
$B=$@5(B patch $B$G$9!#(B
-----------------------------------
$B:dK\(B $B9@B'(B <hsaka@mth.biglobe.ne.jp>
 http://www2u.biglobe.ne.jp/~hsaka/

--- conv.c.orig Thu May 25 16:19:22 2000
+++ conv.c Thu May 25 16:27:19 2000
@@ -213,7 +213,7 @@
         switch (state) {
         case SJIS_NOSTATE:
             if (! (*p & 0x80)) /* ASCII */
- Strcat_char(os, (char) *p);
+ Strcat_char(os, (char)(*p));
             else if (0x80 <= *p && *p <= 0x9f) { /* JIS X 0208, 0213 */
                 ub = *p & 0x7f;
                 state = SJIS_SHIFT_L;
@@ -236,7 +236,7 @@
                 Strcat_char(os, (char)(ub | 0x80));
                 Strcat_char(os, (char)(lb | 0x80));
             } else if (! (*p & 0x80)) /* broken ? */
- Strcat_char(os, (char) *p);
+ Strcat_char(os, (char)(*p));
             state = SJIS_NOSTATE;
             break;
         }
@@ -246,7 +246,7 @@
 
 static Str
 cConvJE(char *is)
-{ /* Convert ISO-2022-JP to Shift-JIS */
+{ /* Convert ISO-2022-JP to EUC-JP */
     uchar *p, ub;
     char cset = CSET_ASCII;
     int state = ISO_NOSTATE;
@@ -258,15 +258,15 @@
             if (*p == ESC_CODE) /* ESC sequence */
                 state = ISO_ESC;
             else if (cset == CSET_ASCII || *p < 0x21)
- Strcat_char(os, (char)*p);
+ Strcat_char(os, (char)(*p));
             else if (cset == CSET_X0208 && *p <= 0x7e) {
                                                         /* JIS X 0208 */
                 ub = *p;
                 state = ISO_MBYTE1;
             } else if (cset == CSET_X0201K && *p <= 0x5f) {
                                                         /* JIS X 0201-Kana */
- Strcat_char(os, han2zen_tab[*p - 0x20][0] | 0x80);
- Strcat_char(os, han2zen_tab[*p - 0x20][1] | 0x80);
+ Strcat_char(os, (char)(han2zen_tab[*p - 0x20][0] | 0x80));
+ Strcat_char(os, (char)(han2zen_tab[*p - 0x20][1] | 0x80));
             }
             break;
         case ISO_MBYTE1:
@@ -277,7 +277,7 @@
                 Strcat_char(os, (char)(*p | 0x80));
                 state = ISO_NOSTATE;
             } else {
- Strcat_char(os, (char)*p);
+ Strcat_char(os, (char)(*p));
                 state = ISO_NOSTATE;
             }
             break;
@@ -288,7 +288,7 @@
                 state = ISO_MBCS;
             else {
                 Strcat_char(os, ESC_CODE);
- Strcat_char(os, (char)*p);
+ Strcat_char(os, (char)(*p));
                 state = ISO_NOSTATE;
             }
             break;
@@ -300,7 +300,7 @@
             else {
                 Strcat_char(os, ESC_CODE);
                 Strcat_char(os, '(');
- Strcat_char(os, (char)*p);
+ Strcat_char(os, (char)(*p));
             }
             state = ISO_NOSTATE;
             break;
@@ -317,7 +317,7 @@
                 Strcat_char(os, '$');
                 if (state == (ISO_MBCS | ISO_CS94))
                     Strcat_char(os, '(');
- Strcat_char(os, (char)*p);
+ Strcat_char(os, (char)(*p));
             }
             state = ISO_NOSTATE;
             break;
@@ -328,7 +328,7 @@
 
 static Str
 _cConvEE(char *is, char is_euc)
-{ /* Convert EUC-JP to EUC-JP
+{ /* Convert EUC-JP to EUC-JP / ISO-2022-JP
                                    (no JIS X 0201-Kana, 0212, 0213-2) */
     uchar *p, ub, euc = 0;
     int state = EUC_NOSTATE;
@@ -349,7 +349,7 @@
                     Strcat_charp(os, SOcode);
                     cset = CSET_ASCII;
                 }
- Strcat_char(os, (char) *p);
+ Strcat_char(os, (char)(*p));
             } else if (0xa1 <= *p && *p <= 0xfe) { /* JIS X 0208, 0213-1 */
                 ub = *p;
                 state = EUC_MBYTE1;
@@ -364,14 +364,14 @@
                     Strcat_charp(os, SIcode);
                     cset = CSET_X0208;
                 }
- Strcat_char(os, (char) ub);
- Strcat_char(os, (char) *p);
+ Strcat_char(os, (char)((ub & 0x7f) | euc));
+ Strcat_char(os, (char)((*p & 0x7f) | euc));
             } else if (! (*p & 0x80)) { /* broken ? */
                 if (!is_euc && cset != CSET_ASCII) {
                     Strcat_charp(os, SOcode);
                     cset = CSET_ASCII;
                 }
- Strcat_char(os, (char) *p);
+ Strcat_char(os, (char)(*p));
             }
             state = EUC_NOSTATE;
             break;
@@ -381,8 +381,8 @@
                     Strcat_charp(os, SIcode);
                     cset = CSET_X0208;
                 }
- Strcat_char(os, han2zen_tab[*p - 0xa0][0] | 0x80);
- Strcat_char(os, han2zen_tab[*p - 0xa0][1] | 0x80);
+ Strcat_char(os, (char)(han2zen_tab[*p - 0xa0][0] | euc));
+ Strcat_char(os, (char)(han2zen_tab[*p - 0xa0][1] | euc));
             }
             state = EUC_NOSTATE;
             break;
@@ -425,8 +425,8 @@
     if (lb > 0x7e)
         lb++;
 
- Strcat_char(os, ub);
- Strcat_char(os, lb);
+ Strcat_char(os, (char)(ub));
+ Strcat_char(os, (char)(lb));
 }
 
 static Str
@@ -440,7 +440,7 @@
         switch (state) {
         case EUC_NOSTATE:
             if (! (*p & 0x80)) /* ASCII */
- Strcat_char(os, (char) *p);
+ Strcat_char(os, (char)(*p));
             else if (0xa1 <= *p && *p <= 0xfe) { /* JIS X 0208, 0213-1 */
                 ub = *p;
                 state = EUC_MBYTE1;
@@ -451,9 +451,9 @@
             break;
         case EUC_MBYTE1:
             if (0xa1 <= *p && *p <= 0xfe) /* JIS X 0208, 0213-1 */
- put_js(os, ub & 0x7f, (*p) & 0x7f);
+ put_js(os, ub & 0x7f, *p & 0x7f);
             else if (! (*p & 0x80)) /* broken ? */
- Strcat_char(os, (char) *p);
+ Strcat_char(os, (char)(*p));
             state = EUC_NOSTATE;
             break;
         case EUC_SS2:



This archive was generated by hypermail 2b29 : Wed Jul 19 2000 - 10:30:56 CDT