| 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; |
| 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); |
| 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 |
|
|
| 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; |
| 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)) { |
| 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 |
|
|