~ubuntu-branches/ubuntu/maverick/libxml2/maverick

1 by Daniel Holbach
Import upstream version 2.6.22
1
/*
2
 * chvalid.c:	this module implements the character range
3
 *		validation APIs
4
 *
5
 * This file is automatically generated from the cvs source
6
 * definition files using the genChRanges.py Python script
7
 *
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
8
 * Generation date: Mon Mar 27 11:09:48 2006
1 by Daniel Holbach
Import upstream version 2.6.22
9
 * Sources: chvalid.def
10
 * William Brack <wbrack@mmm.com.hk>
11
 */
12
13
#define IN_LIBXML
14
#include "libxml.h"
15
#include <libxml/chvalid.h>
16
17
/*
18
 * The initial tables ({func_name}_tab) are used to validate whether a
19
 * single-byte character is within the specified group.  Each table
20
 * contains 256 bytes, with each byte representing one of the 256
21
 * possible characters.  If the table byte is set, the character is
22
 * allowed.
23
 *
24
 */
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
25
const unsigned char xmlIsPubidChar_tab[256] = {
1 by Daniel Holbach
Import upstream version 2.6.22
26
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
27
    0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01,
29
    0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
30
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
31
    0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
32
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
33
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
34
    0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
35
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
36
    0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
39
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
40
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
42
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
43
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
44
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
45
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
46
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
47
    0x00, 0x00, 0x00, 0x00 };
