|
|
1.1 ! root 1: /* ! 2: Author: Frank da Cruz ([email protected], [email protected]), ! 3: Columbia University Center for Computing Activities. ! 4: First released January 1985. ! 5: Copyright (C) 1985, 1992, Trustees of Columbia University in the City of New ! 6: York. Permission is granted to any individual or institution to use this ! 7: software as long as it is not sold for profit. This copyright notice must be ! 8: retained. This software may not be included in commercial products without ! 9: written permission of Columbia University. ! 10: */ ! 11: #ifndef CKCXLA_H /* Guard against multiple inclusion */ ! 12: #define CKCXLA_H ! 13: ! 14: #ifdef NOCSETS ! 15: #ifdef KANJI ! 16: #undef KANJI ! 17: #endif /* KANJI */ ! 18: #ifdef CYRILLIC ! 19: #undef CYRILLIC ! 20: #endif /* CYRILLIC */ ! 21: #ifdef LATIN2 ! 22: #undef LATIN2 ! 23: #endif /* LATIN2 */ ! 24: ! 25: #else /* Rest of this file... */ ! 26: ! 27: #ifndef NOLATIN2 /* If they didn't say "no Latin-2" */ ! 28: #ifndef LATIN2 /* Then if LATIN2 isn't already */ ! 29: #define LATIN2 /* defined, define it. */ ! 30: #endif /* LATIN2 */ ! 31: #endif /* NOLATIN2 */ ! 32: ! 33: #ifndef NOCYRIL /* If they didn't say "no Cyrillic" */ ! 34: #ifndef CYRILLIC /* Then if CYRILLIC isn't already */ ! 35: #define CYRILLIC /* defined, define it. */ ! 36: #endif /* CYRILLIC */ ! 37: #endif /* NOCYRIL */ ! 38: ! 39: /* File ckcxla.h -- Character-set-related definitions, system independent */ ! 40: ! 41: /* Codes for Kermit Transfer Syntax Level (obsolete) */ ! 42: ! 43: #define TS_L0 0 /* Level 0 (Transparent) */ ! 44: #define TS_L1 1 /* Level 1 (one standard character set) */ ! 45: #define TS_L2 2 /* Level 2 (multiple character sets in same file) */ ! 46: ! 47: #define UNK 63 /* Symbol to use for unknown character (63 = ?) */ ! 48: ! 49: /* ! 50: Codes for the base alphabet of a given character set. ! 51: These are assigned in roughly ISO 8859 order. ! 52: (Each is assumed to include ASCII/Roman.) ! 53: */ ! 54: #define AL_UNIV 0 /* Universal (like ISO 10646) */ ! 55: #define AL_ROMAN 1 /* Roman (Latin) alphabet */ ! 56: #define AL_CYRIL 2 /* Cyrillic alphabet */ ! 57: #define AL_ARABIC 3 /* Arabic */ ! 58: #define AL_GREEK 4 /* Greek */ ! 59: #define AL_HEBREW 5 /* Hebrew */ ! 60: #define AL_KANA 6 /* Japanese Katakana */ ! 61: #define AL_JAPAN 7 /* Japanese Katakana+Kanji ideograms */ ! 62: #define AL_HAN 8 /* Chinese/Japanese/Korean ideograms */ ! 63: #define AL_INDIA 9 /* Indian scripts (ISCII) */ ! 64: /* Add more here... */ ! 65: #define AL_UNK 999 /* Unknown (transparent) */ ! 66: ! 67: /* Codes for languages */ ! 68: /* ! 69: NOTE: It would perhaps be better to use ISO 639-1988 2-letter "Codes for ! 70: Representation of Names of Languages" here, shown in the comments below. ! 71: */ ! 72: #define L_ASCII 0 /* EN ASCII, English */ ! 73: #define L_USASCII 0 /* EN ASCII, English */ ! 74: #define L_DUTCH 1 /* NL Dutch */ ! 75: #define L_FINNISH 2 /* FI Finnish */ ! 76: #define L_FRENCH 3 /* FR French */ ! 77: #define L_GERMAN 4 /* DE German */ ! 78: #define L_HUNGARIAN 5 /* HU Hungarian */ ! 79: #define L_ITALIAN 6 /* IT Italian */ ! 80: #define L_NORWEGIAN 7 /* NO Norwegian */ ! 81: #define L_PORTUGUESE 8 /* PT Portuguese */ ! 82: #define L_SPANISH 9 /* ES Spanish */ ! 83: #define L_SWEDISH 10 /* SV Swedish */ ! 84: #define L_SWISS 11 /* RM Swiss (Rhaeto-Romance) */ ! 85: #define L_DANISH 12 /* DA Danish */ ! 86: #define L_ICELANDIC 13 /* IS Icelandic */ ! 87: ! 88: #ifdef CYRILLIC /* RU Russian */ ! 89: #define L_RUSSIAN 14 ! 90: #ifndef KANJI ! 91: #define MAXLANG 14 ! 92: #endif /* KANJI */ ! 93: #endif /* CYRILLIC */ ! 94: ! 95: #ifdef KANJI /* JA Japanese */ ! 96: #ifndef CYRILLIC ! 97: #define L_JAPANESE 14 ! 98: #define MAXLANG 14 ! 99: #else ! 100: #define L_JAPANESE 15 ! 101: #define MAXLANG 15 ! 102: #endif /* CYRILLIC */ ! 103: #endif /* KANJI */ ! 104: ! 105: #ifndef MAXLANG ! 106: #define MAXLANG 14 ! 107: #endif /* MAXLANG */ ! 108: ! 109: #ifdef COMMENT ! 110: /* ! 111: The ones below are not used yet. This list needs to be expanded and ! 112: organized, and something must be done about the hard coded numbers, because ! 113: they will be wrong if CYRILLIC and/or KANJI are deselected. But we can't do ! 114: "#define L_CHINESE L_JAPANESE + 1" because that causes recursion in the ! 115: preprocessor. ! 116: */ ! 117: #define L_CHINESE 16 /* ZH */ ! 118: #define L_KOREAN 17 /* KO */ ! 119: #define L_ARABIC 18 /* AR */ ! 120: #define L_HEBREW 19 /* IW */ ! 121: #define L_GREEK 20 /* EL */ ! 122: #define L_TURKISH 21 /* TR */ ! 123: /* etc... */ ! 124: #endif /* COMMENT */ ! 125: ! 126: /* ! 127: File character-sets are defined in the system-specific ck?xla.h file, ! 128: except for the following one, which must be available to all versions: ! 129: */ ! 130: #define FC_TRANSP 254 /* Transparent */ ! 131: ! 132: /* ! 133: Designators for Kermit's transfer character sets. These are all standard ! 134: sets, or based on them. Symbols must be unique in the first 8 characters, ! 135: because some C preprocessors have this limit. ! 136: */ ! 137: /* LIST1 */ ! 138: #define TC_TRANSP 0 /* Transparent, no character translation */ ! 139: #define TC_USASCII 1 /* US 7-bit ASCII */ ! 140: #define TC_1LATIN 2 /* ISO 8859-1, Latin-1 */ ! 141: #define TC_2LATIN 3 /* ISO 8859-2, Latin-2 */ ! 142: #define TC_CYRILL 4 /* ISO 8859-5, Latin/Cyrillic */ ! 143: #define TC_JEUC 5 /* Japanese EUC */ ! 144: ! 145: #define MAXTCSETS 5 /* Highest Transfer Character Set Number */ ! 146: ! 147: #ifdef COMMENT ! 148: /* ! 149: Not used yet. ! 150: */ ! 151: #define TC_3LATIN 6 /* ISO 8859-3, Latin-3 */ ! 152: #define TC_4LATIN 7 /* ISO 8859-4, Latin-4 */ ! 153: #define TC_5LATIN 8 /* ISO 8859-9, Latin-5 */ ! 154: #define TC_ARABIC 9 /* ISO-8859-6, Latin/Arabic */ ! 155: #define TC_GREEK 10 /* ISO-8859-7, Latin/Greek */ ! 156: #define TC_HEBREW 11 /* ISO-8859-8, Latin/Hebrew */ ! 157: #define TC_JIS208 12 /* Japanese JIS X 0208 multibyte set */ ! 158: #define TC_CHINES 13 /* Chinese Standard GB 2312-80 */ ! 159: #define TC_KOREAN 14 /* Korean KS C 5601-1987 */ ! 160: #define TC_I10646 15 /* ISO DIS 10646 (not defined yet) */ ! 161: /* etc... */ ! 162: #endif /* COMMENT */ ! 163: ! 164: /* Structure for character-set information */ ! 165: ! 166: struct csinfo { ! 167: char *name; /* Name of character set */ ! 168: int size; /* Size (128 or 256) */ ! 169: int code; /* Like TC_1LATIN, etc. */ ! 170: char *designator; /* Designator, like I2/100 = Latin-1 */ ! 171: int alphabet; /* Base alphabet */ ! 172: }; ! 173: ! 174: /* Structure for language information */ ! 175: ! 176: struct langinfo { ! 177: int id; /* Language ID code (L_whatever) */ ! 178: int fc; /* File character set to use */ ! 179: int tc; /* Transfer character set to use */ ! 180: char *description; /* Description of language */ ! 181: }; ! 182: ! 183: /* Now take in the system-specific definitions */ ! 184: ! 185: #ifdef UNIX ! 186: #include "ckuxla.h" ! 187: #endif /* UNIX */ ! 188: ! 189: #ifdef OSK /* OS-9 */ ! 190: #include "ckuxla.h" ! 191: #endif /* OS-9 */ ! 192: ! 193: #ifdef VMS /* VAX/VMS */ ! 194: #include "ckuxla.h" ! 195: #endif /* VMS */ ! 196: ! 197: #ifdef GEMDOS /* Atari ST */ ! 198: #include "ckuxla.h" ! 199: #endif /* GEMDOS */ ! 200: ! 201: #ifdef MAC /* Macintosh */ ! 202: #include "ckmxla.h" ! 203: #endif /* MAC */ ! 204: ! 205: #ifdef OS2 /* OS/2 */ ! 206: #include "ckuxla.h" /* Uses big UNIX version */ ! 207: #endif /* OS2 */ ! 208: ! 209: #ifdef AMIGA /* Commodore Amiga */ ! 210: #include "ckuxla.h" ! 211: #endif /* AMIGA */ ! 212: ! 213: #ifdef datageneral /* Data General MV AOS/VS */ ! 214: #include "ckuxla.h" ! 215: #endif /* datageneral */ ! 216: ! 217: #endif /* NOCSETS */ ! 218: ! 219: #endif /* CKCXLA_H */ ! 220: ! 221: #ifdef KANJI ! 222: _PROTOTYP( int xkanjf, (void) ); ! 223: _PROTOTYP( int xkanjz, (int (*)(char)) ); ! 224: _PROTOTYP( int xkanji, (int, int (*)(char)) ); ! 225: #endif /* KANJI */ ! 226: ! 227: /* End of ckcxla.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.