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 3457 by doda, Mon Jun 8 17:06:29 2009 UTC revision 3458 by doda, Mon Jun 8 19:12:25 2009 UTC
# Line 1403  int FAR PASCAL CommBinaryEcho(PComVar cv Line 1403  int FAR PASCAL CommBinaryEcho(PComVar cv
1403          return i;          return i;
1404  }  }
1405    
1406  int FAR PASCAL TextEchoJP(PComVar cv, PCHAR B, int C)  int FAR PASCAL TextEchoMBCS(PComVar cv, PCHAR B, int C)
1407  {  {
1408          int i, TempLen;          int i, TempLen;
1409          WORD K;          WORD K;
# Line 1565  int FAR PASCAL TextEchoJP(PComVar cv, PC Line 1565  int FAR PASCAL TextEchoJP(PComVar cv, PC
1565          return i;          return i;
1566  }  }
1567    
 int FAR PASCAL TextEchoKR(PComVar cv, PCHAR B, int C)  
 {  
         int i, TempLen;  
         WORD K;  
         char TempStr[11];  
         int EchoCodeNew;  
         BYTE d;  
         BOOL Full, KanjiFlagNew;  
   
         Full = FALSE;  
         i = 0;  
         while (! Full && (i < C)) {  
                 TempLen = 0;  
                 d = (BYTE)B[i];  
                 EchoCodeNew = cv->EchoCode;  
                 KanjiFlagNew = FALSE;  
   
                 if (cv->EchoKanjiFlag) {  
                         EchoCodeNew = IdKanji;  
   
                         K = (cv->EchoKanjiFirst << 8) + d;  
   
                         // UTF-8への変換を行う。1〜3バイトまでの対応なので注意。  
                         if (cv->KanjiCodeEcho == IdUTF8) {  
                                 TempLen += OutputTextUTF8(K, TempStr, cv);  
                         }  
                         else {  
                                 TempStr[TempLen++] = HIBYTE(K);  
                                 TempStr[TempLen++] = LOBYTE(K);  
                         }  
                 }  
                 else if (IsDBCSLeadByteEx(*cv->CodePage, d)) {  
                         KanjiFlagNew = TRUE;  
                         cv->EchoKanjiFirst = d;  
                         EchoCodeNew = IdKanji;  
                 }  
                 else {  
                         EchoCodeNew = IdASCII;  
   
                         if (d==0x0d) {  
                                 TempStr[TempLen++] = 0x0d;  
                                 if (cv->CRSend==IdCRLF) {  
                                         TempStr[TempLen++] = 0x0a;  
                                 }  
                                 else if ((cv->CRSend==IdCR) &&  
                                           cv->TelFlag && ! cv->TelBinSend) {  
                                         TempStr[TempLen++] = 0;  
                                 }  
                         }  
                         else if ((d>=0x80) && (cv->KanjiCodeEcho==IdUTF8)) {  
                                 TempLen += OutputTextUTF8((WORD)d, TempStr, cv);  
                         }  
                         else {  
                                 TempStr[TempLen++] = d;  
                                 if (cv->TelFlag && (d==0xff)) {  
                                         TempStr[TempLen++] = (char)0xff;  
                                 }  
                         }  
                 } // if (cv->EchoKanjiFlag) else if ... else ... end  
   
                 if (TempLen == 0) {  
                         i++;  
                         cv->EchoCode = EchoCodeNew;  
                         cv->EchoKanjiFlag = KanjiFlagNew;  
                 }  
                 else {  
                         Full = InBuffSize-cv->InBuffCount-TempLen < 0;  
                         if (! Full) {  
                                 i++;  
                                 cv->EchoCode = EchoCodeNew;  
                                 cv->EchoKanjiFlag = KanjiFlagNew;  
                                 memcpy(&(cv->InBuff[cv->InBuffCount]),TempStr,TempLen);  
                                 cv->InBuffCount = cv->InBuffCount + TempLen;  
                         }  
                 }  
   
         } // end of "while {}"  
   
         return i;  
 }  
   
1568  int FAR PASCAL CommTextEcho(PComVar cv, PCHAR B, int C)  int FAR PASCAL CommTextEcho(PComVar cv, PCHAR B, int C)
1569  {  {
1570          int i, TempLen;          int i, TempLen;
# Line 1665  int FAR PASCAL CommTextEcho(PComVar cv, Line 1584  int FAR PASCAL CommTextEcho(PComVar cv,
1584          switch (cv->Language) {          switch (cv->Language) {
1585            case IdUtf8:            case IdUtf8:
1586            case IdJapanese:            case IdJapanese:
                 return TextEchoJP(cv,B,C);  
                 break;  
1587            case IdKorean:            case IdKorean:
1588                  return TextEchoKR(cv,B,C);                  return TextEchoMBCS(cv,B,C);
1589                  break;                  break;
1590          }          }
1591    

Legend:
Removed from v.3457  
changed lines
  Added in v.3458

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