1 | /* |
2 | * Summary: Unicode character range checking |
3 | * Description: this module exports interfaces for the character |
4 | * range validation APIs |
5 | * |
6 | * This file is automatically generated from the cvs source |
7 | * definition files using the genChRanges.py Python script |
8 | * |
9 | * Generation date: Mon Mar 27 11:09:48 2006 |
10 | * Sources: chvalid.def |
11 | * Author: William Brack <wbrack@mmm.com.hk> |
12 | */ |
13 | |
14 | #ifndef __XML_CHVALID_H__ |
15 | #define __XML_CHVALID_H__ |
16 | |
17 | #include <libxml/xmlversion.h> |
18 | #include <libxml/xmlstring.h> |
19 | |
20 | #ifdef __cplusplus |
21 | extern "C" { |
22 | #endif |
23 | |
24 | /* |
25 | * Define our typedefs and structures |
26 | * |
27 | */ |
28 | typedef struct _xmlChSRange xmlChSRange; |
29 | typedef xmlChSRange *xmlChSRangePtr; |
30 | struct _xmlChSRange { |
31 | unsigned short low; |
32 | unsigned short high; |
33 | }; |
34 | |
35 | typedef struct _xmlChLRange xmlChLRange; |
36 | typedef xmlChLRange *xmlChLRangePtr; |
37 | struct _xmlChLRange { |
38 | unsigned int low; |
39 | unsigned int high; |
40 | }; |
41 | |
42 | typedef struct _xmlChRangeGroup xmlChRangeGroup; |
43 | typedef xmlChRangeGroup *xmlChRangeGroupPtr; |
44 | struct _xmlChRangeGroup { |
45 | int nbShortRange; |
46 | int nbLongRange; |
47 | const xmlChSRange *shortRange; /* points to an array of ranges */ |
48 | const xmlChLRange *longRange; |
49 | }; |
50 | |
51 | /** |
52 | * Range checking routine |
53 | */ |
54 | XMLPUBFUN int XMLCALL |
55 | xmlCharInRange(unsigned int val, const xmlChRangeGroup *group); |
56 | |
57 | |
58 | /** |
59 | * xmlIsBaseChar_ch: |
60 | * @c: char to validate |
61 | * |
62 | * Automatically generated by genChRanges.py |
63 | */ |
64 | #define xmlIsBaseChar_ch(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \ |
65 | ((0x61 <= (c)) && ((c) <= 0x7a)) || \ |
66 | ((0xc0 <= (c)) && ((c) <= 0xd6)) || \ |
67 | ((0xd8 <= (c)) && ((c) <= 0xf6)) || \ |
68 | (0xf8 <= (c))) |
69 | |
70 | /** |
71 | * xmlIsBaseCharQ: |
72 | * @c: char to validate |
73 | * |
74 | * Automatically generated by genChRanges.py |
75 | */ |
76 | #define xmlIsBaseCharQ(c) (((c) < 0x100) ? \ |
77 | xmlIsBaseChar_ch((c)) : \ |
78 | xmlCharInRange((c), &xmlIsBaseCharGroup)) |
79 | |
80 | XMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup; |
81 | |
82 | /** |
83 | * xmlIsBlank_ch: |
84 | * @c: char to validate |
85 | * |
86 | * Automatically generated by genChRanges.py |
87 | */ |
88 | #define xmlIsBlank_ch(c) (((c) == 0x20) || \ |
89 | ((0x9 <= (c)) && ((c) <= 0xa)) || \ |
90 | ((c) == 0xd)) |
91 | |
92 | /** |
93 | * xmlIsBlankQ: |
94 | * @c: char to validate |
95 | * |
96 | * Automatically generated by genChRanges.py |
97 | */ |
98 | #define xmlIsBlankQ(c) (((c) < 0x100) ? \ |
99 | xmlIsBlank_ch((c)) : 0) |
100 | |
101 | |
102 | /** |
103 | * xmlIsChar_ch: |
104 | * @c: char to validate |
105 | * |
106 | * Automatically generated by genChRanges.py |
107 | */ |
108 | #define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \ |
109 | ((c) == 0xd) || \ |
110 | (0x20 <= (c))) |
111 | |
112 | /** |
113 | * xmlIsCharQ: |
114 | * @c: char to validate |
115 | * |
116 | * Automatically generated by genChRanges.py |
117 | */ |
118 | #define xmlIsCharQ(c) (((c) < 0x100) ? \ |
119 | xmlIsChar_ch((c)) :\ |
120 | (((0x100 <= (c)) && ((c) <= 0xd7ff)) || \ |
121 | ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \ |
122 | ((0x10000 <= (c)) && ((c) <= 0x10ffff)))) |
123 | |
124 | XMLPUBVAR const xmlChRangeGroup xmlIsCharGroup; |
125 | |
126 | /** |
127 | * xmlIsCombiningQ: |
128 | * @c: char to validate |
129 | * |
130 | * Automatically generated by genChRanges.py |
131 | */ |
132 | #define xmlIsCombiningQ(c) (((c) < 0x100) ? \ |
133 | 0 : \ |
134 | xmlCharInRange((c), &xmlIsCombiningGroup)) |
135 | |
136 | XMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup; |
137 | |
138 | /** |
139 | * xmlIsDigit_ch: |
140 | * @c: char to validate |
141 | * |
142 | * Automatically generated by genChRanges.py |
143 | */ |
144 | #define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39))) |
145 | |
146 | /** |
147 | * xmlIsDigitQ: |
148 | * @c: char to validate |
149 | * |
150 | * Automatically generated by genChRanges.py |
151 | */ |
152 | #define xmlIsDigitQ(c) (((c) < 0x100) ? \ |
153 | xmlIsDigit_ch((c)) : \ |
154 | xmlCharInRange((c), &xmlIsDigitGroup)) |
155 | |
156 | XMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup; |
157 | |
158 | /** |
159 | * xmlIsExtender_ch: |
160 | * @c: char to validate |
161 | * |
162 | * Automatically generated by genChRanges.py |
163 | */ |
164 | #define xmlIsExtender_ch(c) (((c) == 0xb7)) |
165 | |
166 | /** |
167 | * xmlIsExtenderQ: |
168 | * @c: char to validate |
169 | * |
170 | * Automatically generated by genChRanges.py |
171 | */ |
172 | #define xmlIsExtenderQ(c) (((c) < 0x100) ? \ |
173 | xmlIsExtender_ch((c)) : \ |
174 | xmlCharInRange((c), &xmlIsExtenderGroup)) |
175 | |
176 | XMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup; |
177 | |
178 | /** |
179 | * xmlIsIdeographicQ: |
180 | * @c: char to validate |
181 | * |
182 | * Automatically generated by genChRanges.py |
183 | */ |
184 | #define xmlIsIdeographicQ(c) (((c) < 0x100) ? \ |
185 | 0 :\ |
186 | (((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \ |
187 | ((c) == 0x3007) || \ |
188 | ((0x3021 <= (c)) && ((c) <= 0x3029)))) |
189 | |
190 | XMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup; |
191 | XMLPUBVAR const unsigned char xmlIsPubidChar_tab[256]; |
192 | |
193 | /** |
194 | * xmlIsPubidChar_ch: |
195 | * @c: char to validate |
196 | * |
197 | * Automatically generated by genChRanges.py |
198 | */ |
199 | #define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)]) |
200 | |
201 | /** |
202 | * xmlIsPubidCharQ: |
203 | * @c: char to validate |
204 | * |
205 | * Automatically generated by genChRanges.py |
206 | */ |
207 | #define xmlIsPubidCharQ(c) (((c) < 0x100) ? \ |
208 | xmlIsPubidChar_ch((c)) : 0) |
209 | |
210 | XMLPUBFUN int XMLCALL |
211 | xmlIsBaseChar(unsigned int ch); |
212 | XMLPUBFUN int XMLCALL |
213 | xmlIsBlank(unsigned int ch); |
214 | XMLPUBFUN int XMLCALL |
215 | xmlIsChar(unsigned int ch); |
216 | XMLPUBFUN int XMLCALL |
217 | xmlIsCombining(unsigned int ch); |
218 | XMLPUBFUN int XMLCALL |
219 | xmlIsDigit(unsigned int ch); |
220 | XMLPUBFUN int XMLCALL |
221 | xmlIsExtender(unsigned int ch); |
222 | XMLPUBFUN int XMLCALL |
223 | xmlIsIdeographic(unsigned int ch); |
224 | XMLPUBFUN int XMLCALL |
225 | xmlIsPubidChar(unsigned int ch); |
226 | |
227 | #ifdef __cplusplus |
228 | } |
229 | #endif |
230 | #endif /* __XML_CHVALID_H__ */ |
231 | |