|
|
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.