| 4092 |
utf8_stat = CheckUTF8Seq(b, utf8_stat); |
utf8_stat = CheckUTF8Seq(b, utf8_stat); |
| 4093 |
} |
} |
| 4094 |
|
|
| 4095 |
void RequestStatusString(unsigned char *StrBuff, int StrLen) // DECRQSS |
static void RequestStatusString(const unsigned char *StrBuff, int StrLen) // DECRQSS |
| 4096 |
{ |
{ |
| 4097 |
unsigned char RepStr[256]; |
char RepStr[256]; |
| 4098 |
int len = 0; |
int len = 0; |
| 4099 |
int tmp = 0; |
int tmp = 0; |
| 4100 |
|
|
| 4277 |
return copylen; |
return copylen; |
| 4278 |
} |
} |
| 4279 |
|
|
| 4280 |
int TermcapString(unsigned char *buff, int buffsize, unsigned char *capname) |
static int TermcapString(unsigned char *buff, int buffsize, unsigned char *capname) |
| 4281 |
{ |
{ |
| 4282 |
int len = 0, l; |
int len = 0, l; |
| 4283 |
unsigned char *capval = NULL; |
unsigned char *capval = NULL; |
| 4317 |
return len; |
return len; |
| 4318 |
} |
} |
| 4319 |
|
|
| 4320 |
void RequestTermcapString(unsigned char *StrBuff, int StrLen) // xterm experimental |
static void RequestTermcapString(unsigned char *StrBuff, int StrLen) // xterm experimental |
| 4321 |
{ |
{ |
| 4322 |
unsigned char RepStr[256]; |
unsigned char RepStr[256]; |
| 4323 |
unsigned char CapName[16]; |
unsigned char CapName[16]; |
| 4389 |
SendDCSstr(RepStr, replen); |
SendDCSstr(RepStr, replen); |
| 4390 |
} |
} |
| 4391 |
|
|
| 4392 |
void ParseDCS(BYTE Cmd, unsigned char *StrBuff, int len) { |
static void ParseDCS(BYTE Cmd, unsigned char *StrBuff, int len) { |
| 4393 |
switch (ICount) { |
switch (ICount) { |
| 4394 |
case 0: |
case 0: |
| 4395 |
break; |
break; |
| 5469 |
return (index); |
return (index); |
| 5470 |
} |
} |
| 5471 |
|
|
| 5472 |
|
// unicode(UTF-16,wchar_t)をバッファへ書き込む |
| 5473 |
static void UnicodeToCP932(unsigned int code) |
static void UnicodeToCP932(unsigned int code) |
| 5474 |
{ |
{ |
| 5475 |
|
wchar_t wchar = (wchar_t)code; |
| 5476 |
int ret; |
int ret; |
| 5477 |
char mbchar[32]; |
char mbchar[2]; |
| 5478 |
unsigned char wchar[32]; |
unsigned short cset; |
|
unsigned short cset = 0; |
|
|
|
|
|
wchar[0] = code & 0xff; |
|
|
wchar[1] = (code >> 8) & 0xff; |
|
| 5479 |
|
|
| 5480 |
|
// UnicodeからDEC特殊文字へのマッピング |
| 5481 |
if (ts.UnicodeDecSpMapping) { |
if (ts.UnicodeDecSpMapping) { |
| 5482 |
cset = ConvertUnicode(code, mapUnicodeSymbolToDecSp, MAPSIZE(mapUnicodeSymbolToDecSp)); |
cset = ConvertUnicode(wchar, mapUnicodeSymbolToDecSp, MAPSIZE(mapUnicodeSymbolToDecSp)); |
| 5483 |
} |
if (((cset >> 8) & ts.UnicodeDecSpMapping) != 0) { |
| 5484 |
if (((cset >> 8) & ts.UnicodeDecSpMapping) != 0) { |
PutDecSp(cset & 0xff); |
| 5485 |
PutDecSp(cset & 0xff); |
return; |
| 5486 |
|
} |
| 5487 |
} |
} |
|
else { |
|
|
// Unicode -> CP932 |
|
|
ret = wctomb(mbchar, ((wchar_t *)wchar)[0]); |
|
|
switch (ret) { |
|
|
case -1: |
|
|
if (_stricmp(ts.Locale, DEFAULT_LOCALE) == 0) { |
|
|
// U+301Cなどは変換できない。Unicode -> Shift_JISへ変換してみる。 |
|
|
cset = ConvertUnicode(code, mapUnicodeToSJIS, MAPSIZE(mapUnicodeToSJIS)); |
|
|
if (cset != 0) { |
|
|
Kanji = cset & 0xff00; |
|
|
PutKanji(cset & 0x00ff); |
|
|
} |
|
|
} |
|
| 5488 |
|
|
| 5489 |
if (cset == 0) { |
// Unicode -> 内部コード(ts.CodePage)へ変換して出力 |
| 5490 |
PutChar('?'); |
ret = WideCharToMultiByte(ts.CodePage, 0, &wchar, 1, mbchar, 2, NULL, NULL); |
| 5491 |
if (ts.UnknownUnicodeCharaAsWide) { |
switch (ret) { |
| 5492 |
PutChar('?'); |
case 0: |
| 5493 |
} |
if (ts.CodePage == 932) { |
| 5494 |
|
// CP932 |
| 5495 |
|
// U+301Cなどは変換できない。Unicode -> Shift_JISへ変換してみる。 |
| 5496 |
|
cset = ConvertUnicode(code, mapUnicodeToSJIS, MAPSIZE(mapUnicodeToSJIS)); |
| 5497 |
|
if (cset != 0) { |
| 5498 |
|
Kanji = cset & 0xff00; |
| 5499 |
|
PutKanji(cset & 0x00ff); |
| 5500 |
} |
} |
|
break; |
|
|
case 1: |
|
|
PutChar(mbchar[0]); |
|
|
break; |
|
|
default: |
|
|
Kanji = mbchar[0] << 8; |
|
|
PutKanji(mbchar[1]); |
|
|
break; |
|
| 5501 |
} |
} |
| 5502 |
|
|
| 5503 |
|
PutChar('?'); |
| 5504 |
|
if (ts.UnknownUnicodeCharaAsWide) { |
| 5505 |
|
PutChar('?'); |
| 5506 |
|
} |
| 5507 |
|
break; |
| 5508 |
|
case 1: |
| 5509 |
|
PutChar(mbchar[0]); |
| 5510 |
|
break; |
| 5511 |
|
case 2: |
| 5512 |
|
default: |
| 5513 |
|
Kanji = mbchar[0] << 8; |
| 5514 |
|
PutKanji(mbchar[1]); |
| 5515 |
|
break; |
| 5516 |
} |
} |
| 5517 |
} |
} |
| 5518 |
|
|