📄 jis.c
字号:
case FF : break; default : if ISEUC(p1) { p2 = getc(in); if ISEUC(p2) { p1 -= 128; p2 -= 128; jis2sjis(&p1,&p2); } fprintf(out,"%c%c",p1,p2); } else if (p1 == 142) { p2 = getc(in); if HANKATA(p2) { if (tofullsize) { p1 = p2; han2zen(in,&p1,&p2,incode); fprintf(out,"%c%c",p1,p2); } else { p1 = p2; fprintf(out,"%c",p1); } } else fprintf(out,"%c%c",p1,p2); } else fprintf(out,"%c",p1); break; } }} void seven2shift(FILE *in,FILE *out){ int shifted_in,temp,p1,p2; shifted_in = FALSE; while ((p1 = getc(in)) != EOF) { switch (p1) { case ESC : temp = getc(in); SkipESCSeq(in,temp,&shifted_in); break; case FF : break; default : if (shifted_in) { p2 = getc(in); jis2sjis(&p1,&p2); fprintf(out,"%c%c",p1,p2); } else fprintf(out,"%c",p1); break; } }} void seven2euc(FILE *in,FILE *out){ int shifted_in,temp,p1,p2; shifted_in = FALSE; while ((p1 = getc(in)) != EOF) { switch (p1) { case ESC : temp = getc(in); SkipESCSeq(in,temp,&shifted_in); break; case NL : if (shifted_in) { shifted_in = FALSE; } fprintf(out,"%c",p1); break; case FF : break; default : if (shifted_in) { p2 = getc(in); p1 += 128; p2 += 128; fprintf(out,"%c%c",p1,p2); } else fprintf(out,"%c",p1); break; } }} void seven2seven(FILE *in,FILE *out,int outcode){ int shifted_in,temp,p1,p2; shifted_in = FALSE; while ((p1 = getc(in)) != EOF) { switch (p1) { case ESC : temp = getc(in); SkipESCSeq(in,temp,&shifted_in); if (shifted_in) KanjiIn(out,outcode); else KanjiOut(out,outcode); break; case NL : if (shifted_in) { shifted_in = FALSE; KanjiOut(out,outcode); } fprintf(out,"%c",p1); break; case FF : break; default : if (shifted_in) { p2 = getc(in); fprintf(out,"%c%c",p1,p2); } else fprintf(out,"%c",p1); break; } } if (shifted_in) KanjiOut(out,outcode);} void euc2euc(FILE *in,FILE *out,int incode,int tofullsize){ int p1,p2; while ((p1 = getc(in)) != EOF) { switch (p1) { case FF : break; default : if ISEUC(p1) { p2 = getc(in); if ISEUC(p2) fprintf(out,"%c%c",p1,p2); } else if (p1 == 142) { p2 = getc(in); if (HANKATA(p2) && (tofullsize)) { p1 = p2; han2zen(in,&p1,&p2,incode); sjis2jis(&p1,&p2); p1 += 128; p2 += 128; } fprintf(out,"%c%c",p1,p2); } else fprintf(out,"%c",p1); break; } }} void shift2shift(FILE *in,FILE *out,int incode,int tofullsize){ int p1,p2; while ((p1 = getc(in)) != EOF) { switch (p1) { case CR : case NL : fprintf(out,"%c",NL); break; case NUL : case FF : break; default : if SJIS1(p1) { p2 = getc(in); if SJIS2(p2) fprintf(out,"%c%c",p1,p2); } else if (HANKATA(p1) && (tofullsize)) { han2zen(in,&p1,&p2,incode); fprintf(out,"%c%c",p1,p2); } else fprintf(out,"%c",p1); break; } }} int DetectCodeType(FILE *in){ int p1,p2,p3,whatcode; whatcode = NOT_SET; while (((p1 = getc(in)) != EOF) && ((whatcode == NOT_SET) || (whatcode == EUC))) { if (p1 == ESC) { p2 = getc(in); if (p2 == '$') { p3 = getc(in); if (p3 == 'B') whatcode = NEW; else if (p3 == '@') whatcode = OLD; } else if (p2 == 'K') whatcode = NEC; } else if ((p1 >= 129) && (p1 <= 254)) { p2 = getc(in); if NOTEUC(p1,p2) whatcode = SJIS; else if (ISEUC(p1) && ISEUC(p2)) whatcode = EUC; else if (((p1 == 142)) && HANKATA(p2)) whatcode = EUC; } } return whatcode;} void han2zen(FILE *in,int *one,int *two,int incode){ int junk,maru,nigori; maru = nigori = FALSE; if (incode == SJIS) { *two = getc(in); if (*two == 222) { if (ISNIGORI(*one) || (*one == 179)) nigori = TRUE; else ungetc(*two,in); } else if (*two == 223) { if ISMARU(*one) maru = TRUE; else ungetc(*two,in); } else ungetc(*two,in); } else if (incode == EUC) { junk = getc(in); if (junk == 142) { *two = getc(in); if (*two == 222) { if (ISNIGORI(*one) || (*one == 179)) nigori = TRUE; else { ungetc(*two,in); ungetc(junk,in); } } else if (*two == 223) { if ISMARU(*one) maru = TRUE; else { ungetc(*two,in); ungetc(junk,in); } } else { ungetc(*two,in); ungetc(junk,in); } } else ungetc(junk,in); } switch (*one) { case 161 : *one = 129; *two = 66; break; case 162 : *one = 129; *two = 117; break; case 163 : *one = 129; *two = 118; break; case 164 : *one = 129; *two = 65; break; case 165 : *one = 129; *two = 69; break; case 166 : *one = 131; *two = 146; break; case 167 : *one = 131; *two = 64; break; case 168 : *one = 131; *two = 66; break; case 169 : *one = 131; *two = 68; break; case 170 : *one = 131; *two = 70; break; case 171 : *one = 131; *two = 72; break; case 172 : *one = 131; *two = 131; break; case 173 : *one = 131; *two = 133; break; case 174 : *one = 131; *two = 135; break; case 175 : *one = 131; *two = 98; break; case 176 : *one = 129; *two = 91; break; case 177 : *one = 131; *two = 65; break; case 178 : *one = 131; *two = 67; break; case 179 : *one = 131; *two = 69; break; case 180 : *one = 131; *two = 71; break; case 181 : *one = 131; *two = 73; break; case 182 : *one = 131; *two = 74; break; case 183 : *one = 131; *two = 76; break; case 184 : *one = 131; *two = 78; break; case 185 : *one = 131; *two = 80; break; case 186 : *one = 131; *two = 82; break; case 187 : *one = 131; *two = 84; break; case 188 : *one = 131; *two = 86; break; case 189 : *one = 131; *two = 88; break; case 190 : *one = 131; *two = 90; break; case 191 : *one = 131; *two = 92; break; case 192 : *one = 131; *two = 94; break; case 193 : *one = 131; *two = 96; break; case 194 : *one = 131; *two = 99; break; case 195 : *one = 131; *two = 101; break; case 196 : *one = 131; *two = 103; break; case 197 : *one = 131; *two = 105; break; case 198 : *one = 131; *two = 106; break; case 199 : *one = 131; *two = 107; break; case 200 : *one = 131; *two = 108; break; case 201 : *one = 131; *two = 109; break; case 202 : *one = 131; *two = 110; break; case 203 : *one = 131; *two = 113; break; case 204 : *one = 131; *two = 116; break; case 205 : *one = 131; *two = 119; break; case 206 : *one = 131; *two = 122; break; case 207 : *one = 131; *two = 125; break; case 208 : *one = 131; *two = 126; break; case 209 : *one = 131; *two = 128; break; case 210 : *one = 131; *two = 129; break; case 211 : *one = 131; *two = 130; break; case 212 : *one = 131; *two = 132; break; case 213 : *one = 131; *two = 134; break; case 214 : *one = 131; *two = 136; break; case 215 : *one = 131; *two = 137; break; case 216 : *one = 131; *two = 138; break; case 217 : *one = 131; *two = 139; break; case 218 : *one = 131; *two = 140; break; case 219 : *one = 131; *two = 141; break; case 220 : *one = 131; *two = 143; break; case 221 : *one = 131; *two = 147; break; case 222 : *one = 129; *two = 74; break; case 223 : *one = 129; *two = 75; break; } if (nigori) { if (((*two >= 74) && (*two <= 103)) || ((*two >= 110) && (*two <= 122))) (*two)++; else if ((*one == 131) && (*two == 69)) *two = 148; } else if ((maru) && ((*two >= 110) && (*two <= 122))) *two += 2;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -