home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / CK5A188S.ZIP / ckcxla.h < prev    next >
C/C++ Source or Header  |  1992-11-23  |  7KB  |  228 lines

  1. /*
  2.   Author: Frank da Cruz (fdc@columbia.edu, FDCCU@CUVMA.BITNET),
  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 */
  228.