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

Last change on this file since 231 was 186, checked in by umoeller, 23 years ago

Some Unicode fixes.

  • Property svn:eol-style set to CRLF
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 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_iso8859_1,
72 enc_iso8859_2,
73 enc_iso8859_3,
74 enc_iso8859_4,
75 enc_iso8859_5,
76 enc_iso8859_6,
77 enc_iso8859_7,
78 enc_iso8859_8,
79 enc_iso8859_9,
80 enc_iso8859_10,
81 enc_iso8859_13,
82 enc_iso8859_14,
83 enc_iso8859_15
84 } ENCID;
85
86 /*
87 *@@ CONVERSION:
88 *
89 *@@added V0.9.18 (2002-03-08) [umoeller]
90 */
91
92 typedef struct _CONVERSION
93 {
94 ENCID EncodingID;
95
96 // to get Unicode for character 123 in the specific
97 // encoding, do pTable->ausEntriesUniFromCP[123].
98 // If you get 0xFFFF, the encoding is undefined.
99 unsigned short usHighestCP;
100 unsigned short *ausEntriesUniFromCP; // usHighestCP + 1 entries
101
102 // to get codepage for unicode character 123,
103 // do pTable->ausEntriesCPFromUni[123].
104 // If you get 0xFFFF, the encoding is undefined.
105 unsigned short usHighestUni;
106 unsigned short *ausEntriesCPFromUni; // usHighestUni + 1 entries
107
108 } CONVERSION, *PCONVERSION;
109
110 typedef enum _ENCBYTECOUNT
111 {
112 SINGLE,
113 DOUBLE,
114 EBCDIC,
115 MULTI_UNICODE,
116 UNKNOWN
117 } ENCBYTECOUNT;
118
119 int encGetTable(ENCID id,
120 PXWPENCODINGMAP *ppMap,
121 unsigned long *pcEntries);
122
123 ENCID encFindIdForCodepage(unsigned short usCodepage,
124 const char **ppcszDescription,
125 ENCBYTECOUNT *pByteCount);
126
127 PCONVERSION encCreateCodec(ENCID id);
128
129 void encFreeCodec(PCONVERSION *ppTable);
130
131 unsigned long encChar2Uni(PCONVERSION pTable,
132 unsigned short c);
133
134 unsigned short encUni2Char(PCONVERSION pTable,
135 unsigned long ulUni);
136
137 unsigned long encDecodeUTF8(const char **ppch);
138
139 int encInitCase(void);
140
141 unsigned long encToUpper(unsigned long ulUni);
142
143 int encicmp(const char *pcsz1,
144 const char *pcsz2);
145
146#endif
147
148#if __cplusplus
149}
150#endif
151
Note: See TracBrowser for help on using the repository browser.