48
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
49
static const xmlChSRange xmlIsBaseChar_srng[] = { {0x100, 0x131}, 
50
    {0x134, 0x13e}, {0x141, 0x148}, {0x14a, 0x17e}, {0x180, 0x1c3}, 
51
    {0x1cd, 0x1f0}, {0x1f4, 0x1f5}, {0x1fa, 0x217}, {0x250, 0x2a8}, 
52
    {0x2bb, 0x2c1}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, 
53
    {0x38e, 0x3a1}, {0x3a3, 0x3ce}, {0x3d0, 0x3d6}, {0x3da, 0x3da}, 
54
    {0x3dc, 0x3dc}, {0x3de, 0x3de}, {0x3e0, 0x3e0}, {0x3e2, 0x3f3}, 
55
    {0x401, 0x40c}, {0x40e, 0x44f}, {0x451, 0x45c}, {0x45e, 0x481}, 
56
    {0x490, 0x4c4}, {0x4c7, 0x4c8}, {0x4cb, 0x4cc}, {0x4d0, 0x4eb}, 
57
    {0x4ee, 0x4f5}, {0x4f8, 0x4f9}, {0x531, 0x556}, {0x559, 0x559}, 
58
    {0x561, 0x586}, {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, 
59
    {0x641, 0x64a}, {0x671, 0x6b7}, {0x6ba, 0x6be}, {0x6c0, 0x6ce}, 
60
    {0x6d0, 0x6d3}, {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x905, 0x939}, 
61
    {0x93d, 0x93d}, {0x958, 0x961}, {0x985, 0x98c}, {0x98f, 0x990}, 
62
    {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, 
63
    {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0xa05, 0xa0a}, 
64
    {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, 
65
    {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, 
66
    {0xa72, 0xa74}, {0xa85, 0xa8b}, {0xa8d, 0xa8d}, {0xa8f, 0xa91}, 
67
    {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, 
68
    {0xabd, 0xabd}, {0xae0, 0xae0}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, 
69
    {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb36, 0xb39}, 
70
    {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb85, 0xb8a}, 
71
    {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, 
72
    {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb5}, 
73
    {0xbb7, 0xbb9}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, 
74
    {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc60, 0xc61}, {0xc85, 0xc8c}, 
75
    {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, 
76
    {0xcde, 0xcde}, {0xce0, 0xce1}, {0xd05, 0xd0c}, {0xd0e, 0xd10}, 
77
    {0xd12, 0xd28}, {0xd2a, 0xd39}, {0xd60, 0xd61}, {0xe01, 0xe2e}, 
78
    {0xe30, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe45}, {0xe81, 0xe82}, 
79
    {0xe84, 0xe84}, {0xe87, 0xe88}, {0xe8a, 0xe8a}, {0xe8d, 0xe8d}, 
80
    {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xea5, 0xea5}, 
81
    {0xea7, 0xea7}, {0xeaa, 0xeab}, {0xead, 0xeae}, {0xeb0, 0xeb0}, 
82
    {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xf40, 0xf47}, 
83
    {0xf49, 0xf69}, {0x10a0, 0x10c5}, {0x10d0, 0x10f6}, {0x1100, 0x1100}, 
84
    {0x1102, 0x1103}, {0x1105, 0x1107}, {0x1109, 0x1109}, {0x110b, 0x110c}, 
85
    {0x110e, 0x1112}, {0x113c, 0x113c}, {0x113e, 0x113e}, {0x1140, 0x1140}, 
86
    {0x114c, 0x114c}, {0x114e, 0x114e}, {0x1150, 0x1150}, {0x1154, 0x1155}, 
87
    {0x1159, 0x1159}, {0x115f, 0x1161}, {0x1163, 0x1163}, {0x1165, 0x1165}, 
88
    {0x1167, 0x1167}, {0x1169, 0x1169}, {0x116d, 0x116e}, {0x1172, 0x1173}, 
89
    {0x1175, 0x1175}, {0x119e, 0x119e}, {0x11a8, 0x11a8}, {0x11ab, 0x11ab}, 
90
    {0x11ae, 0x11af}, {0x11b7, 0x11b8}, {0x11ba, 0x11ba}, {0x11bc, 0x11c2}, 
91
    {0x11eb, 0x11eb}, {0x11f0, 0x11f0}, {0x11f9, 0x11f9}, {0x1e00, 0x1e9b}, 
92
    {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, 
93
    {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, 
94
    {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, 
95
    {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, 
96
    {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, 
97
    {0x2126, 0x2126}, {0x212a, 0x212b}, {0x212e, 0x212e}, {0x2180, 0x2182}, 
98
    {0x3041, 0x3094}, {0x30a1, 0x30fa}, {0x3105, 0x312c}, {0xac00, 0xd7a3}};
99
const xmlChRangeGroup xmlIsBaseCharGroup =
1 by Daniel Holbach
Import upstream version 2.6.22
100
	{197, 0, xmlIsBaseChar_srng, (xmlChLRangePtr)0};
101
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
102
static const xmlChSRange xmlIsChar_srng[] = { {0x100, 0xd7ff}, 
103
    {0xe000, 0xfffd}};
104
static const xmlChLRange xmlIsChar_lrng[] = { {0x10000, 0x10ffff}};
105
const xmlChRangeGroup xmlIsCharGroup =
1 by Daniel Holbach
Import upstream version 2.6.22
106
	{2, 1, xmlIsChar_srng, xmlIsChar_lrng};
107
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
108
static const xmlChSRange xmlIsCombining_srng[] = { {0x300, 0x345}, 
1 by Daniel Holbach
Import upstream version 2.6.22
109
    {0x360, 0x361}, {0x483, 0x486}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, 
110
    {0x5bb, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, 
111
    {0x64b, 0x652}, {0x670, 0x670}, {0x6d6, 0x6dc}, {0x6dd, 0x6df}, 
112
    {0x6e0, 0x6e4}, {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x901, 0x903}, 
113
    {0x93c, 0x93c}, {0x93e, 0x94c}, {0x94d, 0x94d}, {0x951, 0x954}, 
114
    {0x962, 0x963}, {0x981, 0x983}, {0x9bc, 0x9bc}, {0x9be, 0x9be}, 
115
    {0x9bf, 0x9bf}, {0x9c0, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9cd}, 
116
    {0x9d7, 0x9d7}, {0x9e2, 0x9e3}, {0xa02, 0xa02}, {0xa3c, 0xa3c}, 
117
    {0xa3e, 0xa3e}, {0xa3f, 0xa3f}, {0xa40, 0xa42}, {0xa47, 0xa48}, 
118
    {0xa4b, 0xa4d}, {0xa70, 0xa71}, {0xa81, 0xa83}, {0xabc, 0xabc}, 
119
    {0xabe, 0xac5}, {0xac7, 0xac9}, {0xacb, 0xacd}, {0xb01, 0xb03}, 
120
    {0xb3c, 0xb3c}, {0xb3e, 0xb43}, {0xb47, 0xb48}, {0xb4b, 0xb4d}, 
121
    {0xb56, 0xb57}, {0xb82, 0xb83}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, 
122
    {0xbca, 0xbcd}, {0xbd7, 0xbd7}, {0xc01, 0xc03}, {0xc3e, 0xc44}, 
123
    {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc82, 0xc83}, 
124
    {0xcbe, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, 
125
    {0xd02, 0xd03}, {0xd3e, 0xd43}, {0xd46, 0xd48}, {0xd4a, 0xd4d}, 
126
    {0xd57, 0xd57}, {0xe31, 0xe31}, {0xe34, 0xe3a}, {0xe47, 0xe4e}, 
127
    {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, {0xebb, 0xebc}, {0xec8, 0xecd}, 
128
    {0xf18, 0xf19}, {0xf35, 0xf35}, {0xf37, 0xf37}, {0xf39, 0xf39}, 
129
    {0xf3e, 0xf3e}, {0xf3f, 0xf3f}, {0xf71, 0xf84}, {0xf86, 0xf8b}, 
130
    {0xf90, 0xf95}, {0xf97, 0xf97}, {0xf99, 0xfad}, {0xfb1, 0xfb7}, 
131
    {0xfb9, 0xfb9}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x302a, 0x302f}, 
132
    {0x3099, 0x3099}, {0x309a, 0x309a}};
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
133
const xmlChRangeGroup xmlIsCombiningGroup =
1 by Daniel Holbach
Import upstream version 2.6.22
134
	{95, 0, xmlIsCombining_srng, (xmlChLRangePtr)0};
135
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
136
static const xmlChSRange xmlIsDigit_srng[] = { {0x660, 0x669}, 
137
    {0x6f0, 0x6f9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f}, 
138
    {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbef}, {0xc66, 0xc6f}, 
139
    {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, 
140
    {0xf20, 0xf29}};
141
const xmlChRangeGroup xmlIsDigitGroup =
1 by Daniel Holbach
Import upstream version 2.6.22
142
	{14, 0, xmlIsDigit_srng, (xmlChLRangePtr)0};
143
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
144
static const xmlChSRange xmlIsExtender_srng[] = { {0x2d0, 0x2d0}, 
145
    {0x2d1, 0x2d1}, {0x387, 0x387}, {0x640, 0x640}, {0xe46, 0xe46}, 
146
    {0xec6, 0xec6}, {0x3005, 0x3005}, {0x3031, 0x3035}, {0x309d, 0x309e}, 
147
    {0x30fc, 0x30fe}};
148
const xmlChRangeGroup xmlIsExtenderGroup =
1 by Daniel Holbach
Import upstream version 2.6.22
149
	{10, 0, xmlIsExtender_srng, (xmlChLRangePtr)0};
150
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
151
static const xmlChSRange xmlIsIdeographic_srng[] = { {0x3007, 0x3007}, 
1 by Daniel Holbach
Import upstream version 2.6.22
152
    {0x3021, 0x3029}, {0x4e00, 0x9fa5}};
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
153
const xmlChRangeGroup xmlIsIdeographicGroup =
1 by Daniel Holbach
Import upstream version 2.6.22
154
	{3, 0, xmlIsIdeographic_srng, (xmlChLRangePtr)0};
155
156
157
/**
158
 * xmlCharInRange:
159
 * @val: character to be validated
160
 * @rptr: pointer to range to be used to validate
161
 *
162
 * Does a binary search of the range table to determine if char
163
 * is valid
164
 *
165
 * Returns: true if character valid, false otherwise
166
 */
167
int
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
168
xmlCharInRange (unsigned int val, const xmlChRangeGroup *rptr) {
1 by Daniel Holbach
Import upstream version 2.6.22
169
    int low, high, mid;
1.1.2 by Daniel Holbach
Import upstream version 2.6.24.dfsg
170
    const xmlChSRange *sptr;
171
    const xmlChLRange *lptr;
1 by Daniel Holbach
Import upstream version 2.6.22
172
173
    if (rptr == NULL) return(0);
174
    if (val < 0x10000) {	/* is val in 'short' or 'long'  array? */
175
	if (rptr->nbShortRange == 0)
176
	    return 0;
177
	low = 0;
178
	high = rptr->nbShortRange - 1;
179
	sptr = rptr->shortRange;
180
	while (low <= high) {
181
	    mid = (low + high) / 2;
182
	    if ((unsigned short) val < sptr[mid].low) {
183
		high = mid - 1;
184
	    } else {
185
	        if ((unsigned short) val > sptr[mid].high) {
186
		    low = mid + 1;
187
		} else {
188
		    return 1;
189
		}
190
	    }
191
	}
192
    } else {
193
	if (rptr->nbLongRange == 0) {
194
	    return 0;
195
	}
196
	low = 0;
197
	high = rptr->nbLongRange - 1;
198
	lptr = rptr->longRange;
199
	while (low <= high) {
200
	    mid = (low + high) / 2;
201
	    if (val < lptr[mid].low) {
202
		high = mid - 1;
203
	    } else {
204
	        if (val > lptr[mid].high) {
205
		    low = mid + 1;
206
		} else {
207
		    return 1;
208
		}
209
	    }
210
	}
211
    }
212
    return 0;
213
}
214
215
216
/**
217
 * xmlIsBaseChar:
218
 * @ch:  character to validate
219
 *
220
 * This function is DEPRECATED.
221
 * Use xmlIsBaseChar_ch or xmlIsBaseCharQ instead
222
 *
223
 * Returns true if argument valid, false otherwise
224
 */
225
int
226
xmlIsBaseChar(unsigned int ch) {
227
    return(xmlIsBaseCharQ(ch));
228
}
229
230
231
/**
232
 * xmlIsBlank:
233
 * @ch:  character to validate
234
 *
235
 * This function is DEPRECATED.
236
 * Use xmlIsBlank_ch or xmlIsBlankQ instead
237
 *
238
 * Returns true if argument valid, false otherwise
239
 */
240
int
241
xmlIsBlank(unsigned int ch) {
242
    return(xmlIsBlankQ(ch));
243
}
244
245
246
/**
247
 * xmlIsChar:
248
 * @ch:  character to validate
249
 *
250
 * This function is DEPRECATED.
251
 * Use xmlIsChar_ch or xmlIsCharQ instead
252
 *
253
 * Returns true if argument valid, false otherwise
254
 */
255
int
256
xmlIsChar(unsigned int ch) {
257
    return(xmlIsCharQ(ch));
258
}
259
260
261
/**
262
 * xmlIsCombining:
263
 * @ch:  character to validate
264
 *
265
 * This function is DEPRECATED.
266
 * Use xmlIsCombiningQ instead
267
 *
268
 * Returns true if argument valid, false otherwise
269
 */
270
int
271
xmlIsCombining(unsigned int ch) {
272
    return(xmlIsCombiningQ(ch));
273
}
274
275
276
/**
277
 * xmlIsDigit:
278
 * @ch:  character to validate
279
 *
280
 * This function is DEPRECATED.
281
 * Use xmlIsDigit_ch or xmlIsDigitQ instead
282
 *
283
 * Returns true if argument valid, false otherwise
284
 */
285
int
286
xmlIsDigit(unsigned int ch) {
287
    return(xmlIsDigitQ(ch));
288
}
289
290
291
/**
292
 * xmlIsExtender:
293
 * @ch:  character to validate
294
 *
295
 * This function is DEPRECATED.
296
 * Use xmlIsExtender_ch or xmlIsExtenderQ instead
297
 *
298
 * Returns true if argument valid, false otherwise
299
 */
300
int
301
xmlIsExtender(unsigned int ch) {
302
    return(xmlIsExtenderQ(ch));
303
}
304
305
306
/**
307
 * xmlIsIdeographic:
308
 * @ch:  character to validate
309
 *
310
 * This function is DEPRECATED.
311
 * Use xmlIsIdeographicQ instead
312
 *
313
 * Returns true if argument valid, false otherwise
314
 */
315
int
316
xmlIsIdeographic(unsigned int ch) {
317
    return(xmlIsIdeographicQ(ch));
318
}
319
320
321
/**
322
 * xmlIsPubidChar:
323
 * @ch:  character to validate
324
 *
325
 * This function is DEPRECATED.
326
 * Use xmlIsPubidChar_ch or xmlIsPubidCharQ instead
327
 *
328
 * Returns true if argument valid, false otherwise
329
 */
330
int
331
xmlIsPubidChar(unsigned int ch) {
332
    return(xmlIsPubidCharQ(ch));
333
}
334
335
#define bottom_chvalid
336
#include "elfgcchack.h"