Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/ttpcmn/ttcmn.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 9313 by zmatsuo, Sun Jun 20 01:07:40 2021 UTC revision 9314 by zmatsuo, Sun Jun 20 01:07:54 2021 UTC
# Line 1110  static size_t MakeOutputString(PComVar c Line 1110  static size_t MakeOutputString(PComVar c
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];
# Line 1197  static size_t MakeOutputString(PComVar c Line 1197  static size_t MakeOutputString(PComVar c
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                  }                  }
# Line 1214  static size_t MakeOutputString(PComVar c Line 1231  static size_t MakeOutputString(PComVar c
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;
# Line 1401  BOOL WINAPI DllMain(HANDLE hInstance, Line 1406  BOOL WINAPI DllMain(HANDLE hInstance,
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が起動しない

Legend:
Removed from v.9313  
changed lines
  Added in v.9314

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26