source: branches/branch-1-0/include/encodings/base.h@ 357

Last change on this file since 357 was 357, checked in by pr, 17 years ago

Add CP1386.

  • Property svn:eol-style set to CRLF
  • Property svn:keywords set to Author Date Id Revision
File size: 3.6 KB
Line 
1
2/*
3 *@@sourcefile
4 *
5 *
6 *@@added V0.9.9 (2001-02-10) [umoeller]
7 */
8
9#if __cplusplus
10extern "C" {
11#endif
12
13#ifndef ENC_BASE_HEADER_INCLUDED
14 #define ENC_BASE_HEADER_INCLUDED
15
16 #pragma pack(1) // V0.9.20 (2002-07-03) [umoeller]
17
18 /*
19 *@@ XWPENCODINGMAP:
20 * entry in a codepage-to-Unicode conversion table.
21 */
22
23 typedef struct _XWPENCODINGMAP
24 {
25 unsigned short usCP;
26 unsigned short usUni;
27 } XWPENCODINGMAP, *PXWPENCODINGMAP;
28
29 #pragma pack()
30
31 /*
32 *@@ ENCID:
33 * enum identifying each encoding set which is
34 * generally supported. Each ID corresponds to
35 * one header file in include\encodings\.
36 */
37
38 typedef enum _ENCID
39 {
40 UNSUPPORTED,
41 enc_cp437,
42 enc_cp737,
43 enc_cp775,
44 enc_cp850,
45 enc_cp852,
46 enc_cp855,
47 enc_cp857,
48 enc_cp860,
49 enc_cp861,
50 enc_cp862,
51 enc_cp863,
52 enc_cp864,
53 enc_cp865,
54 enc_cp866,
55 enc_cp869,
56 enc_cp874,
57 enc_cp932,
58 enc_cp936,
59 enc_cp949,
60 enc_cp950,
61 enc_cp1004, // added V0.9.18 (2002-03-08) [umoeller]
62 enc_cp1250,
63 enc_cp1251,
64 enc_cp1252,
65 enc_cp1253,
66 enc_cp1254,
67 enc_cp1255,
68 enc_cp1256,
69 enc_cp1257,
70 enc_cp1258,
71 enc_cp1386, // WarpIN V1.0.16 (2008-02-19) [pr]
72 enc_iso8859_1,
73 enc_iso8859_2,
74 enc_iso8859_3,
75 enc_iso8859_4,
76 enc_iso8859_5,
77 enc_iso8859_6,
78 enc_iso8859_7,
79 enc_iso8859_8,
80 enc_iso8859_9,
81 enc_iso8859_10,
82 enc_iso8859_13,
83 enc_iso8859_14,
84 enc_iso8859_15
85 } ENCID;
86
87 /*
88 *@@ CONVERSION:
89 *
90 *@@added V0.9.18 (2002-03-08) [umoeller]
91 */
92
93 typedef struct _CONVERSION
94 {
95 ENCID EncodingID;
96
97 // to get Unicode for character 123 in the specific
98 // encoding, do pTable->ausEntriesUniFromCP[123].
99 // If you get 0xFFFF, the encoding is undefined.
100 unsigned short usHighestCP;
101 unsigned short *ausEntriesUniFromCP; // usHighestCP + 1 entries
102
103 // to get codepage for unicode character 123,
104 // do pTable->ausEntriesCPFromUni[123].
105 // If you get 0xFFFF, the encoding is undefined.
106 unsigned short usHighestUni;
107 unsigned short *ausEntriesCPFromUni; // usHighestUni + 1 entries
108
109 } CONVERSION, *PCONVERSION;
110
111 typedef enum _ENCBYTECOUNT
112 {
113 SINGLE,
114 DOUBLE,
115 EBCDIC,
116 MULTI_UNICODE,
117 UNKNOWN
118 } ENCBYTECOUNT;
119
120 int encGetTable(ENCID id,
121 PXWPENCODINGMAP *ppMap,
122 unsigned long *pcEntries);
123
124 ENCID encFindIdForCodepage(unsigned short usCodepage,
125 const char **ppcszDescription,
126 ENCBYTECOUNT *pByteCount);
127
128 PCONVERSION encCreateCodec(ENCID id);
129
130 void encFreeCodec(PCONVERSION *ppTable);
131
132 unsigned long encChar2Uni(PCONVERSION pTable,
133 unsigned short c);
134
135 unsigned short encUni2Char(PCONVERSION pTable,
136 unsigned long ulUni);
137
138 unsigned long encDecodeUTF8(const char **ppch);
139
140 int encInitCase(void);
141
142 unsigned long encToUpper(unsigned long ulUni);
143
144 int encicmp(const char *pcsz1,
145 const char *pcsz2);
146
147#endif
148
149#if __cplusplus
150}
151#endif
152
Note: See TracBrowser for help on using the repository browser.