Annotation of coherent/e/bin/ckermit/ckcxla.h, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.