$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