source: trunk/include/encodings/base.h@ 147

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

Misc updates for Unicode.

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