| 1262 |
TempLen += OutputTextUTF8((WORD)d, TempStr, cv); |
TempLen += OutputTextUTF8((WORD)d, TempStr, cv); |
| 1263 |
} |
} |
| 1264 |
else if ((d>=0xa1) && (d<=0xe0) && (cv->Language == IdJapanese)) { |
else if ((d>=0xa1) && (d<=0xe0) && (cv->Language == IdJapanese)) { |
| 1265 |
|
/* Katakana */ |
| 1266 |
if (cv->KanjiCodeSend==IdEUC) { |
if (cv->KanjiCodeSend==IdEUC) { |
| 1267 |
TempStr[TempLen++] = (char)SS2; |
TempStr[TempLen++] = (char)SS2; |
| 1268 |
} |
} |
| 1331 |
TempStr[TempLen] = 0x0d; |
TempStr[TempLen] = 0x0d; |
| 1332 |
TempLen++; |
TempLen++; |
| 1333 |
if (cv->CRSend==IdCRLF) { |
if (cv->CRSend==IdCRLF) { |
| 1334 |
TempStr[TempLen] = 0x0a; |
TempStr[TempLen++] = 0x0a; |
|
TempLen++; |
|
| 1335 |
} |
} |
| 1336 |
else if ((cv->CRSend==IdCR) && |
else if (cv->CRSend==IdCR && cv->TelFlag && ! cv->TelBinSend) { |
| 1337 |
cv->TelFlag && ! cv->TelBinSend) { |
TempStr[TempLen++] = 0; |
|
TempStr[TempLen] = 0; |
|
|
TempLen++; |
|
| 1338 |
} |
} |
| 1339 |
} |
} |
| 1340 |
else { |
else { |
| 1341 |
if ((cv->Language==IdRussian) && |
if ((cv->Language==IdRussian) && (d>=128)) { |
|
(d>=128)) |
|
| 1342 |
d = RussConv(cv->RussClient,cv->RussHost,d); |
d = RussConv(cv->RussClient,cv->RussHost,d); |
| 1343 |
TempStr[TempLen] = d; |
} |
| 1344 |
TempLen++; |
TempStr[TempLen++] = d; |
| 1345 |
if (cv->TelFlag && (d==0xff)) { |
if (cv->TelFlag && (d==0xff)) { |
| 1346 |
TempStr[TempLen] = (char)0xff; |
TempStr[TempLen++] = (char)0xff; |
|
TempLen++; |
|
| 1347 |
} |
} |
| 1348 |
} |
} |
| 1349 |
|
|
| 1405 |
{ |
{ |
| 1406 |
int i, TempLen; |
int i, TempLen; |
| 1407 |
WORD K; |
WORD K; |
| 1408 |
char TempStr[11]; |
char TempStr[12]; |
| 1409 |
int EchoCodeNew; |
int EchoCodeNew; |
| 1410 |
BYTE d; |
BYTE d; |
| 1411 |
BOOL Full, KanjiFlagNew; |
BOOL Full, KanjiFlagNew; |
| 1416 |
TempLen = 0; |
TempLen = 0; |
| 1417 |
d = (BYTE)B[i]; |
d = (BYTE)B[i]; |
| 1418 |
EchoCodeNew = cv->EchoCode; |
EchoCodeNew = cv->EchoCode; |
| 1419 |
|
KanjiFlagNew = FALSE; |
| 1420 |
|
|
| 1421 |
if (cv->EchoKanjiFlag) { |
if (cv->EchoKanjiFlag) { |
|
KanjiFlagNew = FALSE; |
|
| 1422 |
EchoCodeNew = IdKanji; |
EchoCodeNew = IdKanji; |
| 1423 |
|
|
| 1424 |
K = (cv->EchoKanjiFirst << 8) + d; |
K = (cv->EchoKanjiFirst << 8) + d; |
| 1425 |
|
|
| 1426 |
// UTF-8への変換を行う。1〜3バイトまでの対応なので注意。 |
// UTF-8への変換を行う。1〜3バイトまでの対応なので注意。 |
| 1427 |
if (cv->KanjiCodeSend == IdUTF8 || cv->Language==IdUtf8) { |
if (cv->KanjiCodeEcho == IdUTF8 || cv->Language==IdUtf8) { |
| 1428 |
TempLen += OutputTextUTF8(K, TempStr, cv); |
TempLen += OutputTextUTF8(K, TempStr, cv); |
| 1429 |
} |
} |
| 1430 |
else { |
else { |
| 1431 |
if (cv->KanjiCodeEcho == IdEUC) { |
switch (cv->Language) { |
| 1432 |
K = SJIS2EUC(K); |
case IdJapanese: |
| 1433 |
} |
switch (cv->KanjiCodeEcho) { |
| 1434 |
else if (cv->KanjiCodeEcho != IdSJIS) { |
case IdEUC: |
| 1435 |
K = SJIS2JIS(K); |
K = SJIS2EUC(K); |
| 1436 |
} |
break; |
| 1437 |
|
case IdJIS: |
| 1438 |
if ((cv->EchoCode==IdKatakana) && |
K = SJIS2JIS(K); |
| 1439 |
(cv->KanjiCodeEcho==IdJIS) && |
if ((cv->EchoCode==IdKatakana) && |
| 1440 |
(cv->JIS7KatakanaEcho==1)) { |
(cv->JIS7KatakanaEcho==1)) { |
| 1441 |
TempStr[TempLen] = SI; |
TempStr[TempLen++] = SI; |
| 1442 |
TempLen++; |
} |
| 1443 |
|
break; |
| 1444 |
|
case IdSJIS: |
| 1445 |
|
/* nothing to do */ |
| 1446 |
|
break; |
| 1447 |
|
} |
| 1448 |
|
break; |
| 1449 |
|
case IdKorean: |
| 1450 |
|
break; |
| 1451 |
} |
} |
| 1452 |
|
TempStr[TempLen++] = HIBYTE(K); |
| 1453 |
TempStr[TempLen] = HIBYTE(K); |
TempStr[TempLen++] = LOBYTE(K); |
|
TempStr[TempLen+1] = LOBYTE(K); |
|
|
TempLen = TempLen + 2; |
|
| 1454 |
} |
} |
| 1455 |
} |
} |
| 1456 |
else if (IsDBCSLeadByteEx(*cv->CodePage, d)) { |
else if (IsDBCSLeadByteEx(*cv->CodePage, d)) { |
| 1458 |
cv->EchoKanjiFirst = d; |
cv->EchoKanjiFirst = d; |
| 1459 |
EchoCodeNew = IdKanji; |
EchoCodeNew = IdKanji; |
| 1460 |
|
|
| 1461 |
if ((cv->EchoCode!=IdKanji) && |
if (cv->Language == IdJapanese) { |
| 1462 |
(cv->KanjiCodeEcho==IdJIS)) { |
if ((cv->EchoCode!=IdKanji) && (cv->KanjiCodeEcho==IdJIS)) { |
| 1463 |
TempStr[0] = 0x1B; |
TempStr[0] = 0x1B; |
| 1464 |
TempStr[1] = '$'; |
TempStr[1] = '$'; |
| 1465 |
if (cv->KanjiIn == IdKanjiInB) { |
if (cv->KanjiIn == IdKanjiInB) { |
| 1466 |
TempStr[2] = 'B'; |
TempStr[2] = 'B'; |
| 1467 |
} |
} |
| 1468 |
else { |
else { |
| 1469 |
TempStr[2] = '@'; |
TempStr[2] = '@'; |
| 1470 |
|
} |
| 1471 |
|
TempLen = 3; |
| 1472 |
} |
} |
|
TempLen = 3; |
|
|
} |
|
|
else { |
|
|
TempLen = 0; |
|
| 1473 |
} |
} |
| 1474 |
} |
} |
| 1475 |
else { |
else { |
| 1476 |
KanjiFlagNew = FALSE; |
if (cv->Language == IdJapanese) { |
| 1477 |
|
if ((cv->EchoCode==IdKanji) && (cv->KanjiCodeEcho==IdJIS)) { |
| 1478 |
if ((cv->EchoCode==IdKanji) && |
TempStr[0] = 0x1B; |
| 1479 |
(cv->KanjiCodeEcho==IdJIS)) { |
TempStr[1] = '('; |
| 1480 |
TempStr[0] = 0x1B; |
switch (cv->KanjiOut) { |
| 1481 |
TempStr[1] = '('; |
case IdKanjiOutJ: |
|
switch (cv->KanjiOut) { |
|
|
case IdKanjiOutJ: |
|
| 1482 |
TempStr[2] = 'J'; |
TempStr[2] = 'J'; |
| 1483 |
break; |
break; |
| 1484 |
case IdKanjiOutH: |
case IdKanjiOutH: |
| 1485 |
TempStr[2] = 'H'; |
TempStr[2] = 'H'; |
| 1486 |
break; |
break; |
| 1487 |
default: |
default: |
| 1488 |
TempStr[2] = 'B'; |
TempStr[2] = 'B'; |
| 1489 |
|
} |
| 1490 |
|
TempLen = 3; |
| 1491 |
} |
} |
|
TempLen = 3; |
|
|
} |
|
|
else |
|
|
TempLen = 0; |
|
| 1492 |
|
|
| 1493 |
if ((0xa0<d) && (d<0xe0)) { |
if ((0xa0<d) && (d<0xe0)) { |
| 1494 |
EchoCodeNew = IdKatakana; |
EchoCodeNew = IdKatakana; |
| 1495 |
if ((cv->EchoCode!=IdKatakana) && |
if ((cv->EchoCode!=IdKatakana) && |
| 1496 |
(cv->KanjiCodeEcho==IdJIS) && |
(cv->KanjiCodeEcho==IdJIS) && |
| 1497 |
(cv->JIS7KatakanaEcho==1)) { |
(cv->JIS7KatakanaEcho==1)) { |
| 1498 |
TempStr[TempLen] = SO; |
TempStr[TempLen++] = SO; |
| 1499 |
TempLen++; |
} |
| 1500 |
} |
} |
| 1501 |
} |
else { |
| 1502 |
else { |
EchoCodeNew = IdASCII; |
| 1503 |
EchoCodeNew = IdASCII; |
if ((cv->EchoCode==IdKatakana) && |
| 1504 |
if ((cv->EchoCode==IdKatakana) && |
(cv->KanjiCodeEcho==IdJIS) && |
| 1505 |
(cv->KanjiCodeEcho==IdJIS) && |
(cv->JIS7KatakanaEcho==1)) { |
| 1506 |
(cv->JIS7KatakanaEcho==1)) { |
TempStr[TempLen++] = SI; |
| 1507 |
TempStr[TempLen] = SI; |
} |
|
TempLen++; |
|
| 1508 |
} |
} |
| 1509 |
} |
} |
| 1510 |
|
|
| 1511 |
if (d==0x0d) { |
if (d==0x0d) { |
| 1512 |
TempStr[TempLen] = 0x0d; |
TempStr[TempLen++] = 0x0d; |
|
TempLen++; |
|
| 1513 |
if (cv->CRSend==IdCRLF) { |
if (cv->CRSend==IdCRLF) { |
| 1514 |
TempStr[TempLen] = 0x0a; |
TempStr[TempLen++] = 0x0a; |
|
TempLen++; |
|
| 1515 |
} |
} |
| 1516 |
else if ((cv->CRSend==IdCR) && |
else if ((cv->CRSend==IdCR) && |
| 1517 |
cv->TelFlag && ! cv->TelBinSend) { |
cv->TelFlag && ! cv->TelBinSend) { |
| 1518 |
TempStr[TempLen] = 0; |
TempStr[TempLen++] = 0; |
|
TempLen++; |
|
| 1519 |
} |
} |
| 1520 |
} |
} |
| 1521 |
else if ((d>=0xa1) && (d<=0xe0)) { |
else if ((d>=0x80) && (cv->KanjiCodeEcho==IdUTF8 || cv->Language==IdUtf8)) { |
| 1522 |
|
TempLen += OutputTextUTF8((WORD)d, TempStr, cv); |
| 1523 |
|
} |
| 1524 |
|
else if ((d>=0xa1) && (d<=0xe0) && (cv->Language == IdJapanese)) { |
| 1525 |
/* Katakana */ |
/* Katakana */ |
| 1526 |
if (cv->KanjiCodeEcho==IdEUC) { |
if (cv->KanjiCodeEcho==IdEUC) { |
| 1527 |
TempStr[TempLen] = (char)SS2; |
TempStr[TempLen++] = (char)SS2; |
|
TempLen++; |
|
| 1528 |
} |
} |
| 1529 |
if ((cv->KanjiCodeEcho==IdJIS) && |
if ((cv->KanjiCodeEcho==IdJIS) && |
| 1530 |
(cv->JIS7KatakanaEcho==1)) { |
(cv->JIS7KatakanaEcho==1)) { |
| 1531 |
TempStr[TempLen] = d & 0x7f; |
TempStr[TempLen++] = d & 0x7f; |
| 1532 |
} |
} |
| 1533 |
else { |
else { |
| 1534 |
TempStr[TempLen] = d; |
TempStr[TempLen++] = d; |
| 1535 |
} |
} |
|
TempLen++; |
|
| 1536 |
} |
} |
| 1537 |
else { |
else { |
| 1538 |
TempStr[TempLen] = d; |
TempStr[TempLen++] = d; |
|
TempLen++; |
|
| 1539 |
if (cv->TelFlag && (d==0xff)) { |
if (cv->TelFlag && (d==0xff)) { |
| 1540 |
TempStr[TempLen] = (char)0xff; |
TempStr[TempLen++] = (char)0xff; |
|
TempLen++; |
|
| 1541 |
} |
} |
| 1542 |
} |
} |
| 1543 |
} // if (cv->SendKanjiFlag) else if ... else ... end |
} // if (cv->EchoKanjiFlag) else if ... else ... end |
| 1544 |
|
|
| 1545 |
if (TempLen == 0) { |
if (TempLen == 0) { |
| 1546 |
i++; |
i++; |
| 1578 |
TempLen = 0; |
TempLen = 0; |
| 1579 |
d = (BYTE)B[i]; |
d = (BYTE)B[i]; |
| 1580 |
EchoCodeNew = cv->EchoCode; |
EchoCodeNew = cv->EchoCode; |
| 1581 |
|
KanjiFlagNew = FALSE; |
| 1582 |
|
|
| 1583 |
if (cv->EchoKanjiFlag) { |
if (cv->EchoKanjiFlag) { |
|
KanjiFlagNew = FALSE; |
|
| 1584 |
EchoCodeNew = IdKanji; |
EchoCodeNew = IdKanji; |
| 1585 |
|
|
| 1586 |
K = (cv->EchoKanjiFirst << 8) + d; |
K = (cv->EchoKanjiFirst << 8) + d; |
| 1587 |
|
|
| 1588 |
// UTF-8への変換を行う。1〜3バイトまでの対応なので注意。 |
// UTF-8への変換を行う。1〜3バイトまでの対応なので注意。 |
| 1589 |
if (cv->KanjiCodeSend == IdUTF8) { |
if (cv->KanjiCodeEcho == IdUTF8) { |
| 1590 |
TempLen += OutputTextUTF8(K, TempStr, cv); |
TempLen += OutputTextUTF8(K, TempStr, cv); |
| 1591 |
} |
} |
| 1592 |
else { |
else { |
| 1593 |
TempStr[TempLen] = HIBYTE(K); |
TempStr[TempLen++] = HIBYTE(K); |
| 1594 |
TempStr[TempLen+1] = LOBYTE(K); |
TempStr[TempLen++] = LOBYTE(K); |
|
TempLen = TempLen + 2; |
|
| 1595 |
} |
} |
| 1596 |
} |
} |
| 1597 |
else if (IsDBCSLeadByteEx(*cv->CodePage, d)) { |
else if (IsDBCSLeadByteEx(*cv->CodePage, d)) { |
| 1598 |
KanjiFlagNew = TRUE; |
KanjiFlagNew = TRUE; |
| 1599 |
cv->EchoKanjiFirst = d; |
cv->EchoKanjiFirst = d; |
| 1600 |
EchoCodeNew = IdKanji; |
EchoCodeNew = IdKanji; |
|
TempLen = 0; |
|
| 1601 |
} |
} |
| 1602 |
else { |
else { |
|
KanjiFlagNew = FALSE; |
|
|
TempLen = 0; |
|
| 1603 |
EchoCodeNew = IdASCII; |
EchoCodeNew = IdASCII; |
| 1604 |
|
|
| 1605 |
if (d==0x0d) { |
if (d==0x0d) { |
| 1606 |
TempStr[TempLen] = 0x0d; |
TempStr[TempLen++] = 0x0d; |
|
TempLen++; |
|
| 1607 |
if (cv->CRSend==IdCRLF) { |
if (cv->CRSend==IdCRLF) { |
| 1608 |
TempStr[TempLen] = 0x0a; |
TempStr[TempLen++] = 0x0a; |
|
TempLen++; |
|
| 1609 |
} |
} |
| 1610 |
else if ((cv->CRSend==IdCR) && |
else if ((cv->CRSend==IdCR) && |
| 1611 |
cv->TelFlag && ! cv->TelBinSend) { |
cv->TelFlag && ! cv->TelBinSend) { |
| 1612 |
TempStr[TempLen] = 0; |
TempStr[TempLen++] = 0; |
|
TempLen++; |
|
| 1613 |
} |
} |
| 1614 |
} |
} |
| 1615 |
|
else if ((d>=0x80) && (cv->KanjiCodeEcho==IdUTF8)) { |
| 1616 |
|
TempLen += OutputTextUTF8((WORD)d, TempStr, cv); |
| 1617 |
|
} |
| 1618 |
else { |
else { |
| 1619 |
TempStr[TempLen] = d; |
TempStr[TempLen++] = d; |
|
TempLen++; |
|
| 1620 |
if (cv->TelFlag && (d==0xff)) { |
if (cv->TelFlag && (d==0xff)) { |
| 1621 |
TempStr[TempLen] = (char)0xff; |
TempStr[TempLen++] = (char)0xff; |
|
TempLen++; |
|
| 1622 |
} |
} |
| 1623 |
} |
} |
| 1624 |
} // if (cv->SendKanjiFlag) else if ... else ... end |
} // if (cv->EchoKanjiFlag) else if ... else ... end |
| 1625 |
|
|
| 1626 |
if (TempLen == 0) { |
if (TempLen == 0) { |
| 1627 |
i++; |
i++; |
| 1660 |
cv->InPtr = 0; |
cv->InPtr = 0; |
| 1661 |
} |
} |
| 1662 |
|
|
| 1663 |
if (cv->Language==IdJapanese || cv->Language == IdUtf8) { |
switch (cv->Language) { |
| 1664 |
|
case IdUtf8: |
| 1665 |
|
case IdJapanese: |
| 1666 |
return TextEchoJP(cv,B,C); |
return TextEchoJP(cv,B,C); |
| 1667 |
} |
break; |
| 1668 |
else if (cv->Language == IdKorean) { |
case IdKorean: |
| 1669 |
return TextEchoKR(cv,B,C); |
return TextEchoKR(cv,B,C); |
| 1670 |
|
break; |
| 1671 |
} |
} |
| 1672 |
|
|
| 1673 |
Full = FALSE; |
Full = FALSE; |
| 1680 |
TempStr[TempLen] = 0x0d; |
TempStr[TempLen] = 0x0d; |
| 1681 |
TempLen++; |
TempLen++; |
| 1682 |
if (cv->CRSend==IdCRLF) { |
if (cv->CRSend==IdCRLF) { |
| 1683 |
TempStr[TempLen] = 0x0a; |
TempStr[TempLen++] = 0x0a; |
|
TempLen++; |
|
| 1684 |
} |
} |
| 1685 |
else if ((cv->CRSend==IdCR) && |
else if (cv->CRSend==IdCR && cv->TelFlag && ! cv->TelBinSend) { |
| 1686 |
cv->TelFlag && ! cv->TelBinSend) { |
TempStr[TempLen++] = 0; |
|
TempStr[TempLen] = 0; |
|
|
TempLen++; |
|
| 1687 |
} |
} |
| 1688 |
} |
} |
| 1689 |
else { |
else { |
| 1690 |
if ((cv->Language==IdRussian) && |
if ((cv->Language==IdRussian) && (d>=128)) { |
|
(d>=128)) { |
|
| 1691 |
d = RussConv(cv->RussClient,cv->RussHost,d); |
d = RussConv(cv->RussClient,cv->RussHost,d); |
| 1692 |
} |
} |
| 1693 |
TempStr[TempLen] = d; |
TempStr[TempLen++] = d; |
|
TempLen++; |
|
| 1694 |
if (cv->TelFlag && (d==0xff)) { |
if (cv->TelFlag && (d==0xff)) { |
| 1695 |
TempStr[TempLen] = (char)0xff; |
TempStr[TempLen++] = (char)0xff; |
|
TempLen++; |
|
| 1696 |
} |
} |
| 1697 |
} |
} |
| 1698 |
|
|