ckcuni.c
上传用户:dufan58
上传日期:2007-01-05
资源大小:3407k
文件大小:695k
源码类别:

通讯/手机编程

开发平台:

Windows_Unix

  1. #endif /* CK_ANSIC */
  2. {
  3.     if (c & 0xff00)
  4.       return(-1);
  5.     else if (c == (USHORT) 0x00a3) /* Pound sign */
  6.       return(0x2b);
  7.     else
  8.       return(tx_usascii(c));
  9. }
  10. int /* Canadian French */
  11. #ifdef CK_ANSIC
  12. tx_fr_canadian(USHORT c)
  13. #else
  14. tx_fr_canadian(c) USHORT c;
  15. #endif /* CK_ANSIC */
  16. {
  17.     if (c & 0xff00) /* Out of range */
  18.       return(-1);
  19.     switch(c) {
  20.       case 0xe0: return(0x40); /* a grave */
  21.       case 0xe2: return(0x5b); /* a circumflex */
  22.       case 0xe7: return(0x5c); /* c cedilla */
  23.       case 0xe8: return(0x7d); /* e grave */
  24.       case 0xe9: return(0x7b); /* e acute */
  25.       case 0xea: return(0x5d); /* e circumflex */
  26.       case 0xee: return(0x5e); /* i circumflex */
  27.       case 0xf4: return(0x60); /* o circumflex */
  28.       case 0xf9: return(0x7c); /* u grave */
  29.       case 0xfb: return(0x6e); /* u circumflex */
  30.       default:   return(tx_usascii(c));
  31.     }
  32. }
  33. int /* Danish/Norwegian */
  34. #ifdef CK_ANSIC
  35. tx_danish(USHORT c)
  36. #else
  37. tx_danish(c) USHORT c;
  38. #endif /* CK_ANSIC */
  39. {
  40.     if (c & 0xff00) /* Out of range */
  41.       return(-1);
  42.     switch(c) {
  43.       case 0xc6: return(0x5b); /* AE */
  44.       case 0xd8: return(0x5c); /* O stroke */
  45.       case 0xe6: return(0x7b); /* ae */
  46.       case 0xf8: return(0x7c); /* o stroke */
  47.       case 0xe5: return(0x7d); /* a ring */
  48.       case 0xaf: return(0x7e); /* macron */
  49.       default:   return(tx_usascii(c));
  50.     }
  51. }
  52. int /* Dutch */
  53. #ifdef CK_ANSIC
  54. tx_dutch(USHORT c)
  55. #else
  56. tx_dutch(c) USHORT c;
  57. #endif /* CK_ANSIC */
  58. {
  59.     if (c & 0xfe00) /* Out of range */
  60.       return(-1);
  61.     switch(c) {
  62.       case 0x007c: return(0x5d); /* vertical bar */
  63.       case 0x00a3: return(0x23); /* pound sign */
  64.       case 0x00ab: return(0x7b); /* diaeresis */
  65.       case 0x00b4: return(0x7e); /* acute accent */
  66.       case 0x00bc: return(0x7d); /* 1/4 */
  67.       case 0x00be: return(0x40); /* 3/4 */
  68.       case 0x00bd: return(0x5c); /* 1/2 */
  69.       case 0x00ff: return(0x5b); /* y diaeresis (ij) */
  70.       case 0x0192: return(0x7c); /* Florin */
  71.       default:   return((c & 0x80) ? -1 : (CHAR)(c & 0x7f));
  72.     }
  73. }
  74. int /* Finnish */
  75. #ifdef CK_ANSIC
  76. tx_finnish(USHORT c)
  77. #else
  78. tx_finnish(c) USHORT c;
  79. #endif /* CK_ANSIC */
  80. {
  81.     if (c & 0xff00) /* Out of range */
  82.       return(-1);
  83.     switch(c) {
  84.       case 0xc4: return(0x5b); /* A diaeresis */
  85.       case 0xd6: return(0x5c); /* O diaeresis */
  86.       case 0xc5: return(0x5d); /* A ring */
  87.       case 0xdc: return(0x5e); /* U diaeresis */
  88.       case 0xe9: return(0x60); /* e acute */
  89.       case 0xe4: return(0x7b); /* a diaeresis */
  90.       case 0xf6: return(0x7c); /* o diaeresis */
  91.       case 0xe5: return(0x7d); /* a ring */
  92.       case 0xfc: return(0x7e); /* u diaeresis */
  93.       default:   return(tx_usascii(c));
  94.     }
  95. }
  96. int /* French */
  97. #ifdef CK_ANSIC
  98. tx_french(USHORT c)
  99. #else
  100. tx_french(c) USHORT c;
  101. #endif /* CK_ANSIC */
  102. {
  103.     if (c & 0xff00) /* Out of range */
  104.       return(-1);
  105.     switch(c) {
  106.       case 0xa3: return(0x23); /* pound sign */
  107.       case 0xa7: return(0x5d); /* section sign */
  108.       case 0xa8: return(0x7e); /* diaeresis */
  109.       case 0xb0: return(0x5b); /* ring */
  110.       case 0xb5: return(0x60); /* micron sign (mu) */
  111.       case 0xe0: return(0x40); /* a grave */
  112.       case 0xe7: return(0x5c); /* c cedilla */
  113.       case 0xe8: return(0x7d); /* e grave */
  114.       case 0xe9: return(0x7b); /* e acute */
  115.       case 0xf9: return(0x7c); /* u grave */
  116.       default:   return(tx_usascii(c));
  117.     }
  118. }
  119. int /* German */
  120. #ifdef CK_ANSIC
  121. tx_german(USHORT c)
  122. #else
  123. tx_german(c) USHORT c;
  124. #endif /* CK_ANSIC */
  125. {
  126.     if (c & 0xff00) /* Out of range */
  127.       return(-1);
  128.     switch(c) {
  129.       case 0xa7: return(0x40); /* section sign */
  130.       case 0xc4: return(0x5b); /* A umlaut */
  131.       case 0xd6: return(0x5c); /* O umlaut */
  132.       case 0xdc: return(0x5d); /* U umlaut */
  133.       case 0xdf: return(0x7e); /* ess-zet */
  134.       case 0xe4: return(0x7b); /* a umlaut */
  135.       case 0xf6: return(0x7c); /* o umlaut */
  136.       case 0xfc: return(0x7d); /* u umlaut*/
  137.       default:   return(tx_usascii(c));
  138.     }
  139. }
  140. int /* Hebrew-7 */
  141. #ifdef CK_ANSIC
  142. tx_hebrew7(USHORT c)
  143. #else
  144. tx_hebrew7(c) USHORT c;
  145. #endif /* CK_ANSIC */
  146. {
  147.     if (c < 0x60) /* ASCII */
  148.       return((CHAR)(c & 0x7f));
  149.     else if (c >= 123 && c < 128) /* ASCII */
  150.       return((CHAR)(c & 0x7f));
  151.     else if (c >= 0x05d0 && c < 0x05ea) /* Hebrew 27 contiguous characters */
  152.       return((CHAR)((int)c - 0x5d0 + 96));
  153.     else return(-1);
  154. }
  155. int /* Greek ELOT 927 */
  156. #ifdef CK_ANSIC
  157. tx_elot927(USHORT c)
  158. #else
  159. tx_elot927(c) USHORT c;
  160. #endif /* CK_ANSIC */
  161. {
  162.     if (c <= 0x80) { /* ASCII */
  163. if (islower(c)) c = toupper(c); /* Send all letters in uppercase */
  164. return((CHAR)(c & 0x7f));
  165.     }
  166. /* Greek -- map all Greek characters to unaccented uppercase */
  167.     if (c >= 0x0391 && c <= 0x03a1) /* Alpha thru Rho - uppercase */
  168.       return((CHAR)((int)c - 0x0391 + 97));
  169.     else if (c >= 0x03a3 && c <= 0x03a9) /* Sigma thru Omega - uppercase */
  170.       return((CHAR)((int)c - 0x0391 + 96));
  171.     else if (c >= 0x03b1 && c <= 0x03c1) /* Alpha thru Rho - lowercase */
  172.       return((CHAR)((int)c - 0x0391 + 97));
  173.     else if (c >= 0x03c3 && c <= 0x03c9) /* Sigma thru Omega - uppercase */
  174.       return((CHAR)((int)c - 0x0391 + 96));
  175.     switch (c) {
  176.       case 0x03c2: return((CHAR)114); /* Terminal sigma */
  177.       case 0x0386: return((CHAR)97); /* Alpha Tonos */
  178.       case 0x03ac: return((CHAR)97); /* alpha Tonos */
  179.       case 0x0388: return((CHAR)101); /* Epsilon Tonos */
  180.       case 0x03ad: return((CHAR)101); /* epsilon Tonos */
  181.       case 0x0389: return((CHAR)103); /* Eta Tonos */
  182.       case 0x03ae: return((CHAR)103); /* eta Tonos */
  183.       case 0x038a: return((CHAR)105); /* Iota Tonos */
  184.       case 0x03af: return((CHAR)105); /* iota Tonos */
  185.       case 0x03ca: return((CHAR)105); /* iota Dialytika */
  186.       case 0x038c: return((CHAR)111); /* Omicron Tonos */
  187.       case 0x03cc: return((CHAR)111); /* omicron Tonos */
  188.       case 0x038e: return((CHAR)116); /* Upsilon Tonos */
  189.       case 0x03d3: return((CHAR)116); /* Upsilon Tonos */
  190.       case 0x03cd: return((CHAR)116); /* upsilon Tonos */
  191.       case 0x03cb: return((CHAR)116); /* upsilon Dialytika */
  192.       case 0x03b0: return((CHAR)116); /* upsilon Dialytika+Tonos */
  193.       case 0x038f: return((CHAR)120); /* Omega Tonos */
  194.       case 0x03ce: return((CHAR)120); /* omega Tonos */
  195.       case 0x0390: return((CHAR)105); /* iota Dialytika+Tonos */
  196.       case 0x03aa: return((CHAR)105); /* Iota Dialytika */
  197.       case 0x03ab: return((CHAR)116); /* Upsilon Dialytika */
  198.       case 0x03d4: return((CHAR)116); /* Upsilon Dialytika */
  199.       case 0x03d0: return((CHAR)98); /* Alternative beta */
  200.       case 0x03d1: return((CHAR)104); /* Open theta */
  201.       case 0x03d5: return((CHAR)117); /* Open phi */
  202.       case 0x03d6: return((CHAR)112); /* Alternative Pi */
  203.       default: return(-1);
  204.     }
  205. }
  206. int /* Hungarian */
  207. #ifdef CK_ANSIC
  208. tx_hungarian(USHORT c)
  209. #else
  210. tx_hungarian(c) USHORT c;
  211. #endif /* CK_ANSIC */
  212. {
  213.     if (c == 0x02dd || c == 0x2033)
  214.       return(0x7e); /* double acute accent */
  215.     else if (c & 0xff00) /* Out of range */
  216.       return(-1);
  217.     switch(c) {
  218.       case 0xc1: return(0x40); /* A acute */
  219.       case 0xc9: return(0x5b); /* E acute */
  220.       case 0xd6: return(0x5c); /* O umlaut */
  221.       case 0xdc: return(0x5d); /* U umlaut */
  222.       case 0xe9: return(0x7b); /* e acute */
  223.       case 0xf6: return(0x7c); /* o umlaut */
  224.       case 0xfa: return(0x60); /* u acute */
  225.       case 0xfc: return(0x7d); /* u umlaut */
  226.       default:   return(tx_usascii(c));
  227.     }
  228. }
  229. int /* Icelandic */
  230. #ifdef CK_ANSIC
  231. tx_icelandic(USHORT c)
  232. #else
  233. tx_icelandic(c) USHORT c;
  234. #endif /* CK_ANSIC */
  235. {
  236.     if (c & 0xff00) /* Out of range */
  237.       return(-1);
  238.     switch(c) {
  239.       case 0xde: return(0x40); /* Thorn */
  240.       case 0xd0: return(0x5b); /* Eth */
  241.       case 0xc6: return(0x5d); /* AE */
  242.       case 0xd6: return(0x5e); /* O umlaut */
  243.       case 0xfe: return(0x60); /* thorn */
  244.       case 0xf0: return(0x7b); /* eth */
  245.       case 0xe6: return(0x7d); /* ae */
  246.       case 0xf6: return(0x7e); /* o umlaut */
  247.       default:   return(tx_usascii(c));
  248.     }
  249. }
  250. int /* Italian */
  251. #ifdef CK_ANSIC
  252. tx_italian(USHORT c)
  253. #else
  254. tx_italian(c) USHORT c;
  255. #endif /* CK_ANSIC */
  256. {
  257.     if (c & 0xff00) /* Out of range */
  258.       return(-1);
  259.     switch(c) {
  260.       case 0xa3: return(0x23); /* pound sign */
  261.       case 0xa7: return(0x40); /* section sign */
  262.       case 0xb0: return(0x5b); /* ring */
  263.       case 0xe7: return(0x5c); /* c cedilla */
  264.       case 0xe9: return(0x5d); /* e acute */
  265.       case 0xf9: return(0x60); /* u grave */
  266.       case 0xe0: return(0x7b); /* a grave */
  267.       case 0xf2: return(0x7c); /* o grave */
  268.       case 0xe8: return(0x7d); /* e grave */
  269.       case 0xec: return(0x7e); /* i grave */
  270.       default:   return(tx_usascii(c));
  271.     }
  272. }
  273. int /* JIS 0201 Roman */
  274. #ifdef CK_ANSIC
  275. tx_jis0201r(USHORT c)
  276. #else
  277. tx_jis0201r(c) USHORT c;
  278. #endif /* CK_ANSIC */
  279. {
  280.     if (c && 0xff80) /* 7 bits */
  281.       return(-1);
  282.     switch (c) { /* Like ASCII with */
  283.       case 0x00a5: return(92); /* two exceptions */
  284.       case 0x00af: return(126);
  285.       case 0x203e: return(126);
  286.       default:   return(tx_usascii(c));
  287.     }
  288. }
  289. int /* JIS 0201 Katakana */
  290. #ifdef CK_ANSIC
  291. tx_jis0201k(USHORT c)
  292. #else
  293. tx_jis0201k(c) USHORT c;
  294. #endif /* CK_ANSIC */
  295. {
  296.     if (c < 0xff61 || c > 0xff9f)
  297.       return(-1); /* Out of range */
  298.     else
  299.       return((int)c - 0xfec0); /* 0xff61 - a0 = 0xfec0 */
  300. }
  301. int /* Short KOI */
  302. #ifdef CK_ANSIC
  303. tx_koi7(USHORT c)
  304. #else
  305. tx_koi7(c) USHORT c;
  306. #endif /* CK_ANSIC */
  307. {
  308.     if (c < 0x50)
  309.       return((CHAR)(c & 0x7f));
  310.     else if (c > 0x7f)
  311.       return(-1); /* Out of range */
  312.     switch(c) {
  313.       case 0x0410: return((CHAR)97);
  314.       case 0x0411: return((CHAR)98);
  315.       case 0x0412: return((CHAR)119);
  316.       case 0x0413: return((CHAR)103);
  317.       case 0x0414: return((CHAR)100);
  318.       case 0x0415: return((CHAR)101);
  319.       case 0x0416: return((CHAR)118);
  320.       case 0x0417: return((CHAR)122);
  321.       case 0x0418: return((CHAR)105);
  322.       case 0x0419: return((CHAR)106);
  323.       case 0x041a: return((CHAR)107);
  324.       case 0x041b: return((CHAR)108);
  325.       case 0x041c: return((CHAR)109);
  326.       case 0x041d: return((CHAR)110);
  327.       case 0x041e: return((CHAR)111);
  328.       case 0x041f: return((CHAR)112);
  329.       case 0x0420: return((CHAR)114);
  330.       case 0x0421: return((CHAR)115);
  331.       case 0x0422: return((CHAR)116);
  332.       case 0x0423: return((CHAR)117);
  333.       case 0x0424: return((CHAR)102);
  334.       case 0x0425: return((CHAR)104);
  335.       case 0x0426: return((CHAR)99);
  336.       case 0x0427: return((CHAR)126);
  337.       case 0x0428: return((CHAR)123);
  338.       case 0x0429: return((CHAR)125);
  339.       case 0x042b: return((CHAR)121);
  340.       case 0x042c: return((CHAR)120);
  341.       case 0x042d: return((CHAR)124);
  342.       case 0x042e: return((CHAR)96);
  343.       case 0x042f: return((CHAR)113);
  344.       default: return(-1);
  345.     }
  346. }
  347. int /* Portuguese */
  348. #ifdef CK_ANSIC
  349. tx_portuguese(USHORT c)
  350. #else
  351. tx_portuguese(c) USHORT c;
  352. #endif /* CK_ANSIC */
  353. {
  354.     if (c & 0xff00) /* Out of range */
  355.       return(-1);
  356.     switch(c) {
  357.       case 0xe0: return(0xa7); /* section sign */
  358.       case 0xb0: return(0xc3); /* A tilde */
  359.       case 0xe7: return(0xc7); /* C cedilla */
  360.       case 0xa7: return(0xd5); /* O tilde */
  361.       case 0xe9: return(0xe3); /* a tilde */
  362.       case 0xf9: return(0xe7); /* c cedilla */
  363.       case 0xe8: return(0xf5); /* o tilde */
  364.       case 0xa8: return(0xb0); /* ring */
  365.       default:   return(tx_usascii(c));
  366.     }
  367. }
  368. int /* Spanish */
  369. #ifdef CK_ANSIC
  370. tx_spanish(USHORT c)
  371. #else
  372. tx_spanish(c) USHORT c;
  373. #endif /* CK_ANSIC */
  374. {
  375.     if (c & 0xff00) /* Out of range */
  376.       return(-1);
  377.     switch(c) {
  378.       case 0xa3: return(0x23); /* pound sign */
  379.       case 0xa7: return(0x40); /* section */
  380.       case 0xa1: return(0x5b); /* inverted exclamation */
  381.       case 0xd1: return(0x5c); /* N tilde */
  382.       case 0xbf: return(0x5d); /* inverted question mark */
  383.       case 0xb0: return(0x7b); /* ring */
  384.       case 0xf1: return(0x7c); /* n tilde */
  385.       case 0xe7: return(0x7d); /* c cedilla */
  386.       default:   return(tx_usascii(c));
  387.     }
  388. }
  389. int /* Swedish */
  390. #ifdef CK_ANSIC
  391. tx_swedish(USHORT c)
  392. #else
  393. tx_swedish(c) USHORT c;
  394. #endif /* CK_ANSIC */
  395. {
  396.     if (c & 0xff00) /* Out of range */
  397.       return(-1);
  398.     switch(c) {
  399.       case 0xc9: return(0x40); /* E acute */
  400.       case 0xc4: return(0x5b); /* A umlaut*/
  401.       case 0xd6: return(0x5c); /* O umlaut */
  402.       case 0xc5: return(0x5d); /* A ring */
  403.       case 0xdc: return(0x5e); /* U umlaut */
  404.       case 0xe9: return(0x60); /* e acute */
  405.       case 0xe4: return(0x7b); /* a umlaut */
  406.       case 0xf6: return(0x7c); /* o umlaut */
  407.       case 0xe5: return(0x7d); /* a ring */
  408.       case 0xfc: return(0x7e); /* u umlaut */
  409.       default:   return(tx_usascii(c));
  410.     }
  411. }
  412. int /* Swiss NRC */
  413. #ifdef CK_ANSIC
  414. tx_swiss(USHORT c)
  415. #else
  416. tx_swiss(c) USHORT c;
  417. #endif /* CK_ANSIC */
  418. {
  419.     if (c & 0xff00) /* Out of range */
  420.       return(-1);
  421.     switch(c) {
  422.       case 0xf9: return(0x23); /* u grave */
  423.       case 0xe0: return(0x40); /* a grave */
  424.       case 0xe9: return(0x5b); /* e acute */
  425.       case 0xe7: return(0x5c); /* c cedilla */
  426.       case 0xea: return(0x5d); /* e circumflex */
  427.       case 0xee: return(0x5e); /* i circumflex */
  428.       case 0xe8: return(0x5f); /* e grave */
  429.       case 0xf4: return(0x60); /* o circumflex */
  430.       case 0xe4: return(0x7b); /* a umlaut */
  431.       case 0xf6: return(0x7c); /* o umlaut */
  432.       case 0xfc: return(0x7d); /* u umlaut */
  433.       case 0xfb: return(0x7e); /* u circumflex */
  434.       default:   return(tx_usascii(c));
  435.     }
  436. }
  437. /* For Latin-1, use tx_ident() */
  438. int /* Latin-2 */
  439. #ifdef CK_ANSIC
  440. tx_8859_2(USHORT c)
  441. #else
  442. tx_8859_2(c) USHORT c;
  443. #endif /* CK_ANSIC */
  444. {
  445.     if (c < 0xa0)
  446.       return((CHAR)(c & 0xff));
  447.     switch(c) {
  448.       case 0x00A0: return((CHAR)160);
  449.       case 0x00A4: return((CHAR)164);
  450.       case 0x00A7: return((CHAR)167);
  451.       case 0x00A8: return((CHAR)168);
  452.       case 0x00AD: return((CHAR)173);
  453.       case 0x00B0: return((CHAR)176);
  454.       case 0x00B4: return((CHAR)180);
  455.       case 0x00B8: return((CHAR)184);
  456.       case 0x00C1: return((CHAR)193);
  457.       case 0x00C2: return((CHAR)194);
  458.       case 0x00C4: return((CHAR)196);
  459.       case 0x00C7: return((CHAR)199);
  460.       case 0x00C9: return((CHAR)201);
  461.       case 0x00CB: return((CHAR)203);
  462.       case 0x00CD: return((CHAR)205);
  463.       case 0x00CE: return((CHAR)206);
  464.       case 0x00D3: return((CHAR)211);
  465.       case 0x00D4: return((CHAR)212);
  466.       case 0x00D6: return((CHAR)214);
  467.       case 0x00D7: return((CHAR)215);
  468.       case 0x00DA: return((CHAR)218);
  469.       case 0x00DC: return((CHAR)220);
  470.       case 0x00DD: return((CHAR)221);
  471.       case 0x00DF: return((CHAR)223);
  472.       case 0x00E1: return((CHAR)225);
  473.       case 0x00E2: return((CHAR)226);
  474.       case 0x00E4: return((CHAR)228);
  475.       case 0x00E7: return((CHAR)231);
  476.       case 0x00E9: return((CHAR)233);
  477.       case 0x00EB: return((CHAR)235);
  478.       case 0x00ED: return((CHAR)237);
  479.       case 0x00EE: return((CHAR)238);
  480.       case 0x00F3: return((CHAR)243);
  481.       case 0x00F4: return((CHAR)244);
  482.       case 0x00F6: return((CHAR)246);
  483.       case 0x00F7: return((CHAR)247);
  484.       case 0x00FA: return((CHAR)250);
  485.       case 0x00FC: return((CHAR)252);
  486.       case 0x00FD: return((CHAR)253);
  487.       case 0x0102: return((CHAR)195);
  488.       case 0x0103: return((CHAR)227);
  489.       case 0x0104: return((CHAR)161);
  490.       case 0x0105: return((CHAR)177);
  491.       case 0x0106: return((CHAR)198);
  492.       case 0x0107: return((CHAR)230);
  493.       case 0x010C: return((CHAR)200);
  494.       case 0x010D: return((CHAR)232);
  495.       case 0x010E: return((CHAR)207);
  496.       case 0x010F: return((CHAR)239);
  497.       case 0x0110: return((CHAR)208);
  498.       case 0x0111: return((CHAR)240);
  499.       case 0x0118: return((CHAR)202);
  500.       case 0x0119: return((CHAR)234);
  501.       case 0x011A: return((CHAR)204);
  502.       case 0x011B: return((CHAR)236);
  503.       case 0x0139: return((CHAR)197);
  504.       case 0x013A: return((CHAR)229);
  505.       case 0x013D: return((CHAR)165);
  506.       case 0x013E: return((CHAR)181);
  507.       case 0x0141: return((CHAR)163);
  508.       case 0x0142: return((CHAR)179);
  509.       case 0x0143: return((CHAR)209);
  510.       case 0x0144: return((CHAR)241);
  511.       case 0x0147: return((CHAR)210);
  512.       case 0x0148: return((CHAR)242);
  513.       case 0x0150: return((CHAR)213);
  514.       case 0x0151: return((CHAR)245);
  515.       case 0x0154: return((CHAR)192);
  516.       case 0x0155: return((CHAR)224);
  517.       case 0x0158: return((CHAR)216);
  518.       case 0x0159: return((CHAR)248);
  519.       case 0x015A: return((CHAR)166);
  520.       case 0x015B: return((CHAR)182);
  521.       case 0x015E: return((CHAR)170);
  522.       case 0x015F: return((CHAR)186);
  523.       case 0x0160: return((CHAR)169);
  524.       case 0x0161: return((CHAR)185);
  525.       case 0x0162: return((CHAR)222);
  526.       case 0x0163: return((CHAR)254);
  527.       case 0x0164: return((CHAR)171);
  528.       case 0x0165: return((CHAR)187);
  529.       case 0x016E: return((CHAR)217);
  530.       case 0x016F: return((CHAR)249);
  531.       case 0x0170: return((CHAR)219);
  532.       case 0x0171: return((CHAR)251);
  533.       case 0x0179: return((CHAR)172);
  534.       case 0x017A: return((CHAR)188);
  535.       case 0x017B: return((CHAR)175);
  536.       case 0x017C: return((CHAR)191);
  537.       case 0x017D: return((CHAR)174);
  538.       case 0x017E: return((CHAR)190);
  539.       case 0x02C7: return((CHAR)183);
  540.       case 0x02D8: return((CHAR)162);
  541.       case 0x02D9: return((CHAR)255);
  542.       case 0x02DB: return((CHAR)178);
  543.       case 0x02DD: return((CHAR)189);
  544.       default: return(tx_punc(c));
  545.     }
  546. }
  547. int /* Latin-3 */
  548. #ifdef CK_ANSIC
  549. tx_8859_3(USHORT c)
  550. #else
  551. tx_8859_3(c) USHORT c;
  552. #endif /* CK_ANSIC */
  553. {
  554.     if (c < 0xa0)
  555.       return((CHAR)(c & 0xff));
  556.     switch(c) {
  557.       case 0x00A0: return((CHAR)160);
  558.       case 0x00A3: return((CHAR)163);
  559.       case 0x00A4: return((CHAR)164);
  560.       case 0x00A7: return((CHAR)167);
  561.       case 0x00A8: return((CHAR)168);
  562.       case 0x00AD: return((CHAR)173);
  563.       case 0x00B0: return((CHAR)176);
  564.       case 0x00B2: return((CHAR)178);
  565.       case 0x00B3: return((CHAR)179);
  566.       case 0x00B4: return((CHAR)180);
  567.       case 0x00B5: return((CHAR)181);
  568.       case 0x00B7: return((CHAR)183);
  569.       case 0x00B8: return((CHAR)184);
  570.       case 0x00BD: return((CHAR)189);
  571.       case 0x00C0: return((CHAR)192);
  572.       case 0x00C1: return((CHAR)193);
  573.       case 0x00C2: return((CHAR)194);
  574.       case 0x00C4: return((CHAR)196);
  575.       case 0x00C7: return((CHAR)199);
  576.       case 0x00C8: return((CHAR)200);
  577.       case 0x00C9: return((CHAR)201);
  578.       case 0x00CA: return((CHAR)202);
  579.       case 0x00CB: return((CHAR)203);
  580.       case 0x00CC: return((CHAR)204);
  581.       case 0x00CD: return((CHAR)205);
  582.       case 0x00CE: return((CHAR)206);
  583.       case 0x00CF: return((CHAR)207);
  584.       case 0x00D1: return((CHAR)209);
  585.       case 0x00D2: return((CHAR)210);
  586.       case 0x00D3: return((CHAR)211);
  587.       case 0x00D4: return((CHAR)212);
  588.       case 0x00D6: return((CHAR)214);
  589.       case 0x00D7: return((CHAR)215);
  590.       case 0x00D9: return((CHAR)217);
  591.       case 0x00DA: return((CHAR)218);
  592.       case 0x00DB: return((CHAR)219);
  593.       case 0x00DC: return((CHAR)220);
  594.       case 0x00DF: return((CHAR)223);
  595.       case 0x00E0: return((CHAR)224);
  596.       case 0x00E1: return((CHAR)225);
  597.       case 0x00E2: return((CHAR)226);
  598.       case 0x00E4: return((CHAR)228);
  599.       case 0x00E7: return((CHAR)231);
  600.       case 0x00E8: return((CHAR)232);
  601.       case 0x00E9: return((CHAR)233);
  602.       case 0x00EA: return((CHAR)234);
  603.       case 0x00EB: return((CHAR)235);
  604.       case 0x00EC: return((CHAR)236);
  605.       case 0x00ED: return((CHAR)237);
  606.       case 0x00EE: return((CHAR)238);
  607.       case 0x00EF: return((CHAR)239);
  608.       case 0x00F1: return((CHAR)241);
  609.       case 0x00F2: return((CHAR)242);
  610.       case 0x00F3: return((CHAR)243);
  611.       case 0x00F4: return((CHAR)244);
  612.       case 0x00F6: return((CHAR)246);
  613.       case 0x00F7: return((CHAR)247);
  614.       case 0x00F9: return((CHAR)249);
  615.       case 0x00FA: return((CHAR)250);
  616.       case 0x00FB: return((CHAR)251);
  617.       case 0x00FC: return((CHAR)252);
  618.       case 0x0108: return((CHAR)198);
  619.       case 0x0109: return((CHAR)230);
  620.       case 0x010A: return((CHAR)197);
  621.       case 0x010B: return((CHAR)229);
  622.       case 0x011C: return((CHAR)216);
  623.       case 0x011D: return((CHAR)248);
  624.       case 0x011E: return((CHAR)171);
  625.       case 0x011F: return((CHAR)187);
  626.       case 0x0120: return((CHAR)213);
  627.       case 0x0121: return((CHAR)245);
  628.       case 0x0124: return((CHAR)166);
  629.       case 0x0125: return((CHAR)182);
  630.       case 0x0126: return((CHAR)161);
  631.       case 0x0127: return((CHAR)177);
  632.       case 0x0130: return((CHAR)169);
  633.       case 0x0131: return((CHAR)185);
  634.       case 0x0134: return((CHAR)172);
  635.       case 0x0135: return((CHAR)188);
  636.       case 0x015C: return((CHAR)222);
  637.       case 0x015D: return((CHAR)254);
  638.       case 0x015E: return((CHAR)170);
  639.       case 0x015F: return((CHAR)186);
  640.       case 0x016C: return((CHAR)221);
  641.       case 0x016D: return((CHAR)253);
  642.       case 0x017B: return((CHAR)175);
  643.       case 0x017C: return((CHAR)191);
  644.       case 0x02D8: return((CHAR)162);
  645.       case 0x02D9: return((CHAR)255);
  646.       default: return(tx_punc(c));
  647.     }
  648. }
  649. int /* Latin-4 */
  650. #ifdef CK_ANSIC
  651. tx_8859_4(USHORT c)
  652. #else
  653. tx_8859_4(c) USHORT c;
  654. #endif /* CK_ANSIC */
  655. {
  656.     if (c < 0xa0)
  657.       return((CHAR)(c & 0xff));
  658.     switch(c) {
  659.       case 0x00A0: return((CHAR)160);
  660.       case 0x00A4: return((CHAR)164);
  661.       case 0x00A7: return((CHAR)167);
  662.       case 0x00A8: return((CHAR)168);
  663.       case 0x00AD: return((CHAR)173);
  664.       case 0x00AF: return((CHAR)175);
  665.       case 0x00B0: return((CHAR)176);
  666.       case 0x00B4: return((CHAR)180);
  667.       case 0x00B8: return((CHAR)184);
  668.       case 0x00C1: return((CHAR)193);
  669.       case 0x00C2: return((CHAR)194);
  670.       case 0x00C3: return((CHAR)195);
  671.       case 0x00C4: return((CHAR)196);
  672.       case 0x00C5: return((CHAR)197);
  673.       case 0x00C6: return((CHAR)198);
  674.       case 0x00C9: return((CHAR)201);
  675.       case 0x00CB: return((CHAR)203);
  676.       case 0x00CD: return((CHAR)205);
  677.       case 0x00CE: return((CHAR)206);
  678.       case 0x00D4: return((CHAR)212);
  679.       case 0x00D5: return((CHAR)213);
  680.       case 0x00D6: return((CHAR)214);
  681.       case 0x00D7: return((CHAR)215);
  682.       case 0x00D8: return((CHAR)216);
  683.       case 0x00DA: return((CHAR)218);
  684.       case 0x00DB: return((CHAR)219);
  685.       case 0x00DC: return((CHAR)220);
  686.       case 0x00DF: return((CHAR)223);
  687.       case 0x00E1: return((CHAR)225);
  688.       case 0x00E2: return((CHAR)226);
  689.       case 0x00E3: return((CHAR)227);
  690.       case 0x00E4: return((CHAR)228);
  691.       case 0x00E5: return((CHAR)229);
  692.       case 0x00E6: return((CHAR)230);
  693.       case 0x00E9: return((CHAR)233);
  694.       case 0x00EB: return((CHAR)235);
  695.       case 0x00ED: return((CHAR)237);
  696.       case 0x00EE: return((CHAR)238);
  697.       case 0x00F4: return((CHAR)244);
  698.       case 0x00F5: return((CHAR)245);
  699.       case 0x00F6: return((CHAR)246);
  700.       case 0x00F7: return((CHAR)247);
  701.       case 0x00F8: return((CHAR)248);
  702.       case 0x00FA: return((CHAR)250);
  703.       case 0x00FB: return((CHAR)251);
  704.       case 0x00FC: return((CHAR)252);
  705.       case 0x0100: return((CHAR)192);
  706.       case 0x0101: return((CHAR)224);
  707.       case 0x0104: return((CHAR)161);
  708.       case 0x0105: return((CHAR)177);
  709.       case 0x010C: return((CHAR)200);
  710.       case 0x010D: return((CHAR)232);
  711.       case 0x0110: return((CHAR)208);
  712.       case 0x0111: return((CHAR)240);
  713.       case 0x0112: return((CHAR)170);
  714.       case 0x0113: return((CHAR)186);
  715.       case 0x0116: return((CHAR)204);
  716.       case 0x0117: return((CHAR)236);
  717.       case 0x0118: return((CHAR)202);
  718.       case 0x0119: return((CHAR)234);
  719.       case 0x0122: return((CHAR)171);
  720.       case 0x0123: return((CHAR)187);
  721.       case 0x0128: return((CHAR)165);
  722.       case 0x0129: return((CHAR)181);
  723.       case 0x012A: return((CHAR)207);
  724.       case 0x012B: return((CHAR)239);
  725.       case 0x012E: return((CHAR)199);
  726.       case 0x012F: return((CHAR)231);
  727.       case 0x0136: return((CHAR)211);
  728.       case 0x0137: return((CHAR)243);
  729.       case 0x0138: return((CHAR)162);
  730.       case 0x013B: return((CHAR)166);
  731.       case 0x013C: return((CHAR)182);
  732.       case 0x0145: return((CHAR)209);
  733.       case 0x0146: return((CHAR)241);
  734.       case 0x014A: return((CHAR)189);
  735.       case 0x014B: return((CHAR)191);
  736.       case 0x014C: return((CHAR)210);
  737.       case 0x014D: return((CHAR)242);
  738.       case 0x0156: return((CHAR)163);
  739.       case 0x0157: return((CHAR)179);
  740.       case 0x0160: return((CHAR)169);
  741.       case 0x0161: return((CHAR)185);
  742.       case 0x0166: return((CHAR)172);
  743.       case 0x0167: return((CHAR)188);
  744.       case 0x0168: return((CHAR)221);
  745.       case 0x0169: return((CHAR)253);
  746.       case 0x016A: return((CHAR)222);
  747.       case 0x016B: return((CHAR)254);
  748.       case 0x0172: return((CHAR)217);
  749.       case 0x0173: return((CHAR)249);
  750.       case 0x017D: return((CHAR)174);
  751.       case 0x017E: return((CHAR)190);
  752.       case 0x02C7: return((CHAR)183);
  753.       case 0x02D9: return((CHAR)255);
  754.       case 0x02DB: return((CHAR)178);
  755.       default: return(tx_punc(c));
  756.     }
  757. }
  758. int /* ISO 8859-5 (Latin/Cyrillic) */
  759. #ifdef CK_ANSIC
  760. tx_8859_5(USHORT c)
  761. #else
  762. tx_8859_5(c) USHORT c;
  763. #endif /* CK_ANSIC */
  764. {
  765.     if (c < 0xa0) /* (8859-5 is not Latin-5!) */
  766.       return((CHAR)(c & 0xff));
  767.     switch(c) {
  768.       case 0x00A0: return((CHAR)160);
  769.       case 0x00A7: return((CHAR)253);
  770.       case 0x00AD: return((CHAR)173);
  771.       case 0x0401: return((CHAR)161);
  772.       case 0x0402: return((CHAR)162);
  773.       case 0x0403: return((CHAR)163);
  774.       case 0x0404: return((CHAR)164);
  775.       case 0x0405: return((CHAR)165);
  776.       case 0x0406: return((CHAR)166);
  777.       case 0x0407: return((CHAR)167);
  778.       case 0x0408: return((CHAR)168);
  779.       case 0x0409: return((CHAR)169);
  780.       case 0x040A: return((CHAR)170);
  781.       case 0x040B: return((CHAR)171);
  782.       case 0x040C: return((CHAR)172);
  783.       case 0x040E: return((CHAR)174);
  784.       case 0x040F: return((CHAR)175);
  785.       case 0x0410: return((CHAR)176);
  786.       case 0x0411: return((CHAR)177);
  787.       case 0x0412: return((CHAR)178);
  788.       case 0x0413: return((CHAR)179);
  789.       case 0x0414: return((CHAR)180);
  790.       case 0x0415: return((CHAR)181);
  791.       case 0x0416: return((CHAR)182);
  792.       case 0x0417: return((CHAR)183);
  793.       case 0x0418: return((CHAR)184);
  794.       case 0x0419: return((CHAR)185);
  795.       case 0x041A: return((CHAR)186);
  796.       case 0x041B: return((CHAR)187);
  797.       case 0x041C: return((CHAR)188);
  798.       case 0x041D: return((CHAR)189);
  799.       case 0x041E: return((CHAR)190);
  800.       case 0x041F: return((CHAR)191);
  801.       case 0x0420: return((CHAR)192);
  802.       case 0x0421: return((CHAR)193);
  803.       case 0x0422: return((CHAR)194);
  804.       case 0x0423: return((CHAR)195);
  805.       case 0x0424: return((CHAR)196);
  806.       case 0x0425: return((CHAR)197);
  807.       case 0x0426: return((CHAR)198);
  808.       case 0x0427: return((CHAR)199);
  809.       case 0x0428: return((CHAR)200);
  810.       case 0x0429: return((CHAR)201);
  811.       case 0x042A: return((CHAR)202);
  812.       case 0x042B: return((CHAR)203);
  813.       case 0x042C: return((CHAR)204);
  814.       case 0x042D: return((CHAR)205);
  815.       case 0x042E: return((CHAR)206);
  816.       case 0x042F: return((CHAR)207);
  817.       case 0x0430: return((CHAR)208);
  818.       case 0x0431: return((CHAR)209);
  819.       case 0x0432: return((CHAR)210);
  820.       case 0x0433: return((CHAR)211);
  821.       case 0x0434: return((CHAR)212);
  822.       case 0x0435: return((CHAR)213);
  823.       case 0x0436: return((CHAR)214);
  824.       case 0x0437: return((CHAR)215);
  825.       case 0x0438: return((CHAR)216);
  826.       case 0x0439: return((CHAR)217);
  827.       case 0x043A: return((CHAR)218);
  828.       case 0x043B: return((CHAR)219);
  829.       case 0x043C: return((CHAR)220);
  830.       case 0x043D: return((CHAR)221);
  831.       case 0x043E: return((CHAR)222);
  832.       case 0x043F: return((CHAR)223);
  833.       case 0x0440: return((CHAR)224);
  834.       case 0x0441: return((CHAR)225);
  835.       case 0x0442: return((CHAR)226);
  836.       case 0x0443: return((CHAR)227);
  837.       case 0x0444: return((CHAR)228);
  838.       case 0x0445: return((CHAR)229);
  839.       case 0x0446: return((CHAR)230);
  840.       case 0x0447: return((CHAR)231);
  841.       case 0x0448: return((CHAR)232);
  842.       case 0x0449: return((CHAR)233);
  843.       case 0x044A: return((CHAR)234);
  844.       case 0x044B: return((CHAR)235);
  845.       case 0x044C: return((CHAR)236);
  846.       case 0x044D: return((CHAR)237);
  847.       case 0x044E: return((CHAR)238);
  848.       case 0x044F: return((CHAR)239);
  849.       case 0x0451: return((CHAR)241);
  850.       case 0x0452: return((CHAR)242);
  851.       case 0x0453: return((CHAR)243);
  852.       case 0x0454: return((CHAR)244);
  853.       case 0x0455: return((CHAR)245);
  854.       case 0x0456: return((CHAR)246);
  855.       case 0x0457: return((CHAR)247);
  856.       case 0x0458: return((CHAR)248);
  857.       case 0x0459: return((CHAR)249);
  858.       case 0x045A: return((CHAR)250);
  859.       case 0x045B: return((CHAR)251);
  860.       case 0x045C: return((CHAR)252);
  861.       case 0x045E: return((CHAR)254);
  862.       case 0x045F: return((CHAR)255);
  863.       case 0x2116: return((CHAR)240);
  864.       default: return(tx_punc(c));
  865.     }
  866. }
  867. int /* ISO 8859-6 (Latin/Arabic) */
  868. #ifdef CK_ANSIC
  869. tx_8859_6(USHORT c)
  870. #else
  871. tx_8859_6(c) USHORT c;
  872. #endif /* CK_ANSIC */
  873. {
  874.     if (c < 0xa0) /* (8859-6 != Latin-6) */
  875.       return((CHAR)(c & 0xff));
  876.     switch(c) {
  877.       case 0x00A0: return((CHAR)160);
  878.       case 0x00A4: return((CHAR)164);
  879.       case 0x00AD: return((CHAR)173);
  880.       case 0x060C: return((CHAR)172);
  881.       case 0x061B: return((CHAR)187);
  882.       case 0x061F: return((CHAR)191);
  883.       case 0x0621: return((CHAR)193);
  884.       case 0x0622: return((CHAR)194);
  885.       case 0x0623: return((CHAR)195);
  886.       case 0x0624: return((CHAR)196);
  887.       case 0x0625: return((CHAR)197);
  888.       case 0x0626: return((CHAR)198);
  889.       case 0x0627: return((CHAR)199);
  890.       case 0x0628: return((CHAR)200);
  891.       case 0x0629: return((CHAR)201);
  892.       case 0x062A: return((CHAR)202);
  893.       case 0x062B: return((CHAR)203);
  894.       case 0x062C: return((CHAR)204);
  895.       case 0x062D: return((CHAR)205);
  896.       case 0x062E: return((CHAR)206);
  897.       case 0x062F: return((CHAR)207);
  898.       case 0x0630: return((CHAR)208);
  899.       case 0x0631: return((CHAR)209);
  900.       case 0x0632: return((CHAR)210);
  901.       case 0x0633: return((CHAR)211);
  902.       case 0x0634: return((CHAR)212);
  903.       case 0x0635: return((CHAR)213);
  904.       case 0x0636: return((CHAR)214);
  905.       case 0x0637: return((CHAR)215);
  906.       case 0x0638: return((CHAR)216);
  907.       case 0x0639: return((CHAR)217);
  908.       case 0x063A: return((CHAR)218);
  909.       case 0x0640: return((CHAR)224);
  910.       case 0x0641: return((CHAR)225);
  911.       case 0x0642: return((CHAR)226);
  912.       case 0x0643: return((CHAR)227);
  913.       case 0x0644: return((CHAR)228);
  914.       case 0x0645: return((CHAR)229);
  915.       case 0x0646: return((CHAR)230);
  916.       case 0x0647: return((CHAR)231);
  917.       case 0x0648: return((CHAR)232);
  918.       case 0x0649: return((CHAR)233);
  919.       case 0x064A: return((CHAR)234);
  920.       case 0x064B: return((CHAR)235);
  921.       case 0x064C: return((CHAR)236);
  922.       case 0x064D: return((CHAR)237);
  923.       case 0x064E: return((CHAR)238);
  924.       case 0x064F: return((CHAR)239);
  925.       case 0x0650: return((CHAR)240);
  926.       case 0x0651: return((CHAR)241);
  927.       case 0x0652: return((CHAR)242);
  928.       default: return(tx_punc(c));
  929.     }
  930. }
  931. int /* ISO 8859-7 (Latin/Greek) */
  932. #ifdef CK_ANSIC
  933. tx_8859_7(USHORT c)
  934. #else
  935. tx_8859_7(c) USHORT c;
  936. #endif /* CK_ANSIC */
  937. {
  938.     if (c < 0xa0)
  939.       return((CHAR)(c & 0xff));
  940.     switch(c) {
  941. case 0x00a0: return((CHAR)160);
  942. case 0x00a3: return((CHAR)163);
  943. case 0x00a6: return((CHAR)166);
  944. case 0x00a7: return((CHAR)167);
  945. case 0x00a8: return((CHAR)168);
  946. case 0x00a9: return((CHAR)169);
  947. case 0x00ab: return((CHAR)171);
  948. case 0x00ac: return((CHAR)172);
  949. case 0x00ad: return((CHAR)173);
  950. case 0x00b0: return((CHAR)176);
  951. case 0x00b1: return((CHAR)177);
  952. case 0x00b2: return((CHAR)178);
  953. case 0x00b3: return((CHAR)179);
  954. case 0x00b7: return((CHAR)183);
  955. case 0x00bb: return((CHAR)187);
  956. case 0x00bd: return((CHAR)189);
  957. case 0x02bc: return((CHAR)162);
  958. case 0x02bd: return((CHAR)161);
  959. case 0x0384: return((CHAR)180);
  960. case 0x0385: return((CHAR)181);
  961. case 0x0386: return((CHAR)182);
  962. case 0x0388: return((CHAR)184);
  963. case 0x0389: return((CHAR)185);
  964. case 0x038a: return((CHAR)186);
  965. case 0x038c: return((CHAR)188);
  966. case 0x038e: return((CHAR)190);
  967. case 0x038f: return((CHAR)191);
  968. case 0x0390: return((CHAR)192);
  969. case 0x0391: return((CHAR)193);
  970. case 0x0392: return((CHAR)194);
  971. case 0x0393: return((CHAR)195);
  972. case 0x0394: return((CHAR)196);
  973. case 0x0395: return((CHAR)197);
  974. case 0x0396: return((CHAR)198);
  975. case 0x0397: return((CHAR)199);
  976. case 0x0398: return((CHAR)200);
  977. case 0x0399: return((CHAR)201);
  978. case 0x039a: return((CHAR)202);
  979. case 0x039b: return((CHAR)203);
  980. case 0x039c: return((CHAR)204);
  981. case 0x039d: return((CHAR)205);
  982. case 0x039e: return((CHAR)206);
  983. case 0x039f: return((CHAR)207);
  984. case 0x03a0: return((CHAR)208);
  985. case 0x03a1: return((CHAR)209);
  986. case 0x03a3: return((CHAR)211);
  987. case 0x03a4: return((CHAR)212);
  988. case 0x03a5: return((CHAR)213);
  989. case 0x03a6: return((CHAR)214);
  990. case 0x03a7: return((CHAR)215);
  991. case 0x03a8: return((CHAR)216);
  992. case 0x03a9: return((CHAR)217);
  993. case 0x03aa: return((CHAR)218);
  994. case 0x03ab: return((CHAR)219);
  995. case 0x03ac: return((CHAR)220);
  996. case 0x03ad: return((CHAR)221);
  997. case 0x03ae: return((CHAR)222);
  998. case 0x03af: return((CHAR)223);
  999. case 0x03b0: return((CHAR)224);
  1000. case 0x03b1: return((CHAR)225);
  1001. case 0x03b2: return((CHAR)226);
  1002. case 0x03b3: return((CHAR)227);
  1003. case 0x03b4: return((CHAR)228);
  1004. case 0x03b5: return((CHAR)229);
  1005. case 0x03b6: return((CHAR)230);
  1006. case 0x03b7: return((CHAR)231);
  1007. case 0x03b8: return((CHAR)232);
  1008. case 0x03b9: return((CHAR)233);
  1009. case 0x03ba: return((CHAR)234);
  1010. case 0x03bb: return((CHAR)235);
  1011. case 0x03bc: return((CHAR)236);
  1012. case 0x03bd: return((CHAR)237);
  1013. case 0x03be: return((CHAR)238);
  1014. case 0x03bf: return((CHAR)239);
  1015. case 0x03c0: return((CHAR)240);
  1016. case 0x03c1: return((CHAR)241);
  1017. case 0x03c2: return((CHAR)242);
  1018. case 0x03c3: return((CHAR)243);
  1019. case 0x03c4: return((CHAR)244);
  1020. case 0x03c5: return((CHAR)245);
  1021. case 0x03c6: return((CHAR)246);
  1022. case 0x03c7: return((CHAR)247);
  1023. case 0x03c8: return((CHAR)248);
  1024. case 0x03c9: return((CHAR)249);
  1025. case 0x03ca: return((CHAR)250);
  1026. case 0x03cb: return((CHAR)251);
  1027. case 0x03cc: return((CHAR)252);
  1028. case 0x03cd: return((CHAR)253);
  1029. case 0x03ce: return((CHAR)254);
  1030. case 0x2015: return((CHAR)175);
  1031. case 0x2018: return((CHAR)161);
  1032. case 0x2019: return((CHAR)162);
  1033. default: return(tx_punc(c));
  1034.     }
  1035. }
  1036. int /* ISO 8859-8 (Latin/Hebrew) */
  1037. #ifdef CK_ANSIC
  1038. tx_8859_8(USHORT c)
  1039. #else
  1040. tx_8859_8(c) USHORT c;
  1041. #endif /* CK_ANSIC */
  1042. {
  1043.     if (c < 0xa0)
  1044.       return((CHAR)(c & 0xff));
  1045.     switch(c) {
  1046.       case 0x00a0: return((CHAR)160);
  1047.       case 0x00a2: return((CHAR)162);
  1048.       case 0x00a3: return((CHAR)163);
  1049.       case 0x00a4: return((CHAR)164);
  1050.       case 0x00a5: return((CHAR)165);
  1051.       case 0x00a6: return((CHAR)166);
  1052.       case 0x00a7: return((CHAR)167);
  1053.       case 0x00a8: return((CHAR)168);
  1054.       case 0x00a9: return((CHAR)169);
  1055.       case 0x00d7: return((CHAR)170);
  1056.       case 0x00ab: return((CHAR)171);
  1057.       case 0x00ac: return((CHAR)172);
  1058.       case 0x00ad: return((CHAR)173);
  1059.       case 0x00ae: return((CHAR)174);
  1060.       case 0x203e: return((CHAR)175);
  1061.       case 0x00b0: return((CHAR)176);
  1062.       case 0x00b1: return((CHAR)177);
  1063.       case 0x00b2: return((CHAR)178);
  1064.       case 0x00b3: return((CHAR)179);
  1065.       case 0x00b4: return((CHAR)180);
  1066.       case 0x00b5: return((CHAR)181);
  1067.       case 0x00b6: return((CHAR)182);
  1068.       case 0x00b7: return((CHAR)183);
  1069.       case 0x00b8: return((CHAR)184);
  1070.       case 0x00b9: return((CHAR)185);
  1071.       case 0x00f7: return((CHAR)186);
  1072.       case 0x00bb: return((CHAR)187);
  1073.       case 0x00bc: return((CHAR)188);
  1074.       case 0x00bd: return((CHAR)189);
  1075.       case 0x00be: return((CHAR)190);
  1076.       case 0x2017: return((CHAR)223);
  1077.       case 0x05d0: return((CHAR)224);
  1078.       case 0x05d1: return((CHAR)225);
  1079.       case 0x05d2: return((CHAR)226);
  1080.       case 0x05d3: return((CHAR)227);
  1081.       case 0x05d4: return((CHAR)228);
  1082.       case 0x05d5: return((CHAR)229);
  1083.       case 0x05d6: return((CHAR)230);
  1084.       case 0x05d7: return((CHAR)231);
  1085.       case 0x05d8: return((CHAR)232);
  1086.       case 0x05d9: return((CHAR)233);
  1087.       case 0x05da: return((CHAR)234);
  1088.       case 0x05db: return((CHAR)235);
  1089.       case 0x05dc: return((CHAR)236);
  1090.       case 0x05dd: return((CHAR)237);
  1091.       case 0x05de: return((CHAR)238);
  1092.       case 0x05df: return((CHAR)239);
  1093.       case 0x05e0: return((CHAR)240);
  1094.       case 0x05e1: return((CHAR)241);
  1095.       case 0x05e2: return((CHAR)242);
  1096.       case 0x05e3: return((CHAR)243);
  1097.       case 0x05e4: return((CHAR)244);
  1098.       case 0x05e5: return((CHAR)245);
  1099.       case 0x05e6: return((CHAR)246);
  1100.       case 0x05e7: return((CHAR)247);
  1101.       case 0x05e8: return((CHAR)248);
  1102.       case 0x05e9: return((CHAR)249);
  1103.       case 0x05ea: return((CHAR)250);
  1104.       default: return(tx_punc(c));
  1105.     }
  1106. }
  1107. int /* ISO 8859-9 (Latin-4) */
  1108. #ifdef CK_ANSIC
  1109. tx_8859_9(USHORT c)
  1110. #else
  1111. tx_8859_9(c) USHORT c;
  1112. #endif /* CK_ANSIC */
  1113. {
  1114.     if (c < 0xa0)
  1115.       return((CHAR)(c & 0xff));
  1116.     switch(c) {
  1117.       case 0x011E: return((CHAR)208); /* Differs from Latin-1 in */
  1118.       case 0x011F: return((CHAR)240); /* only six places */
  1119.       case 0x0130: return((CHAR)221);
  1120.       case 0x0131: return((CHAR)253);
  1121.       case 0x015E: return((CHAR)222);
  1122.       case 0x015F: return((CHAR)254);
  1123.       default: return(tx_ident(c));
  1124.     }
  1125. }
  1126. int /* Latin-6 */
  1127. #ifdef CK_ANSIC
  1128. tx_8859_10(USHORT c)
  1129. #else
  1130. tx_8859_10(c) USHORT c;
  1131. #endif /* CK_ANSIC */
  1132. {
  1133.     if (c < 0xa0)
  1134.       return((CHAR)(c & 0xff));
  1135.     switch(c) {
  1136.       case 0x00a0: return((CHAR)160);
  1137.       case 0x00ad: return((CHAR)173);
  1138.       case 0x00bd: return((CHAR)189);
  1139.       case 0x00be: return((CHAR)190);
  1140.       case 0x00c1: return((CHAR)193);
  1141.       case 0x00c2: return((CHAR)194);
  1142.       case 0x00c3: return((CHAR)195);
  1143.       case 0x00c4: return((CHAR)196);
  1144.       case 0x00c5: return((CHAR)197);
  1145.       case 0x00c6: return((CHAR)198);
  1146.       case 0x00c9: return((CHAR)201);
  1147.       case 0x00cb: return((CHAR)203);
  1148.       case 0x00cd: return((CHAR)205);
  1149.       case 0x00ce: return((CHAR)206);
  1150.       case 0x00cf: return((CHAR)207);
  1151.       case 0x00d3: return((CHAR)211);
  1152.       case 0x00d4: return((CHAR)212);
  1153.       case 0x00d5: return((CHAR)213);
  1154.       case 0x00d6: return((CHAR)214);
  1155.       case 0x00d8: return((CHAR)216);
  1156.       case 0x00da: return((CHAR)218);
  1157.       case 0x00db: return((CHAR)219);
  1158.       case 0x00dc: return((CHAR)220);
  1159.       case 0x00dd: return((CHAR)221);
  1160.       case 0x00de: return((CHAR)222);
  1161.       case 0x00e1: return((CHAR)225);
  1162.       case 0x00e2: return((CHAR)226);
  1163.       case 0x00e3: return((CHAR)227);
  1164.       case 0x00e4: return((CHAR)228);
  1165.       case 0x00e5: return((CHAR)229);
  1166.       case 0x00e6: return((CHAR)230);
  1167.       case 0x00e9: return((CHAR)233);
  1168.       case 0x00eb: return((CHAR)235);
  1169.       case 0x00ed: return((CHAR)237);
  1170.       case 0x00ee: return((CHAR)238);
  1171.       case 0x00ef: return((CHAR)239);
  1172.       case 0x00f0: return((CHAR)240);
  1173.       case 0x00f1: return((CHAR)241);
  1174.       case 0x00f3: return((CHAR)243);
  1175.       case 0x00f4: return((CHAR)244);
  1176.       case 0x00f5: return((CHAR)245);
  1177.       case 0x00f6: return((CHAR)246);
  1178.       case 0x00f8: return((CHAR)248);
  1179.       case 0x00fa: return((CHAR)250);
  1180.       case 0x00fb: return((CHAR)251);
  1181.       case 0x00fc: return((CHAR)252);
  1182.       case 0x00fd: return((CHAR)253);
  1183.       case 0x00fe: return((CHAR)254);
  1184.       case 0x0100: return((CHAR)192);
  1185.       case 0x0101: return((CHAR)224);
  1186.       case 0x0104: return((CHAR)161);
  1187.       case 0x0105: return((CHAR)177);
  1188.       case 0x010c: return((CHAR)200);
  1189.       case 0x010d: return((CHAR)232);
  1190.       case 0x0110: return((CHAR)208);
  1191.       case 0x0111: return((CHAR)176);
  1192.       case 0x0112: return((CHAR)162);
  1193.       case 0x0113: return((CHAR)178);
  1194.       case 0x0116: return((CHAR)204);
  1195.       case 0x0117: return((CHAR)236);
  1196.       case 0x0118: return((CHAR)202);
  1197.       case 0x0119: return((CHAR)234);
  1198.       case 0x0122: return((CHAR)163);
  1199.       case 0x0123: return((CHAR)179);
  1200.       case 0x0128: return((CHAR)165);
  1201.       case 0x0129: return((CHAR)181);
  1202.       case 0x012a: return((CHAR)164);
  1203.       case 0x012b: return((CHAR)180);
  1204.       case 0x012e: return((CHAR)199);
  1205.       case 0x012f: return((CHAR)231);
  1206.       case 0x0136: return((CHAR)166);
  1207.       case 0x0137: return((CHAR)182);
  1208.       case 0x0138: return((CHAR)174);
  1209.       case 0x013b: return((CHAR)167);
  1210.       case 0x013c: return((CHAR)183);
  1211.       case 0x0143: return((CHAR)168);
  1212.       case 0x0144: return((CHAR)184);
  1213.       case 0x0145: return((CHAR)209);
  1214.       case 0x014a: return((CHAR)175);
  1215.       case 0x014b: return((CHAR)191);
  1216.       case 0x014c: return((CHAR)210);
  1217.       case 0x014d: return((CHAR)242);
  1218.       case 0x0156: return((CHAR)169);
  1219.       case 0x0157: return((CHAR)185);
  1220.       case 0x0160: return((CHAR)170);
  1221.       case 0x0161: return((CHAR)186);
  1222.       case 0x0166: return((CHAR)171);
  1223.       case 0x0167: return((CHAR)187);
  1224.       case 0x0168: return((CHAR)215);
  1225.       case 0x0169: return((CHAR)247);
  1226.       case 0x016a: return((CHAR)223);
  1227.       case 0x016b: return((CHAR)255);
  1228.       case 0x0172: return((CHAR)217);
  1229.       case 0x0173: return((CHAR)249);
  1230.       case 0x017d: return((CHAR)172);
  1231.       case 0x017e: return((CHAR)188);
  1232.       default: return(tx_ident(c));
  1233.     }
  1234. }
  1235. int /* ISO 8859-15 Latin-9 */
  1236. #ifdef CK_ANSIC
  1237. tx_8859_15(USHORT c)
  1238. #else
  1239. tx_8859_15(c) USHORT c;
  1240. #endif /* CK_ANSIC */
  1241. {
  1242.     if (c < 0xa0)
  1243.       return((CHAR)(c & 0xff));
  1244.     switch(c) {
  1245.       case 0x20AC: return((CHAR)0xA4); /* Differs from Latin-1 in */
  1246.       case 0x0160: return((CHAR)0xAC); /* only eight places */
  1247.       case 0x0161: return((CHAR)0xA8);
  1248.       case 0x017D: return((CHAR)0xB4);
  1249.       case 0x017E: return((CHAR)0xB8);
  1250.       case 0x0152: return((CHAR)0xBC);
  1251.       case 0x0153: return((CHAR)0xBD);
  1252.       case 0x0178: return((CHAR)0xBE);
  1253.       default: return(tx_ident(c));
  1254.     }
  1255. }
  1256. int /* Old KOI-8 (ECMA 113 First Ed.) */
  1257. #ifdef CK_ANSIC
  1258. tx_koi8(USHORT c)
  1259. #else
  1260. tx_koi8(c) USHORT c;
  1261. #endif /* CK_ANSIC */
  1262. {
  1263.     if (c < 0xa0)
  1264.       return((CHAR)(c & 0xff));
  1265.     switch(c) {
  1266.       case 0x0410: return((CHAR)(225 & 0xff));
  1267.       case 0x0411: return((CHAR)(226 & 0xff));
  1268.       case 0x0412: return((CHAR)(247 & 0xff));
  1269.       case 0x0413: return((CHAR)(231 & 0xff));
  1270.       case 0x0414: return((CHAR)(228 & 0xff));
  1271.       case 0x0415: return((CHAR)(229 & 0xff));
  1272.       case 0x0416: return((CHAR)(246 & 0xff));
  1273.       case 0x0417: return((CHAR)(250 & 0xff));
  1274.       case 0x0418: return((CHAR)(233 & 0xff));
  1275.       case 0x0419: return((CHAR)(234 & 0xff));
  1276.       case 0x041a: return((CHAR)(235 & 0xff));
  1277.       case 0x041b: return((CHAR)(236 & 0xff));
  1278.       case 0x041c: return((CHAR)(237 & 0xff));
  1279.       case 0x041d: return((CHAR)(238 & 0xff));
  1280.       case 0x041e: return((CHAR)(239 & 0xff));
  1281.       case 0x041f: return((CHAR)(240 & 0xff));
  1282.       case 0x0420: return((CHAR)(242 & 0xff));
  1283.       case 0x0421: return((CHAR)(243 & 0xff));
  1284.       case 0x0422: return((CHAR)(244 & 0xff));
  1285.       case 0x0423: return((CHAR)(245 & 0xff));
  1286.       case 0x0424: return((CHAR)(230 & 0xff));
  1287.       case 0x0425: return((CHAR)(232 & 0xff));
  1288.       case 0x0426: return((CHAR)(227 & 0xff));
  1289.       case 0x0427: return((CHAR)(254 & 0xff));
  1290.       case 0x0428: return((CHAR)(251 & 0xff));
  1291.       case 0x0429: return((CHAR)(253 & 0xff));
  1292.       case 0x042b: return((CHAR)(249 & 0xff));
  1293.       case 0x042c: return((CHAR)(248 & 0xff));
  1294.       case 0x042d: return((CHAR)(252 & 0xff));
  1295.       case 0x042e: return((CHAR)(224 & 0xff));
  1296.       case 0x042f: return((CHAR)(241 & 0xff));
  1297.       case 0x0430: return((CHAR)(193 & 0xff));
  1298.       case 0x0431: return((CHAR)(194 & 0xff));
  1299.       case 0x0432: return((CHAR)(215 & 0xff));
  1300.       case 0x0433: return((CHAR)(199 & 0xff));
  1301.       case 0x0434: return((CHAR)(196 & 0xff));
  1302.       case 0x0435: return((CHAR)(197 & 0xff));
  1303.       case 0x0436: return((CHAR)(214 & 0xff));
  1304.       case 0x0437: return((CHAR)(218 & 0xff));
  1305.       case 0x0438: return((CHAR)(201 & 0xff));
  1306.       case 0x0439: return((CHAR)(202 & 0xff));
  1307.       case 0x043a: return((CHAR)(203 & 0xff));
  1308.       case 0x043b: return((CHAR)(204 & 0xff));
  1309.       case 0x043c: return((CHAR)(205 & 0xff));
  1310.       case 0x043d: return((CHAR)(206 & 0xff));
  1311.       case 0x043e: return((CHAR)(207 & 0xff));
  1312.       case 0x043f: return((CHAR)(208 & 0xff));
  1313.       case 0x0440: return((CHAR)(210 & 0xff));
  1314.       case 0x0441: return((CHAR)(211 & 0xff));
  1315.       case 0x0442: return((CHAR)(212 & 0xff));
  1316.       case 0x0443: return((CHAR)(213 & 0xff));
  1317.       case 0x0444: return((CHAR)(198 & 0xff));
  1318.       case 0x0445: return((CHAR)(200 & 0xff));
  1319.       case 0x0446: return((CHAR)(195 & 0xff));
  1320.       case 0x0447: return((CHAR)(222 & 0xff));
  1321.       case 0x0448: return((CHAR)(219 & 0xff));
  1322.       case 0x0449: return((CHAR)(221 & 0xff));
  1323.       case 0x044a: return((CHAR)(223 & 0xff));
  1324.       case 0x044b: return((CHAR)(217 & 0xff));
  1325.       case 0x044c: return((CHAR)(216 & 0xff));
  1326.       case 0x044d: return((CHAR)(220 & 0xff));
  1327.       case 0x044e: return((CHAR)(192 & 0xff));
  1328.       case 0x044f: return((CHAR)(209 & 0xff));
  1329.       default: return(tx_ident(c));
  1330.     }
  1331. }
  1332. int /* UCS-2 to KOI8-R (Russia) */
  1333. #ifdef CK_ANSIC
  1334. tx_koi8r(USHORT c)
  1335. #else
  1336. tx_koi8r(c) USHORT c;
  1337. #endif /* CK_ANSIC */
  1338. {
  1339.     if (c < 0x00A0)
  1340.       return((CHAR)(c & 0xff));
  1341.     switch(c) {
  1342.       case 0x00A0: return((CHAR)(154 & 0xff));
  1343.       case 0x00A9: return((CHAR)(191 & 0xff));
  1344.       case 0x00B0: return((CHAR)(156 & 0xff));
  1345.       case 0x00B2: return((CHAR)(157 & 0xff));
  1346.       case 0x00B7: return((CHAR)(158 & 0xff));
  1347.       case 0x00F7: return((CHAR)(159 & 0xff));
  1348.       case 0x0401: return((CHAR)(179 & 0xff));
  1349.       case 0x0410: return((CHAR)(225 & 0xff));
  1350.       case 0x0411: return((CHAR)(226 & 0xff));
  1351.       case 0x0412: return((CHAR)(247 & 0xff));
  1352.       case 0x0413: return((CHAR)(231 & 0xff));
  1353.       case 0x0414: return((CHAR)(228 & 0xff));
  1354.       case 0x0415: return((CHAR)(229 & 0xff));
  1355.       case 0x0416: return((CHAR)(246 & 0xff));
  1356.       case 0x0417: return((CHAR)(250 & 0xff));
  1357.       case 0x0418: return((CHAR)(233 & 0xff));
  1358.       case 0x0419: return((CHAR)(234 & 0xff));
  1359.       case 0x041A: return((CHAR)(235 & 0xff));
  1360.       case 0x041B: return((CHAR)(236 & 0xff));
  1361.       case 0x041C: return((CHAR)(237 & 0xff));
  1362.       case 0x041D: return((CHAR)(238 & 0xff));
  1363.       case 0x041E: return((CHAR)(239 & 0xff));
  1364.       case 0x041F: return((CHAR)(240 & 0xff));
  1365.       case 0x0420: return((CHAR)(242 & 0xff));
  1366.       case 0x0421: return((CHAR)(243 & 0xff));
  1367.       case 0x0422: return((CHAR)(244 & 0xff));
  1368.       case 0x0423: return((CHAR)(245 & 0xff));
  1369.       case 0x0424: return((CHAR)(230 & 0xff));
  1370.       case 0x0425: return((CHAR)(232 & 0xff));
  1371.       case 0x0426: return((CHAR)(227 & 0xff));
  1372.       case 0x0427: return((CHAR)(254 & 0xff));
  1373.       case 0x0428: return((CHAR)(251 & 0xff));
  1374.       case 0x0429: return((CHAR)(253 & 0xff));
  1375.       case 0x042A: return((CHAR)(255 & 0xff));
  1376.       case 0x042B: return((CHAR)(249 & 0xff));
  1377.       case 0x042C: return((CHAR)(248 & 0xff));
  1378.       case 0x042D: return((CHAR)(252 & 0xff));
  1379.       case 0x042E: return((CHAR)(224 & 0xff));
  1380.       case 0x042F: return((CHAR)(241 & 0xff));
  1381.       case 0x0430: return((CHAR)(193 & 0xff));
  1382.       case 0x0431: return((CHAR)(194 & 0xff));
  1383.       case 0x0432: return((CHAR)(215 & 0xff));
  1384.       case 0x0433: return((CHAR)(199 & 0xff));
  1385.       case 0x0434: return((CHAR)(196 & 0xff));
  1386.       case 0x0435: return((CHAR)(197 & 0xff));
  1387.       case 0x0436: return((CHAR)(214 & 0xff));
  1388.       case 0x0437: return((CHAR)(218 & 0xff));
  1389.       case 0x0438: return((CHAR)(201 & 0xff));
  1390.       case 0x0439: return((CHAR)(202 & 0xff));
  1391.       case 0x043A: return((CHAR)(203 & 0xff));
  1392.       case 0x043B: return((CHAR)(204 & 0xff));
  1393.       case 0x043C: return((CHAR)(205 & 0xff));
  1394.       case 0x043D: return((CHAR)(206 & 0xff));
  1395.       case 0x043E: return((CHAR)(207 & 0xff));
  1396.       case 0x043F: return((CHAR)(208 & 0xff));
  1397.       case 0x0440: return((CHAR)(210 & 0xff));
  1398.       case 0x0441: return((CHAR)(211 & 0xff));
  1399.       case 0x0442: return((CHAR)(212 & 0xff));
  1400.       case 0x0443: return((CHAR)(213 & 0xff));
  1401.       case 0x0444: return((CHAR)(198 & 0xff));
  1402.       case 0x0445: return((CHAR)(200 & 0xff));
  1403.       case 0x0446: return((CHAR)(195 & 0xff));
  1404.       case 0x0447: return((CHAR)(222 & 0xff));
  1405.       case 0x0448: return((CHAR)(219 & 0xff));
  1406.       case 0x0449: return((CHAR)(221 & 0xff));
  1407.       case 0x044A: return((CHAR)(223 & 0xff));
  1408.       case 0x044B: return((CHAR)(217 & 0xff));
  1409.       case 0x044C: return((CHAR)(216 & 0xff));
  1410.       case 0x044D: return((CHAR)(220 & 0xff));
  1411.       case 0x044E: return((CHAR)(192 & 0xff));
  1412.       case 0x044F: return((CHAR)(209 & 0xff));
  1413.       case 0x0451: return((CHAR)(163 & 0xff));
  1414.       case 0x2219: return((CHAR)(149 & 0xff));
  1415.       case 0x221A: return((CHAR)(150 & 0xff));
  1416.       case 0x2248: return((CHAR)(151 & 0xff));
  1417.       case 0x2264: return((CHAR)(152 & 0xff));
  1418.       case 0x2265: return((CHAR)(153 & 0xff));
  1419.       case 0x2320: return((CHAR)(147 & 0xff));
  1420.       case 0x2321: return((CHAR)(155 & 0xff));
  1421.       case 0x2500: return((CHAR)(128 & 0xff));
  1422.       case 0x2502: return((CHAR)(129 & 0xff));
  1423.       case 0x250C: return((CHAR)(130 & 0xff));
  1424.       case 0x2510: return((CHAR)(131 & 0xff));
  1425.       case 0x2514: return((CHAR)(132 & 0xff));
  1426.       case 0x2518: return((CHAR)(133 & 0xff));
  1427.       case 0x251C: return((CHAR)(134 & 0xff));
  1428.       case 0x2524: return((CHAR)(135 & 0xff));
  1429.       case 0x252C: return((CHAR)(136 & 0xff));
  1430.       case 0x2534: return((CHAR)(137 & 0xff));
  1431.       case 0x253C: return((CHAR)(138 & 0xff));
  1432.       case 0x2550: return((CHAR)(160 & 0xff));
  1433.       case 0x2551: return((CHAR)(161 & 0xff));
  1434.       case 0x2552: return((CHAR)(162 & 0xff));
  1435.       case 0x2553: return((CHAR)(164 & 0xff));
  1436.       case 0x2554: return((CHAR)(165 & 0xff));
  1437.       case 0x2555: return((CHAR)(166 & 0xff));
  1438.       case 0x2556: return((CHAR)(167 & 0xff));
  1439.       case 0x2557: return((CHAR)(168 & 0xff));
  1440.       case 0x2558: return((CHAR)(169 & 0xff));
  1441.       case 0x2559: return((CHAR)(170 & 0xff));
  1442.       case 0x255A: return((CHAR)(171 & 0xff));
  1443.       case 0x255B: return((CHAR)(172 & 0xff));
  1444.       case 0x255C: return((CHAR)(173 & 0xff));
  1445.       case 0x255D: return((CHAR)(174 & 0xff));
  1446.       case 0x255E: return((CHAR)(175 & 0xff));
  1447.       case 0x255F: return((CHAR)(176 & 0xff));
  1448.       case 0x2560: return((CHAR)(177 & 0xff));
  1449.       case 0x2561: return((CHAR)(178 & 0xff));
  1450.       case 0x2562: return((CHAR)(180 & 0xff));
  1451.       case 0x2563: return((CHAR)(181 & 0xff));
  1452.       case 0x2564: return((CHAR)(182 & 0xff));
  1453.       case 0x2565: return((CHAR)(183 & 0xff));
  1454.       case 0x2566: return((CHAR)(184 & 0xff));
  1455.       case 0x2567: return((CHAR)(185 & 0xff));
  1456.       case 0x2568: return((CHAR)(186 & 0xff));
  1457.       case 0x2569: return((CHAR)(187 & 0xff));
  1458.       case 0x256A: return((CHAR)(188 & 0xff));
  1459.       case 0x256B: return((CHAR)(189 & 0xff));
  1460.       case 0x256C: return((CHAR)(190 & 0xff));
  1461.       case 0x2580: return((CHAR)(139 & 0xff));
  1462.       case 0x2584: return((CHAR)(140 & 0xff));
  1463.       case 0x2588: return((CHAR)(141 & 0xff));
  1464.       case 0x258C: return((CHAR)(142 & 0xff));
  1465.       case 0x2590: return((CHAR)(143 & 0xff));
  1466.       case 0x2591: return((CHAR)(144 & 0xff));
  1467.       case 0x2592: return((CHAR)(145 & 0xff));
  1468.       case 0x2593: return((CHAR)(146 & 0xff));
  1469.       case 0x25A0: return((CHAR)(148 & 0xff));
  1470.       default: return(tx_ident(c));
  1471.     }
  1472. }
  1473. int /* KOI8-U (Ukraine) */
  1474. #ifdef CK_ANSIC
  1475. tx_koi8u(USHORT c)
  1476. #else
  1477. tx_koi8u(c) USHORT c;
  1478. #endif /* CK_ANSIC */
  1479. {
  1480.     if (c < 0xa0)
  1481.       return((CHAR)(c & 0xff));
  1482.     switch(c) {
  1483.       case 0x00A0: return((CHAR)(154 & 0xff));
  1484.       case 0x00A9: return((CHAR)(191 & 0xff));
  1485.       case 0x00B0: return((CHAR)(156 & 0xff));
  1486.       case 0x00B2: return((CHAR)(157 & 0xff));
  1487.       case 0x00B7: return((CHAR)(158 & 0xff));
  1488.       case 0x00F7: return((CHAR)(159 & 0xff));
  1489.       case 0x0401: return((CHAR)(179 & 0xff));
  1490.       case 0x0404: return((CHAR)(180 & 0xff));
  1491.       case 0x0406: return((CHAR)(182 & 0xff));
  1492.       case 0x0407: return((CHAR)(183 & 0xff));
  1493.       case 0x0410: return((CHAR)(225 & 0xff));
  1494.       case 0x0411: return((CHAR)(226 & 0xff));
  1495.       case 0x0412: return((CHAR)(247 & 0xff));
  1496.       case 0x0413: return((CHAR)(231 & 0xff));
  1497.       case 0x0414: return((CHAR)(228 & 0xff));
  1498.       case 0x0415: return((CHAR)(229 & 0xff));
  1499.       case 0x0416: return((CHAR)(246 & 0xff));
  1500.       case 0x0417: return((CHAR)(250 & 0xff));
  1501.       case 0x0418: return((CHAR)(233 & 0xff));
  1502.       case 0x0419: return((CHAR)(234 & 0xff));
  1503.       case 0x041A: return((CHAR)(235 & 0xff));
  1504.       case 0x041B: return((CHAR)(236 & 0xff));
  1505.       case 0x041C: return((CHAR)(237 & 0xff));
  1506.       case 0x041D: return((CHAR)(238 & 0xff));
  1507.       case 0x041E: return((CHAR)(239 & 0xff));
  1508.       case 0x041F: return((CHAR)(240 & 0xff));
  1509.       case 0x0420: return((CHAR)(242 & 0xff));
  1510.       case 0x0421: return((CHAR)(243 & 0xff));
  1511.       case 0x0422: return((CHAR)(244 & 0xff));
  1512.       case 0x0423: return((CHAR)(245 & 0xff));
  1513.       case 0x0424: return((CHAR)(230 & 0xff));
  1514.       case 0x0425: return((CHAR)(232 & 0xff));
  1515.       case 0x0426: return((CHAR)(227 & 0xff));
  1516.       case 0x0427: return((CHAR)(254 & 0xff));
  1517.       case 0x0428: return((CHAR)(251 & 0xff));
  1518.       case 0x0429: return((CHAR)(253 & 0xff));
  1519.       case 0x042A: return((CHAR)(255 & 0xff));
  1520.       case 0x042B: return((CHAR)(249 & 0xff));
  1521.       case 0x042C: return((CHAR)(248 & 0xff));
  1522.       case 0x042D: return((CHAR)(252 & 0xff));
  1523.       case 0x042E: return((CHAR)(224 & 0xff));
  1524.       case 0x042F: return((CHAR)(241 & 0xff));
  1525.       case 0x0430: return((CHAR)(193 & 0xff));
  1526.       case 0x0431: return((CHAR)(194 & 0xff));
  1527.       case 0x0432: return((CHAR)(215 & 0xff));
  1528.       case 0x0433: return((CHAR)(199 & 0xff));
  1529.       case 0x0434: return((CHAR)(196 & 0xff));
  1530.       case 0x0435: return((CHAR)(197 & 0xff));
  1531.       case 0x0436: return((CHAR)(214 & 0xff));
  1532.       case 0x0437: return((CHAR)(218 & 0xff));
  1533.       case 0x0438: return((CHAR)(201 & 0xff));
  1534.       case 0x0439: return((CHAR)(202 & 0xff));
  1535.       case 0x043A: return((CHAR)(203 & 0xff));
  1536.       case 0x043B: return((CHAR)(204 & 0xff));
  1537.       case 0x043C: return((CHAR)(205 & 0xff));
  1538.       case 0x043D: return((CHAR)(206 & 0xff));
  1539.       case 0x043E: return((CHAR)(207 & 0xff));
  1540.       case 0x043F: return((CHAR)(208 & 0xff));
  1541.       case 0x0440: return((CHAR)(210 & 0xff));
  1542.       case 0x0441: return((CHAR)(211 & 0xff));
  1543.       case 0x0442: return((CHAR)(212 & 0xff));
  1544.       case 0x0443: return((CHAR)(213 & 0xff));
  1545.       case 0x0444: return((CHAR)(198 & 0xff));
  1546.       case 0x0445: return((CHAR)(200 & 0xff));
  1547.       case 0x0446: return((CHAR)(195 & 0xff));
  1548.       case 0x0447: return((CHAR)(222 & 0xff));
  1549.       case 0x0448: return((CHAR)(219 & 0xff));
  1550.       case 0x0449: return((CHAR)(221 & 0xff));
  1551.       case 0x044A: return((CHAR)(223 & 0xff));
  1552.       case 0x044B: return((CHAR)(217 & 0xff));
  1553.       case 0x044C: return((CHAR)(216 & 0xff));
  1554.       case 0x044D: return((CHAR)(220 & 0xff));
  1555.       case 0x044E: return((CHAR)(192 & 0xff));
  1556.       case 0x044F: return((CHAR)(209 & 0xff));
  1557.       case 0x0451: return((CHAR)(163 & 0xff));
  1558.       case 0x0454: return((CHAR)(164 & 0xff));
  1559.       case 0x0456: return((CHAR)(166 & 0xff));
  1560.       case 0x0457: return((CHAR)(167 & 0xff));
  1561.       case 0x0490: return((CHAR)(189 & 0xff));
  1562.       case 0x0491: return((CHAR)(173 & 0xff));
  1563.       case 0x2219: return((CHAR)(149 & 0xff));
  1564.       case 0x221A: return((CHAR)(150 & 0xff));
  1565.       case 0x2248: return((CHAR)(151 & 0xff));
  1566.       case 0x2264: return((CHAR)(152 & 0xff));
  1567.       case 0x2265: return((CHAR)(153 & 0xff));
  1568.       case 0x2320: return((CHAR)(147 & 0xff));
  1569.       case 0x2321: return((CHAR)(155 & 0xff));
  1570.       case 0x2500: return((CHAR)(128 & 0xff));
  1571.       case 0x2502: return((CHAR)(129 & 0xff));
  1572.       case 0x250C: return((CHAR)(130 & 0xff));
  1573.       case 0x2510: return((CHAR)(131 & 0xff));
  1574.       case 0x2514: return((CHAR)(132 & 0xff));
  1575.       case 0x2518: return((CHAR)(133 & 0xff));
  1576.       case 0x251C: return((CHAR)(134 & 0xff));
  1577.       case 0x2524: return((CHAR)(135 & 0xff));
  1578.       case 0x252C: return((CHAR)(136 & 0xff));
  1579.       case 0x2534: return((CHAR)(137 & 0xff));
  1580.       case 0x253C: return((CHAR)(138 & 0xff));
  1581.       case 0x2550: return((CHAR)(160 & 0xff));
  1582.       case 0x2551: return((CHAR)(161 & 0xff));
  1583.       case 0x2552: return((CHAR)(162 & 0xff));
  1584.       case 0x2554: return((CHAR)(165 & 0xff));
  1585.       case 0x2557: return((CHAR)(168 & 0xff));
  1586.       case 0x2558: return((CHAR)(169 & 0xff));
  1587.       case 0x2559: return((CHAR)(170 & 0xff));
  1588.       case 0x255A: return((CHAR)(171 & 0xff));
  1589.       case 0x255B: return((CHAR)(172 & 0xff));
  1590.       case 0x255D: return((CHAR)(174 & 0xff));
  1591.       case 0x255E: return((CHAR)(175 & 0xff));
  1592.       case 0x255F: return((CHAR)(176 & 0xff));
  1593.       case 0x2560: return((CHAR)(177 & 0xff));
  1594.       case 0x2561: return((CHAR)(178 & 0xff));
  1595.       case 0x2563: return((CHAR)(181 & 0xff));
  1596.       case 0x2566: return((CHAR)(184 & 0xff));
  1597.       case 0x2567: return((CHAR)(185 & 0xff));
  1598.       case 0x2568: return((CHAR)(186 & 0xff));
  1599.       case 0x2569: return((CHAR)(187 & 0xff));
  1600.       case 0x256A: return((CHAR)(188 & 0xff));
  1601.       case 0x256C: return((CHAR)(190 & 0xff));
  1602.       case 0x2580: return((CHAR)(139 & 0xff));
  1603.       case 0x2584: return((CHAR)(140 & 0xff));
  1604.       case 0x2588: return((CHAR)(141 & 0xff));
  1605.       case 0x258C: return((CHAR)(142 & 0xff));
  1606.       case 0x2590: return((CHAR)(143 & 0xff));
  1607.       case 0x2591: return((CHAR)(144 & 0xff));
  1608.       case 0x2592: return((CHAR)(145 & 0xff));
  1609.       case 0x2593: return((CHAR)(146 & 0xff));
  1610.       case 0x25A0: return((CHAR)(148 & 0xff));
  1611.       default: return(tx_ident(c));
  1612.     }
  1613. }
  1614. int /* DEC MCS */
  1615. #ifdef CK_ANSIC
  1616. tx_decmcs(USHORT c)
  1617. #else
  1618. tx_decmcs(c) USHORT c;
  1619. #endif /* CK_ANSIC */
  1620. {
  1621.     if (c < 0xa0)
  1622.       return((CHAR)(c & 0xff));
  1623.     switch(c) {
  1624.       case 0x00a6:
  1625.       case 0x00a8:
  1626.       case 0x00ac:
  1627.       case 0x00ae:
  1628.       case 0x00af:
  1629.       case 0x00b4:
  1630.       case 0x00b8:
  1631.       case 0x00be:
  1632.       case 0x00d0:
  1633.       case 0x00de:
  1634.       case 0x00f0:
  1635.       case 0x00fe:
  1636.       case 0x00ff:
  1637.         return(-1); /* These are all undefined in DECMCS */
  1638.       case 0x00a4: /* Currency sign */
  1639. return((CHAR)0xa8);
  1640.       case 0x0152: /* OE */
  1641. return((CHAR)0xd7);
  1642.       case 0x0153: /* oe */
  1643. return((CHAR)0xf7);
  1644.       default: return(tx_ident(c));
  1645.     }
  1646. }
  1647. int /* NeXTSTEP */
  1648. #ifdef CK_ANSIC
  1649. tx_nextstep(USHORT c)
  1650. #else
  1651. tx_nextstep(c) USHORT c;
  1652. #endif /* CK_ANSIC */
  1653. {
  1654.     if (c < 0x80) /* Has C1 graphics */
  1655.       return((CHAR)(c & 0xff));
  1656.     switch (c) {
  1657.       case 0x00a0: return((CHAR)(128 & 0xff));
  1658.       case 0x00a1: return((CHAR)(161 & 0xff));
  1659.       case 0x00a2: return((CHAR)(162 & 0xff));
  1660.       case 0x00a3: return((CHAR)(163 & 0xff));
  1661.       case 0x00a4: return((CHAR)(168 & 0xff));
  1662.       case 0x00a5: return((CHAR)(165 & 0xff));
  1663.       case 0x00a6: return((CHAR)(181 & 0xff));
  1664.       case 0x00a7: return((CHAR)(167 & 0xff));
  1665.       case 0x00a8: return((CHAR)(200 & 0xff));
  1666.       case 0x00a9: return((CHAR)(160 & 0xff));
  1667.       case 0x00aa: return((CHAR)(227 & 0xff));
  1668.       case 0x00ab: return((CHAR)(171 & 0xff));
  1669.       case 0x00ac: return((CHAR)(190 & 0xff));
  1670.       case 0x00ae: return((CHAR)(176 & 0xff));
  1671.       case 0x00af: return((CHAR)(197 & 0xff));
  1672.       case 0x00b1: return((CHAR)(209 & 0xff));
  1673.       case 0x00b2: return((CHAR)(201 & 0xff));
  1674.       case 0x00b3: return((CHAR)(204 & 0xff));
  1675.       case 0x00b4: return((CHAR)(194 & 0xff));
  1676.       case 0x00b5: return((CHAR)(157 & 0xff));
  1677.       case 0x00b6: return((CHAR)(182 & 0xff));
  1678.       case 0x00b7: return((CHAR)(180 & 0xff));
  1679.       case 0x00b8: return((CHAR)(203 & 0xff));
  1680.       case 0x00b9: return((CHAR)(192 & 0xff));
  1681.       case 0x00ba: return((CHAR)(235 & 0xff));
  1682.       case 0x00bb: return((CHAR)(187 & 0xff));
  1683.       case 0x00bc: return((CHAR)(210 & 0xff));
  1684.       case 0x00bd: return((CHAR)(211 & 0xff));
  1685.       case 0x00be: return((CHAR)(212 & 0xff));
  1686.       case 0x00bf: return((CHAR)(191 & 0xff));
  1687.       case 0x00c0: return((CHAR)(129 & 0xff));
  1688.       case 0x00c1: return((CHAR)(130 & 0xff));
  1689.       case 0x00c2: return((CHAR)(131 & 0xff));
  1690.       case 0x00c3: return((CHAR)(132 & 0xff));
  1691.       case 0x00c4: return((CHAR)(133 & 0xff));
  1692.       case 0x00c5: return((CHAR)(134 & 0xff));
  1693.       case 0x00c6: return((CHAR)(225 & 0xff));
  1694.       case 0x00c7: return((CHAR)(135 & 0xff));
  1695.       case 0x00c8: return((CHAR)(136 & 0xff));
  1696.       case 0x00c9: return((CHAR)(137 & 0xff));
  1697.       case 0x00ca: return((CHAR)(138 & 0xff));
  1698.       case 0x00cb: return((CHAR)(139 & 0xff));
  1699.       case 0x00cc: return((CHAR)(140 & 0xff));
  1700.       case 0x00cd: return((CHAR)(141 & 0xff));
  1701.       case 0x00ce: return((CHAR)(142 & 0xff));
  1702.       case 0x00cf: return((CHAR)(143 & 0xff));
  1703.       case 0x00d0: return((CHAR)(144 & 0xff));
  1704.       case 0x00d1: return((CHAR)(145 & 0xff));
  1705.       case 0x00d2: return((CHAR)(146 & 0xff));
  1706.       case 0x00d3: return((CHAR)(147 & 0xff));
  1707.       case 0x00d4: return((CHAR)(148 & 0xff));
  1708.       case 0x00d5: return((CHAR)(149 & 0xff));
  1709.       case 0x00d6: return((CHAR)(150 & 0xff));
  1710.       case 0x00d7: return((CHAR)(158 & 0xff));
  1711.       case 0x00d8: return((CHAR)(233 & 0xff));
  1712.       case 0x00d9: return((CHAR)(151 & 0xff));
  1713.       case 0x00da: return((CHAR)(152 & 0xff));
  1714.       case 0x00db: return((CHAR)(153 & 0xff));
  1715.       case 0x00dc: return((CHAR)(154 & 0xff));
  1716.       case 0x00dd: return((CHAR)(155 & 0xff));
  1717.       case 0x00de: return((CHAR)(156 & 0xff));
  1718.       case 0x00df: return((CHAR)(251 & 0xff));
  1719.       case 0x00e0: return((CHAR)(213 & 0xff));
  1720.       case 0x00e1: return((CHAR)(214 & 0xff));
  1721.       case 0x00e2: return((CHAR)(215 & 0xff));
  1722.       case 0x00e3: return((CHAR)(216 & 0xff));
  1723.       case 0x00e4: return((CHAR)(217 & 0xff));
  1724.       case 0x00e5: return((CHAR)(218 & 0xff));
  1725.       case 0x00e6: return((CHAR)(241 & 0xff));
  1726.       case 0x00e7: return((CHAR)(219 & 0xff));
  1727.       case 0x00e8: return((CHAR)(220 & 0xff));
  1728.       case 0x00e9: return((CHAR)(221 & 0xff));
  1729.       case 0x00ea: return((CHAR)(222 & 0xff));
  1730.       case 0x00eb: return((CHAR)(223 & 0xff));
  1731.       case 0x00ec: return((CHAR)(224 & 0xff));
  1732.       case 0x00ed: return((CHAR)(226 & 0xff));
  1733.       case 0x00ee: return((CHAR)(228 & 0xff));
  1734.       case 0x00ef: return((CHAR)(229 & 0xff));
  1735.       case 0x00f0: return((CHAR)(230 & 0xff));
  1736.       case 0x00f1: return((CHAR)(231 & 0xff));
  1737.       case 0x00f2: return((CHAR)(236 & 0xff));
  1738.       case 0x00f3: return((CHAR)(237 & 0xff));
  1739.       case 0x00f4: return((CHAR)(238 & 0xff));
  1740.       case 0x00f5: return((CHAR)(239 & 0xff));
  1741.       case 0x00f6: return((CHAR)(240 & 0xff));
  1742.       case 0x00f7: return((CHAR)(159 & 0xff));
  1743.       case 0x00f8: return((CHAR)(249 & 0xff));
  1744.       case 0x00f9: return((CHAR)(242 & 0xff));
  1745.       case 0x00fa: return((CHAR)(243 & 0xff));
  1746.       case 0x00fb: return((CHAR)(244 & 0xff));
  1747.       case 0x00fc: return((CHAR)(246 & 0xff));
  1748.       case 0x00fd: return((CHAR)(247 & 0xff));
  1749.       case 0x00fe: return((CHAR)(252 & 0xff));
  1750.       case 0x00ff: return((CHAR)(253 & 0xff));
  1751.       case 0x0131: return((CHAR)(245 & 0xff));
  1752.       case 0x0141: return((CHAR)(232 & 0xff));
  1753.       case 0x0142: return((CHAR)(248 & 0xff));
  1754.       case 0x0152: return((CHAR)(234 & 0xff));
  1755.       case 0x0153: return((CHAR)(250 & 0xff));
  1756.       case 0x0192: return((CHAR)(166 & 0xff));
  1757.       case 0x02c6: return((CHAR)(195 & 0xff));
  1758.       case 0x02c7: return((CHAR)(207 & 0xff));
  1759.       case 0x02cb: return((CHAR)(193 & 0xff));
  1760.       case 0x02d8: return((CHAR)(198 & 0xff));
  1761.       case 0x02d9: return((CHAR)(199 & 0xff));
  1762.       case 0x02da: return((CHAR)(202 & 0xff));
  1763.       case 0x02db: return((CHAR)(206 & 0xff));
  1764.       case 0x02dc: return((CHAR)(196 & 0xff));
  1765.       case 0x02dd: return((CHAR)(205 & 0xff));
  1766.       case 0x2013: return((CHAR)(177 & 0xff));
  1767.       case 0x2014: return((CHAR)(208 & 0xff));
  1768.       case 0x2019: return((CHAR)(169 & 0xff));
  1769.       case 0x201a: return((CHAR)(184 & 0xff));
  1770.       case 0x201c: return((CHAR)(170 & 0xff));
  1771.       case 0x201d: return((CHAR)(186 & 0xff));
  1772.       case 0x201e: return((CHAR)(185 & 0xff));
  1773.       case 0x2020: return((CHAR)(178 & 0xff));
  1774.       case 0x2021: return((CHAR)(179 & 0xff));
  1775.       case 0x2022: return((CHAR)(183 & 0xff));
  1776.       case 0x2026: return((CHAR)(188 & 0xff));
  1777.       case 0x2030: return((CHAR)(189 & 0xff));
  1778.       case 0x2039: return((CHAR)(172 & 0xff));
  1779.       case 0x203a: return((CHAR)(173 & 0xff));
  1780.       case 0x2044: return((CHAR)(164 & 0xff));
  1781.       case 0xfb01: return((CHAR)(174 & 0xff));
  1782.       case 0xfb02: return((CHAR)(175 & 0xff));
  1783.       default: return(tx_punc(c));
  1784.     }
  1785. }
  1786. int /* DG International */
  1787. #ifdef CK_ANSIC
  1788. tx_dgi(USHORT c)
  1789. #else
  1790. tx_dgi(c) USHORT c;
  1791. #endif /* CK_ANSIC */
  1792. {
  1793.     if (c < 0xa0)
  1794.       return((CHAR)(c & 0xff));
  1795.     switch(c) {
  1796.       case 0x00a0: return((CHAR)(160 & 0xff));
  1797.       case 0x00a1: return((CHAR)(171 & 0xff));
  1798.       case 0x00a2: return((CHAR)(167 & 0xff));
  1799.       case 0x00a3: return((CHAR)(168 & 0xff));
  1800.       case 0x00a4: return((CHAR)(166 & 0xff));
  1801.       case 0x00a5: return((CHAR)(181 & 0xff));
  1802.       case 0x00a7: return((CHAR)(187 & 0xff));
  1803.       case 0x00a8: return((CHAR)(189 & 0xff));
  1804.       case 0x00a9: return((CHAR)(173 & 0xff));
  1805.       case 0x00aa: return((CHAR)(169 & 0xff));
  1806.       case 0x00ab: return((CHAR)(177 & 0xff));
  1807.       case 0x00ac: return((CHAR)(161 & 0xff));
  1808.       case 0x00ae: return((CHAR)(174 & 0xff));
  1809.       case 0x00b0: return((CHAR)(188 & 0xff));
  1810.       case 0x00b1: return((CHAR)(182 & 0xff));
  1811.       case 0x00b2: return((CHAR)(164 & 0xff));
  1812.       case 0x00b3: return((CHAR)(165 & 0xff));
  1813.       case 0x00b4: return((CHAR)(190 & 0xff));
  1814.       case 0x00b5: return((CHAR)(163 & 0xff));
  1815.       case 0x00b6: return((CHAR)(178 & 0xff));
  1816.       case 0x00b7: return((CHAR)(185 & 0xff));
  1817.       case 0x00b8: return((CHAR)(186 & 0xff));
  1818.       case 0x00ba: return((CHAR)(170 & 0xff));
  1819.       case 0x00bb: return((CHAR)(176 & 0xff));
  1820.       case 0x00bd: return((CHAR)(162 & 0xff));
  1821.       case 0x00bf: return((CHAR)(172 & 0xff));
  1822.       case 0x00c0: return((CHAR)(193 & 0xff));
  1823.       case 0x00c1: return((CHAR)(192 & 0xff));
  1824.       case 0x00c2: return((CHAR)(194 & 0xff));
  1825.       case 0x00c3: return((CHAR)(196 & 0xff));
  1826.       case 0x00c4: return((CHAR)(195 & 0xff));
  1827.       case 0x00c5: return((CHAR)(197 & 0xff));
  1828.       case 0x00c6: return((CHAR)(198 & 0xff));
  1829.       case 0x00c7: return((CHAR)(199 & 0xff));
  1830.       case 0x00c8: return((CHAR)(201 & 0xff));
  1831.       case 0x00c9: return((CHAR)(200 & 0xff));
  1832.       case 0x00ca: return((CHAR)(202 & 0xff));
  1833.       case 0x00cb: return((CHAR)(203 & 0xff));
  1834.       case 0x00cc: return((CHAR)(205 & 0xff));
  1835.       case 0x00cd: return((CHAR)(204 & 0xff));
  1836.       case 0x00ce: return((CHAR)(206 & 0xff));
  1837.       case 0x00cf: return((CHAR)(207 & 0xff));
  1838.       case 0x00d1: return((CHAR)(208 & 0xff));
  1839.       case 0x00d2: return((CHAR)(210 & 0xff));
  1840.       case 0x00d3: return((CHAR)(209 & 0xff));
  1841.       case 0x00d4: return((CHAR)(211 & 0xff));
  1842.       case 0x00d5: return((CHAR)(213 & 0xff));
  1843.       case 0x00d6: return((CHAR)(212 & 0xff));
  1844.       case 0x00d8: return((CHAR)(214 & 0xff));
  1845.       case 0x00d9: return((CHAR)(217 & 0xff));
  1846.       case 0x00da: return((CHAR)(216 & 0xff));
  1847.       case 0x00db: return((CHAR)(218 & 0xff));
  1848.       case 0x00dc: return((CHAR)(219 & 0xff));
  1849.       case 0x00df: return((CHAR)(252 & 0xff));
  1850.       case 0x00e0: return((CHAR)(225 & 0xff));
  1851.       case 0x00e1: return((CHAR)(224 & 0xff));
  1852.       case 0x00e2: return((CHAR)(226 & 0xff));
  1853.       case 0x00e3: return((CHAR)(228 & 0xff));
  1854.       case 0x00e4: return((CHAR)(227 & 0xff));
  1855.       case 0x00e5: return((CHAR)(229 & 0xff));
  1856.       case 0x00e6: return((CHAR)(230 & 0xff));
  1857.       case 0x00e7: return((CHAR)(231 & 0xff));
  1858.       case 0x00e8: return((CHAR)(233 & 0xff));
  1859.       case 0x00e9: return((CHAR)(232 & 0xff));
  1860.       case 0x00ea: return((CHAR)(234 & 0xff));
  1861.       case 0x00eb: return((CHAR)(235 & 0xff));
  1862.       case 0x00ec: return((CHAR)(237 & 0xff));
  1863.       case 0x00ed: return((CHAR)(236 & 0xff));
  1864.       case 0x00ee: return((CHAR)(238 & 0xff));
  1865.       case 0x00ef: return((CHAR)(239 & 0xff));
  1866.       case 0x00f1: return((CHAR)(240 & 0xff));
  1867.       case 0x00f2: return((CHAR)(242 & 0xff));
  1868.       case 0x00f3: return((CHAR)(241 & 0xff));
  1869.       case 0x00f4: return((CHAR)(243 & 0xff));
  1870.       case 0x00f5: return((CHAR)(245 & 0xff));
  1871.       case 0x00f6: return((CHAR)(244 & 0xff));
  1872.       case 0x00f8: return((CHAR)(246 & 0xff));
  1873.       case 0x00f9: return((CHAR)(249 & 0xff));
  1874.       case 0x00fa: return((CHAR)(248 & 0xff));
  1875.       case 0x00fb: return((CHAR)(250 & 0xff));
  1876.       case 0x00fc: return((CHAR)(251 & 0xff));
  1877.       case 0x00ff: return((CHAR)(253 & 0xff));
  1878.       case 0x0153: return((CHAR)(247 & 0xff));
  1879.       case 0x0178: return((CHAR)(221 & 0xff));
  1880.       case 0x0192: return((CHAR)(180 & 0xff));
  1881.       case 0x0276: return((CHAR)(215 & 0xff));
  1882.       case 0x2021: return((CHAR)(175 & 0xff));
  1883.       case 0x2122: return((CHAR)(179 & 0xff));
  1884.       case 0x2191: return((CHAR)(191 & 0xff));
  1885.       case 0x2264: return((CHAR)(183 & 0xff));
  1886.       case 0x2265: return((CHAR)(184 & 0xff));
  1887.       case 0x2588: return((CHAR)(255 & 0xff));
  1888.       default: return(tx_punc(c));
  1889.     }
  1890. }
  1891. int /* Macintosh Latin */
  1892. #ifdef CK_ANSIC
  1893. tx_maclatin(USHORT c)
  1894. #else
  1895. tx_maclatin(c) USHORT c;
  1896. #endif /* CK_ANSIC */
  1897. {
  1898.     if (c < 0x80) /* Has C1 graphics */
  1899.       return((CHAR)(c & 0xff));
  1900.     switch (c) {
  1901.       case 0x00a0: return((CHAR)(202 & 0xff));
  1902.       case 0x00a1: return((CHAR)(193 & 0xff));
  1903.       case 0x00a2: return((CHAR)(162 & 0xff));
  1904.       case 0x00a3: return((CHAR)(163 & 0xff));
  1905.       case 0x00a4: return((CHAR)(219 & 0xff));
  1906.       case 0x00a5: return((CHAR)(180 & 0xff));
  1907.       case 0x00a7: return((CHAR)(164 & 0xff));
  1908.       case 0x00a8: return((CHAR)(172 & 0xff));
  1909.       case 0x00a9: return((CHAR)(169 & 0xff));
  1910.       case 0x00aa: return((CHAR)(187 & 0xff));
  1911.       case 0x00ab: return((CHAR)(199 & 0xff));
  1912.       case 0x00ac: return((CHAR)(194 & 0xff));
  1913.       case 0x00ae: return((CHAR)(168 & 0xff));
  1914.       case 0x00af: return((CHAR)(248 & 0xff));
  1915.       case 0x00b0: return((CHAR)(161 & 0xff));
  1916.       case 0x00b1: return((CHAR)(177 & 0xff));
  1917.       case 0x00b4: return((CHAR)(171 & 0xff));
  1918.       case 0x00b5: return((CHAR)(181 & 0xff));
  1919.       case 0x00b6: return((CHAR)(166 & 0xff));
  1920.       case 0x00b7: return((CHAR)(225 & 0xff));
  1921.       case 0x00b8: return((CHAR)(252 & 0xff));
  1922.       case 0x00ba: return((CHAR)(188 & 0xff));
  1923.       case 0x00bb: return((CHAR)(200 & 0xff));
  1924.       case 0x00bf: return((CHAR)(192 & 0xff));
  1925.       case 0x00c0: return((CHAR)(203 & 0xff));
  1926.       case 0x00c1: return((CHAR)(231 & 0xff));
  1927.       case 0x00c2: return((CHAR)(229 & 0xff));
  1928.       case 0x00c3: return((CHAR)(204 & 0xff));
  1929.       case 0x00c4: return((CHAR)(128 & 0xff));
  1930.       case 0x00c5: return((CHAR)(129 & 0xff));
  1931.       case 0x00c6: return((CHAR)(174 & 0xff));
  1932.       case 0x00c7: return((CHAR)(130 & 0xff));
  1933.       case 0x00c8: return((CHAR)(233 & 0xff));
  1934.       case 0x00c9: return((CHAR)(131 & 0xff));
  1935.       case 0x00ca: return((CHAR)(230 & 0xff));
  1936.       case 0x00cb: return((CHAR)(232 & 0xff));
  1937.       case 0x00cc: return((CHAR)(237 & 0xff));
  1938.       case 0x00cd: return((CHAR)(234 & 0xff));
  1939.       case 0x00ce: return((CHAR)(235 & 0xff));
  1940.       case 0x00cf: return((CHAR)(236 & 0xff));
  1941.       case 0x00d0: return((CHAR)(220 & 0xff));
  1942.       case 0x00d1: return((CHAR)(132 & 0xff));
  1943.       case 0x00d2: return((CHAR)(241 & 0xff));
  1944.       case 0x00d3: return((CHAR)(238 & 0xff));
  1945.       case 0x00d4: return((CHAR)(239 & 0xff));
  1946.       case 0x00d5: return((CHAR)(205 & 0xff));
  1947.       case 0x00d6: return((CHAR)(133 & 0xff));
  1948.       case 0x00d8: return((CHAR)(175 & 0xff));
  1949.       case 0x00d9: return((CHAR)(244 & 0xff));
  1950.       case 0x00da: return((CHAR)(242 & 0xff));
  1951.       case 0x00db: return((CHAR)(243 & 0xff));
  1952.       case 0x00dc: return((CHAR)(134 & 0xff));
  1953.       case 0x00dd: return((CHAR)(160 & 0xff));
  1954.       case 0x00de: return((CHAR)(222 & 0xff));
  1955.       case 0x00df: return((CHAR)(167 & 0xff));
  1956.       case 0x00e0: return((CHAR)(136 & 0xff));
  1957.       case 0x00e1: return((CHAR)(135 & 0xff));
  1958.       case 0x00e2: return((CHAR)(137 & 0xff));
  1959.       case 0x00e3: return((CHAR)(139 & 0xff));
  1960.       case 0x00e4: return((CHAR)(138 & 0xff));
  1961.       case 0x00e5: return((CHAR)(140 & 0xff));
  1962.       case 0x00e6: return((CHAR)(190 & 0xff));
  1963.       case 0x00e7: return((CHAR)(141 & 0xff));
  1964.       case 0x00e8: return((CHAR)(143 & 0xff));
  1965.       case 0x00e9: return((CHAR)(142 & 0xff));
  1966.       case 0x00ea: return((CHAR)(144 & 0xff));
  1967.       case 0x00eb: return((CHAR)(145 & 0xff));
  1968.       case 0x00ec: return((CHAR)(147 & 0xff));
  1969.       case 0x00ed: return((CHAR)(146 & 0xff));
  1970.       case 0x00ee: return((CHAR)(148 & 0xff));
  1971.       case 0x00ef: return((CHAR)(149 & 0xff));
  1972.       case 0x00f0: return((CHAR)(221 & 0xff));
  1973.       case 0x00f1: return((CHAR)(150 & 0xff));
  1974.       case 0x00f2: return((CHAR)(152 & 0xff));
  1975.       case 0x00f3: return((CHAR)(151 & 0xff));
  1976.       case 0x00f4: return((CHAR)(153 & 0xff));
  1977.       case 0x00f5: return((CHAR)(155 & 0xff));
  1978.       case 0x00f6: return((CHAR)(154 & 0xff));
  1979.       case 0x00f7: return((CHAR)(214 & 0xff));
  1980.       case 0x00f8: return((CHAR)(191 & 0xff));
  1981.       case 0x00f9: return((CHAR)(157 & 0xff));
  1982.       case 0x00fa: return((CHAR)(156 & 0xff));
  1983.       case 0x00fb: return((CHAR)(158 & 0xff));
  1984.       case 0x00fc: return((CHAR)(159 & 0xff));
  1985.       case 0x00fd: return((CHAR)(224 & 0xff));
  1986.       case 0x00fe: return((CHAR)(223 & 0xff));
  1987.       case 0x00ff: return((CHAR)(216 & 0xff));
  1988.       case 0x0131: return((CHAR)(245 & 0xff));
  1989.       case 0x0152: return((CHAR)(206 & 0xff));
  1990.       case 0x0153: return((CHAR)(207 & 0xff));
  1991.       case 0x0178: return((CHAR)(217 & 0xff));
  1992.       case 0x0192: return((CHAR)(196 & 0xff));
  1993.       case 0x02c6: return((CHAR)(246 & 0xff));
  1994.       case 0x02c7: return((CHAR)(255 & 0xff));
  1995.       case 0x02d8: return((CHAR)(249 & 0xff));
  1996.       case 0x02d9: return((CHAR)(250 & 0xff));
  1997.       case 0x02da: return((CHAR)(251 & 0xff));
  1998.       case 0x02db: return((CHAR)(254 & 0xff));
  1999.       case 0x02dc: return((CHAR)(247 & 0xff));
  2000.       case 0x02dd: return((CHAR)(253 & 0xff));
  2001.       case 0x03c0: return((CHAR)(185 & 0xff));
  2002.       case 0x2013: return((CHAR)(208 & 0xff));
  2003.       case 0x2014: return((CHAR)(209 & 0xff));
  2004.       case 0x2018: return((CHAR)(212 & 0xff));
  2005.       case 0x2019: return((CHAR)(213 & 0xff));
  2006.       case 0x201a: return((CHAR)(226 & 0xff));
  2007.       case 0x201c: return((CHAR)(210 & 0xff));
  2008.       case 0x201d: return((CHAR)(211 & 0xff));
  2009.       case 0x201e: return((CHAR)(227 & 0xff));
  2010.       case 0x2022: return((CHAR)(165 & 0xff));
  2011.       case 0x2026: return((CHAR)(201 & 0xff));
  2012.       case 0x2030: return((CHAR)(228 & 0xff));
  2013.       case 0x2044: return((CHAR)(218 & 0xff));
  2014.       case 0x2122: return((CHAR)(170 & 0xff));
  2015.       case 0x2126: return((CHAR)(189 & 0xff));
  2016.       case 0x2202: return((CHAR)(182 & 0xff));
  2017.       case 0x2206: return((CHAR)(198 & 0xff));
  2018.       case 0x220f: return((CHAR)(184 & 0xff));
  2019.       case 0x2211: return((CHAR)(183 & 0xff));
  2020.       case 0x221a: return((CHAR)(195 & 0xff));
  2021.       case 0x221e: return((CHAR)(176 & 0xff));
  2022.       case 0x222b: return((CHAR)(186 & 0xff));
  2023.       case 0x2248: return((CHAR)(197 & 0xff));
  2024.       case 0x2260: return((CHAR)(173 & 0xff));
  2025.       case 0x2264: return((CHAR)(178 & 0xff));
  2026.       case 0x2265: return((CHAR)(179 & 0xff));
  2027.       case 0x25ca: return((CHAR)(215 & 0xff));
  2028.       case 0xf8ff: return((CHAR)(240 & 0xff));
  2029.       default: return(tx_punc(c));
  2030.     }
  2031. }
  2032. int /* Apple QuickDraw / CP10000 */
  2033. #ifdef CK_ANSIC
  2034. tx_quickdraw(USHORT c)
  2035. #else
  2036. tx_quickdraw(c) USHORT c;
  2037. #endif /* CK_ANSIC */
  2038. {
  2039.     if (c < 0x80) /* Has C1 graphics */
  2040.       return((CHAR)(c & 0xff));
  2041.     switch (c) {
  2042.       case 0x00a0: return((CHAR)(202 & 0xff));
  2043.       case 0x00a1: return((CHAR)(193 & 0xff));
  2044.       case 0x00a2: return((CHAR)(162 & 0xff));
  2045.       case 0x00a3: return((CHAR)(163 & 0xff));
  2046.       case 0x00a4: return((CHAR)(219 & 0xff));
  2047.       case 0x00a5: return((CHAR)(180 & 0xff));
  2048.       case 0x00a7: return((CHAR)(164 & 0xff));
  2049.       case 0x00a8: return((CHAR)(172 & 0xff));
  2050.       case 0x00a9: return((CHAR)(169 & 0xff));
  2051.       case 0x00aa: return((CHAR)(187 & 0xff));
  2052.       case 0x00ab: return((CHAR)(199 & 0xff));
  2053.       case 0x00ac: return((CHAR)(194 & 0xff));
  2054.       case 0x00ae: return((CHAR)(168 & 0xff));
  2055.       case 0x00af: return((CHAR)(248 & 0xff));
  2056.       case 0x00b0: return((CHAR)(161 & 0xff));
  2057.       case 0x00b1: return((CHAR)(177 & 0xff));
  2058.       case 0x00b4: return((CHAR)(171 & 0xff));
  2059.       case 0x00b5: return((CHAR)(181 & 0xff));
  2060.       case 0x00b6: return((CHAR)(166 & 0xff));
  2061.       case 0x00b7: return((CHAR)(225 & 0xff));
  2062.       case 0x00b8: return((CHAR)(252 & 0xff));
  2063.       case 0x00ba: return((CHAR)(188 & 0xff));
  2064.       case 0x00bb: return((CHAR)(200 & 0xff));
  2065.       case 0x00bf: return((CHAR)(192 & 0xff));
  2066.       case 0x00c0: return((CHAR)(203 & 0xff));
  2067.       case 0x00c1: return((CHAR)(231 & 0xff));
  2068.       case 0x00c2: return((CHAR)(229 & 0xff));
  2069.       case 0x00c3: return((CHAR)(204 & 0xff));
  2070.       case 0x00c4: return((CHAR)(128 & 0xff));
  2071.       case 0x00c5: return((CHAR)(129 & 0xff));
  2072.       case 0x00c6: return((CHAR)(174 & 0xff));
  2073.       case 0x00c7: return((CHAR)(130 & 0xff));
  2074.       case 0x00c8: return((CHAR)(233 & 0xff));
  2075.       case 0x00c9: return((CHAR)(131 & 0xff));
  2076.       case 0x00ca: return((CHAR)(230 & 0xff));
  2077.       case 0x00cb: return((CHAR)(232 & 0xff));
  2078.       case 0x00cc: return((CHAR)(237 & 0xff));
  2079.       case 0x00cd: return((CHAR)(234 & 0xff));
  2080.       case 0x00ce: return((CHAR)(235 & 0xff));
  2081.       case 0x00cf: return((CHAR)(236 & 0xff));
  2082.       case 0x2039: return((CHAR)(220 & 0xff));
  2083.       case 0x00d1: return((CHAR)(132 & 0xff));
  2084.       case 0x00d2: return((CHAR)(241 & 0xff));
  2085.       case 0x00d3: return((CHAR)(238 & 0xff));
  2086.       case 0x00d4: return((CHAR)(239 & 0xff));
  2087.       case 0x00d5: return((CHAR)(205 & 0xff));
  2088.       case 0x00d6: return((CHAR)(133 & 0xff));
  2089.       case 0x00d8: return((CHAR)(175 & 0xff));
  2090.       case 0x00d9: return((CHAR)(244 & 0xff));
  2091.       case 0x00da: return((CHAR)(242 & 0xff));
  2092.       case 0x00db: return((CHAR)(243 & 0xff));
  2093.       case 0x00dc: return((CHAR)(134 & 0xff));
  2094.       case 0x2020: return((CHAR)(160 & 0xff));
  2095.       case 0xfb01: return((CHAR)(222 & 0xff));
  2096.       case 0x00df: return((CHAR)(167 & 0xff));
  2097.       case 0x00e0: return((CHAR)(136 & 0xff));
  2098.       case 0x00e1: return((CHAR)(135 & 0xff));
  2099.       case 0x00e2: return((CHAR)(137 & 0xff));
  2100.       case 0x00e3: return((CHAR)(139 & 0xff));
  2101.       case 0x00e4: return((CHAR)(138 & 0xff));
  2102.       case 0x00e5: return((CHAR)(140 & 0xff));
  2103.       case 0x00e6: return((CHAR)(190 & 0xff));
  2104.       case 0x00e7: return((CHAR)(141 & 0xff));
  2105.       case 0x00e8: return((CHAR)(143 & 0xff));
  2106.       case 0x00e9: return((CHAR)(142 & 0xff));
  2107.       case 0x00ea: return((CHAR)(144 & 0xff));
  2108.       case 0x00eb: return((CHAR)(145 & 0xff));
  2109.       case 0x00ec: return((CHAR)(147 & 0xff));
  2110.       case 0x00ed: return((CHAR)(146 & 0xff));
  2111.       case 0x00ee: return((CHAR)(148 & 0xff));
  2112.       case 0x00ef: return((CHAR)(149 & 0xff));
  2113.       case 0x203a: return((CHAR)(221 & 0xff));
  2114.       case 0x00f1: return((CHAR)(150 & 0xff));
  2115.       case 0x00f2: return((CHAR)(152 & 0xff));
  2116.       case 0x00f3: return((CHAR)(151 & 0xff));
  2117.       case 0x00f4: return((CHAR)(153 & 0xff));
  2118.       case 0x00f5: return((CHAR)(155 & 0xff));
  2119.       case 0x00f6: return((CHAR)(154 & 0xff));
  2120.       case 0x00f7: return((CHAR)(214 & 0xff));
  2121.       case 0x00f8: return((CHAR)(191 & 0xff));
  2122.       case 0x00f9: return((CHAR)(157 & 0xff));
  2123.       case 0x00fa: return((CHAR)(156 & 0xff));
  2124.       case 0x00fb: return((CHAR)(158 & 0xff));
  2125.       case 0x00fc: return((CHAR)(159 & 0xff));
  2126.       case 0x2021: return((CHAR)(224 & 0xff));
  2127.       case 0xfb02: return((CHAR)(223 & 0xff));
  2128.       case 0x00ff: return((CHAR)(216 & 0xff));
  2129.       case 0x0131: return((CHAR)(245 & 0xff));
  2130.       case 0x0152: return((CHAR)(206 & 0xff));
  2131.       case 0x0153: return((CHAR)(207 & 0xff));
  2132.       case 0x0178: return((CHAR)(217 & 0xff));
  2133.       case 0x0192: return((CHAR)(196 & 0xff));
  2134.       case 0x02c6: return((CHAR)(246 & 0xff));
  2135.       case 0x02c7: return((CHAR)(255 & 0xff));
  2136.       case 0x02d8: return((CHAR)(249 & 0xff));
  2137.       case 0x02d9: return((CHAR)(250 & 0xff));
  2138.       case 0x02da: return((CHAR)(251 & 0xff));
  2139.       case 0x02db: return((CHAR)(254 & 0xff));
  2140.       case 0x02dc: return((CHAR)(247 & 0xff));
  2141.       case 0x02dd: return((CHAR)(253 & 0xff));
  2142.       case 0x03c0: return((CHAR)(185 & 0xff));
  2143.       case 0x2013: return((CHAR)(208 & 0xff));
  2144.       case 0x2014: return((CHAR)(209 & 0xff));
  2145.       case 0x2018: return((CHAR)(212 & 0xff));
  2146.       case 0x2019: return((CHAR)(213 & 0xff));
  2147.       case 0x201a: return((CHAR)(226 & 0xff));
  2148.       case 0x201c: return((CHAR)(210 & 0xff));
  2149.       case 0x201d: return((CHAR)(211 & 0xff));
  2150.       case 0x201e: return((CHAR)(227 & 0xff));
  2151.       case 0x2022: return((CHAR)(165 & 0xff));
  2152.       case 0x2026: return((CHAR)(201 & 0xff));
  2153.       case 0x2030: return((CHAR)(228 & 0xff));
  2154.       case 0x2044: return((CHAR)(218 & 0xff));
  2155.       case 0x2122: return((CHAR)(170 & 0xff));
  2156.       case 0x03a9: return((CHAR)(189 & 0xff));
  2157.       case 0x2202: return((CHAR)(182 & 0xff));
  2158.       case 0x2206: return((CHAR)(198 & 0xff));
  2159.       case 0x220f: return((CHAR)(184 & 0xff));
  2160.       case 0x2211: return((CHAR)(183 & 0xff));
  2161.       case 0x221a: return((CHAR)(195 & 0xff));
  2162.       case 0x221e: return((CHAR)(176 & 0xff));
  2163.       case 0x222b: return((CHAR)(186 & 0xff));
  2164.       case 0x2248: return((CHAR)(197 & 0xff));
  2165.       case 0x2260: return((CHAR)(173 & 0xff));
  2166.       case 0x2264: return((CHAR)(178 & 0xff));
  2167.       case 0x2265: return((CHAR)(179 & 0xff));
  2168.       case 0x25ca: return((CHAR)(215 & 0xff));
  2169.       case 0xf8ff: return((CHAR)(240 & 0xff));
  2170.       default: return(tx_punc(c));
  2171.     }
  2172. }
  2173. int /* HP Roman-8 */
  2174. #ifdef CK_ANSIC
  2175. tx_hproman8(USHORT c)
  2176. #else
  2177. tx_hproman8(c) USHORT c;
  2178. #endif /* CK_ANSIC */
  2179. {
  2180.     if (c < 0xa0)
  2181.       return((CHAR)(c & 0xff));
  2182.     switch(c) {
  2183.       case 0x00a0: return((CHAR)(160 & 0xff));
  2184.       case 0x00a1: return((CHAR)(171 & 0xff));
  2185.       case 0x00a2: return((CHAR)(167 & 0xff));
  2186.       case 0x00a3: return((CHAR)(168 & 0xff));
  2187.       case 0x00a4: return((CHAR)(166 & 0xff));
  2188.       case 0x00a5: return((CHAR)(181 & 0xff));
  2189.       case 0x00a7: return((CHAR)(187 & 0xff));
  2190.       case 0x00a8: return((CHAR)(189 & 0xff));
  2191.       case 0x00a9: return((CHAR)(173 & 0xff));
  2192.       case 0x00aa: return((CHAR)(169 & 0xff));
  2193.       case 0x00ab: return((CHAR)(177 & 0xff));
  2194.       case 0x00ac: return((CHAR)(161 & 0xff));
  2195.       case 0x00ae: return((CHAR)(174 & 0xff));
  2196.       case 0x00b0: return((CHAR)(188 & 0xff));
  2197.       case 0x00b1: return((CHAR)(182 & 0xff));
  2198.       case 0x00b2: return((CHAR)(164 & 0xff));
  2199.       case 0x00b3: return((CHAR)(165 & 0xff));
  2200.       case 0x00b4: return((CHAR)(190 & 0xff));
  2201.       case 0x00b5: return((CHAR)(163 & 0xff));
  2202.       case 0x00b6: return((CHAR)(178 & 0xff));
  2203.       case 0x00b7: return((CHAR)(185 & 0xff));
  2204.       case 0x00b8: return((CHAR)(186 & 0xff));
  2205.       case 0x00ba: return((CHAR)(170 & 0xff));
  2206.       case 0x00bb: return((CHAR)(176 & 0xff));
  2207.       case 0x00bd: return((CHAR)(162 & 0xff));
  2208.       case 0x00bf: return((CHAR)(172 & 0xff));
  2209.       case 0x00c0: return((CHAR)(193 & 0xff));
  2210.       case 0x00c1: return((CHAR)(192 & 0xff));
  2211.       case 0x00c2: return((CHAR)(194 & 0xff));
  2212.       case 0x00c3: return((CHAR)(196 & 0xff));
  2213.       case 0x00c4: return((CHAR)(195 & 0xff));
  2214.       case 0x00c5: return((CHAR)(197 & 0xff));
  2215.       case 0x00c6: return((CHAR)(198 & 0xff));
  2216.       case 0x00c7: return((CHAR)(199 & 0xff));
  2217.       case 0x00c8: return((CHAR)(201 & 0xff));
  2218.       case 0x00c9: return((CHAR)(200 & 0xff));
  2219.       case 0x00ca: return((CHAR)(202 & 0xff));
  2220.       case 0x00cb: return((CHAR)(203 & 0xff));
  2221.       case 0x00cc: return((CHAR)(205 & 0xff));
  2222.       case 0x00cd: return((CHAR)(204 & 0xff));
  2223.       case 0x00ce: return((CHAR)(206 & 0xff));
  2224.       case 0x00cf: return((CHAR)(207 & 0xff));
  2225.       case 0x00d1: return((CHAR)(208 & 0xff));
  2226.       case 0x00d2: return((CHAR)(210 & 0xff));
  2227.       case 0x00d3: return((CHAR)(209 & 0xff));
  2228.       case 0x00d4: return((CHAR)(211 & 0xff));
  2229.       case 0x00d5: return((CHAR)(213 & 0xff));
  2230.       case 0x00d6: return((CHAR)(212 & 0xff));
  2231.       case 0x00d8: return((CHAR)(214 & 0xff));
  2232.       case 0x00d9: return((CHAR)(217 & 0xff));
  2233.       case 0x00da: return((CHAR)(216 & 0xff));
  2234.       case 0x00db: return((CHAR)(218 & 0xff));
  2235.       case 0x00dc: return((CHAR)(219 & 0xff));
  2236.       case 0x00df: return((CHAR)(252 & 0xff));
  2237.       case 0x00e0: return((CHAR)(225 & 0xff));
  2238.       case 0x00e1: return((CHAR)(224 & 0xff));
  2239.       case 0x00e2: return((CHAR)(226 & 0xff));
  2240.       case 0x00e3: return((CHAR)(228 & 0xff));
  2241.       case 0x00e4: return((CHAR)(227 & 0xff));
  2242.       case 0x00e5: return((CHAR)(229 & 0xff));
  2243.       case 0x00e6: return((CHAR)(230 & 0xff));
  2244.       case 0x00e7: return((CHAR)(231 & 0xff));
  2245.       case 0x00e8: return((CHAR)(233 & 0xff));
  2246.       case 0x00e9: return((CHAR)(232 & 0xff));
  2247.       case 0x00ea: return((CHAR)(234 & 0xff));
  2248.       case 0x00eb: return((CHAR)(235 & 0xff));
  2249.       case 0x00ec: return((CHAR)(237 & 0xff));
  2250.       case 0x00ed: return((CHAR)(236 & 0xff));
  2251.       case 0x00ee: return((CHAR)(238 & 0xff));
  2252.       case 0x00ef: return((CHAR)(239 & 0xff));
  2253.       case 0x00f1: return((CHAR)(240 & 0xff));
  2254.       case 0x00f2: return((CHAR)(242 & 0xff));
  2255.       case 0x00f3: return((CHAR)(241 & 0xff));
  2256.       case 0x00f4: return((CHAR)(243 & 0xff));
  2257.       case 0x00f5: return((CHAR)(245 & 0xff));
  2258.       case 0x00f6: return((CHAR)(244 & 0xff));
  2259.       case 0x00f8: return((CHAR)(246 & 0xff));
  2260.       case 0x00f9: return((CHAR)(249 & 0xff));
  2261.       case 0x00fa: return((CHAR)(248 & 0xff));
  2262.       case 0x00fb: return((CHAR)(250 & 0xff));
  2263.       case 0x00fc: return((CHAR)(251 & 0xff));
  2264.       case 0x00ff: return((CHAR)(253 & 0xff));
  2265.       case 0x0153: return((CHAR)(247 & 0xff));
  2266.       case 0x0178: return((CHAR)(221 & 0xff));
  2267.       case 0x0192: return((CHAR)(180 & 0xff));
  2268.       case 0x0276: return((CHAR)(215 & 0xff));
  2269.       case 0x2021: return((CHAR)(175 & 0xff));
  2270.       case 0x2122: return((CHAR)(179 & 0xff));
  2271.       case 0x2191: return((CHAR)(191 & 0xff));
  2272.       case 0x2264: return((CHAR)(183 & 0xff));
  2273.       case 0x2265: return((CHAR)(184 & 0xff));
  2274.       case 0x2588: return((CHAR)(255 & 0xff));
  2275.       default: return(tx_punc(c));
  2276.     }
  2277. }
  2278. int /* PC Code Page 437 */
  2279. #ifdef CK_ANSIC
  2280. tx_cp437(USHORT c)
  2281. #else
  2282. tx_cp437(c) USHORT c;
  2283. #endif /* CK_ANSIC */
  2284. {
  2285.     if (c < 0x80) /* Has C1 graphics */
  2286.       return((CHAR)(c & 0xff));
  2287.     switch (c) {
  2288.       case 0x00a0: return((CHAR)(255 & 0xff));
  2289.       case 0x00a1: return((CHAR)(173 & 0xff));
  2290.       case 0x00a2: return((CHAR)(155 & 0xff));
  2291.       case 0x00a3: return((CHAR)(156 & 0xff));
  2292.       case 0x00a4: return((CHAR)(15 & 0xff));
  2293.       case 0x00a5: return((CHAR)(157 & 0xff));
  2294.       case 0x00a6: return((CHAR)(124 & 0xff));
  2295.       case 0x00a7: return((CHAR)(21 & 0xff));
  2296.       case 0x00a8: return((CHAR)(34 & 0xff));
  2297.       case 0x00a9: return((CHAR)(67 & 0xff));
  2298.       case 0x00aa: return((CHAR)(166 & 0xff));
  2299.       case 0x00ab: return((CHAR)(174 & 0xff));
  2300.       case 0x00ac: return((CHAR)(170 & 0xff));
  2301.       case 0x00ad: return((CHAR)(45 & 0xff));
  2302.       case 0x00ae: return((CHAR)(84 & 0xff));
  2303.       case 0x00af: return((CHAR)(22 & 0xff));
  2304.       case 0x00b0: return((CHAR)(248 & 0xff));
  2305.       case 0x00b1: return((CHAR)(241 & 0xff));
  2306.       case 0x00b2: return((CHAR)(253 & 0xff));
  2307.       case 0x00b3: return((CHAR)(51 & 0xff));
  2308.       case 0x00b4: return((CHAR)(39 & 0xff));
  2309.       case 0x00b5: return((CHAR)(230 & 0xff));
  2310.       case 0x00b6: return((CHAR)(20 & 0xff));
  2311.       case 0x00b7: return((CHAR)(250 & 0xff));
  2312.       case 0x00b8: return((CHAR)(44 & 0xff));
  2313.       case 0x00b9: return((CHAR)(49 & 0xff));
  2314.       case 0x00ba: return((CHAR)(167 & 0xff));
  2315.       case 0x00bb: return((CHAR)(175 & 0xff));
  2316.       case 0x00bc: return((CHAR)(172 & 0xff));
  2317.       case 0x00bd: return((CHAR)(171 & 0xff));
  2318.       case 0x00be: return((CHAR)(19 & 0xff));
  2319.       case 0x00bf: return((CHAR)(168 & 0xff));
  2320.       case 0x00c0: return((CHAR)(65 & 0xff));
  2321.       case 0x00c1: return((CHAR)(65 & 0xff));
  2322.       case 0x00c2: return((CHAR)(65 & 0xff));
  2323.       case 0x00c3: return((CHAR)(65 & 0xff));
  2324.       case 0x00c4: return((CHAR)(142 & 0xff));
  2325.       case 0x00c5: return((CHAR)(143 & 0xff));
  2326.       case 0x00c6: return((CHAR)(146 & 0xff));
  2327.       case 0x00c7: return((CHAR)(128 & 0xff));
  2328.       case 0x00c8: return((CHAR)(69 & 0xff));
  2329.       case 0x00c9: return((CHAR)(144 & 0xff));
  2330.       case 0x00ca: return((CHAR)(69 & 0xff));
  2331.       case 0x00cb: return((CHAR)(69 & 0xff));
  2332.       case 0x00cc: return((CHAR)(73 & 0xff));
  2333.       case 0x00cd: return((CHAR)(73 & 0xff));
  2334.       case 0x00ce: return((CHAR)(73 & 0xff));
  2335.       case 0x00cf: return((CHAR)(73 & 0xff));
  2336.       case 0x00d0: return((CHAR)(19 & 0xff));
  2337.       case 0x00d1: return((CHAR)(165 & 0xff));
  2338.       case 0x00d2: return((CHAR)(79 & 0xff));
  2339.       case 0x00d3: return((CHAR)(79 & 0xff));
  2340.       case 0x00d4: return((CHAR)(79 & 0xff));
  2341.       case 0x00d5: return((CHAR)(79 & 0xff));
  2342.       case 0x00d6: return((CHAR)(153 & 0xff));
  2343.       case 0x00d7: return((CHAR)(120 & 0xff));
  2344.       case 0x00d8: return((CHAR)(79 & 0xff));
  2345.       case 0x00d9: return((CHAR)(85 & 0xff));
  2346.       case 0x00da: return((CHAR)(85 & 0xff));
  2347.       case 0x00db: return((CHAR)(85 & 0xff));
  2348.       case 0x00dc: return((CHAR)(154 & 0xff));
  2349.       case 0x00dd: return((CHAR)(89 & 0xff));
  2350.       case 0x00de: return((CHAR)(19 & 0xff));
  2351.       case 0x00df: return((CHAR)(225 & 0xff));
  2352.       case 0x00e0: return((CHAR)(133 & 0xff));
  2353.       case 0x00e1: return((CHAR)(160 & 0xff));
  2354.       case 0x00e2: return((CHAR)(131 & 0xff));
  2355.       case 0x00e3: return((CHAR)(97 & 0xff)); /* a-tilde -> a (not 101 = e) */
  2356.       case 0x00e4: return((CHAR)(132 & 0xff));
  2357.       case 0x00e5: return((CHAR)(134 & 0xff));
  2358.       case 0x00e6: return((CHAR)(145 & 0xff));
  2359.       case 0x00e7: return((CHAR)(135 & 0xff));
  2360.       case 0x00e8: return((CHAR)(138 & 0xff));
  2361.       case 0x00e9: return((CHAR)(130 & 0xff));
  2362.       case 0x00ea: return((CHAR)(136 & 0xff));
  2363.       case 0x00eb: return((CHAR)(137 & 0xff));
  2364.       case 0x00ec: return((CHAR)(141 & 0xff));
  2365.       case 0x00ed: return((CHAR)(161 & 0xff));
  2366.       case 0x00ee: return((CHAR)(140 & 0xff));
  2367.       case 0x00ef: return((CHAR)(139 & 0xff));
  2368.       case 0x00f0: return((CHAR)(19 & 0xff));
  2369.       case 0x00f1: return((CHAR)(164 & 0xff));
  2370.       case 0x00f2: return((CHAR)(149 & 0xff));
  2371.       case 0x00f3: return((CHAR)(162 & 0xff));
  2372.       case 0x00f4: return((CHAR)(147 & 0xff));
  2373.       case 0x00f5: return((CHAR)(111 & 0xff));
  2374.       case 0x00f6: return((CHAR)(148 & 0xff));
  2375.       case 0x00f7: return((CHAR)(246 & 0xff));
  2376.       case 0x00f8: return((CHAR)(111 & 0xff));
  2377.       case 0x00f9: return((CHAR)(151 & 0xff));
  2378.       case 0x00fa: return((CHAR)(163 & 0xff));
  2379.       case 0x00fb: return((CHAR)(150 & 0xff));
  2380.       case 0x00fc: return((CHAR)(129 & 0xff));
  2381.       case 0x00fd: return((CHAR)(121 & 0xff));
  2382.       case 0x00fe: return((CHAR)(19 & 0xff));
  2383.       case 0x00ff: return((CHAR)(152 & 0xff));
  2384.       case 0x0192: return((CHAR)(159 & 0xff));
  2385.       case 0x0393: return((CHAR)(226 & 0xff));
  2386.       case 0x0398: return((CHAR)(233 & 0xff));
  2387.       case 0x03a3: return((CHAR)(228 & 0xff));
  2388.       case 0x03a6: return((CHAR)(232 & 0xff));
  2389.       case 0x03a9: return((CHAR)(234 & 0xff));
  2390.       case 0x03b1: return((CHAR)(224 & 0xff));
  2391.       case 0x03b4: return((CHAR)(235 & 0xff));
  2392.       case 0x03b5: return((CHAR)(238 & 0xff));
  2393.       case 0x03c0: return((CHAR)(227 & 0xff));
  2394.       case 0x03c3: return((CHAR)(229 & 0xff));
  2395.       case 0x03c4: return((CHAR)(231 & 0xff));
  2396.       case 0x03c6: return((CHAR)(237 & 0xff));
  2397.       case 0x207f: return((CHAR)(252 & 0xff));
  2398.       case 0x20a7: return((CHAR)(158 & 0xff));
  2399.       case 0x2219: return((CHAR)(249 & 0xff));
  2400.       case 0x221a: return((CHAR)(251 & 0xff));
  2401.       case 0x221e: return((CHAR)(236 & 0xff));
  2402.       case 0x2229: return((CHAR)(239 & 0xff));
  2403.       case 0x2248: return((CHAR)(247 & 0xff));
  2404.       case 0x2261: return((CHAR)(240 & 0xff));
  2405.       case 0x2264: return((CHAR)(243 & 0xff));
  2406.       case 0x2265: return((CHAR)(242 & 0xff));
  2407.       case 0x2310: return((CHAR)(169 & 0xff));
  2408.       case 0x2320: return((CHAR)(244 & 0xff));
  2409.       case 0x2321: return((CHAR)(245 & 0xff));
  2410.       case 0x2500: return((CHAR)(196 & 0xff));
  2411.       case 0x2502: return((CHAR)(179 & 0xff));
  2412.       case 0x250c: return((CHAR)(218 & 0xff));
  2413.       case 0x2510: return((CHAR)(191 & 0xff));
  2414.       case 0x2514: return((CHAR)(192 & 0xff));
  2415.       case 0x2518: return((CHAR)(217 & 0xff));
  2416.       case 0x251c: return((CHAR)(195 & 0xff));
  2417.       case 0x2524: return((CHAR)(180 & 0xff));
  2418.       case 0x252c: return((CHAR)(194 & 0xff));
  2419.       case 0x2534: return((CHAR)(193 & 0xff));
  2420.       case 0x253c: return((CHAR)(197 & 0xff));
  2421.       case 0x2550: return((CHAR)(205 & 0xff));
  2422.       case 0x2551: return((CHAR)(186 & 0xff));
  2423.       case 0x2552: return((CHAR)(213 & 0xff));
  2424.       case 0x2553: return((CHAR)(214 & 0xff));
  2425.       case 0x2554: return((CHAR)(201 & 0xff));
  2426.       case 0x2555: return((CHAR)(184 & 0xff));
  2427.       case 0x2556: return((CHAR)(183 & 0xff));
  2428.       case 0x2557: return((CHAR)(187 & 0xff));
  2429.       case 0x2558: return((CHAR)(212 & 0xff));
  2430.       case 0x2559: return((CHAR)(211 & 0xff));
  2431.       case 0x255a: return((CHAR)(200 & 0xff));
  2432.       case 0x255b: return((CHAR)(190 & 0xff));
  2433.       case 0x255c: return((CHAR)(189 & 0xff));
  2434.       case 0x255d: return((CHAR)(188 & 0xff));
  2435.       case 0x255e: return((CHAR)(198 & 0xff));
  2436.       case 0x255f: return((CHAR)(199 & 0xff));
  2437.       case 0x2560: return((CHAR)(204 & 0xff));
  2438.       case 0x2561: return((CHAR)(181 & 0xff));
  2439.       case 0x2562: return((CHAR)(182 & 0xff));
  2440.       case 0x2563: return((CHAR)(185 & 0xff));
  2441.       case 0x2564: return((CHAR)(209 & 0xff));
  2442.       case 0x2565: return((CHAR)(210 & 0xff));
  2443.       case 0x2566: return((CHAR)(203 & 0xff));
  2444.       case 0x2567: return((CHAR)(207 & 0xff));
  2445.       case 0x2568: return((CHAR)(208 & 0xff));
  2446.       case 0x2569: return((CHAR)(202 & 0xff));
  2447.       case 0x256a: return((CHAR)(216 & 0xff));
  2448.       case 0x256b: return((CHAR)(215 & 0xff));
  2449.       case 0x256c: return((CHAR)(206 & 0xff));
  2450.       case 0x2580: return((CHAR)(223 & 0xff));
  2451.       case 0x2584: return((CHAR)(220 & 0xff));
  2452.       case 0x2588: return((CHAR)(219 & 0xff));
  2453.       case 0x258c: return((CHAR)(221 & 0xff));
  2454.       case 0x2590: return((CHAR)(222 & 0xff));
  2455.       case 0x2591: return((CHAR)(176 & 0xff));
  2456.       case 0x2592: return((CHAR)(177 & 0xff));
  2457.       case 0x2593: return((CHAR)(178 & 0xff));
  2458.       case 0x25a0: return((CHAR)(254 & 0xff)); /* Black square */
  2459.       default: return(tx_cpsub(c)); /* For box characters etc */
  2460.     }
  2461. }
  2462. int /* Mazovia */
  2463. #ifdef CK_ANSIC
  2464. tx_mazovia(USHORT c)
  2465. #else
  2466. tx_mazovia(c) USHORT c;
  2467. #endif /* CK_ANSIC */
  2468. {
  2469.     if (c < 0x80) /* Has C1 graphics */
  2470.       return((CHAR)(c & 0xff));
  2471.     switch (c) {
  2472.       case 0x00d3: return((CHAR)0xa3 & 0xff); /* O acute */
  2473.       case 0x00f3: return((CHAR)0xa2 & 0xff); /* O acute */
  2474.       case 0x0104: return((CHAR)0x8f & 0xff); /* A Ogonek */
  2475.       case 0x0105: return((CHAR)0x86 & 0xff); /* a Ogonek */
  2476.       case 0x0106: return((CHAR)0x95 & 0xff); /* C acute */
  2477.       case 0x0107: return((CHAR)0x8d & 0xff); /* c acute */
  2478.       case 0x0118: return((CHAR)0x90 & 0xff); /* E Ogonek */
  2479.       case 0x0119: return((CHAR)0x91 & 0xff); /* E Ogonek */
  2480.       case 0x0141: return((CHAR)0x9c & 0xff); /* L stroke */
  2481.       case 0x0142: return((CHAR)0x92 & 0xff); /* L stroke */
  2482.       case 0x0143: return((CHAR)0xa5 & 0xff); /* N acute */
  2483.       case 0x0144: return((CHAR)0xa4 & 0xff); /* N acute */
  2484.       case 0x015a: return((CHAR)0x98 & 0xff); /* S acute */
  2485.       case 0x015b: return((CHAR)0x9e & 0xff); /* S acute */
  2486.       case 0x0179: return((CHAR)0xa0 & 0xff); /* Z acute */
  2487.       case 0x017a: return((CHAR)0xa6 & 0xff); /* Z acute */
  2488.       case 0x017b: return((CHAR)0xa1 & 0xff); /* Z dot above */
  2489.       case 0x017c: return((CHAR)0xa7 & 0xff); /* Z dot above */
  2490.       default: return(tx_cp437(c));
  2491.     }
  2492. }
  2493. int /* PC Code Page 850 */
  2494. #ifdef CK_ANSIC
  2495. tx_cp850(USHORT c)
  2496. #else
  2497. tx_cp850(c) USHORT c;
  2498. #endif /* CK_ANSIC */
  2499. {
  2500.     if (c < 0x80) /* Has C1 graphics */
  2501.       return((CHAR)(c & 0xff));
  2502.     switch (c) {
  2503.       case 0x00a0: return((CHAR)(255 & 0xff));
  2504.       case 0x00a1: return((CHAR)(173 & 0xff));
  2505.       case 0x00a2: return((CHAR)(189 & 0xff));