📄 ckuxla.c
字号:
#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. */intcseqtab[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 CHARyl1as[] = { /* 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) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -