pjs/include/csid.h

254 строки
9.9 KiB
C

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
/* csid.h */
#ifndef _CSID_H_
#define _CSID_H_
/* Codeset type */
#define SINGLEBYTE 0x0000 /* 0000 0000 0000 0000 = 0 */
#define MULTIBYTE 0x0100 /* 0000 0001 0000 0000 = 256 */
#define STATEFUL 0x0200 /* 0000 0010 0000 0000 = 512 */
#define WIDECHAR 0x0300 /* 0000 0011 0000 0000 = 768 */
#define CODESET_MASK 0x0F00 /* 0000 1111 0000 0000 = 3840 */
/*
* Check for double byte encodings
* (should distinguish 2 byte from true multibyte)
*/
#define IS_16BIT_ENCODING(x) (((x)&CODESET_MASK) == MULTIBYTE)
/* line-break on spaces */
#define CS_SPACE 0x0400 /* 0000 0100 0000 0000 = 1024 */
/* Auto Detect Mode */
#define CS_AUTO 0x0800 /* 0000 1000 0000 0000 = 2048 */
/* Code Set IDs */
/* CS_DEFAULT: used if no charset param in header */
/* CS_UNKNOWN: used for unrecognized charset */
/* type id */
#define CS_DEFAULT (SINGLEBYTE | 0) /* 0 */
#define CS_ASCII (SINGLEBYTE | 1) /* 1 */
#define CS_LATIN1 (SINGLEBYTE | 2) /* 2 */
#define CS_JIS (STATEFUL | 3) /* 515 */
#define CS_SJIS (MULTIBYTE | 4) /* 260 */
#define CS_EUCJP (MULTIBYTE | 5) /* 261 */
#define CS_JIS_AUTO (CS_AUTO|STATEFUL | 3) /* 2563 */
#define CS_SJIS_AUTO (CS_AUTO|MULTIBYTE | 4) /* 2308 */
#define CS_EUCJP_AUTO (CS_AUTO|MULTIBYTE | 5) /* 2309 */
#define CS_MAC_ROMAN (SINGLEBYTE | 6) /* 6 */
#define CS_BIG5 (MULTIBYTE | 7) /* 263 */
#define CS_GB_8BIT (MULTIBYTE | 8) /* 264 */
#define CS_CNS_8BIT (MULTIBYTE | 9) /* 265 */
#define CS_LATIN2 (SINGLEBYTE | 10) /* 10 */
#define CS_MAC_CE (SINGLEBYTE | 11) /* 11 */
#define CS_KSC_8BIT (MULTIBYTE|CS_SPACE | 12) /* 1292 */
#define CS_KSC_8BIT_AUTO (CS_AUTO | MULTIBYTE|CS_SPACE | 12)
#define CS_2022_KR (STATEFUL | 13) /* 525 */
#define CS_8859_3 (SINGLEBYTE | 14) /* 14 */
#define CS_8859_4 (SINGLEBYTE | 15) /* 15 */
#define CS_8859_5 (SINGLEBYTE | 16) /* 16 ISO Cyrillic */
#define CS_8859_6 (SINGLEBYTE | 17) /* 17 ISO Arabic */
#define CS_8859_7 (SINGLEBYTE | 18) /* 18 ISO Greek */
#define CS_8859_8 (SINGLEBYTE | 19) /* 19 ISO Hebrew */
#define CS_8859_9 (SINGLEBYTE | 20) /* 20 */
#define CS_SYMBOL (SINGLEBYTE | 21) /* 21 */
#define CS_DINGBATS (SINGLEBYTE | 22) /* 22 */
#define CS_DECTECH (SINGLEBYTE | 23) /* 23 */
#define CS_CNS11643_1 (MULTIBYTE | 24) /* 280 */
#define CS_CNS11643_2 (MULTIBYTE | 25) /* 281 */
#define CS_JISX0208 (MULTIBYTE | 26) /* 282 */
#define CS_JISX0201 (SINGLEBYTE | 27) /* 27 */
#define CS_KSC5601 (MULTIBYTE | 28) /* 284 */
#define CS_TIS620 (SINGLEBYTE | 29) /* 29 */
#define CS_JISX0212 (MULTIBYTE | 30) /* 286 */
#define CS_GB2312 (MULTIBYTE | 31) /* 287 */
#define CS_UCS2 (WIDECHAR | 32) /* 810 */
#define CS_UCS4 (WIDECHAR | 33) /* 811 */
#define CS_UTF8 (MULTIBYTE | 34) /* 290 */
#define CS_UTF7 (STATEFUL | 35) /* 35 */
#define CS_NPC (MULTIBYTE | 36) /* 292 */
#define CS_X_BIG5 (MULTIBYTE | 37) /* 293 */
#define CS_USRDEF2 (SINGLEBYTE | 38) /* 38 */
#define CS_KOI8_R (SINGLEBYTE | 39) /* 39 */
#define CS_MAC_CYRILLIC (SINGLEBYTE | 40) /* 40 */
#define CS_CP_1251 (SINGLEBYTE | 41) /* 41 */
#define CS_MAC_GREEK (SINGLEBYTE | 42) /* 42 */
#define CS_CP_1253 (SINGLEBYTE | 43) /* 43 */
#define CS_CP_1250 (SINGLEBYTE | 44) /* 44 */
#define CS_CP_1254 (SINGLEBYTE | 45) /* 45 */
#define CS_MAC_TURKISH (SINGLEBYTE | 46) /* 46 */
#define CS_GB2312_11 (MULTIBYTE | 47) /* 303 */
#define CS_JISX0208_11 (MULTIBYTE | 48) /* 304 */
#define CS_KSC5601_11 (MULTIBYTE | 49) /* 305 */
#define CS_CNS11643_1110 (MULTIBYTE | 50) /* 306 */
#define CS_UCS2_SWAP (WIDECHAR | 51) /* 819 */
#define CS_IMAP4_UTF7 (STATEFUL | 52) /* 564 */
#define CS_CP_850 (SINGLEBYTE | 53) /* 53 PC Latin 1 */
#define CS_CP_852 (SINGLEBYTE | 54) /* 54 PC Latin 2 */
#define CS_CP_855 (SINGLEBYTE | 55) /* 55 PC Cyrillic */
#define CS_CP_857 (SINGLEBYTE | 56) /* 56 PC Turkish */
#define CS_CP_862 (SINGLEBYTE | 57) /* 57 PC Hebrew */
#define CS_CP_864 (SINGLEBYTE | 58) /* 58 PC Arabic */
#define CS_CP_866 (SINGLEBYTE | 59) /* 59 PC Russian */
#define CS_CP_874 (SINGLEBYTE | 60) /* 60 PC Thai */
#define CS_CP_1257 (SINGLEBYTE | 61) /* 61 Windows Baltic */
#define CS_CP_1258 (SINGLEBYTE | 62) /* 62 Windows Vietnamese */
#define CS_ARMSCII8 (SINGLEBYTE | 63) /* 63 Armenian ArmSCII-8 */
#define CS_HZ (STATEFUL | 64) /* 576 */
#define CS_ISO_2022_CN (STATEFUL | 65) /* 577 */
#define CS_GB13000 (MULTIBYTE | 66) /* 322 */
#define CS_BIG5_PLUS (MULTIBYTE | 67) /* 323 */
#define CS_UHC (MULTIBYTE|CS_SPACE | 68) /* 1348 cp949 */
#define CS_CNS11643_3 (MULTIBYTE | 69) /* 325 */
#define CS_CNS11643_4 (MULTIBYTE | 70) /* 326 */
#define CS_CNS11643_5 (MULTIBYTE | 71) /* 327 */
#define CS_CNS11643_6 (MULTIBYTE | 72) /* 328 */
#define CS_CNS11643_7 (MULTIBYTE | 73) /* 329 */
#define CS_CNS11643_8 (MULTIBYTE | 74) /* 330 */
#define CS_CNS11643_9 (MULTIBYTE | 75) /* 331 */
#define CS_CNS11643_10 (MULTIBYTE | 76) /* 332 */
#define CS_CNS11643_11 (MULTIBYTE | 77) /* 333 */
#define CS_CNS11643_12 (MULTIBYTE | 78) /* 334 */
#define CS_CNS11643_13 (MULTIBYTE | 79) /* 335 */
#define CS_CNS11643_14 (MULTIBYTE | 80) /* 336 */
#define CS_CNS11643_15 (MULTIBYTE | 81) /* 337 */
#define CS_CNS11643_16 (MULTIBYTE | 82) /* 338 */
#define CS_VIET_VISCII (SINGLEBYTE | 83) /* 83 Vietnamese VISCII */
#define CS_VIET_VIQR ( 84) /* 84 Vietnamese VIQR */
#define CS_KOI8_U (SINGLEBYTE | 85) /* 85 */
#define CS_ISO_IR_111 (SINGLEBYTE | 86) /* 86 */
#define CS_8859_6_I ( 87) /* 87 */
#define CS_8859_6_E ( 88) /* 88 */
#define CS_8859_8_I ( 89) /* 89 */
#define CS_8859_8_E ( 90) /* 90 */
#define CS_JOHAB (MULTIBYTE | 91) /* 91 cp1361 */
#define CS_JOHABFONT (MULTIBYTE | 92) /* 92 hangterm font*/
#define CS_VIET_VPS (SINGLEBYTE | 93) /* 93 Vietnamese VPS */
#define CS_VIET_TCVN (SINGLEBYTE | 94) /* 94 Vietnamese TCVN */
#define CS_VIET_VNI ( 95) /* 95 Vietnamese VNI */
#define INTL_CHAR_SET_MAX 96 /* must be highest + 1 */
#define CS_USER_DEFINED_ENCODING (SINGLEBYTE | 254) /* 254 */
#define CS_UNKNOWN (SINGLEBYTE | 255) /* 255 */
#define IS_UTF8_CSID(x) (((x)&0xFF)== (CS_UTF8&0xFF))
#define IS_UNICODE_CSID(x) \
( (((x)&0xFF)== (CS_UCS2&0xFF)) \
|| (((x)&0xFF)== (CS_UTF8&0xFF)) \
|| (((x)&0xFF)== (CS_UTF7&0xFF)) )
/* The trigger is passing the parameter to
PA_FetchParamValue() to satisfy its signature */
#ifdef XP_MAC
#define CS_FE_ASCII CS_MAC_ROMAN
#else
#define CS_FE_ASCII CS_LATIN1
#endif
/* Codeset # sorted by number */
#if 0
0 CS_DEFAULT 0
1 CS_ASCII 1
2 CS_LATIN1 2
6 CS_MAC_ROMAN 6
10 CS_LATIN2 10
11 CS_MAC_CE 11
14 CS_8859_3 14
15 CS_8859_4 15
16 CS_8859_5 16
17 CS_8859_6 17
18 CS_8859_7 18
19 CS_8859_8 19
20 CS_8859_9 20
21 CS_SYMBOL 21
22 CS_DINGBATS 22
23 CS_DECTECH 23
27 CS_JISX0201 27
29 CS_TIS620 29
35 CS_UTF7 35
38 CS_USRDEF2 38
39 CS_KOI8_R 39
40 CS_MAC_CYRILLIC 40
41 CS_CP_1251 41
42 CS_MAC_GREEK 42
43 CS_CP_1253 43
44 CS_CP_1250 44
45 CS_CP_1254 45
46 CS_MAC_TURKISH 46
53 CS_CP_850 53
54 CS_CP_852 54
55 CS_CP_855 55
56 CS_CP_857 56
57 CS_CP_862 57
58 CS_CP_864 58
59 CS_CP_866 59
60 CS_CP_874 60
61 CS_CP_1257 61
62 CS_CP_1258 62
63 CS_ARMSCII8 63
64 INTL_CHAR_SET_MAX 64
254 CS_USER_DEFINED_ENCODING 254
255 CS_UNKNOWN 255
260 CS_SJIS 260
261 CS_EUCJP 261
263 CS_BIG5 263
264 CS_GB_8BIT 264
265 CS_CNS_8BIT 265
280 CS_CNS11643_1 280
281 CS_CNS11643_2 281
282 CS_JISX0208 282
284 CS_KSC5601 284
286 CS_JISX0212 286
287 CS_GB2312 287
290 CS_UTF8 290
292 CS_NPC 292
293 CS_X_BIG5 293
303 CS_GB2312_11 303
304 CS_JISX0208_11 304
305 CS_KSC5601_11 305
306 CS_CNS11643_1110 306
515 CS_JIS 515
525 CS_2022_KR 525
564 CS_IMAP4_UTF7 564
810 CS_UCS2 810
811 CS_UCS4 811
819 CS_UCS2_SWAP 819
1292 CS_KSC_8BIT 1292
2308 CS_SJIS_AUTO 2308
2309 CS_EUCJP_AUTO 2309
2563 CS_JIS_AUTO 2563
#endif
#endif /* _CSID_H_ */