📄 ckuxla.c
字号:
#include "ckcsym.h"#include "ckcdeb.h" /* Includes... */#include "ckcker.h"#include "ckucmd.h"#include "ckcxla.h"#ifdef NOXFER#define zdstuff(a)#endif /* NOXFER */#ifndef NOCSETSchar *xlav = "Character Set Translation 8.0.042, 3 Jul 2000";/* 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, 2004, 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;extern int xfrxla;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 CKOUNIint tcsr = TX_8859_1; /* Remote terminal character set */#else /* CKOUNI */int tcsr = FC_USASCII;#endif /* CKOUNI */int language = L_USASCII; /* Language */#ifdef UNICODEint ucsbom = 1; /* Add BOM to new UCS files? */int ucsorder = -1; /* Default byte order for UCS files */int fileorder = -1; /* Byte order of current file */ /* 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 dcset8 = FC_DGMCS;int dcset7 = FC_USASCII;int tcsl = FC_DGMCS;#else#ifdef NEXT /* The NeXT workstation */int fcharset = FC_NEXT; /* uses its own 8-bit set */int dcset8 = FC_NEXT;int dcset7 = FC_USASCII;int tcsl = FC_NEXT;#else#ifdef MAC /* The Macintosh */int fcharset = FC_APPQD; /* uses an extended version of */int dcset8 = FC_APPQD;int dcset7 = FC_USASCII;int tcsl = FC_APPQD; /* Apple Quickdraw */#else#ifdef AUXint fcharset = FC_APPQD; /* Ditto for Apple A/UX */int dcset8 = FC_APPQD;int dcset7 = FC_USASCII;int tcsl = FC_APPQD;#else#ifdef AMIGA /* The Commodore Amiga */int fcharset = FC_1LATIN; /* uses Latin-1 */int dcset8 = FC_1LATIN;int dcset7 = FC_USASCII;int tcsl = FC_1LATIN;#else /* All others */#ifdef CKOUNI /* OS/2 Unicode */int fcharset = FC_1LATIN;int dcset8 = FC_1LATIN;int dcset7 = FC_USASCII;int tcsl = TX_8859_1;int prncs = TX_CP437;#else /* All others */int fcharset = FC_USASCII; /* use ASCII by default */int dcset8 = FC_1LATIN; /* But default 8-bit set is Latin-1 */int dcset7 = FC_USASCII;int tcsl = FC_USASCII;int prncs = FC_CP437;#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_ANSICextern 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 */#elseextern 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",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -