Revision: | 1.16 |
Committed: | Sun Jan 22 11:57:06 2006 UTC (18 years, 6 months ago) by root |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | rel-8_5a, rel-7_3a, rel-9_0, rel-7_3, rel-7_2, rel-7_7, rel-7_6, rel-7_5, rel-7_4, rel-7_9, rel-7_8, rel-8_8, rel-8_9, rel-8_0, rel-8_1, rel-8_2, rel-8_3, rel-8_4, rel-8_6, rel-8_7, rel-9_02, rel-9_01, rel-9_05 |
Changes since 1.15: | +1 -1 lines |
Log Message: | *** empty log message *** |
# | Content |
---|---|
1 | #ifndef ENCODING_H |
2 | #define ENCODING_H |
3 | |
4 | #include <inttypes.h> |
5 | |
6 | typedef uint32_t unicode_t; |
7 | |
8 | // order must match the table in encoding.C(!) |
9 | enum codeset { |
10 | CS_UNKNOWN = 0, |
11 | CS_US_ASCII, |
12 | |
13 | CS_ISO8859_1, |
14 | CS_ISO8859_2, |
15 | CS_ISO8859_3, |
16 | CS_ISO8859_4, |
17 | CS_ISO8859_5, |
18 | CS_ISO8859_6, |
19 | CS_ISO8859_7, |
20 | CS_ISO8859_8, |
21 | CS_ISO8859_9, |
22 | CS_ISO8859_10, |
23 | CS_ISO8859_11, |
24 | CS_ISO8859_13, |
25 | CS_ISO8859_14, |
26 | CS_ISO8859_15, |
27 | CS_ISO8859_16, |
28 | |
29 | CS_KOI8_R, |
30 | CS_KOI8_U, |
31 | CS_JIS0201_1976_0, |
32 | CS_JIS0208_1990_0, |
33 | CS_JIS0212_1990_0, |
34 | CS_JIS0213_1, |
35 | CS_JIS0213_2, |
36 | |
37 | CS_KSC5601_1987_0, |
38 | |
39 | CS_GB2312_1980_0, |
40 | CS_GBK_0, |
41 | |
42 | CS_CNS11643_1992_1, |
43 | CS_CNS11643_1992_2, |
44 | CS_CNS11643_1992_3, |
45 | CS_CNS11643_1992_4, |
46 | CS_CNS11643_1992_5, |
47 | CS_CNS11643_1992_6, |
48 | CS_CNS11643_1992_7, |
49 | CS_CNS11643_1992_F, |
50 | |
51 | CS_BIG5, |
52 | CS_BIG5_EXT, |
53 | CS_BIG5_PLUS, |
54 | |
55 | CS_VISCII, |
56 | |
57 | CS_UNICODE_16, /* 16-bit subset of unicode, for X11 */ |
58 | CS_UNICODE, |
59 | |
60 | NUM_CODESETS |
61 | }; |
62 | |
63 | codeset codeset_from_name (const char *name); |
64 | |
65 | enum { |
66 | ZERO_WIDTH_CHAR = 0x200b, |
67 | REPLACEMENT_CHAR = 0xfffd, |
68 | NOCHAR = 0xffff, // must be invalid in ANY codeset (!) |
69 | }; |
70 | |
71 | struct rxvt_codeset_conv { |
72 | uint32_t (*from_unicode) (unicode_t unicode); |
73 | #if ENCODING_TO_UNICODE |
74 | unicode_t (*to_unicode) (uint32_t enc); |
75 | #endif |
76 | }; |
77 | |
78 | extern const rxvt_codeset_conv rxvt_codeset[NUM_CODESETS]; |
79 | |
80 | extern unicode_t rxvt_compose (unicode_t c1, unicode_t c2); |
81 | |
82 | #define FROM_UNICODE(cs,code) rxvt_codeset[cs].from_unicode (code) |
83 | #define TO_UNICODE(cs,code) rxvt_codeset[cs].to_unicode (code) |
84 | |
85 | struct unicode { // namespace für arme |
86 | static bool is_space (unicode_t c); |
87 | }; |
88 | |
89 | #endif |
90 |