| 1110 |
size_t utf8_len = sizeof(TempStr); |
size_t utf8_len = sizeof(TempStr); |
| 1111 |
utf8_len = UTF32ToUTF8(u32, TempStr, utf8_len); |
utf8_len = UTF32ToUTF8(u32, TempStr, utf8_len); |
| 1112 |
TempLen += utf8_len; |
TempLen += utf8_len; |
| 1113 |
} else if (cv->Language == IdJapanese && *cv->CodePage == 932) { |
} else if (cv->Language == IdJapanese) { |
| 1114 |
// 日本語 |
// 日本語 |
| 1115 |
// まず CP932(SJIS) に変換してから出力 |
// まず CP932(SJIS) に変換してから出力 |
| 1116 |
char mb_char[2]; |
char mb_char[2]; |
| 1197 |
b = RussConv(IdWindows, cv->RussHost, mb_char[0]); |
b = RussConv(IdWindows, cv->RussHost, mb_char[0]); |
| 1198 |
} |
} |
| 1199 |
TempStr[TempLen++] = b; |
TempStr[TempLen++] = b; |
| 1200 |
} else if (cv->Language == IdKorean && *cv->CodePage == 51949) { |
} else if (cv->Language == IdKorean || cv->Language == IdChinese) { |
| 1201 |
/* CP51949に変換して出力 */ |
int code_page; |
| 1202 |
char mb_char[2]; |
char mb_char[2]; |
| 1203 |
size_t mb_len = sizeof(mb_char); |
size_t mb_len; |
| 1204 |
mb_len = UTF32ToMBCP(u32, 51949, mb_char, mb_len); |
if (cv->Language == IdKorean) { |
| 1205 |
|
code_page = 51949; |
| 1206 |
|
} else if (cv->Language == IdChinese) { |
| 1207 |
|
switch (states->KanjiCode) { |
| 1208 |
|
case IdCnGB2312: |
| 1209 |
|
code_page = 936; |
| 1210 |
|
break; |
| 1211 |
|
case IdCnBig5: |
| 1212 |
|
code_page = 950; |
| 1213 |
|
break; |
| 1214 |
|
default: |
| 1215 |
|
assert(FALSE); |
| 1216 |
|
break; |
| 1217 |
|
} |
| 1218 |
|
} |
| 1219 |
|
/* code_page に変換して出力 */ |
| 1220 |
|
mb_len = sizeof(mb_char); |
| 1221 |
|
mb_len = UTF32ToMBCP(u32, code_page, mb_char, mb_len); |
| 1222 |
if (mb_len == 0) { |
if (mb_len == 0) { |
| 1223 |
TempStr[TempLen++] = '?'; |
TempStr[TempLen++] = '?'; |
| 1224 |
} |
} |
| 1231 |
} else if (cv->Language == IdEnglish) { |
} else if (cv->Language == IdEnglish) { |
| 1232 |
TempStr[TempLen++] = u32; |
TempStr[TempLen++] = u32; |
| 1233 |
} else { |
} else { |
| 1234 |
// CodePageで変換 |
assert(FALSE); |
|
char mb_char[2]; |
|
|
size_t mb_len = sizeof(mb_char); |
|
|
mb_len = UTF32ToMBCP(u32, *cv->CodePage, mb_char, mb_len); |
|
|
if (mb_len == 0) { |
|
|
TempStr[TempLen++] = '?'; |
|
|
} |
|
|
else if (mb_len == 1) { |
|
|
TempStr[TempLen++] = mb_char[0]; |
|
|
} else { |
|
|
TempStr[TempLen++] = mb_char[0]; |
|
|
TempStr[TempLen++] = mb_char[1]; |
|
|
} |
|
| 1235 |
} |
} |
| 1236 |
|
|
| 1237 |
*TempLen_ = TempLen; |
*TempLen_ = TempLen; |
| 1406 |
break; |
break; |
| 1407 |
case DLL_PROCESS_ATTACH: |
case DLL_PROCESS_ATTACH: |
| 1408 |
/* do process initialization */ |
/* do process initialization */ |
| 1409 |
|
#ifdef _DEBUG |
| 1410 |
|
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); |
| 1411 |
|
#endif |
| 1412 |
hInst = hInstance; |
hInst = hInstance; |
| 1413 |
if (OpenSharedMemory(&FirstInstance) == FALSE) { |
if (OpenSharedMemory(&FirstInstance) == FALSE) { |
| 1414 |
// dllロード失敗、teratermが起動しない |
// dllロード失敗、teratermが起動しない |