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 3493 by doda, Wed Jun 10 03:28:31 2009 UTC revision 3494 by doda, Mon Jun 15 18:37:05 2009 UTC
# Line 1146  static int OutputTextUTF8(WORD K, char * Line 1146  static int OutputTextUTF8(WORD K, char *
1146  //  //
1147  int TextOutMBCS(PComVar cv, PCHAR B, int C)  int TextOutMBCS(PComVar cv, PCHAR B, int C)
1148  {  {
1149          int i, TempLen;          int i, TempLen, OutLen;
1150          WORD K;          WORD K;
1151          char TempStr[12];          char TempStr[12];
1152          int SendCodeNew;          int SendCodeNew;
# Line 1263  int TextOutMBCS(PComVar cv, PCHAR B, int Line 1263  int TextOutMBCS(PComVar cv, PCHAR B, int
1263                                            cv->TelFlag && ! cv->TelBinSend) {                                            cv->TelFlag && ! cv->TelBinSend) {
1264                                          TempStr[TempLen++] = 0;                                          TempStr[TempLen++] = 0;
1265                                  }                                  }
1266                                    if (cv->TelLineMode) {
1267                                            cv->Flush = TRUE;
1268                                    }
1269                          }                          }
1270                          else if ((d>=0x80) && (cv->KanjiCodeSend==IdUTF8 || cv->Language==IdUtf8)) {                          else if ((d>=0x80) && (cv->KanjiCodeSend==IdUTF8 || cv->Language==IdUtf8)) {
1271                                  TempLen += OutputTextUTF8((WORD)d, TempStr, cv);                                  TempLen += OutputTextUTF8((WORD)d, TempStr, cv);
# Line 1288  int TextOutMBCS(PComVar cv, PCHAR B, int Line 1291  int TextOutMBCS(PComVar cv, PCHAR B, int
1291                          }                          }
1292                  } // if (cv->SendKanjiFlag) else if ... else ... end                  } // if (cv->SendKanjiFlag) else if ... else ... end
1293    
1294                  if (TempLen == 0) {                  if (cv->TelLineMode) {
1295                          i++;                          if (TempLen == 0) {
1296                          cv->SendCode = SendCodeNew;                                  i++;
1297                          cv->SendKanjiFlag = KanjiFlagNew;                                  cv->SendCode = SendCodeNew;
1298                                    cv->SendKanjiFlag = KanjiFlagNew;
1299                            }
1300                            else {
1301                                    Full = OutBuffSize - cv->LineModeBuffCount - TempLen < 0;
1302                                    if (!Full) {
1303                                            i++;
1304                                            cv->SendCode = SendCodeNew;
1305                                            cv->SendKanjiFlag = KanjiFlagNew;
1306                                            memcpy(&(cv->LineModeBuff[cv->LineModeBuffCount]), TempStr, TempLen);
1307                                            cv->LineModeBuffCount += TempLen;
1308                                            if (cv->Flush) {
1309                                                    cv->FlushLen = cv->LineModeBuffCount;
1310                                            }
1311                                    }
1312                            }
1313                            if (cv->FlushLen > 0) {
1314                                    OutLen = CommRawOut(cv, cv->LineModeBuff, cv->FlushLen);
1315                                    cv->FlushLen -= OutLen;
1316                                    cv->LineModeBuffCount -= OutLen;
1317                                    memmove(cv->LineModeBuff, &(cv->LineModeBuff[OutLen]), cv->LineModeBuffCount);
1318                            }
1319                            cv->Flush = FALSE;
1320                  }                  }
1321                  else {                  else {
1322                          Full = OutBuffSize-cv->OutBuffCount-TempLen < 0;                          if (TempLen == 0) {
                         if (! Full) {  
1323                                  i++;                                  i++;
1324                                  cv->SendCode = SendCodeNew;                                  cv->SendCode = SendCodeNew;
1325                                  cv->SendKanjiFlag = KanjiFlagNew;                                  cv->SendKanjiFlag = KanjiFlagNew;
1326                                  CommRawOut(cv,TempStr,TempLen);                          }
1327                            else {
1328                                    Full = OutBuffSize-cv->OutBuffCount-TempLen < 0;
1329                                    if (! Full) {
1330                                            i++;
1331                                            cv->SendCode = SendCodeNew;
1332                                            cv->SendKanjiFlag = KanjiFlagNew;
1333                                            CommRawOut(cv,TempStr,TempLen);
1334                                    }
1335                          }                          }
1336                  }                  }
1337    
# Line 1312  int TextOutMBCS(PComVar cv, PCHAR B, int Line 1344  int TextOutMBCS(PComVar cv, PCHAR B, int
1344    
1345  int FAR PASCAL CommTextOut(PComVar cv, PCHAR B, int C)  int FAR PASCAL CommTextOut(PComVar cv, PCHAR B, int C)
1346  {  {
1347          int i, TempLen;          int i, TempLen, OutLen;
1348          char TempStr[12];          char TempStr[12];
1349          BYTE d;          BYTE d;
1350          BOOL Full;          BOOL Full;
# Line 1344  int FAR PASCAL CommTextOut(PComVar cv, P Line 1376  int FAR PASCAL CommTextOut(PComVar cv, P
1376                          else if (cv->CRSend==IdCR && cv->TelFlag && ! cv->TelBinSend) {                          else if (cv->CRSend==IdCR && cv->TelFlag && ! cv->TelBinSend) {
1377                                  TempStr[TempLen++] = 0;                                  TempStr[TempLen++] = 0;
1378                          }                          }
1379                            if (cv->TelLineMode) {
1380                                    cv->Flush = TRUE;
1381                            }
1382                  }                  }
1383                  else {                  else {
1384                          if ((cv->Language==IdRussian) && (d>=128)) {                          if ((cv->Language==IdRussian) && (d>=128)) {
1385                                  d = RussConv(cv->RussClient,cv->RussHost,d);                                  d = RussConv(cv->RussClient, cv->RussHost, d);
1386                          }                          }
1387                          TempStr[TempLen++] = d;                          TempStr[TempLen++] = d;
1388                          if (cv->TelFlag && (d==0xff)) {                          if (cv->TelFlag && (d==0xff)) {
# Line 1355  int FAR PASCAL CommTextOut(PComVar cv, P Line 1390  int FAR PASCAL CommTextOut(PComVar cv, P
1390                          }                          }
1391                  }                  }
1392    
1393                  Full = OutBuffSize-cv->OutBuffCount-TempLen < 0;                  if (cv->TelLineMode) {
1394                  if (! Full) {                          Full = OutBuffSize - cv->LineModeBuffCount - TempLen < 0;
1395                          i++;                          if (!Full) {
1396                          CommRawOut(cv,TempStr,TempLen);                                  memcpy(&(cv->LineModeBuff[cv->LineModeBuffCount]), TempStr, TempLen);
1397                                    cv->LineModeBuffCount += TempLen;
1398                                    if (cv->Flush) {
1399                                            cv->FlushLen = cv->LineModeBuffCount;
1400                                    }
1401                            }
1402                            if (cv->FlushLen > 0) {
1403                                    OutLen = CommRawOut(cv, cv->LineModeBuff, cv->FlushLen);
1404                                    cv->FlushLen -= OutLen;
1405                                    cv->LineModeBuffCount -= OutLen;
1406                                    memmove(cv->LineModeBuff, &(cv->LineModeBuff[OutLen]), cv->LineModeBuffCount);
1407                            }
1408                            cv->Flush = FALSE;
1409                    }
1410                    else {
1411                            Full = OutBuffSize - cv->OutBuffCount - TempLen < 0;
1412                            if (! Full) {
1413                                    i++;
1414                                    CommRawOut(cv,TempStr,TempLen);
1415                            }
1416                  }                  }
1417          } // end of while {}          } // end of while {}
1418    

Legend:
Removed from v.3493  
changed lines
  Added in v.3494

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