home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / include / csid.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  8.3 KB  |  221 lines

  1. /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19.  
  20. /*    csid.h    */
  21.  
  22. #ifndef _CSID_H_
  23. #define _CSID_H_
  24.  
  25. /* Codeset type */
  26. #define SINGLEBYTE   0x0000 /* 0000 0000 0000 0000 =    0 */
  27. #define MULTIBYTE    0x0100 /* 0000 0001 0000 0000 =  256 */
  28. #define STATEFUL     0x0200 /* 0000 0010 0000 0000 =  512 */
  29. #define WIDECHAR     0x0300 /* 0000 0011 0000 0000 =  768 */
  30. #define CODESET_MASK 0x0F00 /* 0000 1111 0000 0000 = 3840 */
  31.  
  32. /*
  33.  * Check for double byte encodings
  34.  * (should distinguish 2 byte from true multibyte)
  35.  */
  36. #define IS_16BIT_ENCODING(x) (((x)&CODESET_MASK) == MULTIBYTE)
  37.  
  38. /* line-break on spaces */
  39. #define CS_SPACE   0x0400 /* 0000 0100 0000 0000 = 1024 */
  40.  
  41. /* Auto Detect Mode */
  42. #define CS_AUTO    0x0800 /* 0000 1000 0000 0000 = 2048 */
  43.  
  44.  
  45. /* Code Set IDs */
  46. /* CS_DEFAULT: used if no charset param in header */
  47. /* CS_UNKNOWN: used for unrecognized charset */
  48.  
  49.                     /* type                  id   */
  50. #define CS_DEFAULT    (SINGLEBYTE         |   0) /*    0 */
  51. #define CS_ASCII      (SINGLEBYTE         |   1) /*    1 */
  52. #define CS_LATIN1     (SINGLEBYTE         |   2) /*    2 */
  53. #define CS_JIS        (STATEFUL           |   3) /*  515 */
  54. #define CS_SJIS       (MULTIBYTE          |   4) /*  260 */
  55. #define CS_EUCJP      (MULTIBYTE          |   5) /*  261 */
  56.  
  57. #define CS_JIS_AUTO   (CS_AUTO|STATEFUL   |   3) /* 2563 */
  58. #define CS_SJIS_AUTO  (CS_AUTO|MULTIBYTE  |   4) /* 2308 */
  59. #define CS_EUCJP_AUTO (CS_AUTO|MULTIBYTE  |   5) /* 2309 */
  60.  
  61. #define CS_MAC_ROMAN  (SINGLEBYTE         |   6) /*    6 */
  62. #define CS_BIG5       (MULTIBYTE          |   7) /*  263 */
  63. #define CS_GB_8BIT    (MULTIBYTE          |   8) /*  264 */
  64. #define CS_CNS_8BIT   (MULTIBYTE          |   9) /*  265 */
  65. #define CS_LATIN2     (SINGLEBYTE         |  10) /*   10 */
  66. #define CS_MAC_CE     (SINGLEBYTE         |  11) /*   11 */
  67.  
  68. #define CS_KSC_8BIT   (MULTIBYTE|CS_SPACE |  12) /* 1292 */
  69. #define CS_KSC_8BIT_AUTO   (CS_AUTO | MULTIBYTE|CS_SPACE |  12)
  70.  
  71. #define CS_2022_KR    (STATEFUL           |  13) /*  525 */
  72. #define CS_8859_3     (SINGLEBYTE         |  14) /*   14 */
  73. #define CS_8859_4     (SINGLEBYTE         |  15) /*   15 */
  74. #define CS_8859_5     (SINGLEBYTE         |  16) /*   16 ISO Cyrillic */
  75. #define CS_8859_6     (SINGLEBYTE         |  17) /*   17 ISO Arabic */
  76. #define CS_8859_7     (SINGLEBYTE         |  18) /*   18 ISO Greek */
  77. #define CS_8859_8     (SINGLEBYTE         |  19) /*   19 ISO Hebrew */
  78. #define CS_8859_9     (SINGLEBYTE         |  20) /*   20 */
  79. #define CS_SYMBOL     (SINGLEBYTE         |  21) /*   21 */
  80. #define CS_DINGBATS   (SINGLEBYTE         |  22) /*   22 */
  81. #define CS_DECTECH    (SINGLEBYTE         |  23) /*   23 */
  82. #define CS_CNS11643_1 (MULTIBYTE          |  24) /*  280 */
  83. #define CS_CNS11643_2 (MULTIBYTE          |  25) /*  281 */
  84. #define CS_JISX0208   (MULTIBYTE          |  26) /*  282 */
  85. #define CS_JISX0201   (SINGLEBYTE         |  27) /*   27 */
  86. #define CS_KSC5601    (MULTIBYTE          |  28) /*  284 */
  87. #define CS_TIS620     (SINGLEBYTE         |  29) /*   29 */
  88. #define CS_JISX0212   (MULTIBYTE          |  30) /*  286 */
  89. #define CS_GB2312     (MULTIBYTE          |  31) /*  287 */
  90. #define CS_UCS2       (WIDECHAR           |  32) /*  810 */
  91. #define CS_UCS4       (WIDECHAR           |  33) /*  811 */
  92. #define CS_UTF8       (MULTIBYTE          |  34) /*  290 */
  93. #define CS_UTF7       (STATEFUL           |  35) /*   35 */
  94. #define CS_NPC        (MULTIBYTE          |  36) /*  292 */
  95. #define CS_X_BIG5     (MULTIBYTE          |  37) /*  293 */
  96. #define CS_USRDEF2    (SINGLEBYTE         |  38) /*   38 */
  97.  
  98. #define CS_KOI8_R     (SINGLEBYTE         |  39) /*   39 */
  99. #define CS_MAC_CYRILLIC     (SINGLEBYTE   |  40) /*   40 */
  100. #define CS_CP_1251    (SINGLEBYTE         |  41) /*   41 CP1251 Windows Cyrillic */
  101. #define CS_MAC_GREEK  (SINGLEBYTE         |  42) /*   42 */
  102. /* CS_CP_1253 should be deleted, we should use CS_8859_7 instead */
  103. #define CS_CP_1253    (SINGLEBYTE         |  43) /*   43 CP1253 Windows Greek */
  104. #define CS_CP_1250    (SINGLEBYTE         |  44) /*   44 CP1250 Windows C. Europe */
  105. /* CS_CP_1254 should be deleted, we should use CS_8859_9 instead */
  106. #define CS_CP_1254    (SINGLEBYTE         |  45) /*   45 CP1254 Windows Turkish */
  107. #define CS_MAC_TURKISH (SINGLEBYTE        |  46) /*   46 */
  108. #define CS_GB2312_11  (MULTIBYTE          |  47) /*  303 */
  109. #define CS_JISX0208_11 (MULTIBYTE         |  48) /*  304 */
  110. #define CS_KSC5601_11 (MULTIBYTE          |  49) /*  305 */
  111. #define CS_CNS11643_1110 (MULTIBYTE       |  50) /*  306 */
  112. #define CS_UCS2_SWAP    (WIDECHAR         |  51) /*  819 */
  113. #define CS_IMAP4_UTF7       (STATEFUL     |  52) /*  564 */
  114. #define CS_CP_850     (SINGLEBYTE         |  53) /*   53  PC Latin 1 */
  115. #define CS_CP_852     (SINGLEBYTE         |  54) /*   54  PC Latin 2 */
  116. #define CS_CP_855     (SINGLEBYTE         |  55) /*   55  PC Cyrillic */
  117. #define CS_CP_857     (SINGLEBYTE         |  56) /*   56  PC Turkish */
  118. #define CS_CP_862     (SINGLEBYTE         |  57) /*   57  PC Hebrew */
  119. #define CS_CP_864     (SINGLEBYTE         |  58) /*   58  PC Arabic */
  120. #define CS_CP_866     (SINGLEBYTE         |  59) /*   59  PC Russian */
  121. #define CS_CP_874     (SINGLEBYTE         |  60) /*   60  PC Thai    */
  122. #define CS_CP_1257    (SINGLEBYTE         |  61) /*   61  Windows Baltic */
  123. #define CS_CP_1258    (SINGLEBYTE         |  62) /*   62  Windows Vietnamese */
  124. #define INTL_CHAR_SET_MAX                    63  /* must be highest + 1 */
  125.  
  126.  
  127. #define CS_USER_DEFINED_ENCODING (SINGLEBYTE | 254) /* 254 */
  128. #define CS_UNKNOWN    (SINGLEBYTE         | 255) /* 255 */
  129.  
  130. #define IS_UTF8_CSID(x) (((x)&0xFF)== (CS_UTF8&0xFF))
  131. #define IS_UNICODE_CSID(x) \
  132.             (   (((x)&0xFF)== (CS_UCS2&0xFF)) \
  133.              || (((x)&0xFF)== (CS_UTF8&0xFF)) \
  134.              || (((x)&0xFF)== (CS_UTF7&0xFF)) )
  135.  
  136. /* The trigger is passing the parameter to 
  137.    PA_FetchParamValue() to satisfy its signature */
  138. #ifdef XP_MAC
  139. #define CS_FE_ASCII CS_MAC_ROMAN
  140. #else
  141. #define CS_FE_ASCII CS_LATIN1
  142. #endif
  143.  
  144.  
  145. /* Codeset # sorted by number */
  146. #if 0
  147.  
  148. 0    CS_DEFAULT     0
  149. 1    CS_ASCII     1
  150. 2    CS_LATIN1     2
  151. 6    CS_MAC_ROMAN     6
  152. 10   CS_LATIN2    10
  153. 11   CS_MAC_CE    11
  154. 14   CS_8859_3    14
  155. 15   CS_8859_4    15
  156. 16   CS_8859_5    16
  157. 17   CS_8859_6    17
  158. 18   CS_8859_7    18 
  159. 19   CS_8859_8    19
  160. 20   CS_8859_9    20
  161. 21   CS_SYMBOL    21
  162. 22   CS_DINGBATS    22
  163. 23   CS_DECTECH    23
  164. 27   CS_JISX0201    27
  165. 29   CS_TIS620    29
  166. 35   CS_UTF7    35
  167. 38   CS_USRDEF2    38
  168. 39   CS_KOI8_R    39
  169. 40   CS_MAC_CYRILLIC    40
  170. 41   CS_CP_1251    41
  171. 42   CS_MAC_GREEK    42
  172. 43   CS_CP_1253    43
  173. 44   CS_CP_1250    44
  174. 45   CS_CP_1254    45
  175. 46   CS_MAC_TURKISH    46
  176. 53   CS_CP_850  53
  177. 54   CS_CP_852  54
  178. 55   CS_CP_855  55
  179. 56   CS_CP_857  56
  180. 57   CS_CP_862  57
  181. 58   CS_CP_864  58
  182. 59   CS_CP_866  59
  183. 59   CS_CP_874  60
  184. 60   CS_CP_1257   61
  185. 61   CS_CP_1258   62
  186. 62   INTL_CHAR_SET_MAX  63
  187. 254  CS_USER_DEFINED_ENCODING  254
  188. 255  CS_UNKNOWN  255
  189. 260  CS_SJIS   260
  190. 261  CS_EUCJP   261
  191. 263  CS_BIG5   263
  192. 264  CS_GB_8BIT   264
  193. 265  CS_CNS_8BIT   265
  194. 280  CS_CNS11643_1   280
  195. 281  CS_CNS11643_2   281
  196. 282  CS_JISX0208   282
  197. 284  CS_KSC5601   284
  198. 286  CS_JISX0212   286
  199. 287  CS_GB2312   287
  200. 290  CS_UTF8   290
  201. 292  CS_NPC   292
  202. 293  CS_X_BIG5   293
  203. 303  CS_GB2312_11   303
  204. 304  CS_JISX0208_11   304
  205. 305  CS_KSC5601_11   305
  206. 306  CS_CNS11643_1110   306
  207. 515  CS_JIS   515
  208. 525  CS_2022_KR   525
  209. 564  CS_IMAP4_UTF7 564
  210. 810  CS_UCS2   810
  211. 811  CS_UCS4   811
  212. 819  CS_UCS2_SWAP   819
  213. 1292 CS_KSC_8BIT  1292
  214. 2308 CS_SJIS_AUTO  2308
  215. 2309 CS_EUCJP_AUTO  2309
  216. 2563 CS_JIS_AUTO  2563
  217.  
  218. #endif
  219.  
  220. #endif /* _CSID_H_ */
  221.