ckuxla.c
资源名称:cku197.tar.Z [点击查看]
上传用户:dufan58
上传日期:2007-01-05
资源大小:3407k
文件大小:255k
源码类别:
通讯/手机编程
开发平台:
Windows_Unix
- #include "ckcsym.h"
- #include "ckcdeb.h" /* Includes... */
- #include "ckcker.h"
- #include "ckucmd.h"
- #include "ckcxla.h"
- #ifdef NOXFER
- #define zdstuff(a)
- #endif /* NOXFER */
- #ifndef NOCSETS
- char *xlav = "Character Set Translation 7.0.038, 10 Nov 1999";
- /* C K U X L A */
- /* C-Kermit tables and functions supporting character set translation. */
- /*
- Author: Frank da Cruz <fdc@columbia.edu>,
- Columbia University Academic Information Systems, New York City.
- Copyright (C) 1985, 2000,
- Trustees of Columbia University in the City of New York.
- All rights reserved. See the C-Kermit COPYING.TXT file or the
- copyright text in the ckcmai.c module for disclaimer and permissions.
- */
- /* Character set translation data and functions */
- extern int zincnt; /* File i/o macros and variables */
- extern char *zinptr;
- extern int zoutcnt;
- extern char *zoutptr;
- extern int byteorder;
- int tslevel = TS_L0; /* Transfer syntax level (0,1,2) */
- int tcharset = TC_TRANSP; /* Transfer syntax character set */
- int tcs_save = -1; /* For save/restore term charset */
- int tcs_transp = 0; /* Term charset is TRANSPARENT flag */
- #ifdef CKOUNI
- int tcsr = TX_8859_1; /* Remote terminal character set */
- #else /* CKOUNI */
- int tcsr = FC_USASCII;
- #endif /* CKOUNI */
- int language = L_USASCII; /* Language */
- #ifdef UNICODE
- int ucsbom = 1; /* Add BOM to new UCS files? */
- int ucsorder = -1; /* Default byte order for UCS files */
- /* 0 = BE, 1 = LE */
- #endif /* UNICODE */
- /*
- Default local file and terminal character set.
- Normally ASCII, but for some systems we know otherwise.
- */
- int fcs_save = -1;
- #ifdef datageneral /* Data General AOS/VS */
- int fcharset = FC_DGMCS; /* uses the DG International set */
- int tcsl = FC_DGMCS;
- #else
- #ifdef NEXT /* The NeXT workstation */
- int fcharset = FC_NEXT; /* uses its own 8-bit set */
- int tcsl = FC_NEXT;
- #else
- #ifdef MAC /* The Macintosh */
- int fcharset = FC_APPQD; /* uses an extended version of */
- int tcsl = FC_APPQD; /* Apple Quickdraw */
- #else
- #ifdef AUX
- int fcharset = FC_APPQD; /* Ditto for Apple A/UX */
- int tcsl = FC_APPQD;
- #else
- #ifdef AMIGA /* The Commodore Amiga */
- int fcharset = FC_1LATIN; /* uses Latin-1 */
- int tcsl = FC_1LATIN;
- #else /* All others */
- #ifdef CKOUNI /* OS/2 Unicode */
- int fcharset = FC_1LATIN;
- int tcsl = TX_8859_1;
- #else /* All others */
- int fcharset = FC_USASCII; /* use ASCII by default */
- int tcsl = FC_USASCII;
- #endif /* CKOUNI */
- #endif /* AMIGA */
- #endif /* AUX */
- #endif /* MAC */
- #endif /* NEXT */
- #endif /* datageneral */
- int s_cset = XMODE_A; /* SEND charset selection = AUTO */
- int r_cset = XMODE_A; /* RECV charset selection = AUTO */
- int afcset[MAXFCSETS+1]; /* Character-set associations */
- int axcset[MAXTCSETS+1];
- int xlatype = XLA_NONE; /* Translation type */
- #ifdef UNICODE
- #ifdef CK_ANSIC
- extern int (*xl_utc[MAXTCSETS+1])(USHORT); /* Unicode to TCS */
- extern int (*xl_ufc[MAXFCSETS+1])(USHORT); /* Unicode to FCS */
- extern USHORT (*xl_tcu[MAXTCSETS+1])(CHAR); /* TCS to Unicode */
- extern USHORT (*xl_fcu[MAXFCSETS+1])(CHAR); /* FCS to Unicode */
- #else
- extern int (*xl_utc[MAXTCSETS+1])();
- extern int (*xl_ufc[MAXFCSETS+1])();
- extern USHORT (*xl_tcu[MAXTCSETS+1])();
- extern USHORT (*xl_fcu[MAXFCSETS+1])();
- #endif /* CK_ANSIC */
- #endif /* UNICODE */
- /* Bureaucracy section */
- _PROTOTYP( CHAR xnel1, (CHAR c) ); /* NeXT to Latin-1 */
- _PROTOTYP( CHAR xl143, (CHAR c) ); /* Latin-1 to IBM CP437 */
- _PROTOTYP( CHAR xl1as, (CHAR c) ); /* Latin-1 to US ASCII */
- _PROTOTYP( CHAR zl1as, (CHAR c) ); /* Latin-1 to US ASCII */
- #ifdef CYRILLIC
- _PROTOTYP( CHAR xassk, (CHAR c) ); /* ASCII to Short KOI */
- _PROTOTYP( CHAR xskcy, (CHAR c) ); /* Short KOI to Latin/Cyrillic */
- #endif /* CYRILLIC */
- #ifdef LATIN2
- _PROTOTYP( CHAR xnel2, (CHAR c) ); /* NeXT to Latin-2 */
- _PROTOTYP( CHAR xl243, (CHAR c) ); /* Latin-2 to IBM CP437 */
- _PROTOTYP( CHAR xl2as, (CHAR c) ); /* Latin-2 to US ASCII */
- _PROTOTYP( CHAR zl2as, (CHAR c) ); /* Latin-2 to US ASCII */
- _PROTOTYP( CHAR xl2r8, (CHAR c) ); /* Latin-2 to HP */
- _PROTOTYP( CHAR xl2l9, (CHAR c) ); /* Latin-2 to Latin-9 */
- _PROTOTYP( CHAR xl9l2, (CHAR c) ); /* Latin-9 to Latin-2 */
- _PROTOTYP( CHAR xl2mz, (CHAR c) ); /* Latin-2 to Mazovia */
- _PROTOTYP( CHAR xmzl2, (CHAR c) ); /* Mazovia to Latin-2 */
- _PROTOTYP( CHAR xl1mz, (CHAR c) ); /* Latin-1 to Mazovia */
- _PROTOTYP( CHAR xmzl1, (CHAR c) ); /* Mazovia to Latin-1 */
- _PROTOTYP( CHAR xmzl9, (CHAR c) ); /* Latin-9 to Mazovia */
- _PROTOTYP( CHAR xl9mz, (CHAR c) ); /* Mazovia to Latin-9 */
- #endif /* LATIN2 */
- /* Transfer character-set info */
- struct csinfo tcsinfo[] = {
- /* Name size code designator alphabet keyword */
- "TRANSPARENT", 256,TC_TRANSP, "", AL_UNK, "transparent", /* 0 */
- "ASCII", 128,TC_USASCII,"", AL_ROMAN,"ascii", /* 1 */
- "ISO 8859-1 Latin-1",256,TC_1LATIN, "I6/100",AL_ROMAN,"latin1-iso", /* 2 */
- #ifdef LATIN2
- "ISO 8859-2 Latin-2",256,TC_2LATIN, "I6/101",AL_ROMAN,"latin2-iso", /* 3 */
- #endif /* LATIN2 */
- #ifdef CYRILLIC
- /* 4 */
- "ISO 8859-5 Latin/Cyrillic",256,TC_CYRILL,"I6/144",AL_CYRIL,"cyrillic-iso",
- #endif /* CYRILLIC */
- #ifdef KANJI
- "Japanese EUC",16384,TC_JEUC, "I14/87/13", AL_JAPAN, "euc-jp", /* 5 */
- #endif /* KANJI */
- #ifdef HEBREW
- /* 6 */
- "ISO 8859-8 Latin/Hebrew",256,TC_HEBREW,"I6/138",AL_HEBREW,"hebrew-iso",
- #endif /* HEBREW */
- #ifdef GREEK
- "ISO 8859-7 Latin/Greek",256,TC_GREEK,"I6/126",AL_GREEK,"greek-iso", /* 7 */
- #endif /* GREEK */
- "ISO 8859-15 Latin-9",256,TC_9LATIN,"I6/203",AL_ROMAN,"latin9-iso", /* 8 */
- "ISO 10646 / Unicode UCS-2",64000,TC_UCS2,"I162",AL_UNIV,"ucs2", /* 9 */
- "ISO 10646 / Unicode UTF-8",64000,TC_UTF8,"I190",AL_UNIV,"utf8", /* 10 */
- "",0,0,"",0,""
- };
- int ntcsets = (sizeof(tcsinfo) / sizeof(struct csinfo)) - 1;
- struct keytab tcstab[] = { /* Keyword table for */
- "ascii", TC_USASCII, 0, /* SET TRANSFER CHARACTER-SET */
- #ifdef CYRILLIC
- "cyrillic-iso", TC_CYRILL, 0,
- #endif /* CYRILLIC */
- #ifdef GREEK
- "elot928-greek", TC_GREEK, CM_INV,
- #endif /* GREEK */
- #ifdef KANJI
- "euc-jp", TC_JEUC, 0,
- #endif /* KANJI */
- #ifdef GREEK
- "greek-iso", TC_GREEK, 0,
- #endif /* GREEK */
- #ifdef HEBREW
- "hebrew-iso", TC_HEBREW, 0,
- #endif /* HEBREW */
- #ifdef KANJI
- "japanese-euc", TC_JEUC, CM_INV,
- #endif /* KANJI */
- "l", TC_1LATIN, CM_ABR|CM_INV,
- "la", TC_1LATIN, CM_ABR|CM_INV,
- "lat", TC_1LATIN, CM_ABR|CM_INV,
- "lati", TC_1LATIN, CM_ABR|CM_INV,
- "latin", TC_1LATIN, CM_ABR|CM_INV,
- "latin1-iso", TC_1LATIN, 0,
- #ifdef LATIN2
- "latin2-iso", TC_2LATIN, 0,
- #endif /* LATIN2 */
- "latin9-iso", TC_9LATIN, 0,
- "transparent", TC_TRANSP, 0,
- #ifdef UNICODE
- "ucs2", TC_UCS2, 0,
- "utf8", TC_UTF8, 0,
- #endif /* UNICODE */
- "", 0, 0
- };
- int ntcs = (sizeof(tcstab) / sizeof(struct keytab)) - 1;
- /* File character set information structure, indexed by character set code, */
- /* as defined in ckuxla.h. This table must be in order of file character */
- /* set number! */
- struct csinfo fcsinfo[] = { /* File character set information... */
- /* Descriptive Name Size Designator */
- "US ASCII", 128, FC_USASCII, NULL, AL_ROMAN, "ascii",
- "British/UK ISO-646", 128, FC_UKASCII, NULL, AL_ROMAN, "british",
- "Dutch ISO-646", 128, FC_DUASCII, NULL, AL_ROMAN, "dutch",
- "Finnish ISO-646", 128, FC_FIASCII, NULL, AL_ROMAN, "finnish",
- "French ISO-646", 128, FC_FRASCII, NULL, AL_ROMAN, "french",
- "Canadian-French NRC", 128, FC_FCASCII, NULL, AL_ROMAN, "canadian-french",
- "German ISO-646", 128, FC_GEASCII, NULL, AL_ROMAN, "german",
- "Hungarian ISO-646", 128, FC_HUASCII, NULL, AL_ROMAN, "hungarian",
- "Italian ISO-646", 128, FC_ITASCII, NULL, AL_ROMAN, "italian",
- "Norwegian/Danish ISO-646",128,FC_NOASCII,NULL,AL_ROMAN,"norwegian/danish",
- "Portuguese ISO-646", 128, FC_POASCII, NULL, AL_ROMAN,"portuguese",
- "Spanish ISO-646", 128, FC_SPASCII, NULL, AL_ROMAN, "spanish",
- "Swedish ISO-646", 128, FC_SWASCII, NULL, AL_ROMAN, "swedish",
- "Swiss NRC", 128, FC_CHASCII, NULL, AL_ROMAN, "swiss",
- "ISO 8859-1 Latin-1", 256, FC_1LATIN, NULL, AL_ROMAN,"latin1-iso",
- "ISO 8859-2 Latin-2", 256, FC_2LATIN, NULL, AL_ROMAN,"latin2-iso",
- "DEC Multinational", 256, FC_DECMCS, NULL,AL_ROMAN,"dec-multinational",
- "NeXT Multinational", 256, FC_NEXT, NULL,AL_ROMAN,"next-multinational",
- "PC Code Page 437", 256, FC_CP437, NULL, AL_ROMAN,"cp437",
- "PC Code Page 850", 256, FC_CP850, NULL, AL_ROMAN,"cp850",
- "PC Code Page 852", 256, FC_CP852, NULL, AL_ROMAN,"cp852",
- "Apple Macintosh Latin", 256, FC_APPQD, NULL, AL_ROMAN,"macintosh-latin",
- "Data General International",256,FC_DGMCS,NULL,AL_ROMAN,"dg-international",
- "Hewlett Packard Roman8", 256, FC_HPR8, NULL, AL_ROMAN, "hp-roman8",
- "ISO 8859-5 Latin/Cyrillic", 256, FC_CYRILL, NULL, AL_CYRIL,"cyrillic-iso",
- "CP866 Cyrillic", 256, FC_CP866, NULL, AL_CYRIL,"cp866",
- "Short KOI", 128, FC_KOI7, NULL, AL_CYRIL,"short-koi",
- "Old KOI-8 Cyrillic", 256, FC_KOI8, NULL, AL_CYRIL,"koi8-cyrillic",
- "Japanese JIS7", 16384, FC_JIS7, NULL, AL_JAPAN, "jis7-kanji",
- "Japanese Shift JIS", 16384, FC_SHJIS, NULL, AL_JAPAN, "shift-jis-kanji",
- "Japanese EUC", 16384, FC_JEUC, NULL, AL_JAPAN, "euc-jp",
- "Japanese DEC Kanji", 16384, FC_JDEC, NULL, AL_JAPAN, "dec-kanji",
- "Hebrew-7 DEC", 128, FC_HE7, NULL, AL_HEBREW, "hebrew-7",
- "ISO 8859-8 Latin/Hebrew",256, FC_HEBREW, NULL, AL_HEBREW, "hebrew-iso",
- "CP862 Hebrew", 256, FC_CP862, NULL, AL_HEBREW, "cp862-hebrew",
- "ELOT 927 Greek", 128, FC_ELOT, NULL, AL_GREEK, "elot927-greek",
- "ISO 8859-7 Latin/Greek", 256, FC_GREEK, NULL, AL_GREEK, "greek-iso",
- "CP869 Greek", 256, FC_CP869, NULL, AL_GREEK, "cp869-greek",
- "ISO 8859-15 Latin-9", 256, FC_9LATIN, NULL, AL_ROMAN, "latin9-iso",
- "PC Code Page 858", 256, FC_CP850, NULL, AL_ROMAN, "cp858",
- "PC Code Page 855", 256, FC_CP855, NULL, AL_CYRIL, "cp855-cyrillic",
- "Windows Code Page 1251", 256, FC_CP1251, NULL, AL_CYRIL, "cp1251-cyrillic",
- "Bulgarian PC Code Page", 256, FC_BULGAR, NULL, AL_CYRIL, "bulgaria-pc",
- "Windows Code Page 1250", 256, FC_CP1250, NULL, AL_ROMAN, "cp1250",
- "Polish Mazovia PC Code Page", 256, FC_MAZOVIA, NULL, AL_ROMAN, "mazovia-pc",
- "ISO 10646 / Unicode UCS-2", 64000, FC_UCS2, NULL, AL_UNIV, "ucs2",
- "ISO 10646 / Unicode UTF-8", 64000, FC_UCS2, NULL, AL_UNIV, "utf8",
- "KOI8-R Russian+Boxdrawing",256, FC_KOI8R, NULL, AL_CYRIL,"koi8r",
- "KOI8-U Ukrainian+Boxdrawing",256,FC_KOI8U, NULL, AL_CYRIL,"koi8u",
- "",0,0,NULL,0,NULL
- };
- /* Local file character sets */
- /* Includes 7-bit National Replacement Character Sets of ISO 646 */
- /* Plus ISO Latin-1, DEC Multinational Character Set (MCS), NeXT char set, */
- /* Various PC and Windows code pages, etc. */
- struct keytab fcstab[] = { /* Keyword table for 'set file character-set' */
- /*
- IMPORTANT: This table is replicated below as ttcstab (terminal character
- set table). The only differences are the addition of TRANSPARENT
- and the removal of the Kanji sets, which are not supported yet.
- If you make changes to this table, also change ttcstab.
- */
- /* Keyword Value Flags */
- "apple-quickdraw", FC_APPQD, CM_INV, /* Apple Quickdraw */
- "ascii", FC_USASCII, 0, /* ASCII */
- "british", FC_UKASCII, 0, /* British NRC */
- "bulgaria-pc", FC_BULGAR, 0, /* Bulgarian PC Code Page */
- "canadian-french", FC_FCASCII, 0, /* French Canadian NRC */
- #ifdef LATIN2
- "cp1250", FC_CP1250, 0, /* Windows CP 1250 */
- #endif /* LATIN2 */
- #ifdef CYRILLIC
- "cp1251-cyrillic", FC_CP1251, 0, /* Windows CP 1251 */
- #endif /* CYRILLIC */
- "cp1252", FC_1LATIN, 0, /* ISO Latin Alphabet 1 */
- "cp437", FC_CP437, 0, /* PC CP437 */
- "cp850", FC_CP850, 0, /* PC CP850 */
- #ifdef LATIN2
- "cp852", FC_CP852, 0, /* PC CP852 */
- #endif /* LATIN2 */
- #ifdef CYRILLIC
- "cp855-cyrillic", FC_CP855, 0, /* PC CP855 */
- #endif /* CYRILLIC */
- "cp858", FC_CP858, 0, /* PC CP858 */
- #ifdef HEBREW
- "cp862-hebrew", FC_CP862, 0, /* PC CP862 */
- #endif /* HEBREW */
- #ifdef CYRILLIC
- "cp866-cyrillic", FC_CP866, 0, /* CP866 Cyrillic */
- #endif /* CYRILLIC */
- #ifdef GREEK
- "cp869-greek", FC_CP869, 0, /* CP869 Greek */
- #endif /* GREEK */
- #ifdef CYRILLIC
- "cyrillic-iso", FC_CYRILL, 0, /* ISO Latin/Cyrillic Alphabet */
- #endif /* CYRILLIC */
- "danish", FC_NOASCII, 0, /* Norwegian and Danish NRC */
- #ifdef KANJI
- "dec-kanji", FC_JDEC, 0, /* Japanese DEC Kanji */
- #endif /* KANJI */
- "dec-multinational", FC_DECMCS, 0, /* DEC multinational character set */
- "dg-international", FC_DGMCS, 0, /* Data General multinational */
- "dutch", FC_DUASCII, 0, /* Dutch NRC */
- #ifdef GREEK
- "elot927-greek", FC_ELOT, 0, /* ELOT 927 Greek */
- "elot928-greek", FC_GREEK, 0, /* Same as ISO 8859-7 Latin/Greek */
- #endif /* GREEK */
- #ifdef KANJI
- "euc-jp", FC_JEUC, 0, /* Japanese EUC */
- #endif /* KANJI */
- "finnish", FC_FIASCII, 0, /* Finnish NRC */
- "french", FC_FRASCII, 0, /* French NRC */
- "fr-canadian", FC_FCASCII, CM_INV, /* French Canadian NRC */
- "german", FC_GEASCII, 0, /* German NRC */
- #ifdef GREEK
- "greek-iso", FC_GREEK, 0, /* ISO 8859-7 Latin/Greek */
- #endif /* GREEK */
- #ifdef HEBREW
- "he", FC_HEBREW, CM_ABR|CM_INV,
- "heb", FC_HEBREW, CM_ABR|CM_INV,
- "hebr", FC_HEBREW, CM_ABR|CM_INV,
- "hebre", FC_HEBREW, CM_ABR|CM_INV,
- "hebrew", FC_HEBREW, CM_ABR|CM_INV,
- "hebrew-7", FC_HE7, 0, /* DEC 7-Bit Hebrew */
- "hebrew-iso", FC_HEBREW, 0, /* ISO Latin/Hebrew */
- #endif /* HEBREW */
- "hp-roman8", FC_HPR8, 0, /* Hewlett Packard Roman8 */
- "hungarian", FC_HUASCII, 0, /* Hungarian NRC */
- #ifdef KANJI
- "iso2022jp-kanji", FC_JIS7, 0, /* Synonym for JIS-7 */
- #endif /* KANJI */
- "italian", FC_ITASCII, 0, /* Italian NRC */
- #ifdef KANJI
- "japanese-euc", FC_JEUC, CM_INV, /* Japanese EUC */
- "jis7-kanji", FC_JIS7, 0, /* Japanese JIS7 7bit code */
- #endif /* KANJI */
- #ifdef CYRILLIC
- "k", FC_KOI8, CM_ABR|CM_INV,
- "ko", FC_KOI8, CM_ABR|CM_INV,
- "koi", FC_KOI8, CM_ABR|CM_INV,
- "koi8", FC_KOI8, 0, /* Old KOI-8 Cyrillic */
- "koi8-cyrillic", FC_KOI8, CM_INV,
- "koi8r", FC_KOI8R, 0, /* KOI8-R RFC1489 */
- "koi8u", FC_KOI8U, 0, /* KOI8-U RFC2319 */
- #endif /* CYRILLIC */
- "l", FC_1LATIN, CM_ABR|CM_INV,
- "la", FC_1LATIN, CM_ABR|CM_INV,
- "lat", FC_1LATIN, CM_ABR|CM_INV,
- "lati", FC_1LATIN, CM_ABR|CM_INV,
- "latin", FC_1LATIN, CM_ABR|CM_INV,
- "latin1-iso", FC_1LATIN, 0, /* ISO Latin Alphabet 1 */
- #ifdef LATIN2
- "latin2-iso", FC_2LATIN, 0, /* ISO Latin Alphabet 2 */
- #endif /* LATIN2 */
- "latin9-iso", FC_9LATIN, 0, /* ISO Latin Alphabet 9 */
- "macintosh-latin", FC_APPQD, 0, /* "Extended Mac Latin" */
- #ifdef LATIN2
- "mazovia-pc", FC_MAZOVIA, 0, /* Polish Mazovia PC code page */
- #endif /* LATIN2 */
- "next-multinational", FC_NEXT, 0, /* NeXT workstation */
- "norwegian", FC_NOASCII, 0, /* Norwegian and Danish NRC */
- "portuguese", FC_POASCII, 0, /* Portuguese NRC */
- #ifdef KANJI
- "shift-jis-kanji", FC_SHJIS, 0, /* Japanese Kanji Shift-JIS */
- #endif /* KANJI */
- #ifdef CYRILLIC
- "short-koi", FC_KOI7, 0, /* Short KOI Cyrillic */
- #endif /* CYRILLIC */
- "spanish", FC_SPASCII, 0, /* Spanish NRC */
- "swedish", FC_SWASCII, 0, /* Swedish NRC */
- "swiss", FC_CHASCII, 0, /* Swiss NRC */
- #ifdef UNICODE
- "ucs2", FC_UCS2, 0, /* ISO 10646 / Unicode UCS-2 */
- "utf8", FC_UTF8, 0, /* ISO 10646 / Unicode UTF-8 */
- #endif /* UNICODE */
- "", 0, 0
- };
- int nfilc = (sizeof(fcstab) / sizeof(struct keytab)) - 1;
- struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */
- /*
- IMPORTANT: This table is a replica of fcstab, immediately above, with the
- addition of TRANSPARENT and deletion of the Japanese sets. If you make
- changes to this table, make the corresponding changes to fcstab.
- */
- /* Keyword Value Flags */
- "apple-quickdraw", FC_APPQD, CM_INV, /* Apple Quickdraw */
- "ascii", FC_USASCII, 0, /* ASCII */
- "british", FC_UKASCII, 0, /* British NRC */
- "bulgaria-pc", FC_BULGAR, 0, /* Bulgarian PC Code Page */
- "canadian-french", FC_FCASCII, 0, /* French Canadian NRC */
- #ifdef LATIN2
- "cp1250", FC_CP1250, 0, /* Windows CP 1250 */
- #endif /* LATIN2 */
- #ifdef CYRILLIC
- "cp1251-cyrillic", FC_CP1251, 0, /* Windows CP 1251 */
- #endif /* CYRILLIC */
- "cp1252", FC_1LATIN, 0, /* Windows CP 1252 = Latin 1 */
- "cp437", FC_CP437, 0, /* IBM CP437 */
- "cp850", FC_CP850, 0, /* IBM CP850 */
- #ifdef LATIN2
- "cp852", FC_CP852, 0, /* IBM CP852 */
- #endif /* LATIN2 */
- #ifdef CYRILLIC
- "cp855-cyrillic", FC_CP855, 0, /* PC CP855 */
- #endif /* CYRILLIC */
- "cp858", FC_CP858, 0, /* PC CP858 */
- #ifdef HEBREW
- "cp862-hebrew", FC_CP862, 0, /* PC CP862 */
- #endif /* HEBREW */
- #ifdef CYRILLIC
- "cp866-cyrillic", FC_CP866, 0, /* CP866 Cyrillic */
- #endif /* CYRILLIC */
- #ifdef GREEK
- "cp869-greek", FC_CP869, 0, /* CP869 Greek */
- #endif /* GREEK */
- #ifdef CYRILLIC
- "cyrillic-iso", FC_CYRILL, 0, /* ISO Latin/Cyrillic Alphabet */
- #endif /* CYRILLIC */
- "danish", FC_NOASCII, 0, /* Norwegian and Danish NRC */
- #ifdef COMMENT
- #ifdef KANJI
- "dec-kanji", FC_JDEC, 0, /* Japanese DEC Kanji */
- #endif /* KANJI */
- #endif /* COMMENT */
- "dec-multinational", FC_DECMCS, 0, /* DEC multinational character set */
- "dg-international", FC_DGMCS, 0, /* Data General multinational */
- "dutch", FC_DUASCII, 0, /* Dutch NRC */
- #ifdef GREEK
- "elot927-greek", FC_ELOT, 0, /* ELOT 927 Greek */
- "elot928-greek", FC_GREEK, 0, /* Same as ISO 8859-7 Latin/Greek */
- #endif /* GREEK */
- "finnish", FC_FIASCII, 0, /* Finnish NRC */
- "french", FC_FRASCII, 0, /* French NRC */
- "fr-canadian", FC_FCASCII, CM_INV, /* French Canadian NRC */
- "german", FC_GEASCII, 0, /* German NRC */
- #ifdef GREEK
- "greek-iso", FC_GREEK, 0, /* ISO 8859-7 Latin/Greek */
- #endif /* GREEK */
- #ifdef HEBREW
- "he", FC_HEBREW, CM_ABR|CM_INV,
- "heb", FC_HEBREW, CM_ABR|CM_INV,
- "hebr", FC_HEBREW, CM_ABR|CM_INV,
- "hebre", FC_HEBREW, CM_ABR|CM_INV,
- "hebrew", FC_HEBREW, CM_ABR|CM_INV,
- "hebrew-7", FC_HE7, 0, /* DEC 7-Bit Hebrew */
- "hebrew-iso", FC_HEBREW, 0, /* ISO Latin/Hebrew */
- #endif /* HEBREW */
- "hp-roman8", FC_HPR8, 0, /* Hewlett Packard Roman8 */
- "hungarian", FC_HUASCII, 0, /* Hungarian NRC */
- "italian", FC_ITASCII, 0, /* Italian NRC */
- #ifdef COMMENT
- /* Kanji terminal character sets not implemented yet */
- #ifdef KANJI
- "japanese-euc", FC_JEUC, 0, /* Japanese EUC */
- "jis7-kanji", FC_JIS7, 0, /* Japanese JIS7 7bit code */
- #endif /* KANJI */
- #endif /* COMMENT */
- #ifdef CYRILLIC
- "k", FC_KOI8, CM_ABR|CM_INV,
- "ko", FC_KOI8, CM_ABR|CM_INV,
- "koi", FC_KOI8, CM_ABR|CM_INV,
- "koi8", FC_KOI8, 0, /* Old KOI-8 Cyrillic */
- "koi8-cyrillic", FC_KOI8, CM_INV,
- "koi8r", FC_KOI8R, 0, /* KOI8-R RFC1489 */
- "koi8u", FC_KOI8U, 0, /* KOI8-U RFC2319 */
- #endif /* CYRILLIC */
- "l", FC_1LATIN, CM_ABR|CM_INV,
- "la", FC_1LATIN, CM_ABR|CM_INV,
- "lat", FC_1LATIN, CM_ABR|CM_INV,
- "lati", FC_1LATIN, CM_ABR|CM_INV,
- "latin", FC_1LATIN, CM_ABR|CM_INV,
- "latin1-iso", FC_1LATIN, 0, /* ISO Latin Alphabet 1 */
- #ifdef LATIN2
- "latin2-iso", FC_2LATIN, 0, /* ISO Latin Alphabet 2 */
- #endif /* LATIN2 */
- "latin9-iso", FC_9LATIN, 0, /* ISO Latin Alphabet 9 */
- "macintosh-latin", FC_APPQD, 0, /* "Extended Mac Latin */
- #ifdef LATIN2
- "mazovia-pc", FC_MAZOVIA, 0, /* Polish Mazovia PC code page */
- #endif /* LATIN2 */
- "next-multinational", FC_NEXT, 0, /* NeXT workstation */
- "norwegian", FC_NOASCII, 0, /* Norwegian and Danish NRC */
- "portuguese", FC_POASCII, 0, /* Portuguese NRC */
- #ifdef COMMENT
- /* Kanji terminal character sets not implemented yet. */
- #ifdef KANJI
- "shift-jis-kanji", FC_SHJIS, 0, /* Japanese Kanji Shift-JIS */
- #endif /* KANJI */
- #endif /* COMMENT */
- #ifdef CYRILLIC
- "short-koi", FC_KOI7, 0, /* Short KOI Cyrillic */
- #endif /* CYRILLIC */
- "spanish", FC_SPASCII, 0, /* Spanish NRC */
- "swedish", FC_SWASCII, 0, /* Swedish NRC */
- "swiss", FC_CHASCII, 0, /* Swiss NRC */
- "transparent", FC_TRANSP, 0, /* Transparent */
- #ifdef UNICODE
- "utf8", FC_UTF8, 0, /* ISO 10646 / Unicode UTF-8 */
- #endif /* UNICODE */
- "", 0, 0
- };
- int ntermc = (sizeof(ttcstab) / sizeof(struct keytab)) - 1;
- /* This table contains the equivalent FCS number for each TCS. */
- /* If the TC_xxx symbol definitions are ever changed, fix this table. */
- /* Ditto if another TCS is added. */
- int
- cseqtab[MAXTCSETS+1] = { /* TCS/FCS equivalency table */
- -1, /* 0 = Transparent */
- FC_USASCII, /* 1 = ASCII */
- FC_1LATIN, /* 2 = Latin-1 */
- FC_2LATIN, /* 3 = Latin-2 */
- FC_CYRILL, /* 4 = Latin/Cyrillic */
- FC_JEUC, /* 5 = Japanese EUC */
- FC_HEBREW, /* 6 = Latin/Hebrew */
- FC_GREEK, /* 7 = Latin/Greek */
- FC_9LATIN, /* 8 = Latin-9 */
- FC_UCS2, /* 9 = UCS-2 */
- FC_UTF8 /* 10 = UTF-8 */
- };
- /*
- Languages:
- This table allows C-Kermit to have a SET LANGUAGE command to apply special
- language-specific rules when translating from a character set that contains
- national characters into plain ASCII, like German umlaut-a becomes ae.
- Originally, I thought it would be a good idea to let SET LANGUAGE also select
- an appropriate FILE CHARACTER-SET and TRANSFER CHARACTER-SET automatically,
- and these are included in the langinfo structure. Later I realized that this
- was a bad idea. Any particular language (e.g. Dutch) can be represented by
- many different and incompatible character sets.
- (But we could use the new (1998) ASSOCIATE command for this...)
- */
- struct langinfo langs[] = {
- /* Language code File Charset Xfer Charset Name */
- L_USASCII, FC_USASCII, TC_USASCII, "ASCII (American English)",
- L_DANISH, FC_NOASCII, TC_1LATIN, "Danish",
- L_DUTCH, FC_DUASCII, TC_1LATIN, "Dutch",
- L_FINNISH, FC_FIASCII, TC_1LATIN, "Finnish",
- L_FRENCH, FC_FRASCII, TC_1LATIN, "French",
- L_GERMAN, FC_GEASCII, TC_1LATIN, "German",
- #ifdef GREEK
- L_GREEK, FC_GREEK, TC_GREEK, "Greek",
- #endif /* GREEK */
- #ifdef HEBREW
- L_HEBREW, FC_HEBREW, TC_HEBREW, "Hebrew",
- #endif /* HEBREW */
- L_HUNGARIAN, FC_HUASCII, TC_2LATIN, "Hungarian",
- L_ICELANDIC, FC_USASCII, TC_1LATIN, "Icelandic",
- L_ITALIAN, FC_ITASCII, TC_1LATIN, "Italian",
- #ifdef KANJI
- L_JAPANESE, FC_JEUC, TC_JEUC, "Japanese",
- #endif /* KANJI */
- L_NORWEGIAN, FC_NOASCII, TC_1LATIN, "Norwegian",
- L_PORTUGUESE, FC_POASCII, TC_1LATIN, "Portuguese",
- #ifdef CYRILLIC
- L_RUSSIAN, FC_CP866, TC_CYRILL, "Russian",
- #endif /* CYRILLIC */
- L_SPANISH, FC_SPASCII, TC_1LATIN, "Spanish",
- L_SWEDISH, FC_SWASCII, TC_1LATIN, "Swedish",
- L_SWISS, FC_CHASCII, TC_1LATIN, "Swiss"
- };
- int nlangs = (sizeof(langs) / sizeof(struct langinfo));
- /*
- Keyword table for the SET LANGUAGE command.
- Only a few of these (German, Scandinavian, etc) actually do anything.
- The language is used to invoke special translation rules when converting
- from an 8-bit character set to ASCII; for example, German u-diaeresis
- becomes "ue", Dutch y-diaeresis becomes "ij". Languages without associated
- rules are invisible (CM_INV).
- */
- struct keytab lngtab[] = {
- "ascii", L_USASCII, CM_INV,
- "danish", L_DANISH, 0,
- "dutch", L_DUTCH, 0,
- "english", L_USASCII, CM_INV,
- "finnish", L_FINNISH, 0,
- "french", L_FRENCH, 0,
- "german", L_GERMAN, 0,
- #ifdef GREEK
- "greek", L_GREEK, CM_INV,
- #endif /* GREEK */
- #ifdef HEBREW
- "hebrew", L_HEBREW, CM_INV,
- #endif /* HEBREW */
- "hungarian", L_HUNGARIAN, CM_INV,
- "icelandic", L_ICELANDIC, 0,
- "italian", L_ITALIAN, CM_INV,
- #ifdef KANJI
- "japanese", L_JAPANESE, CM_INV,
- #endif /* KANJI */
- "norwegian", L_NORWEGIAN, 0,
- "none", L_USASCII, 0,
- "portuguese", L_PORTUGUESE, CM_INV,
- #ifdef CYRILLIC
- "russian", L_RUSSIAN, 0,
- #endif /* CYRILLIC */
- "spanish", L_SPANISH, CM_INV,
- "swedish", L_SWEDISH, 0,
- #ifdef CYRILLIC
- "ukrainian", L_RUSSIAN, 0,
- #endif /* CYRILLIC */
- "", 0, 0
- };
- int nlng = (sizeof(lngtab) / sizeof(struct keytab)) - 1; /* how many */
- /* Translation tables ... */
- /*
- For each pair of (transfer,file) character sets, we need two translation
- functions, one for sending, one for receiving.
- */
- /*
- Here is the first table, Latin-1 to ASCII, fully annotated...
- This one is absolutely NOT invertible, since we're going from an 8-bit
- set to a 7-bit set. Accented letters are mapped to unaccented
- equivalents, C1 control characters are all translated to "?", etc.
- */
- CONST CHAR
- yl1as[] = { /* ISO 8859-1 Latin Alphabet 1 to US ASCII */
- /* Source character Description => Translation */
- /* Dec row/col Set */
- 0, /* 000 00/00 C0 NUL Ctrl-@ => (self) */
- 1, /* 001 00/01 C0 SOH Ctrl-A => (self) */
- 2, /* 002 00/02 C0 STX Ctrl-B => (self) */
- 3, /* 003 00/03 C0 ETX Ctrl-C => (self) */
- 4, /* 004 00/04 C0 EOT Ctrl-D => (self) */
- 5, /* 005 00/05 C0 ENQ Ctrl-E => (self) */
- 6, /* 006 00/06 C0 ACK Ctrl-F => (self) */
- 7, /* 007 00/07 C0 BEL Ctrl-G => (self) */
- 8, /* 008 00/08 C0 BS Ctrl-H => (self) */
- 9, /* 009 00/09 C0 HT Ctrl-I => (self) */
- 10, /* 010 00/10 C0 LF Ctrl-J => (self) */
- 11, /* 011 00/11 C0 VT Ctrl-K => (self) */
- 12, /* 012 00/12 C0 FF Ctrl-L => (self) */
- 13, /* 013 00/13 C0 CR Ctrl-M => (self) */
- 14, /* 014 00/14 C0 SO Ctrl-N => (self) */
- 15, /* 015 00/15 C0 SI Ctrl-O => (self) */
- 16, /* 016 01/00 C0 DLE Ctrl-P => (self) */
- 17, /* 017 01/01 C0 DC1 Ctrl-Q => (self) */
- 18, /* 018 01/02 C0 DC2 Ctrl-R => (self) */
- 19, /* 019 01/03 C0 DC3 Ctrl-S => (self) */
- 20, /* 020 01/04 C0 DC4 Ctrl-T => (self) */
- 21, /* 021 01/05 C0 NAK Ctrl-U => (self) */
- 22, /* 022 01/06 C0 SYN Ctrl-V => (self) */
- 23, /* 023 01/07 C0 ETB Ctrl-W => (self) */
- 24, /* 024 01/08 C0 CAN Ctrl-X => (self) */
- 25, /* 025 01/09 C0 EM Ctrl-Y => (self) */
- 26, /* 026 01/10 C0 SUB Ctrl-Z => (self) */
- 27, /* 027 01/11 C0 ESC Ctrl-[ => (self) */
- 28, /* 028 01/12 C0 FS Ctrl- => (self) */
- 29, /* 029 01/13 C0 GS Ctrl-] => (self) */
- 30, /* 030 01/14 C0 RS Ctrl-^ => (self) */
- 31, /* 031 01/15 C0 US Ctrl-_ => (self) */
- 32, /* 032 02/00 SP Space => (self) */
- 33, /* 033 02/01 G0 ! Exclamation mark => (self) */
- 34, /* 034 02/02 G0 " Doublequote => (self) */
- 35, /* 035 02/03 G0 # Number sign => (self) */
- 36, /* 036 02/04 G0 $ Dollar sign => (self) */
- 37, /* 037 02/05 G0 % Percent sign => (self) */
- 38, /* 038 02/06 G0 & Ampersand => (self) */
- 39, /* 039 02/07 G0 ' Apostrophe => (self) */
- 40, /* 040 02/08 G0 ( Left parenthesis => (self) */
- 41, /* 041 02/09 G0 ) Right parenthesis => (self) */
- 42, /* 042 02/10 G0 * Asterisk => (self) */
- 43, /* 043 02/11 G0 + Plus sign => (self) */
- 44, /* 044 02/12 G0 , Comma => (self) */
- 45, /* 045 02/13 G0 - Hyphen, minus sign => (self) */
- 46, /* 046 02/14 G0 . Period, full stop => (self) */
- 47, /* 047 02/15 G0 / Slash, solidus => (self) */
- 48, /* 048 03/00 G0 0 Digit 0 => (self) */
- 49, /* 049 03/01 G0 1 Digit 1 => (self) */
- 50, /* 050 03/02 G0 2 Digit 2 => (self) */
- 51, /* 051 03/03 G0 3 Digit 3 => (self) */
- 52, /* 052 03/04 G0 4 Digit 4 => (self) */
- 53, /* 053 03/05 G0 5 Digit 5 => (self) */
- 54, /* 054 03/06 G0 6 Digit 6 => (self) */
- 55, /* 055 03/07 G0 7 Digit 7 => (self) */
- 56, /* 056 03/08 G0 8 Digit 8 => (self) */
- 57, /* 057 03/09 G0 9 Digit 9 => (self) */
- 58, /* 058 03/10 G0 : Colon => (self) */
- 59, /* 059 03/11 G0 ; Semicolon => (self) */
- 60, /* 060 03/12 G0 < Less-than sign => (self) */
- 61, /* 061 03/13 G0 = Equals sign => (self) */
- 62, /* 062 03/14 G0 > Greater-than sign => (self) */
- 63, /* 063 03/15 G0 ? Question mark => (self) */
- 64, /* 064 04/00 G0 @ Commercial at sign => (self) */
- 65, /* 065 04/01 G0 A Letter A => (self) */
- 66, /* 066 04/02 G0 B Letter B => (self) */
- 67, /* 067 04/03 G0 C Letter C => (self) */
- 68, /* 068 04/04 G0 D Letter D => (self) */
- 69, /* 069 04/05 G0 E Letter E => (self) */
- 70, /* 070 04/06 G0 F Letter F => (self) */
- 71, /* 071 04/07 G0 G Letter G => (self) */
- 72, /* 072 04/08 G0 H Letter H => (self) */
- 73, /* 073 04/09 G0 I Letter I => (self) */
- 74, /* 074 04/10 G0 J Letter J => (self) */
- 75, /* 075 04/11 G0 K Letter K => (self) */
- 76, /* 076 04/12 G0 L Letter L => (self) */
- 77, /* 077 04/13 G0 M Letter M => (self) */
- 78, /* 078 04/14 G0 N Letter N => (self) */
- 79, /* 079 04/15 G0 O Letter O => (self) */
- 80, /* 080 05/00 G0 P Letter P => (self) */
- 81, /* 081 05/01 G0 Q Letter Q => (self) */
- 82, /* 082 05/02 G0 R Letter R => (self) */
- 83, /* 083 05/03 G0 S Letter S => (self) */
- 84, /* 084 05/04 G0 T Letter T => (self) */
- 85, /* 085 05/05 G0 U Letter U => (self) */
- 86, /* 086 05/06 G0 V Letter V => (self) */
- 87, /* 087 05/07 G0 W Letter W => (self) */
- 88, /* 088 05/08 G0 X Letter X => (self) */
- 89, /* 089 05/09 G0 Y Letter Y => (self) */
- 90, /* 090 05/10 G0 Z Letter Z => (self) */
- 91, /* 091 05/11 G0 [ Left square bracket => (self) */
- 92, /* 092 05/12 G0 Reverse slash => (self) */
- 93, /* 093 05/13 G0 ] Right square bracket => (self) */
- 94, /* 094 05/14 G0 ^ Circumflex accent => (self) */
- 95, /* 095 05/15 G0 _ Underline, low line => (self) */
- 96, /* 096 06/00 G0 ` Grave accent => (self) */
- 97, /* 097 06/01 G0 a Letter a => (self) */
- 98, /* 098 06/02 G0 b Letter b => (self) */
- 99, /* 099 06/03 G0 c Letter c => (self) */
- 100, /* 100 06/04 G0 d Letter d => (self) */
- 101, /* 101 06/05 G0 e Letter e => (self) */
- 102, /* 102 06/06 G0 f Letter f => (self) */
- 103, /* 103 06/07 G0 g Letter g => (self) */
- 104, /* 104 06/08 G0 h Letter h => (self) */
- 105, /* 105 06/09 G0 i Letter i => (self) */
- 106, /* 106 06/10 G0 j Letter j => (self) */
- 107, /* 107 06/11 G0 k Letter k => (self) */
- 108, /* 108 06/12 G0 l Letter l => (self) */
- 109, /* 109 06/13 G0 m Letter m => (self) */
- 110, /* 110 06/14 G0 n Letter n => (self) */
- 111, /* 111 06/15 G0 o Letter o => (self) */
- 112, /* 112 07/00 G0 p Letter p => (self) */
- 113, /* 113 07/01 G0 q Letter q => (self) */
- 114, /* 114 07/02 G0 r Letter r => (self) */
- 115, /* 115 07/03 G0 s Letter s => (self) */
- 116, /* 116 07/04 G0 t Letter t => (self) */
- 117, /* 117 07/05 G0 u Letter u => (self) */
- 118, /* 118 07/06 G0 v Letter v => (self) */
- 119, /* 119 07/07 G0 w Letter w => (self) */
- 120, /* 120 07/08 G0 x Letter x => (self) */
- 121, /* 121 07/09 G0 y Letter y => (self) */
- 122, /* 122 07/10 G0 z Letter z => (self) */
- 123, /* 123 07/11 G0 { Left curly bracket => (self) */
- 124, /* 124 07/12 G0 | Vertical bar => (self) */
- 125, /* 125 07/13 G0 } Right curly bracket => (self) */
- 126, /* 126 07/14 G0 ~ Tilde => (self) */
- 127, /* 127 07/15 DEL Delete, Rubout => (self) */
- UNK, /* 128 08/00 C1 => UNK */
- UNK, /* 129 08/01 C1 => UNK */
- UNK, /* 130 08/02 C1 => UNK */
- UNK, /* 131 08/03 C1 => UNK */
- UNK, /* 132 08/04 C1 IND => UNK */
- UNK, /* 133 08/05 C1 NEL => UNK */
- UNK, /* 134 08/06 C1 SSA => UNK */
- UNK, /* 135 08/07 C1 ESA => UNK */
- UNK, /* 136 08/08 C1 HTS => UNK */
- UNK, /* 137 08/09 C1 => UNK */
- UNK, /* 138 08/10 C1 => UNK */
- UNK, /* 139 08/11 C1 => UNK */
- UNK, /* 140 08/12 C1 => UNK */
- UNK, /* 141 08/13 C1 RI => UNK */
- UNK, /* 142 08/14 C1 SS2 => UNK */
- UNK, /* 143 08/15 C1 SS3 => UNK */
- UNK, /* 144 09/00 C1 DCS => UNK */
- UNK, /* 145 09/01 C1 => UNK */
- UNK, /* 146 09/02 C1 => UNK */
- UNK, /* 147 09/03 C1 STS => UNK */
- UNK, /* 148 09/04 C1 => UNK */
- UNK, /* 149 09/05 C1 => UNK */
- UNK, /* 150 09/06 C1 SPA => UNK */
- UNK, /* 151 09/07 C1 EPA => UNK */
- UNK, /* 152 09/08 C1 => UNK */
- UNK, /* 153 09/09 C1 => UNK */
- UNK, /* 154 09/10 C1 => UNK */
- UNK, /* 155 09/11 C1 CSI => UNK */
- UNK, /* 156 09/12 C1 ST => UNK */
- UNK, /* 157 09/13 C1 OSC => UNK */
- UNK, /* 158 09/14 C1 PM => UNK */
- UNK, /* 159 09/15 C1 APC => UNK */
- 32, /* 160 10/00 G1 No-break space => SP */
- 33, /* 161 10/01 G1 Inverted exclamation => ! */
- 99, /* 162 10/02 G1 Cent sign => c */
- 35, /* 163 10/03 G1 Pound sign => # */
- 36, /* 164 10/04 G1 Currency sign => $ */
- 89, /* 165 10/05 G1 Yen sign => Y */
- 124, /* 166 10/06 G1 Broken bar => | */
- 80, /* 167 10/07 G1 Paragraph sign => P */
- 34, /* 168 10/08 G1 Diaeresis => " */
- 67, /* 169 10/09 G1 Copyright sign => C */
- 97, /* 170 10/10 G1 Feminine ordinal => a */
- 34, /* 171 10/11 G1 Left angle quotation => " */
- 126, /* 172 10/12 G1 Not sign => ~ */
- 45, /* 173 10/13 G1 Soft hyphen => - */
- 82, /* 174 10/14 G1 Registered trade mark => R */
- 95, /* 175 10/15 G1 Macron => _ */
- 111, /* 176 11/00 G1 Degree sign, ring above => o */
- UNK, /* 177 11/01 G1 Plus-minus sign => UNK */
- 50, /* 178 11/02 G1 Superscript two => 2 */
- 51, /* 179 11/03 G1 Superscript three => 3 */
- 39, /* 180 11/04 G1 Acute accent => ' */
- 117, /* 181 11/05 G1 Micro sign => u */
- 45, /* 182 11/06 G1 Pilcrow sign => - */
- 45, /* 183 11/07 G1 Middle dot => - */
- 44, /* 184 11/08 G1 Cedilla => , */
- 49, /* 185 11/09 G1 Superscript one => 1 */
- 111, /* 186 11/10 G1 Masculine ordinal => o */
- 34, /* 187 11/11 G1 Right angle quotation => " */
- UNK, /* 188 11/12 G1 One quarter => UNK */
- UNK, /* 189 11/13 G1 One half => UNK */
- UNK, /* 190 11/14 G1 Three quarters => UNK */
- 63, /* 191 11/15 G1 Inverted question mark => ? */
- 65, /* 192 12/00 G1 A grave => A */
- 65, /* 193 12/01 G1 A acute => A */
- 65, /* 194 12/02 G1 A circumflex => A */
- 65, /* 195 12/03 G1 A tilde => A */
- 65, /* 196 12/04 G1 A diaeresis => A */
- 65, /* 197 12/05 G1 A ring above => A */
- 65, /* 198 12/06 G1 A with E => A */
- 67, /* 199 12/07 G1 C Cedilla => C */
- 69, /* 200 12/08 G1 E grave => E */
- 69, /* 201 12/09 G1 E acute => E */
- 69, /* 202 12/10 G1 E circumflex => E */
- 69, /* 203 12/11 G1 E diaeresis => E */
- 73, /* 204 12/12 G1 I grave => I */
- 73, /* 205 12/13 G1 I acute => I */
- 73, /* 206 12/14 G1 I circumflex => I */
- 73, /* 207 12/15 G1 I diaeresis => I */
- 68, /* 208 13/00 G1 Icelandic Eth => D */
- 78, /* 209 13/01 G1 N tilde => N */
- 79, /* 210 13/02 G1 O grave => O */
- 79, /* 211 13/03 G1 O acute => O */
- 79, /* 212 13/04 G1 O circumflex => O */
- 79, /* 213 13/05 G1 O tilde => O */
- 79, /* 214 13/06 G1 O diaeresis => O */
- 120, /* 215 13/07 G1 Multiplication sign => x */
- 79, /* 216 13/08 G1 O oblique stroke => O */
- 85, /* 217 13/09 G1 U grave => U */
- 85, /* 218 13/10 G1 U acute => U */
- 85, /* 219 13/11 G1 U circumflex => U */
- 85, /* 220 13/12 G1 U diaeresis => U */
- 89, /* 221 13/13 G1 Y acute => Y */
- 84, /* 222 13/14 G1 Icelandic Thorn => T */
- 115, /* 223 13/15 G1 German sharp s => s */
- 97, /* 224 14/00 G1 a grave => a */
- 97, /* 225 14/01 G1 a acute => a */
- 97, /* 226 14/02 G1 a circumflex => a */
- 97, /* 227 14/03 G1 a tilde => a */
- 97, /* 228 14/04 G1 a diaeresis => a */
- 97, /* 229 14/05 G1 a ring above => a */
- 97, /* 230 14/06 G1 a with e => a */
- 99, /* 231 14/07 G1 c cedilla => c */
- 101, /* 232 14/08 G1 e grave => e */
- 101, /* 233 14/09 G1 e acute => e */
- 101, /* 234 14/10 G1 e circumflex => e */
- 101, /* 235 14/11 G1 e diaeresis => e */
- 105, /* 236 14/12 G1 i grave => i */
- 105, /* 237 14/13 G1 i acute => i */
- 105, /* 238 14/14 G1 i circumflex => i */
- 105, /* 239 14/15 G1 i diaeresis => i */
- 100, /* 240 15/00 G1 Icelandic eth => d */
- 110, /* 241 15/01 G1 n tilde => n */
- 111, /* 242 15/02 G1 o grave => o */
- 111, /* 243 15/03 G1 o acute => o */
- 111, /* 244 15/04 G1 o circumflex => o */
- 111, /* 245 15/05 G1 o tilde => o */
- 111, /* 246 15/06 G1 o diaeresis => o */
- 47, /* 247 15/07 G1 Division sign => / */
- 111, /* 248 15/08 G1 o oblique stroke => o */
- 117, /* 249 15/09 G1 u grave => u */
- 117, /* 250 15/10 G1 u acute => u */
- 117, /* 251 15/11 G1 u circumflex => u */
- 117, /* 252 15/12 G1 u diaeresis => u */
- 121, /* 253 15/13 G1 y acute => y */
- 116, /* 254 15/14 G1 Icelandic thorn => t */
- 121 /* 255 15/15 G1 y diaeresis => y */
- };
- /* Translation tables for ISO Latin Alphabet 1 to local file character sets */
- /*
- Most of the remaining tables are not annotated like the one above, because
- the size of the resulting source file would be ridiculous. Each row in the
- following tables corresponds to a column of ISO 8859-1.
- */
- CONST CHAR
- yl185[] = { /* ISO 8859-1 Latin Alphabet 1 (Latin-1) to IBM Code Page 850 */
- /*
- This is based on IBM's official invertible translation. Reference: IBM
- Character Data Representation Architecture (CDRA), Level 1, Registry,
- SC09-1291-00 (1990), p.152. (Note: Latin-1 is IBM Code Page 00819.) Note:
- IBM's bizarre rearrangement of C0 controls and DEL has been undone in this
- table.
- */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 186, 205, 201, 187, 200, 188, 204, 185, 203, 202, 206, 223, 220, 219, 254, 242,
- 179, 196, 218, 191, 192, 217, 195, 180, 194, 193, 197, 176, 177, 178, 213, 159,
- 255, 173, 189, 156, 207, 190, 221, 245, 249, 184, 166, 174, 170, 240, 169, 238,
- 248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168,
- 183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216,
- 209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234, 154, 237, 232, 225,
- 133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139,
- 208, 164, 149, 162, 147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152
- };
- CONST CHAR
- y85l1[] = { /* IBM Code Page 850 to Latin-1 */
- /*
- This is from IBM CDRA page 153. It is the inverse of yl185[].
- As of edit 183, this table is no longer pure CDRA. The translations
- involving C0 controls and DEL have been removed.
- */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
- 201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 248, 163, 216, 215, 159,
- 225, 237, 243, 250, 241, 209, 170, 186, 191, 174, 172, 189, 188, 161, 171, 187,
- 155, 156, 157, 144, 151, 193, 194, 192, 169, 135, 128, 131, 133, 162, 165, 147,
- 148, 153, 152, 150, 145, 154, 227, 195, 132, 130, 137, 136, 134, 129, 138, 164,
- 240, 208, 202, 203, 200, 158, 205, 206, 207, 149, 146, 141, 140, 166, 204, 139,
- 211, 223, 212, 210, 245, 213, 181, 254, 222, 218, 219, 217, 253, 221, 175, 180,
- 173, 177, 143, 190, 182, 167, 247, 184, 176, 168, 183, 185, 179, 178, 142, 160
- };
- #ifdef COMMENT
- CONST CHAR
- yl1r8[] = { /* Latin-1 to Hewlett Packard Roman8 */
- /* This is HP's official translation, straight from iconv */
- /* It is NOT invertible. */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 184, 191, 187, 186, 188, 124, 189, 171, 99, 249, 251, 126, 45, 82, 176,
- 179, 254, 50, 51, 168, 243, 244, 242, 44, 49, 250, 253, 247, 248, 245, 185,
- 161, 224, 162, 225, 216, 208, 211, 180, 163, 220, 164, 165, 230, 229, 166, 167,
- 227, 182, 232, 231, 223, 233, 218, 120, 210, 173, 237, 174, 219, 177, 240, 222,
- 200, 196, 192, 226, 204, 212, 215, 181, 201, 197, 193, 205, 217, 213, 209, 221,
- 228, 183, 202, 198, 194, 234, 206, 47, 214, 203, 199, 195, 207, 178, 241, 239
- };
- CONST CHAR
- yr8l1[] = { /* Hewlett Packard Roman8 to Latin-1 */
- /* This is HP's official translation, straight from iconv */
- /* It is NOT invertible. */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 192, 194, 200, 202, 203, 206, 207, 180, 96, 94, 168, 126, 217, 219, 163,
- 175, 221, 253, 176, 199, 231, 209, 241, 161, 191, 164, 163, 165, 167, 102, 162,
- 226, 234, 244, 251, 225, 233, 243, 250, 224, 232, 242, 249, 228, 235, 246, 252,
- 197, 238, 216, 198, 229, 237, 248, 230, 196, 236, 214, 220, 201, 239, 223, 212,
- 193, 195, 227, 208, 240, 205, 204, 211, 210, 213, 245, 83, 115, 218, 89, 255,
- 222, 254, 183, 181, 182, 190, 45, 188, 189, 170, 186, 171, 42, 187, 177, 160
- };
- #else /* !COMMENT */
- /* This is an invertible mapping, approved by HP in January 1994. */
- CONST CHAR
- yl1r8[] = { /* ISO Latin-1 to HP Roman8, Invertible */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 184, 191, 187, 186, 188, 169, 189, 171, 170, 249, 251, 172, 175, 190, 176,
- 179, 254, 235, 236, 168, 243, 244, 242, 238, 246, 250, 253, 247, 248, 245, 185,
- 161, 224, 162, 225, 216, 208, 211, 180, 163, 220, 164, 165, 230, 229, 166, 167,
- 227, 182, 232, 231, 223, 233, 218, 252, 210, 173, 237, 174, 219, 177, 240, 222,
- 200, 196, 192, 226, 204, 212, 215, 181, 201, 197, 193, 205, 217, 213, 209, 221,
- 228, 183, 202, 198, 194, 234, 206, 255, 214, 203, 199, 195, 207, 178, 241, 239
- };
- CONST CHAR
- yr8l1[] = { /* HP Roman8 to ISO Latin-1, Invertible */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 192, 194, 200, 202, 203, 206, 207, 180, 166, 169, 168, 172, 217, 219, 173,
- 175, 221, 253, 176, 199, 231, 209, 241, 161, 191, 164, 163, 165, 167, 174, 162,
- 226, 234, 244, 251, 225, 233, 243, 250, 224, 232, 242, 249, 228, 235, 246, 252,
- 197, 238, 216, 198, 229, 237, 248, 230, 196, 236, 214, 220, 201, 239, 223, 212,
- 193, 195, 227, 208, 240, 205, 204, 211, 210, 213, 245, 178, 179, 218, 184, 255,
- 222, 254, 183, 181, 182, 190, 185, 188, 189, 170, 186, 171, 215, 187, 177, 247
- };
- #endif /* COMMENT */
- CONST CHAR
- yl143[] = { /* Latin-1 to IBM Code Page 437 */
- /*
- Although the IBM CDRA does not include an official translation between CP437
- and ISO Latin Alphabet 1, it does include an official, invertible
- translation between CP437 and CP850 (page 196), and another from CP850 to
- Latin-1 (CP819) (page 153). This translation was obtained with a two-step
- process based on those tables.
- As of edit 183, the translation is modified to leave C0 controls alone.
- */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 186, 205, 201, 187, 200, 188, 204, 185, 203, 202, 206, 223, 220, 219, 254, 242,
- 179, 196, 218, 191, 192, 217, 195, 180, 194, 193, 197, 176, 177, 178, 213, 159,
- 255, 173, 155, 156, 207, 157, 221, 245, 249, 184, 166, 174, 170, 240, 169, 238,
- 248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168,
- 183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216,
- 209, 165, 227, 224, 226, 229, 153, 158, 190, 235, 233, 234, 154, 237, 232, 225,
- 133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139,
- 208, 164, 149, 162, 147, 228, 148, 246, 189, 151, 163, 150, 129, 236, 231, 152
- };
- CONST CHAR
- y43l1[] = { /* IBM Code Page 437 to Latin-1 */
- /*
- This table is the inverse of yl143[].
- */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
- 201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 162, 163, 165, 215, 159,
- 225, 237, 243, 250, 241, 209, 170, 186, 191, 174, 172, 189, 188, 161, 171, 187,
- 155, 156, 157, 144, 151, 193, 194, 192, 169, 135, 128, 131, 133, 248, 216, 147,
- 148, 153, 152, 150, 145, 154, 227, 195, 132, 130, 137, 136, 134, 129, 138, 164,
- 240, 208, 202, 203, 200, 158, 205, 206, 207, 149, 146, 141, 140, 166, 204, 139,
- 211, 223, 212, 210, 245, 213, 181, 254, 222, 218, 219, 217, 253, 221, 175, 180,
- 173, 177, 143, 190, 182, 167, 247, 184, 176, 168, 183, 185, 179, 178, 142, 160
- };
- CONST CHAR
- yl1aq[] = { /* Latin-1 to Extended Mac Latin (based on Apple QuickDraw) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 182, 183, 184, 185, 189, 196, 197, 198, 206, 207, 210, 211, 217, 218, 195, 212,
- 209, 215, 213, 226, 227, 228, 240, 245, 246, 247, 249, 250, 251, 253, 254, 255,
- 202, 193, 162, 163, 219, 180, 201, 164, 172, 169, 187, 199, 194, 208, 168, 248,
- 161, 177, 170, 173, 171, 181, 166, 225, 252, 176, 188, 200, 178, 179, 186, 192,
- 203, 231, 229, 204, 128, 129, 174, 130, 233, 131, 230, 232, 237, 234, 235, 236,
- 220, 132, 241, 238, 239, 205, 133, 165, 175, 244, 242, 243, 134, 160, 222, 167,
- 136, 135, 137, 139, 138, 140, 190, 141, 143, 142, 144, 145, 147, 146, 148, 149,
- 221, 150, 152, 151, 153, 155, 154, 214, 191, 157, 156, 158, 159, 224, 223, 216
- };
- CONST CHAR
- yl1du[] = { /* Latin-1 to Dutch ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, UNK, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, 39, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, 35, 124, UNK, UNK, 93, 123, 67, UNK, 34, UNK, 45, 82, UNK,
- 91, UNK, UNK, UNK, 126, 117, UNK, UNK, 44, UNK, UNK, 34, 125, 92, 64, 63,
- 65, 65, 65, 65, 91, 65, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 79, 120, 79, 85, 85, 85, 85, 89, UNK, 115,
- 97, 97, 97, 97, 97, 97, 97, 99, 101, 101, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 111, 111, 47, 111, 117, 117, 117, 117, 121, UNK, 91
- };
- CONST CHAR
- yl1fi[] = { /* Latin-1 to Finnish ISO NRC (*not* ISO 646) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, UNK, 95,
- UNK, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, UNK, UNK, UNK, UNK, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 91, 93, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 92, 120, 79, 85, 85, 85, 94, 89, UNK, 115,
- 97, 97, 97, 97, 123, 125, 97, 99, 101, 96, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 111, 124, 47, 111, 117, 117, 117, 126, 121, UNK, 121
- };
- CONST CHAR
- yl1fr[] = { /* Latin-1 to French ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, UNK, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, 35, UNK, UNK, UNK, 93, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- 91, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 65, 65, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 79, 120, 79, 85, 85, 85, 85, 89, UNK, 115,
- 64, 97, 97, 97, 97, 97, 97, 92, 125, 123, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 111, 111, 47, 111, 124, 117, 117, 117, 121, UNK, 121
- };
- CONST CHAR
- yl1fc[] = { /* Latin-1 to French-Canadian ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, UNK, 95,
- UNK, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, UNK, UNK, UNK, UNK, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 65, 65, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 79, 120, 79, 85, 85, 85, 85, 89, UNK, 115,
- 64, 97, 91, 97, 97, 97, 97, 92, 125, 123, 93, 101, 105, 105, 94, 105,
- UNK, 110, 111, 111, 96, 111, 111, 47, 111, 124, 117, 126, 117, 121, UNK, 121
- };
- CONST CHAR
- yl1ge[] = { /* Latin-1 to German ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, UNK, UNK, UNK, 64, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 91, 65, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 92, 120, 79, 85, 85, 85, 93, 89, UNK, 126,
- 97, 97, 97, 97, 123, 97, 97, 99, 101, 101, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 111, 124, 47, 111, 117, 117, 117, 125, 121, UNK, 121
- };
- CONST CHAR
- yl1hu[] = { /* Latin-1 to Hungarian ISO-646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, 36, UNK, UNK, UNK, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, 64, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 65, 65, 65, 67, 69, 91, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 92, 120, 79, 85, 85, 85, 93, 89, UNK, 115,
- 97, 96, 97, 97, 97, 97, 97, 99, 101, 123, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 111, 124, 47, 111, 117, 117, 117, 125, 121, UNK, 121
- };
- CONST CHAR
- yl1it[] = { /* Latin-1 to Italian ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, UNK, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, 94, 95,
- UNK, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, 35, UNK, UNK, UNK, 64, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- 91, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 65, 65, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 79, 120, 79, 85, 85, 85, 85, 89, UNK, 115,
- 123, 97, 97, 97, 97, 97, 97, 92, 125, 93, 101, 101, 126, 105, 105, 105,
- UNK, 110, 124, 111, 111, 111, 111, 47, 111, 96, 117, 117, 117, 121, UNK, 121
- };
- CONST CHAR
- yl1ne[] = { /* Latin-1 to NeXT */
- /* NEED TO MAKE THIS ONE INVERTIBLE, LIKE CP850 */
- /*
- Which means finding all the graphic characters in the NeXT set that have
- no equivalent in Latin-1 and assigning them to the UNK positions (mostly
- Latin-1 C1 controls). Then make the ynel1[] table be the inverse of this
- one. But first we should try to get an official Latin-1/NeXT translation
- table from NeXT, Inc.
- */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- 32, 161, 162, 163, 168, 165, 181, 167, 200, 160, 227, 171, 190, UNK, 176, 197,
- 202, 209, 201, 204, 194, 157, 182, 183, 203, 192, 235, 187, 210, 211, 212, 191,
- 129, 130, 131, 132, 133, 134, 225, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 158, 233, 151, 152, 153, 154, 155, 156, 251,
- 213, 214, 215, 216, 217, 218, 241, 219, 220, 221, 222, 223, 224, 226, 228, 229,
- 230, 231, 236, 237, 238, 239, 240, 159, 249, 242, 243, 244, 246, 247, 252, 253
- };
- CONST CHAR
- yl1no[] = { /* Latin-1 to Norwegian/Danish ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, UNK, UNK, UNK, UNK, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 65, 93, 91, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 79, 120, 92, 85, 85, 85, 85, 89, UNK, 115,
- 97, 97, 97, 97, 97, 125, 123, 99, 101, 101, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 111, 111, 47, 124, 117, 117, 117, 117, 121, UNK, 121
- };
- CONST CHAR
- yl1po[] = { /* Latin-1 to Portuguese ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, UNK, UNK, UNK, UNK, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 91, 65, 65, 65, 92, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 93, 79, 120, 79, 85, 85, 85, 85, 89, UNK, 115,
- 97, 97, 97, 123, 97, 97, 97, 124, 101, 101, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 125, 111, 47, 111, 117, 117, 117, 117, 121, UNK, 121
- };
- CONST CHAR
- yl1sp[] = { /* Latin-1 to Spanish ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, UNK, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 96, UNK, UNK, 126, 127,
- 126, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 91, UNK, 35, UNK, UNK, UNK, 64, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- 123, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 93,
- 65, 65, 65, 65, 65, 65, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 92, 79, 79, 79, 79, 79, 120, 79, 85, 85, 85, 85, 89, UNK, 115,
- 124, 97, 97, 97, 97, 97, 97, 125, 101, 101, 101, 101, 105, 105, 105, 105,
- UNK, 124, 111, 111, 111, 111, 111, 47, 111, 117, 117, 117, 117, 121, UNK, 121
- };
- CONST CHAR
- yl1sw[] = { /* Latin-1 to Swedish ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, UNK, 95,
- UNK, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, UNK, UNK, UNK, UNK, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 91, 93, 65, 67, 69, 64, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 92, 120, 79, 85, 85, 85, 94, 89, UNK, 115,
- 97, 97, 97, 97, 123, 125, 97, 99, 101, 96, 101, 101, 105, 105, 105, 105,
- UNK, 110, 111, 111, 111, 111, 124, 47, 111, 117, 117, 117, 126, 121, UNK, 121
- };
- CONST CHAR
- yl1ch[] = { /* Latin-1 to Swiss ISO 646 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, UNK, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, UNK, UNK, UNK, UNK, UNK,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 33, UNK, UNK, UNK, UNK, UNK, UNK, 34, 67, UNK, 34, UNK, 45, 82, UNK,
- UNK, UNK, UNK, UNK, 39, 117, UNK, UNK, 44, UNK, UNK, 34, UNK, UNK, UNK, 63,
- 65, 65, 65, 65, 65, 65, 65, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- UNK, 78, 79, 79, 79, 79, 79, 120, 79, 85, 85, 85, 85, 89, UNK, 115,
- 64, 97, 97, 97, 123, 97, 97, 92, 95, 91, 93, 101, 105, 105, 94, 105,
- UNK, 110, 111, 111, 96, 111, 124, 47, 111, 35, 117, 126, 125, 121, UNK, 121
- };
- CONST CHAR
- yl1dm[] = { /* Latin-1 to DEC Multinational Character Set */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 32, 161, 162, 163, 168, 165, 124, 167, 34, 169, 170, 171, 126, UNK, 82, UNK,
- 176, 177, 178, 179, 39, 181, 182, 183, 44, 185, 186, 187, 188, 189, UNK, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- UNK, 209, 210, 211, 212, 213, 214, 120, 216, 217, 218, 219, 220, 221, UNK, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- UNK, 241, 242, 243, 244, 245, 246, 47, 248, 249, 250, 251, 252, UNK, UNK, 253
- };
- CONST CHAR
- yl1dg[] = { /* Latin-1 to Data General International Character Set */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 171, 167, 168, 166, 181, 191, 187, 189, 173, 169, 177, 161, 255, 174, 175,
- 188, 182, 164, 165, 190, 163, 178, 185, 186, 179, 170, 176, 223, 162, 220, 172,
- 193, 192, 194, 196, 195, 197, 198, 199, 201, 200, 202, 203, 205, 204, 206, 207,
- 184, 208, 210, 209, 211, 213, 212, 215, 214, 217, 216, 218, 219, 221, 222, 252,
- 225, 224, 226, 228, 227, 229, 230, 231, 233, 232, 234, 235, 237, 236, 238, 239,
- 183, 240, 242, 241, 243, 245, 244, 247, 246, 249, 248, 250, 251, 180, 254, 253
- };
- /* Local file character sets to ISO Latin Alphabet 1 */
- #ifdef NOTUSED
- CONST CHAR
- yasl1[] = { /* ASCII to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127
- };
- #endif /* NOTUSED */
- CONST CHAR
- yaql1[] = { /* Extended Mac Latin (based on Apple Quickdraw) to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 196, 197, 199, 201, 209, 214, 220, 225, 224, 226, 228, 227, 229, 231, 233, 232,
- 234, 235, 237, 236, 238, 239, 241, 243, 242, 244, 246, 245, 250, 249, 251, 252,
- 221, 176, 162, 163, 167, 215, 182, 223, 174, 169, 178, 180, 168, 179, 198, 216,
- 185, 177, 188, 189, 165, 181, 128, 129, 130, 131, 190, 170, 186, 132, 230, 248,
- 191, 161, 172, 142, 133, 134, 135, 171, 187, 166, 160, 192, 195, 213, 136, 137,
- 173, 144, 138, 139, 143, 146, 247, 145, 255, 140, 141, 164, 208, 240, 222, 254,
- 253, 183, 147, 148, 149, 194, 202, 193, 203, 200, 205, 206, 207, 204, 211, 212,
- 150, 210, 218, 219, 217, 151, 152, 153, 175, 154, 155, 156, 184, 157, 158, 159
- };
- CONST CHAR
- ydul1[] = { /* Dutch ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 163, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 190, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 255, 189, 124, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 168, 164, 188, 39, 127
- };
- CONST CHAR
- yfil1[] = { /* Finnish NRC (*not* ISO-646) to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 196, 214, 197, 220, 95,
- 233, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 229, 252, 127
- };
- CONST CHAR
- yfrl1[] = { /* French ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 163, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 224, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 176, 231, 167, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 233, 249, 232, 168, 127
- };
- CONST CHAR
- yfcl1[] = { /* French-Canadian ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 224, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 226, 231, 234, 238, 95,
- 244, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 233, 249, 232, 251, 127
- };
- CONST CHAR
- ygel1[] = { /* German ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 167, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 196, 214, 220, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 252, 223, 127
- };
- CONST CHAR
- yitl1[] = { /* Italian ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 163, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 167, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 176, 231, 233, 94, 95,
- 249, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 224, 242, 232, 236, 127
- };
- CONST CHAR
- ynel1[] = { /* NeXT to Latin-1 */
- /* NEED TO MAKE THIS ONE INVERTIBLE */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 160, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 217, 218, 219, 220, 221, 222, 181, 215, 247,
- 169, 161, 162, 163, UNK, 165, UNK, 167, 164, UNK, UNK, 171, UNK, UNK, UNK, UNK,
- 174, UNK, UNK, UNK, 183, 166, 182, UNK, UNK, UNK, UNK, 187, UNK, UNK, 172, 191,
- 185, 96, 180, 94, 126, 175, UNK, UNK, 168, 178, 176, 184, 179, UNK, UNK, UNK,
- UNK, 177, 188, 189, 190, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235,
- 236, 198, 237, 170, 238, 239, 240, 241, UNK, 216, UNK, 186, 242, 243, 244, 245,
- 246, 230, 249, 250, 251, UNK, 252, 253, UNK, 248, UNK, 223, 254, 255, UNK, UNK
- };
- CONST CHAR
- ynol1[] = { /* Norwegian/Danish ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 198, 216, 197, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 230, 248, 229, 126, 127
- };
- CONST CHAR
- ypol1[] = { /* Portuguese ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 195, 199, 213, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 227, 231, 245, 126, 127
- };
- CONST CHAR
- yspl1[] = { /* Spanish ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 163, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 167, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 161, 209, 191, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 176, 241, 231, 126, 127
- };
- CONST CHAR
- yswl1[] = { /* Swedish ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 201, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 196, 214, 197, 220, 95,
- 233, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 229, 252, 127
- };
- CONST CHAR
- ychl1[] = { /* Swiss ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 249, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 224, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 233, 231, 234, 238, 232,
- 244, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 228, 246, 252, 251, 127
- };
- CONST CHAR
- yhul1[] = { /* Hungarian ISO 646 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 164, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 193, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 201, 214, 220, 94, 95,
- 225, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 233, 246, 252, 34, 127
- };
- CONST CHAR
- ydml1[] = { /* DEC Multinational Character Set to Latin-1 */
- /* Note: This is a null translation */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
- };
- CONST CHAR
- ydgl1[] = { /* Data General International to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 172, 189, 181, 178, 179, 164, 162, 163, 170, 186, 161, 191, 169, 174, 175,
- 187, 171, 182, 185, 253, 165, 177, 240, 208, 183, 184, 167, 176, 168, 180, 166,
- 193, 192, 194, 196, 195, 197, 198, 199, 201, 200, 202, 203, 205, 204, 206, 207,
- 209, 211, 210, 212, 214, 213, 216, 215, 218, 217, 219, 220, 190, 221, 222, 188,
- 225, 224, 226, 228, 227, 229, 230, 231, 233, 232, 234, 235, 237, 236, 238, 239,
- 241, 243, 242, 244, 246, 245, 248, 247, 250, 249, 251, 252, 223, 255, 254, 173
- };
- /* Translation tables for Cyrillic character sets */
- #ifdef CYRILLIC
- CONST CHAR
- ylcac[] = { /* Latin/Cyrillic to CP866 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 208, 209, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 196, 179, 192, 217, 191, 218, 195, 193, 180, 194, 197, 176, 177, 178, 211, 216,
- 205, 186, 200, 188, 187, 201, 204, 202, 185, 203, 206, 223, 220, 219, 254, UNK,
- 255, 240, 132, 131, 242, 83, 73, 244, 74, 139, 141, 151, 138, 45, 246, 135,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 252, 241, 164, 163, 243, 115, 105, 245, 106, 171, 173, 231, 170, 21, 247, 167
- };
- CONST CHAR
- ylc55[] = { /* Latin/Cyrillic to CP855 (inverse of y55lc) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 174, 175, 176, 177, 178, 179, 180, 185, 186, 187, 188, 191, 192, 193, 194, 195,
- 196, 197, 200, 201, 202, 203, 204, 205, 206, 207, 217, 218, 219, 220, 223, 254,
- 255, 133, 129, 131, 135, 137, 139, 141, 143, 145, 147, 149, 151, 240, 153, 155,
- 161, 163, 236, 173, 167, 169, 234, 244, 184, 190, 199, 209, 211, 213, 215, 221,
- 226, 228, 230, 232, 171, 182, 165, 252, 246, 250, 159, 242, 238, 248, 157, 224,
- 160, 162, 235, 172, 166, 168, 233, 243, 183, 189, 198, 208, 210, 212, 214, 216,
- 225, 227, 229, 231, 170, 181, 164, 251, 245, 249, 158, 241, 237, 247, 156, 222,
- 239, 132, 128, 130, 134, 136, 138, 140, 142, 144, 146, 148, 150, 253, 152, 154
- };
- CONST CHAR
- ylc1251[] = { /* Latin/Cyrillic to CP1251 (inverse of y1251lc) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 130, 132, 133, 134, 135, 136, 137, 139, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 155, 164, 165, 166, 169, 171, 172, 174, 176, 177, 180, 181, 182, 183, 187,
- 160, 168, 128, 129, 170, 189, 178, 175, 163, 138, 140, 142, 141, 173, 161, 143,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 185, 184, 144, 131, 186, 190, 179, 191, 188, 154, 156, 158, 157, 167, 162, 159
- };
- CONST CHAR
- ylcbu[] = { /* Latin/Cyrillic to Bulgarian PC Code Page */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 255, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 213, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 214, 253, 254
- };
- CONST CHAR
- ylck8[] = { /* Latin/Cyrillic to Old KOI-8 Cyrillic */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- UNK, 229, UNK, UNK, UNK, 83, 73, 73, 74, UNK, UNK, UNK, 235, UNK, 245, UNK,
- 225, 226, 247, 231, 228, 229, 246, 250, 233, 234, 235, 236, 237, 238, 239, 240,
- 242, 243, 244, 245, 230, 232, 227, 254, 251, 253, 255, 249, 248, 252, 224, 241,
- 193, 194, 215, 199, 196, 197, 214, 218, 201, 202, 203, 204, 205, 206, 207, 208,
- 210, 211, 212, 213, 198, 200, 195, 222, 219, 221, 223, 217, 216, 220, 192, 209,
- UNK, 197, UNK, UNK, UNK, 115, 105, 105, 106, UNK, UNK, UNK, 203, UNK, 213, UNK
- };
- CONST CHAR
- yaclc[] = { /* CP866 to Latin/Cyrillic */
- /* NEED TO MAKE THIS ONE INVERTIBLE */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 161, 241, 164, 244, 167, 247, 174, 254, UNK, UNK, UNK, UNK, 240, UNK, UNK, UNK
- };
- CONST CHAR
- y55lc[] = { /* CP855 to Latin/Cyrillic (inverse of ylc55) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 242, 162, 243, 163, 241, 161, 244, 164, 245, 165, 246, 166, 247, 167, 248, 168,
- 249, 169, 250, 170, 251, 171, 252, 172, 254, 174, 255, 175, 238, 206, 234, 202,
- 208, 176, 209, 177, 230, 198, 212, 180, 213, 181, 228, 196, 211, 179, 128, 129,
- 130, 131, 132, 133, 134, 229, 197, 216, 184, 135, 136, 137, 138, 217, 185, 139,
- 140, 141, 142, 143, 144, 145, 218, 186, 146, 147, 148, 149, 150, 151, 152, 153,
- 219, 187, 220, 188, 221, 189, 222, 190, 223, 154, 155, 156, 157, 191, 239, 158,
- 207, 224, 192, 225, 193, 226, 194, 227, 195, 214, 182, 210, 178, 236, 204, 240,
- 173, 235, 203, 215, 183, 232, 200, 237, 205, 233, 201, 231, 199, 253, 159, 160
- };
- CONST CHAR
- y1251lc[] = { /* CP1251 to Latin/Cyrillic (inverse of ylc1251) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 162, 163, 128, 243, 129, 130, 131, 132, 133, 134, 169, 135, 170, 172, 171, 175,
- 242, 136, 137, 138, 139, 140, 141, 142, 143, 144, 249, 145, 250, 252, 251, 255,
- 160, 174, 254, 168, 146, 147, 148, 253, 161, 149, 164, 150, 151, 173, 152, 167,
- 153, 154, 166, 246, 155, 156, 157, 158, 241, 240, 244, 159, 248, 165, 245, 247,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239
- };
- CONST CHAR
- ybulc[] = { /* Bulgarian PC Code Page to Latin/Cyrillic */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 209,
- 210, 211, 212, 213, 214, 208, 253, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 254, 255, 128
- };
- CONST CHAR
- yk8lc[] = { /* Old KOI-8 Cyrillic to Latin/Cyrillic */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- 238, 208, 209, 230, 212, 213, 228, 211, 229, 216, 217, 218, 219, 220, 221, 222,
- 223, 239, 224, 225, 226, 227, 214, 210, 236, 235, 215, 232, 237, 233, 231, 234,
- 206, 176, 177, 198, 180, 181, 196, 179, 197, 184, 185, 186, 187, 188, 189, 190,
- 191, 207, 192, 193, 194, 195, 182, 178, 204, 203, 183, 200, 205, 201, 199, 127
- };
- CONST CHAR
- ylcsk[] = { /* Latin/Cyrillic to Short KOI */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 127,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 101, UNK, UNK, UNK, 83, 73, 73, 74, UNK, UNK, UNK, 107, 45, 117, UNK,
- 97, 98, 119, 103, 100, 101, 118, 122, 105, 106, 107, 108, 109, 110, 111, 112,
- 114, 115, 116, 117, 102, 104, 99, 126, 123, 125, 39, 121, 120, 124, 96, 113,
- 97, 98, 119, 103, 100, 101, 118, 122, 105, 106, 107, 108, 109, 110, 111, 112,
- 114, 115, 116, 117, 102, 104, 99, 126, 123, 125, 39, 121, 120, 124, 96, 113,
- UNK, 101, UNK, UNK, UNK, 83, 73, 73, 74, UNK, UNK, UNK, 107, UNK, 117, UNK
- };
- CONST CHAR yskcy[] = { /* Short KOI to Latin/Cyrillic */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 206, 176, 177, 198, 180, 181, 196, 179, 197, 184, 185, 186, 187, 188, 189, 190,
- 191, 207, 192, 193, 194, 195, 182, 178, 204, 203, 183, 200, 205, 201, 199, 127
- };
- #endif /* CYRILLIC */
- #ifdef LATIN2
- /* Latin-2 tables */
- CONST CHAR
- yl252[] = { /* Latin-2 to Code Page 852 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 174, 175, 176, 177, 178, 179, 180, 185, 186, 187, 188, 191, 192, 193, 194, 195,
- 196, 197, 200, 201, 202, 203, 204, 205, 206, 217, 218, 219, 220, 223, 240, 254,
- 255, 164, 244, 157, 207, 149, 151, 245, 249, 230, 184, 155, 141, 170, 166, 189,
- 248, 165, 242, 136, 239, 150, 152, 243, 247, 231, 173, 156, 171, 241, 167, 190,
- 232, 181, 182, 198, 142, 145, 143, 128, 172, 144, 168, 211, 183, 214, 215, 210,
- 209, 227, 213, 224, 226, 138, 153, 158, 252, 222, 233, 235, 154, 237, 221, 225,
- 234, 160, 131, 199, 132, 146, 134, 135, 159, 130, 169, 137, 216, 161, 140, 212,
- 208, 228, 229, 162, 147, 139, 148, 246, 253, 133, 163, 251, 129, 236, 238, 250
- };
- CONST CHAR
- y52l2[] = { /* Code Page 852 to Latin-2 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 199, 252, 233, 226, 228, 249, 230, 231, 179, 235, 213, 245, 238, 172, 196, 198,
- 201, 197, 229, 244, 246, 165, 181, 166, 182, 214, 220, 171, 187, 163, 215, 232,
- 225, 237, 243, 250, 161, 177, 174, 190, 202, 234, 173, 188, 200, 186, 128, 129,
- 130, 131, 132, 133, 134, 193, 194, 204, 170, 135, 136, 137, 138, 175, 191, 139,
- 140, 141, 142, 143, 144, 145, 195, 227, 146, 147, 148, 149, 150, 151, 152, 164,
- 240, 208, 207, 203, 239, 210, 205, 206, 236, 153, 154, 155, 156, 222, 217, 157,
- 211, 223, 212, 209, 241, 242, 169, 185, 192, 218, 224, 219, 253, 221, 254, 180,
- 158, 189, 178, 183, 162, 167, 247, 184, 176, 168, 255, 251, 216, 248, 159, 160
- };
- CONST CHAR
- yl21250[] = { /* Latin-2 to Code Page 1250 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 139, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 155, 166, 169, 171, 172, 174, 177, 181, 182, 183, 187,
- 160, 165, 162, 163, 164, 188, 140, 167, 168, 138, 170, 141, 143, 173, 142, 175,
- 176, 185, 178, 179, 180, 190, 156, 161, 184, 154, 186, 157, 159, 189, 158, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
- };
- CONST CHAR
- y1250l2[] = { /* Code Page 1250 to Latin-2 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 169, 138, 166, 171, 174, 172,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 185, 149, 182, 187, 190, 188,
- 160, 183, 162, 163, 164, 161, 150, 167, 168, 151, 170, 152, 153, 173, 154, 175,
- 176, 155, 178, 179, 180, 156, 157, 158, 184, 177, 186, 159, 165, 189, 181, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
- };
- CONST CHAR
- yl2mz[] = { /* Latin-2 to Mazovia (NOT invertible) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 255, 143, UNK, 156, 155, 76, 152, 21, 34, 83, 83, 84, 160, 45, 90, 161,
- 248, 134, 44, 146, 39, 108, 158, UNK, 44, 115, 115, 116, 166, 34, 122, 167,
- 82, 65, 65, 65, 142, 76, 149, 128, 67, 69, 144, 69, 69, 73, 73, 68,
- 68, 165, 78, 163, 79, 153, 153, 250, 82, 85, 85, 154, 154, 89, 84, 225,
- 114, 97, 131, 97, 132, 108, 141, 135, 99, 130, 145, 137, 101, 105, 140, 101,
- 100, 164, 110, 162, 147, 148, 148, 246, 114, 117, 117, 129, 129, 121, 116, 249
- };
- CONST CHAR
- ymzl2[] = { /* Mazovia to Latin-2 (NOT INVERTIBLE) */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 252, 233, 226, 228, 97, 177, 231, 101, 235, 101, 105, 238, 230, 196, 161,
- 202, 234, 179, 244, 246, 198, 117, 117, 166, 214, 220, 164, 163, 89, 182, 102,
- 172, 175, 243, 211, 242, 210, 188, 191, 63, UNK, UNK, UNK, UNK, 33, 34, 34,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, 247, UNK, 176, 255, 215, UNK, UNK, UNK, UNK, 160
- };
- CONST CHAR
- yl2l1[] = { /* Latin-2 to Latin-1 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 'A', UNK, 'L', 164, 'L', 'S', 167, 168, 'S', 'S', 'T', 'Z', 173, 'Z', 'Z',
- 176, 'a', UNK, 'l', 180, 'l', 's', UNK, 184, 's', 's', 't', 'z', UNK, 'z', 'z',
- 'R', 193, 194, 'A', 196, 'L', 'C', 199, 'C', 201, 'E', 203, 'E', 205, 'I', 'D',
- 208, 'N', 'N', 211, 212, 'O', 214, 215, 'R', 'U', 218, 'U', 220, 221, 'T', 223,
- 'r', 225, 226, 'a', 228, 'l', 'c', 231, 'c', 233, 'e', 235, 'e', 237, 'i', 'd',
- 240, 'n', 'n', 243, 244, 'o', 246, 247, 'r', 'u', 250, 'u', 252, 253, 't', '.'
- };
- CONST CHAR
- yl1l2[] = { /* Latin-1 to Latin-2 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 'A', UNK, 'L', 164, UNK, UNK, 167, 168, 'C', 'a', '<', '>', 173, 'R', UNK,
- 176, UNK, UNK, UNK, 180, UNK, UNK, UNK, 184, UNK, 'o', '>', UNK, UNK, UNK, UNK,
- 'A', 193, 194, 'A', 196, 'A', 'A', 199, 'E', 201, 'E', 203, 'I', 205, 'I', 'I',
- 208, 'N', 'O', 211, 212, 'O', 214, 215, 'O', 'U', 218, 'U', 220, 221, UNK, 223,
- 'a', 225, 226, 'a', 228, 'a', 'a', 231, 'e', 233, 'e', 235, 'i', 237, 'i', 'i',
- 240, 'n', 'o', 243, 244, 'o', 246, 247, 'o', 'u', 250, 'u', 252, 253, UNK, 'y'
- };
- CONST CHAR
- yl2as[] = { /* Latin-2 to ASCII */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- 32, 'A', UNK, 'L', UNK, 'L', 'S', UNK, 34, 'S', 'S', 'T', 'Z', '-', 'Z', 'Z',
- UNK, 'a', UNK, 'l', 39, 'l', 's', UNK, 44, 's', 's', 't', 'z', UNK, 'z', 'z',
- 'R', 'A', 'A', 'A', 'A', 'L', 'C', 'C', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'D',
- 'D', 'N', 'N', 'O', 'O', 'O', 'O', 'x', 'R', 'U', 'U', 'U', 'U', 'Y', 'T', 's',
- 'r', 'a', 'a', 'a', 'a', 'l', 'c', 'c', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'd',
- 'd', 'n', 'n', 'o', 'o', 'o', 'o', '/', 'r', 'u', 'u', 'u', 'u', 'y', 't', '.'
- };
- #endif /* LATIN2 */
- #ifdef HEBREW
- /*
- 8-bit Tables providing invertible translation between Latin/Hebrew and CP862.
- */
- CONST CHAR
- y62lh[] = { /* PC Code Page 862 to ISO 8859-8 Latin/Hebrew */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 162, 163, 165, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 172, 189, 188, 140, 171, 187,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 161, 164, 166, 167, 168, 169, 170, 173, 174, 175, 223, 179, 180,
- 182, 184, 185, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 181, 209, 210, 211, 212, 213, 214, 215, 216, 217,
- 218, 177, 219, 220, 221, 222, 186, 251, 176, 183, 252, 253, 254, 178, 255, 160
- };
- CONST CHAR
- ylh62[] = { /* ISO 8859-8 Latin/Hebrew to PC Code Page 862 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 173, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 255, 195, 155, 156, 196, 157, 197, 198, 199, 200, 201, 174, 170, 202, 203, 204,
- 248, 241, 253, 206, 207, 230, 208, 249, 209, 210, 246, 175, 172, 171, 211, 212,
- 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 242, 243, 244, 245, 205,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 247, 250, 251, 252, 254
- };
- /*
- 7-bit table providing readable translation from DEC Hebrew-7 to CP862.
- */
- CONST CHAR
- yh762[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- UNK, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127
- };
- /*
- 8-bit table providing readable translation from CP862 to Hebrew-7.
- */
- CONST CHAR
- y62h7[] = { /* PC Code Page 862 to Hebrew-7 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK
- };
- /*
- 7-bit table providing readable translation from Hebrew-7 to ISO Latin/Hebrew.
- */
- CONST CHAR
- yh7lh[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 123, 124, 125, 126, 127
- };
- /*
- 8-bit table providing readable translation from ISO Latin/Hebrew to Hebrew-7.
- */
- CONST CHAR
- ylhh7[] = { /* Latin/Hebrew to Hebrew-7 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, UNK, UNK, UNK, UNK, UNK
- };
- #endif /* HEBREW */
- #ifdef GREEK
- /*
- 8-bit Tables providing invertible translation between Latin/Greek and CP869.
- */
- CONST CHAR
- ylg69[] = { /* ISO 8859-7 Latin/Greek to PC Code Page 869 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 135, 147, 148, 176, 177, 178, 179, 180, 185, 186, 187, 188, 191, 192, 193, 194,
- 195, 196, 197, 200, 201, 202, 203, 204, 205, 206, 217, 218, 219, 220, 223, 254,
- 255, 139, 140, 156, 128, 129, 138, 245, 249, 151, 130, 174, 137, 240, 131, 142,
- 248, 241, 153, 154, 239, 247, 134, 136, 141, 143, 144, 175, 146, 171, 149, 152,
- 161, 164, 165, 166, 167, 168, 169, 170, 172, 173, 181, 182, 183, 184, 189, 190,
- 198, 199, 132, 207, 208, 209, 210, 211, 212, 213, 145, 150, 155, 157, 158, 159,
- 252, 214, 215, 216, 221, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
- 234, 235, 237, 236, 238, 242, 243, 244, 246, 250, 160, 251, 162, 163, 253, 133
- };
- CONST CHAR
- y69lg[] = { /* PC Code Page 869 to ISO 8859-7 Latin/Greek */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 164, 165, 170, 174, 210, 255, 182, 128, 183, 172, 166, 161, 162, 184, 175, 185,
- 186, 218, 188, 129, 130, 190, 219, 169, 191, 178, 179, 220, 163, 221, 222, 223,
- 250, 192, 252, 253, 193, 194, 195, 196, 197, 198, 199, 189, 200, 201, 171, 187,
- 131, 132, 133, 134, 135, 202, 203, 204, 205, 136, 137, 138, 139, 206, 207, 140,
- 141, 142, 143, 144, 145, 146, 208, 209, 147, 148, 149, 150, 151, 152, 153, 211,
- 212, 213, 214, 215, 216, 217, 225, 226, 227, 154, 155, 156, 157, 228, 229, 158,
- 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 242, 244, 180,
- 173, 177, 245, 246, 247, 167, 248, 181, 176, 168, 249, 251, 224, 254, 159, 160
- };
- /*
- 7-bit table providing readable translation from ELOT 927 to CP869.
- */
- CONST CHAR
- yeg69[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 164, 165, 166, 167, 168, 169, 170, 172, 173, 181, 182, 183, 184, 189, 190,
- 198, 199, 207, 208, 209, 210, 211, 212, 213, 32, 32, 23, 124, 125, 126, 127
- };
- /*
- 8-bit table providing readable translation from CP869 to ELOT 927.
- */
- CONST CHAR
- y69eg[] = { /* PC Code Page 869 to ELOT 927 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127,
- UNK, UNK, UNK, UNK, UNK, UNK, 97, UNK, 46, UNK, 124, 39, 39, 101, 45, 103,
- 105, 105, 111, UNK, UNK, 116, 116, UNK, 120, 50, 51, 97, UNK, 101, 103, 105,
- 105, 105, 111, 116, 97, 98, 99, 100, 101, 102, 103, UNK, 104, 105, 34, 34,
- UNK, UNK, UNK, UNK, UNK, 106, 107, 108, 109, UNK, UNK, UNK, UNK, 110, 111, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, 112, 113, UNK, UNK, UNK, UNK, UNK, UNK, UNK, 114,
- 115, 116, 117, 118, 119, 120, 97, 98, 99, UNK, UNK, UNK, UNK, 100, 101, UNK,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 39,
- 45, UNK, 116, 117, 118, UNK, 119, UNK, UNK, UNK, 120, 116, 116, 120, UNK, 32
- };
- /*
- 7-bit table providing readable translation from ELOT 927 to ISO Latin/Greek.
- */
- CONST CHAR
- yeglg[] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 211, 212, 213, 214, 215, 216, 217, 32, 32, 123, 124, 125, 126, 127
- };
- /*
- 8-bit table providing readable translation from ISO Latin/Greek to ELOT 927.
- */
- CONST CHAR
- ylgeg[] = { /* Latin/Greek to ELOT 927 */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
- 32, 39, 39, UNK, UNK, UNK, 124, UNK, 34, UNK, UNK, 34, UNK, 45, UNK, 45,
- UNK, UNK, 50, 51, 39, UNK, 97, 46, 101, 103, 105, 34, 111, UNK, 116, 120,
- UNK, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, UNK, 114, 115, 116, 117, 118, 119, 120, 105, 116, 97, 101, 103, 105,
- 116, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 105, 116, 111, 116, 120, UNK
- };
- #endif /* GREEK */
- /* Translation functions ... */
- CHAR /* The identity function... */
- #ifdef CK_ANSIC
- ident(CHAR c) /* (no longer used) */
- #else
- ident(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* ident */
- return(c); /* Instead, enter NULL in the */
- } /* table of functions to avoid */
- /* needless function calls. */
- CHAR
- #ifdef CK_ANSIC
- xleft128(CHAR c)
- #else
- xleft128(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xleft128 */
- return((c < 128) ? c : '?');
- }
- CHAR
- #ifdef CK_ANSIC
- xleft160(CHAR c)
- #else
- xleft160(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xleft160 */
- return((c < 160) ? c : '?');
- }
- CHAR
- #ifdef CK_ANSIC
- xl1as(CHAR c)
- #else
- xl1as(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1as */ /* Latin-1 to US ASCII... */
- switch(langs[language].id) {
- case L_DUTCH:
- if (c == 255) { /* Dutch umlaut-y */
- zmstuff('j'); /* becomes ij */
- return('i');
- } else return(yl1as[c]); /* all others by the book */
- case L_GERMAN:
- switch (c) { /* German, special rules. */
- case 196: /* umlaut-A -> Ae */
- zmstuff('e');
- return('A');
- case 214: /* umlaut-O -> Oe */
- zmstuff('e');
- return('O');
- case 220: /* umlaut-U -> Ue */
- zmstuff('e');
- return('U');
- case 228: /* umlaut-a -> ae */
- zmstuff('e');
- return('a');
- case 246: /* umlaut-o -> oe */
- zmstuff('e');
- return('o');
- case 252: /* umlaut-u -> ue */
- zmstuff('e');
- return('u');
- case 223: /* ess-zet -> ss */
- zmstuff('s');
- return('s');
- default: return(yl1as[c]); /* all others by the book */
- }
- case L_DANISH:
- case L_FINNISH:
- case L_NORWEGIAN:
- case L_SWEDISH:
- switch (c) { /* Scandanavian languages. */
- case 196: /* umlaut-A -> Ae */
- case 198: /* AE ligature also -> Ae */
- zmstuff('e');
- return('A');
- case 214: /* umlaut-O -> Oe */
- case 216: /* O-slash -> Oe */
- zmstuff('e');
- return('O');
- case 220: /* umlaut-U -> Ue */
- /* return('Y'); replaced by "Ue" by popular demand. */
- /* Y for Umlaut-U is only used in German names. */
- zmstuff('e');
- return('U');
- case 228: /* umlaut-a -> ae */
- case 230: /* ditto for ae ligature */
- zmstuff('e');
- return('a');
- case 246: /* umlaut-o -> oe */
- case 248: /* o-slash -> oe */
- zmstuff('e');
- return('o');
- case 252: /* umlaut-u -> ue */
- /* return('y'); replaced by "ue" by popular demand. */
- zmstuff('e');
- return('u');
- case 197: /* A-ring -> Aa */
- zmstuff('a');
- return('A');
- case 229: /* a-ring -> aa */
- zmstuff('a');
- return('a');
- default: return(yl1as[c]); /* All others by the book */
- }
- case L_ICELANDIC: /* Icelandic. */
- switch (c) {
- case 198: /* uppercase AE -> AE */
- zmstuff('e');
- return('A');
- case 208: /* uppercase Eth -> D */
- return('D');
- case 214: /* uppercase O-diaeresis -> Oe */
- zmstuff('e');
- return('O');
- case 222: /* uppercase Thorn -> Th */
- zmstuff('h');
- return('T');
- case 230: /* lowercase ae -> ae */
- zmstuff('e');
- return('a');
- case 240: /* lowercase Eth -> d */
- return('d');
- case 246: /* lowercase O-diaeresis -> oe */
- zmstuff('e');
- return('o');
- case 254: /* lowercase Thorn -> th */
- zmstuff('h');
- return('t');
- default: return(yl1as[c]); /* All others by the book */
- }
- default:
- return(yl1as[c]); /* None of the above, by the table. */
- }
- }
- CHAR /* Latin-1 to German */
- #ifdef CK_ANSIC
- xl1ge(CHAR c)
- #else
- xl1ge(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1ge */
- return(yl1ge[c]);
- }
- CHAR /* German to Latin-1 */
- #ifdef CK_ANSIC
- xgel1(CHAR c)
- #else
- xgel1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xgel1 */
- return(ygel1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xgeas(CHAR c)
- #else
- xgeas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xgeas */ /* German ISO 646 to ASCII */
- switch (c) {
- case 91: /* umlaut-A -> Ae */
- zmstuff('e');
- return('A');
- case 92: /* umlaut-O -> Oe */
- zmstuff('e');
- return('O');
- case 93: /* umlaut-U -> Ue */
- zmstuff('e');
- return('U');
- case 123: /* umlaut-a -> ae */
- zmstuff('e');
- return('a');
- case 124: /* umlaut-o -> oe */
- zmstuff('e');
- return('o');
- case 125: /* umlaut-u -> ue */
- zmstuff('e');
- return('u');
- case 126: /* ess-zet -> ss */
- zmstuff('s');
- return('s');
- default: return(c); /* all others stay the same */
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xduas(CHAR c)
- #else
- xduas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xduas */ /* Dutch ISO 646 to US ASCII */
- switch (c) {
- case 64: return(UNK); /* 3/4 */
- case 91: /* y-diaeresis */
- zmstuff('j');
- return('i');
- case 92: return(UNK); /* 1/2 */
- case 93: return(124); /* vertical bar */
- case 123: return(34); /* diaeresis */
- case 124: return(UNK); /* Florin */
- case 125: return(UNK); /* 1/4 */
- case 126: return(39); /* Apostrophe */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xfias(CHAR c)
- #else
- xfias(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xfias */ /* Finnish ISO 646 to US ASCII */
- switch (c) {
- case 91: /* A-diaeresis */
- zmstuff('e');
- return('A');
- case 92: /* O-diaeresis */
- zmstuff('e');
- return('O');
- case 93: /* A-ring */
- zmstuff('a');
- return('A');
- case 94: /* U-diaeresis */
- /* return('Y'); */
- zmstuff('e');
- return('U');
- case 96: /* e-acute */
- return('e');
- case 123: /* a-diaeresis */
- zmstuff('e');
- return('a');
- case 124: /* o-diaeresis */
- zmstuff('e');
- return('o');
- case 125: /* a-ring */
- zmstuff('a');
- return('a');
- case 126: /* u-diaeresis */
- /* return('y'); */
- zmstuff('e');
- return('U');
- default:
- return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xfras(CHAR c)
- #else
- xfras(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xfras */ /* French ISO 646 to US ASCII */
- switch (c) {
- case 64: return(97); /* a grave */
- case 91: return(UNK); /* degree sign */
- case 92: return(99); /* c cedilla */
- case 93: return(UNK); /* paragraph sign */
- case 123: return(101); /* e acute */
- case 124: return(117); /* u grave */
- case 125: return(101); /* e grave */
- case 126: return(34); /* diaeresis */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xfcas(CHAR c)
- #else
- xfcas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xfcas */ /* French Canadian ISO 646 to ASCII */
- switch (c) {
- case 64: return('a'); /* a grave */
- case 91: return('a'); /* a circumflex */
- case 92: return('c'); /* c cedilla */
- case 93: return('e'); /* e circumflex */
- case 94: return('i'); /* i circumflex */
- case 96: return('o'); /* o circumflex */
- case 123: return('e'); /* e acute */
- case 124: return('u'); /* u grave */
- case 125: return('e'); /* e grave */
- case 126: return('u'); /* u circumflex */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xitas(CHAR c)
- #else
- xitas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xitas */ /* Italian ISO 646 to ASCII */
- switch (c) {
- case 91: return(UNK); /* degree */
- case 92: return('c'); /* c cedilla */
- case 93: return('e'); /* e acute */
- case 96: return('u'); /* u grave */
- case 123: return('a'); /* a grave */
- case 124: return('o'); /* o grave */
- case 125: return('e'); /* e grave */
- case 126: return('i'); /* i grave */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xneas(CHAR c)
- #else
- xneas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xneas */ /* NeXT to ASCII */
- if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
- if (c == 234) { /* handle OE digraph. */
- zmstuff('E');
- return('O');
- } else if (c == 250) { /* Also lowercase oe. */
- zmstuff('e');
- return('o');
- }
- }
- c = xnel1(c); /* Convert to Latin-1 */
- return(yl1as[c]); /* Convert Latin-1 to ASCII */
- }
- CHAR
- #ifdef CK_ANSIC
- xnoas(CHAR c)
- #else
- xnoas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xnoas */ /* Norge/Danish ISO 646 to ASCII */
- switch (c) {
- case 91:
- zmstuff('E'); /* AE digraph */
- return('A');
- case 92: return('O'); /* O slash */
- case 93: /* A ring */
- zmstuff('a');
- return('A');
- case 123: /* ae digraph */
- zmstuff('e');
- return('a');
- case 124: return('o'); /* o slash */
- case 125: /* a ring */
- zmstuff('a');
- return('a');
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xpoas(CHAR c)
- #else
- xpoas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xpoas */ /* Portuguese ISO 646 to ASCII */
- switch (c) {
- case 91: return('A'); /* A tilde */
- case 92: return('C'); /* C cedilla */
- case 93: return('O'); /* O tilde */
- case 123: return('a'); /* a tilde */
- case 124: return('c'); /* c cedilla */
- case 125: return('o'); /* o tilde */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xspas(CHAR c)
- #else
- xspas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xspas */ /* Spanish ISO 646 to ASCII */
- switch (c) {
- case 91: return(33); /* Inverted exclamation */
- case 92: return('N'); /* N tilde */
- case 93: return(63); /* Inverted question mark */
- case 123: return(UNK); /* degree */
- case 124: return('n'); /* n tilde */
- case 125: return('c'); /* c cedilla */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xswas(CHAR c)
- #else
- xswas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xswas */ /* Swedish ISO 646 to ASCII */
- switch (c) {
- case 64: return('E'); /* E acute */
- case 91: /* A diaeresis */
- zmstuff('e');
- return('A');
- case 92: /* O diaeresis */
- zmstuff('e');
- return('O');
- case 93: /* A ring */
- zmstuff('a');
- return('A');
- case 94: /* U diaeresis */
- /* return('Y'); */
- zmstuff('e');
- return('U');
- case 96: return('e'); /* e acute */
- case 123: /* a diaeresis */
- zmstuff('e');
- return('a');
- case 124: /* o diaeresis */
- zmstuff('e');
- return('o');
- case 125: /* a ring */
- zmstuff('a');
- return('a');
- case 126: /* u diaeresis */
- /* return('y'); */
- zmstuff('e');
- return('u');
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xchas(CHAR c)
- #else
- xchas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xchas */ /* Swiss ISO 646 to ASCII */
- switch (c) {
- case 35: return('u'); /* u grave */
- case 64: return('a'); /* a grave */
- case 91: return('e'); /* e acute */
- case 92: return('c'); /* c cedilla */
- case 93: return('e'); /* e circumflex */
- case 94: return('i'); /* i circumflex */
- case 95: return('e'); /* e grave */
- case 96: return('o'); /* o circumflex */
- case 123: /* a diaeresis */
- zmstuff('e');
- return('a');
- case 124: /* o diaeresis */
- zmstuff('e');
- return('o');
- case 125: /* u diaeresis */
- zmstuff('e');
- return('u');
- case 126: return('u'); /* u circumflex */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xhuas(CHAR c)
- #else
- xhuas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xhuas */ /* Hungarian ISO 646 to ASCII */
- switch (c) {
- case 64: return('A'); /* A acute */
- case 91: return('E'); /* E acute */
- case 92: return('O'); /* O diaeresis */
- case 93: return('U'); /* U diaeresis */
- case 96: return('a'); /* a acute */
- case 123: return('e'); /* e acute */
- case 124: return('o'); /* o acute */
- case 125: return('u'); /* u acute */
- case 126: return(34); /* double acute accent */
- default: return(c);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xdmas(CHAR c)
- #else
- xdmas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xdmas */ /* DEC MCS to ASCII */
- if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
- if (c == 215) { /* handle OE digraph. */
- zmstuff('E');
- return('O');
- } else if (c == 247) { /* Also lowercase oe. */
- zmstuff('e');
- return('o');
- }
- }
- return(yl1as[c]); /* Otherwise treat like Latin-1 */
- }
- CHAR
- #ifdef CK_ANSIC
- xdgas(CHAR c)
- #else
- xdgas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xdgas */ /* Data General to ASCII */
- switch(c) {
- case 180: return('f'); /* Florin */
- case 183: return('<'); /* Less-equal */
- case 184: return('>'); /* Greater-equal */
- case 186: return(96); /* Grave accent */
- case 191: return('^'); /* Uparrow */
- case 215:
- if (langs[language].id == L_FRENCH) { /* OE digraph */
- zmstuff('E');
- return('O');
- } else return('O');
- case 247:
- if (langs[language].id == L_FRENCH) { /* oe digraph */
- zmstuff('e');
- return('o');
- } else return('o');
- case 175: case 179: case 220: case 222:
- case 223: case 254: case 255:
- return(UNK);
- default: /* The rest, convert to Latin-1 */
- return(yl1as[ydgl1[c]]); /* and from there to ASCII */
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xr8as(CHAR c)
- #else
- xr8as(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xr8as */ /* Hewlett Packard Roman8 to ASCII */
- switch(c) {
- case 175: return('L'); /* Lira */
- case 190: return('f'); /* Florin */
- case 235: return('S'); /* S caron */
- case 236: return('s'); /* s caron */
- case 246: return('-'); /* Horizontal bar */
- case 252: return('*'); /* Solid box */
- default: /* The rest, convert to Latin-1 */
- return(yl1as[yr8l1[c]]); /* and from there to ASCII */
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xukl1(CHAR c)
- #else
- xukl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xukl1 */ /* UK ASCII to Latin-1 */
- if (c == 35)
- return(163);
- else return(c);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1uk(CHAR c)
- #else
- xl1uk(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1uk */ /* Latin-1 to UK ASCII */
- if (c == 163)
- return(35);
- else return(yl1as[c]);
- }
- CHAR /* Latin-1 to French ISO 646 */
- #ifdef CK_ANSIC
- xl1fr(CHAR c)
- #else
- xl1fr(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1fr */
- return(yl1fr[c]);
- }
- CHAR /* French ASCII to Latin-1 */
- #ifdef CK_ANSIC
- xfrl1(CHAR c)
- #else
- xfrl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xfrl1 */
- return(yfrl1[c]);
- }
- CHAR /* Latin-1 to Dutch ASCII */
- #ifdef CK_ANSIC
- xl1du(CHAR c)
- #else
- xl1du(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1du */
- return(yl1du[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xdul1(CHAR c)
- #else
- xdul1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xdul1 */ /* Dutch ISO 646 to Latin-1 */
- return(ydul1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xfil1(CHAR c)
- #else
- xfil1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xfil1 */ /* Finnish ISO 646 to Latin-1 */
- return(yfil1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1fi(CHAR c)
- #else
- xl1fi(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1fi */ /* Latin-1 to Finnish ISO 646 */
- return(yl1fi[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xfcl1(CHAR c)
- #else
- xfcl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xfcl1 */ /* French Canadian ISO646 to Latin-1 */
- return(yfcl1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1fc(CHAR c)
- #else
- xl1fc(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1fc */ /* Latin-1 to French Canadian ISO646 */
- return(yl1fc[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xitl1(CHAR c)
- #else
- xitl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xitl1 */ /* Italian ISO 646 to Latin-1 */
- return(yitl1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1it(CHAR c)
- #else
- xl1it(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1it */ /* Latin-1 to Italian ISO 646 */
- return(yl1it[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xnel1(CHAR c)
- #else
- xnel1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xnel1 */ /* NeXT to Latin-1 */
- if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
- if (c == 234) { /* handle OE digraph. */
- zmstuff('E');
- return('O');
- } else if (c == 250) { /* Also lowercase oe. */
- zmstuff('e');
- return('o');
- }
- }
- return(ynel1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xnel9(CHAR c)
- #else
- xnel9(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xnel9 */ /* NeXT to Latin-9 */
- switch (c) {
- case 234: return(188); /* OE */
- case 250: return(189); /* oe */
- case 188: return(234); /* keep it invertible... */
- case 189: return(250); /* oe */
- default:
- return(ynel1[c]);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xl1ne(CHAR c)
- #else
- xl1ne(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1ne */ /* Latin-1 to NeXT */
- return(yl1ne[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl9ne(CHAR c)
- #else
- xl9ne(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl9ne */ /* Latin-9 to NeXT */
- switch (c) {
- case 188: return(234); /* OE */
- case 189: return(250); /* oe */
- case 234: return(188); /* OE */
- case 250: return(189); /* oe */
- default:
- return(yl1ne[c]);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xnol1(CHAR c)
- #else
- xnol1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xnol1 */ /* Norwegian and Danish ISO 646 to Latin-1 */
- return(ynol1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1no(CHAR c)
- #else
- xl1no(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1no */ /* Latin-1 to Norwegian and Danish ISO 646 */
- return(yl1no[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xpol1(CHAR c)
- #else
- xpol1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xpol1 */ /* Portuguese ISO 646 to Latin-1 */
- return(ypol1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1po(CHAR c)
- #else
- xl1po(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1po */ /* Latin-1 to Portuguese ISO 646 */
- return(yl1po[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xspl1(CHAR c)
- #else
- xspl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xspl1 */ /* Spanish ISO 646 to Latin-1 */
- return(yspl1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1sp(CHAR c)
- #else
- xl1sp(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1sp */ /* Latin-1 to Spanish ISO 646 */
- return(yl1sp[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xswl1(CHAR c)
- #else
- xswl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xswl1 */ /* Swedish ISO 646 to Latin-1 */
- return(yswl1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1sw(CHAR c)
- #else
- xl1sw(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1sw */ /* Latin-1 to Swedish ISO 646 */
- return(yl1sw[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xchl1(CHAR c)
- #else
- xchl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xchl1 */ /* Swiss ISO 646 to Latin-1 */
- return(ychl1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1ch(CHAR c)
- #else
- xl1ch(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1ch */ /* Latin-1 to Swiss ISO 646 */
- return(yl1ch[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xhul1(CHAR c)
- #else
- xhul1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xhul1 */ /* Hungarian ISO 646 to Latin-1 */
- return(yhul1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1hu(CHAR c)
- #else
- xl1hu(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1hu */ /* Latin-1 to Hungarian ISO 646 */
- return(yl1hu[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1dm(CHAR c)
- #else
- xl1dm(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1dm */ /* Latin-1 to DEC Multinational Character Set (MCS) */
- return(yl1dm[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl9dm(CHAR c)
- #else
- xl9dm(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl9dm */ /* Latin-9 to DEC Multinational Character Set (MCS) */
- switch (c) {
- case 188: return(215);
- case 189: return(247);
- case 215: return(188);
- case 247: return(189);
- default:
- return(yl1dm[c]);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xl1dg(CHAR c)
- #else
- xl1dg(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1dg */ /* Latin-1 to DG International Character Set (MCS) */
- return(yl1dg[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xdml1(CHAR c)
- #else
- xdml1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xdml1 */ /* DEC Multinational Character Set (MCS) to Latin-1 */
- if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
- if (c == 215) { /* handle OE digraph. */
- zmstuff('E');
- return('O');
- } else if (c == 247) { /* Also lowercase oe. */
- zmstuff('e');
- return('o');
- }
- }
- return(ydml1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xdml9(CHAR c)
- #else
- xdml9(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xdml9 */ /* DEC Multinational Character Set (MCS) to Latin-9 */
- switch (c) {
- case 215: return(188); /* OE */
- case 247: return(189); /* oe */
- case 188: return(215); /* and swap the other two... */
- case 189: return(247); /* (1/4 and 1/2) */
- default: /* to keep it invertible */
- return(ydml1[c]);
- }
- }
- CHAR
- #ifdef CK_ANSIC
- xdgl1(CHAR c)
- #else
- xdgl1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xdgl1 */ /* DG International Character Set (MCS) to Latin-1 */
- if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
- if (c == 215) { /* handle OE digraph. */
- zmstuff('E');
- return('O');
- } else if (c == 247) { /* Also lowercase oe. */
- zmstuff('e');
- return('o');
- }
- }
- return(ydgl1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xr8l1(CHAR c)
- #else
- xr8l1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xr8l1 */ /* Hewlett Packard Roman8 to Latin-1 */
- return(yr8l1[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- xl1r8(CHAR c)
- #else
- xl1r8(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1r8 */ /* Latin-1 to Hewlett Packard Roman8 Character Set */
- return(yl1r8[c]);
- }
- /* Translation functions for receiving files and translating them into ASCII */
- CHAR
- #ifdef CK_ANSIC
- zl1as(CHAR c)
- #else
- zl1as(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* zl1as */
- switch(langs[language].id) {
- case L_DUTCH:
- if (c == 255) { /* Dutch umlaut-y */
- zdstuff('j'); /* becomes ij */
- return('i');
- } else return(yl1as[c]); /* all others by the book */
- case L_GERMAN:
- switch (c) { /* German, special rules. */
- case 196: /* umlaut-A -> Ae */
- zdstuff('e');
- return('A');
- case 214: /* umlaut-O -> Oe */
- zdstuff('e');
- return('O');
- case 220: /* umlaut-U -> Ue */
- zdstuff('e');
- return('U');
- case 228: /* umlaut-a -> ae */
- zdstuff('e');
- return('a');
- case 246: /* umlaut-o -> oe */
- zdstuff('e');
- return('o');
- case 252: /* umlaut-u -> ue */
- zdstuff('e');
- return('u');
- case 223: /* ess-zet -> ss */
- zdstuff('s');
- return('s');
- default: return(yl1as[c]); /* all others by the book */
- }
- case L_DANISH:
- case L_FINNISH:
- case L_NORWEGIAN:
- case L_SWEDISH:
- switch (c) { /* Scandanavian languages. */
- case 196: /* umlaut-A -> Ae */
- zdstuff('e');
- return('A');
- case 214: /* umlaut-O -> Oe */
- case 216: /* O-slash -> Oe */
- zdstuff('e');
- return('O');
- case 220: /* umlaut-U -> Y */
- /* return('Y'); */
- zdstuff('e');
- return('U');
- case 228: /* umlaut-a -> ae */
- zdstuff('e');
- return('a');
- case 246: /* umlaut-o -> oe */
- case 248: /* o-slash -> oe */
- zdstuff('e');
- return('o');
- case 252: /* umlaut-u -> y */
- /* return('y'); */
- zdstuff('e');
- return('u');
- case 197: /* A-ring -> Aa */
- zdstuff('a');
- return('A');
- case 229: /* a-ring -> aa */
- zdstuff('a');
- return('a');
- default: return(yl1as[c]); /* All others by the book */
- }
- default:
- return(yl1as[c]); /* Not German, by the table. */
- }
- }
- CHAR /* IBM CP437 to Latin-1 */
- #ifdef CK_ANSIC
- x43l1(CHAR c)
- #else
- x43l1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* x43l1 */
- return(y43l1[c]);
- }
- CHAR /* IBM CP850 to Latin-1 */
- #ifdef CK_ANSIC
- x85l1(CHAR c)
- #else
- x85l1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* x85l1 */
- return(y85l1[c]);
- }
- CHAR /* Latin-1 to IBM CP437 */
- #ifdef CK_ANSIC
- xl143(CHAR c)
- #else
- xl143(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl143 */
- return(yl143[c]);
- }
- CHAR /* Latin-1 to CP850 */
- #ifdef CK_ANSIC
- xl185(CHAR c)
- #else
- xl185(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl185 */
- return(yl185[c]);
- }
- CHAR
- #ifdef CK_ANSIC
- x43as(CHAR c)
- #else
- x43as(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* x43as */ /* CP437 to ASCII */
- c = y43l1[c]; /* Translate to Latin-1 */
- return(xl143(c)); /* and from Latin-1 to ASCII. */
- }
- CHAR
- #ifdef CK_ANSIC
- x85as(CHAR c)
- #else
- x85as(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* x85as */ /* CP850 to ASCII */
- c = y85l1[c]; /* Translate to Latin-1 */
- return(xl1as(c)); /* and from Latin-1 to ASCII. */
- }
- CHAR /* Macintosh Latin to Latin-1 */
- #ifdef CK_ANSIC
- xaql1(CHAR c)
- #else
- xaql1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xaql1 */
- if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
- if (c == 206) { /* handle OE digraph. */
- zmstuff('E');
- return('O');
- } else if (c == 207) { /* Also lowercase oe. */
- zmstuff('e');
- return('o');
- }
- }
- return(yaql1[c]);
- }
- CHAR /* Macintosh Latin to ASCII */
- #ifdef CK_ANSIC
- xaqas(CHAR c)
- #else
- xaqas(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xaqas */
- if (langs[language].id == L_FRENCH) { /* If SET LANGUAGE FRENCH */
- if (c == 206) { /* handle OE digraph. */
- zmstuff('E');
- return('O');
- } else if (c == 207) { /* Also lowercase oe. */
- zmstuff('e');
- return('o');
- }
- }
- c = yaql1[c]; /* Translate to Latin-1 */
- return(xl1as(c)); /* then to ASCII. */
- }
- CHAR /* Latin-1 to Macintosh Latin */
- #ifdef CK_ANSIC
- xl1aq(CHAR c)
- #else
- xl1aq(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xl1aq */
- return(yl1aq[c]);
- }
- #ifdef LATIN2
- /* Translation functions for Latin Alphabet 2 */
- CHAR /* Latin-2 to Latin-1 */
- #ifdef CK_ANSIC
- xl2l1(CHAR c)
- #else
- xl2l1(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xll2l1 */
- return(yl2l1[c]);
- }
- CHAR /* Latin-1 to Latin-2 */
- #ifdef CK_ANSIC
- xl1l2(CHAR c)
- #else
- xl1l2(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xll1l2 */
- return(yl1l2[c]);
- }
- CHAR /* Latin-2 to ASCII */
- #ifdef CK_ANSIC
- xl2as(CHAR c)
- #else
- xl2as(c) CHAR c;
- #endif /* CK_ANSIC */
- { /* xll2as */
- return(yl2as[c]);
- }
- CHAR /* Latin-2 to CP852 */
- #ifdef CK_ANSIC
- xl252(CHAR c)
- #else
- xl252(c) CHAR c;