X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=ckuxla.c;h=d5566faf38728149f37822394e289fa15676462b;hb=9cb612fc81e86aa8b682adca3e349d2a770690cf;hp=eaf797643fd0be8a652ac8b5445a9badc7d9b113;hpb=8d5a97cca5dc3d41681e7a2dd709ac0ea93e73c5;p=ckermit.git diff --git a/ckuxla.c b/ckuxla.c index eaf7976..d5566fa 100644 --- a/ckuxla.c +++ b/ckuxla.c @@ -10,7 +10,7 @@ #endif /* NOXFER */ #ifndef NOCSETS -char *xlav = "Character Set Translation 8.0.042, 3 Jul 2000"; +char *xlav = "Character Set Translation 9.0.044, 2 Jun 2011"; /* C K U X L A */ @@ -19,7 +19,7 @@ char *xlav = "Character Set Translation 8.0.042, 3 Jul 2000"; Author: Frank da Cruz , Columbia University Academic Information Systems, New York City. - Copyright (C) 1985, 2004, + Copyright (C) 1985, 2011, 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. @@ -202,6 +202,23 @@ struct keytab tcstab[] = { /* Keyword table for */ #ifdef HEBREW "hebrew-iso", TC_HEBREW, 0, #endif /* HEBREW */ + +#ifdef UNICODE + "iso-10646-ucs-2", TC_UCS2, CM_INV, /* ISO 10646 / Unicode UCS-2 */ +#endif /* UNICODE */ + "iso-8859-1", TC_1LATIN, CM_INV, /* ISO Latin Alphabet 1 */ + "iso-8859-15", TC_9LATIN, CM_INV, /* ISO Latin Alphabet 9 (yes) */ + "iso-8859-2", TC_2LATIN, CM_INV, /* ISO Latin Alphabet 2 */ +#ifdef CYRILLIC + "iso-8859-5", TC_CYRILL, CM_INV, /* ISO Latin/Cyrillic Alphabet */ +#endif /* CYRILLIC */ +#ifdef GREEK + "iso-8859-7", TC_GREEK, CM_INV, /* ISO 8859-7 Latin/Greek */ +#endif /* GREEK */ +#ifdef HEBREW + "iso-8859-8", TC_HEBREW, CM_INV, /* ISO Latin/Hebrew */ +#endif /* HEBREW */ + #ifdef KANJI "japanese-euc", TC_JEUC, CM_INV, #endif /* KANJI */ @@ -218,6 +235,11 @@ struct keytab tcstab[] = { /* Keyword table for */ "transparent", TC_TRANSP, 0, #ifdef UNICODE "ucs2", TC_UCS2, 0, +#endif /* UNICODE */ + "us-ascii", TC_USASCII, CM_INV, + "usascii", TC_USASCII, CM_INV, +#ifdef UNICODE + "utf-8", TC_UTF8, CM_INV, "utf8", TC_UTF8, 0, #endif /* UNICODE */ "", 0, 0 @@ -287,16 +309,18 @@ struct csinfo fcsinfo[] = { /* File character set information... */ /* 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. */ +/* As of C-Kermit 9.0 MIME names are included as invisible synomyms for */ +/* those character sets that have MIME names. */ 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. + and the removal of the Kanji sets, which are not supported for terminal + emulation. If you make changes to this table, also change ttcstab. */ -/* Keyword Value Flags */ +/* Keyword Value Flags */ "apple-quickdraw", FC_APPQD, CM_INV, /* Apple Quickdraw */ "ascii", FC_USASCII, 0, /* ASCII */ "british", FC_UKASCII, 0, /* British NRC */ @@ -334,6 +358,7 @@ struct keytab fcstab[] = { /* Keyword table for 'set file character-set' */ #ifdef KANJI "dec-kanji", FC_JDEC, 0, /* Japanese DEC Kanji */ #endif /* KANJI */ + "dec-mcs", FC_DECMCS, CM_INV, /* DEC multinational char set */ "dec-multinational", FC_DECMCS, 0, /* DEC multinational character set */ "dg-international", FC_DGMCS, 0, /* Data General multinational */ "dutch", FC_DUASCII, 0, /* Dutch NRC */ @@ -362,10 +387,59 @@ struct keytab fcstab[] = { /* Keyword table for 'set file character-set' */ #endif /* HEBREW */ "hp-roman8", FC_HPR8, 0, /* Hewlett Packard Roman8 */ "hungarian", FC_HUASCII, 0, /* Hungarian NRC */ + + "ibm437", FC_CP437, CM_INV, /* PC CP437 */ + "ibm850", FC_CP850, CM_INV, /* PC CP850 (not in MIME) */ +#ifdef LATIN2 + "ibm852", FC_CP852, CM_INV, /* PC CP852 */ +#endif /* LATIN2 */ +#ifdef CYRILLIC + "ibm855", FC_CP855, CM_INV, /* PC CP855 */ +#endif /* CYRILLIC */ + "ibm858", FC_CP858, CM_INV, /* PC CP858 (not in MIME) */ +#ifdef HEBREW + "ibm862", FC_CP862, CM_INV, /* PC CP862 (not in MIME) */ +#endif /* HEBREW */ +#ifdef CYRILLIC + "ibm866", FC_CP866, CM_INV, /* CP866 Cyrillic */ +#endif /* CYRILLIC */ +#ifdef GREEK + "ibm869", FC_CP869, CM_INV, /* CP869 Greek */ +#endif /* GREEK */ + +#ifdef UNICODE + "iso-10646-ucs-2", FC_UCS2, CM_INV, /* ISO 10646 / Unicode UCS-2 */ +#endif /* UNICODE */ + "iso-8859-1", FC_1LATIN, CM_INV, /* ISO Latin Alphabet 1 */ + "iso-8859-15", FC_9LATIN, CM_INV, /* ISO Latin Alphabet 9 (yes) */ + "iso-8859-2", FC_2LATIN, CM_INV, /* ISO Latin Alphabet 2 */ +#ifdef CYRILLIC + "iso-8859-5", FC_CYRILL, CM_INV, /* ISO Latin/Cyrillic Alphabet */ +#endif /* CYRILLIC */ +#ifdef GREEK + "iso-8859-7", FC_GREEK, CM_INV, /* ISO 8859-7 Latin/Greek */ +#endif /* GREEK */ +#ifdef HEBREW + "iso-8859-8", FC_HEBREW, CM_INV, /* ISO Latin/Hebrew */ +#endif /* HEBREW */ #ifdef KANJI - "iso2022jp-kanji", FC_JIS7, 0, /* Synonym for JIS-7 */ + "iso2022jp-kanji", FC_JIS7, CM_INV, /* Synonym for JIS-7 */ #endif /* KANJI */ - "italian", FC_ITASCII, 0, /* Italian NRC */ + + "iso646-gb", FC_UKASCII, CM_INV, /* British NRC */ + "iso646-ca", FC_FCASCII, CM_INV, /* French Canadian NRC */ + "iso646-de", FC_GEASCII, CM_INV, /* German NRC */ + "iso646-dk", FC_NOASCII, CM_INV, /* Norwegian and Danish NRC */ + "iso646-es", FC_SPASCII, CM_INV, /* Spanish NRC */ + "iso646-fi", FC_FIASCII, CM_INV, /* Finnish NRC */ + "iso646-fr", FC_FRASCII, CM_INV, /* French NRC */ + "iso646-hu", FC_HUASCII, CM_INV, /* Hungarian NRC */ + "iso646-it", FC_ITASCII, CM_INV, /* Italian NRC */ + "iso646-no", FC_NOASCII, CM_INV, /* Norwegian and Danish NRC */ + "iso646-po", FC_POASCII, CM_INV, /* Portuguese NRC */ + "iso646-se", FC_SWASCII, CM_INV, /* Swedish NRC */ + + "italian", FC_ITASCII, CM_INV, /* Italian NRC */ #ifdef KANJI "japanese-euc", FC_JEUC, CM_INV, /* Japanese EUC */ "jis7-kanji", FC_JIS7, 0, /* Japanese JIS7 7bit code */ @@ -374,8 +448,12 @@ struct keytab fcstab[] = { /* Keyword table for 'set file character-set' */ "k", FC_KOI8, CM_ABR|CM_INV, "ko", FC_KOI8, CM_ABR|CM_INV, "koi", FC_KOI8, CM_ABR|CM_INV, + "koi7", FC_KOI7, 0, /* Short KOI Cyrillic */ "koi8", FC_KOI8, 0, /* Old KOI-8 Cyrillic */ + "koi8-e", FC_KOI8, CM_INV, /* Old KOI-8 Cyrillic */ "koi8-cyrillic", FC_KOI8, CM_INV, + "koi8-r", FC_KOI8R, CM_INV, /* KOI8-R RFC1489 */ + "koi8-u", FC_KOI8U, CM_INV, /* KOI8-U RFC2319 */ "koi8r", FC_KOI8R, 0, /* KOI8-R RFC1489 */ "koi8u", FC_KOI8U, 0, /* KOI8-U RFC2319 */ #endif /* CYRILLIC */ @@ -398,6 +476,7 @@ struct keytab fcstab[] = { /* Keyword table for 'set file character-set' */ "portuguese", FC_POASCII, 0, /* Portuguese NRC */ #ifdef KANJI "shift-jis-kanji", FC_SHJIS, 0, /* Japanese Kanji Shift-JIS */ + "shift_jis", FC_SHJIS, CM_INV, /* Japanese Kanji Shift-JIS */ #endif /* KANJI */ #ifdef CYRILLIC "short-koi", FC_KOI7, 0, /* Short KOI Cyrillic */ @@ -407,8 +486,20 @@ struct keytab fcstab[] = { /* Keyword table for 'set file character-set' */ "swiss", FC_CHASCII, 0, /* Swiss NRC */ #ifdef UNICODE "ucs2", FC_UCS2, 0, /* ISO 10646 / Unicode UCS-2 */ +#endif /* UNICODE */ + "us-ascii", FC_USASCII, CM_INV, /* MIME */ + "usascii", FC_USASCII, CM_INV, +#ifdef UNICODE + "utf-8", FC_UTF8, CM_INV, /* ISO 10646 / Unicode UTF-8 */ "utf8", FC_UTF8, 0, /* ISO 10646 / Unicode UTF-8 */ #endif /* UNICODE */ +#ifdef LATIN2 + "windows-1250", FC_CP1250, CM_INV, /* Windows CP 1250 */ +#endif /* LATIN2 */ +#ifdef CYRILLIC + "windows-1251", FC_CP1251, CM_INV, /* Windows CP 1251 */ +#endif /* CYRILLIC */ + "windows-1252", FC_CP1252, CM_INV, /* Windows CP 1252 */ "", 0, 0 }; int nfilc = (sizeof(fcstab) / sizeof(struct keytab)) - 1; @@ -419,7 +510,7 @@ struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */ 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 */ +/* Keyword Value Flags */ "apple-quickdraw", FC_APPQD, CM_INV, /* Apple Quickdraw */ "ascii", FC_USASCII, 0, /* ASCII */ "british", FC_UKASCII, 0, /* British NRC */ @@ -432,10 +523,10 @@ struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */ "cp1251-cyrillic", FC_CP1251, 0, /* Windows CP 1251 */ #endif /* CYRILLIC */ "cp1252", FC_CP1252, 0, /* Windows CP 1252 */ - "cp437", FC_CP437, 0, /* IBM CP437 */ - "cp850", FC_CP850, 0, /* IBM CP850 */ + "cp437", FC_CP437, 0, /* PC CP437 */ + "cp850", FC_CP850, 0, /* PC CP850 */ #ifdef LATIN2 - "cp852", FC_CP852, 0, /* IBM CP852 */ + "cp852", FC_CP852, 0, /* PC CP852 */ #endif /* LATIN2 */ #ifdef CYRILLIC "cp855-cyrillic", FC_CP855, 0, /* PC CP855 */ @@ -454,11 +545,7 @@ struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */ "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-mcs", FC_DECMCS, CM_INV, /* DEC multinational char set */ "dec-multinational", FC_DECMCS, 0, /* DEC multinational character set */ "dg-international", FC_DGMCS, 0, /* Data General multinational */ "dutch", FC_DUASCII, 0, /* Dutch NRC */ @@ -484,20 +571,67 @@ struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */ #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 */ + + "ibm437", FC_CP437, CM_INV, /* PC CP437 */ + "ibm850", FC_CP850, CM_INV, /* PC CP850 (not in MIME) */ +#ifdef LATIN2 + "ibm852", FC_CP852, CM_INV, /* PC CP852 */ +#endif /* LATIN2 */ +#ifdef CYRILLIC + "ibm855", FC_CP855, CM_INV, /* PC CP855 */ +#endif /* CYRILLIC */ + "ibm858", FC_CP858, CM_INV, /* PC CP858 (not in MIME) */ +#ifdef HEBREW + "ibm862", FC_CP862, CM_INV, /* PC CP862 (not in MIME) */ +#endif /* HEBREW */ +#ifdef CYRILLIC + "ibm866", FC_CP866, CM_INV, /* CP866 Cyrillic */ +#endif /* CYRILLIC */ +#ifdef GREEK + "ibm869", FC_CP869, CM_INV, /* CP869 Greek */ +#endif /* GREEK */ + +#ifdef UNICODE + "iso-10646-ucs-2", FC_UCS2, CM_INV, /* ISO 10646 / Unicode UCS-2 */ +#endif /* UNICODE */ + "iso-8859-1", FC_1LATIN, CM_INV, /* ISO Latin Alphabet 1 */ + "iso-8859-15", FC_9LATIN, CM_INV, /* ISO Latin Alphabet 9 (yes) */ + "iso-8859-2", FC_2LATIN, CM_INV, /* ISO Latin Alphabet 2 */ +#ifdef CYRILLIC + "iso-8859-5", FC_CYRILL, CM_INV, /* ISO Latin/Cyrillic Alphabet */ +#endif /* CYRILLIC */ +#ifdef GREEK + "iso-8859-7", FC_GREEK, CM_INV, /* ISO 8859-7 Latin/Greek */ +#endif /* GREEK */ +#ifdef HEBREW + "iso-8859-8", FC_HEBREW, CM_INV, /* ISO Latin/Hebrew */ +#endif /* HEBREW */ + + "iso646-gb", FC_UKASCII, CM_INV, /* British NRC */ + "iso646-ca", FC_FCASCII, CM_INV, /* French Canadian NRC */ + "iso646-de", FC_GEASCII, CM_INV, /* German NRC */ + "iso646-dk", FC_NOASCII, CM_INV, /* Norwegian and Danish NRC */ + "iso646-es", FC_SPASCII, CM_INV, /* Spanish NRC */ + "iso646-fi", FC_FIASCII, CM_INV, /* Finnish NRC */ + "iso646-fr", FC_FRASCII, CM_INV, /* French NRC */ + "iso646-hu", FC_HUASCII, CM_INV, /* Hungarian NRC */ + "iso646-it", FC_ITASCII, CM_INV, /* Italian NRC */ + "iso646-no", FC_NOASCII, CM_INV, /* Norwegian and Danish NRC */ + "iso646-po", FC_POASCII, CM_INV, /* Portuguese NRC */ + "iso646-se", FC_SWASCII, CM_INV, /* Swedish NRC */ + + "italian", FC_ITASCII, CM_INV, /* Italian NRC */ + #ifdef CYRILLIC "k", FC_KOI8, CM_ABR|CM_INV, "ko", FC_KOI8, CM_ABR|CM_INV, "koi", FC_KOI8, CM_ABR|CM_INV, + "koi7", FC_KOI7, 0, /* Short KOI Cyrillic */ "koi8", FC_KOI8, 0, /* Old KOI-8 Cyrillic */ + "koi8-e", FC_KOI8, CM_INV, /* Old KOI-8 Cyrillic */ "koi8-cyrillic", FC_KOI8, CM_INV, + "koi8-r", FC_KOI8R, CM_INV, /* KOI8-R RFC1489 */ + "koi8-u", FC_KOI8U, CM_INV, /* KOI8-U RFC2319 */ "koi8r", FC_KOI8R, 0, /* KOI8-R RFC1489 */ "koi8u", FC_KOI8U, 0, /* KOI8-U RFC2319 */ #endif /* CYRILLIC */ @@ -511,19 +645,14 @@ struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */ "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 */ + "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 */ @@ -532,8 +661,21 @@ struct keytab ttcstab[] = { /* Keyword table for SET TERMINAL CHARACTER-SET */ "swiss", FC_CHASCII, 0, /* Swiss NRC */ "transparent", FC_TRANSP, 0, /* Transparent */ #ifdef UNICODE + "ucs2", FC_UCS2, 0, /* ISO 10646 / Unicode UCS-2 */ +#endif /* UNICODE */ + "us-ascii", FC_USASCII, CM_INV, /* MIME */ + "usascii", FC_USASCII, CM_INV, +#ifdef UNICODE + "utf-8", FC_UTF8, CM_INV, /* ISO 10646 / Unicode UTF-8 */ "utf8", FC_UTF8, 0, /* ISO 10646 / Unicode UTF-8 */ #endif /* UNICODE */ +#ifdef LATIN2 + "windows-1250", FC_CP1250, CM_INV, /* Windows CP 1250 */ +#endif /* LATIN2 */ +#ifdef CYRILLIC + "windows-1251", FC_CP1251, CM_INV, /* Windows CP 1251 */ +#endif /* CYRILLIC */ + "windows-1252", FC_CP1252, CM_INV, /* Windows CP 1252 */ "", 0, 0 }; int ntermc = (sizeof(ttcstab) / sizeof(struct keytab)) - 1;