blob: 06e8db064225c6e89dea22e9c0023e9073e1fcf3 [file] [log] [blame]
William M. Brack68aca052003-10-11 15:22:13 +00001/*
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 *
Daniel Veillard05e9db82006-03-27 09:30:13 +00008 * Generation date: Mon Mar 27 11:09:48 2006
William M. Brack68aca052003-10-11 15:22:13 +00009 * Sources: chvalid.def
10 * William Brack <wbrack@mmm.com.hk>
11 */
12
Daniel Veillardfca7d832003-10-22 08:44:26 +000013#define IN_LIBXML
14#include "libxml.h"
William M. Brack6819a4e2003-10-11 15:59:36 +000015#include <libxml/chvalid.h>
William M. Brack68aca052003-10-11 15:22:13 +000016
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 */
Daniel Veillard8ea29c42006-03-26 22:52:40 +000025const unsigned char xmlIsPubidChar_tab[256] = {
William M. Brack68aca052003-10-11 15:22:13 +000026 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,
Daniel Veillard1a993962003-10-11 20:58:06 +000029 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
William M. Brack68aca052003-10-11 15:22:13 +000030 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,
Daniel Veillard1a993962003-10-11 20:58:06 +000033 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
William M. Brack68aca052003-10-11 15:22:13 +000034 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
Daniel Veillardf8e3db02012-09-11 13:26:36 +080049static 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},
Daniel Veillard05e9db82006-03-27 09:30:13 +000098 {0x3041, 0x3094}, {0x30a1, 0x30fa}, {0x3105, 0x312c}, {0xac00, 0xd7a3}};
99const xmlChRangeGroup xmlIsBaseCharGroup =
William M. Brackc4b81892003-10-12 10:42:46 +0000100 {197, 0, xmlIsBaseChar_srng, (xmlChLRangePtr)0};
William M. Brack68aca052003-10-11 15:22:13 +0000101
Daniel Veillardf8e3db02012-09-11 13:26:36 +0800102static const xmlChSRange xmlIsChar_srng[] = { {0x100, 0xd7ff},
Daniel Veillard05e9db82006-03-27 09:30:13 +0000103 {0xe000, 0xfffd}};
104static const xmlChLRange xmlIsChar_lrng[] = { {0x10000, 0x10ffff}};
105const xmlChRangeGroup xmlIsCharGroup =
William M. Brackc4b81892003-10-12 10:42:46 +0000106 {2, 1, xmlIsChar_srng, xmlIsChar_lrng};
William M. Brack68aca052003-10-11 15:22:13 +0000107
Daniel Veillardf8e3db02012-09-11 13:26:36 +0800108static const xmlChSRange xmlIsCombining_srng[] = { {0x300, 0x345},
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},
William M. Brack68aca052003-10-11 15:22:13 +0000132 {0x3099, 0x3099}, {0x309a, 0x309a}};
Daniel Veillard05e9db82006-03-27 09:30:13 +0000133const xmlChRangeGroup xmlIsCombiningGroup =
William M. Brackc4b81892003-10-12 10:42:46 +0000134 {95, 0, xmlIsCombining_srng, (xmlChLRangePtr)0};
William M. Brack68aca052003-10-11 15:22:13 +0000135
Daniel Veillardf8e3db02012-09-11 13:26:36 +0800136static 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},
Daniel Veillard05e9db82006-03-27 09:30:13 +0000140 {0xf20, 0xf29}};
141const xmlChRangeGroup xmlIsDigitGroup =
William M. Brackc4b81892003-10-12 10:42:46 +0000142 {14, 0, xmlIsDigit_srng, (xmlChLRangePtr)0};
William M. Brack68aca052003-10-11 15:22:13 +0000143
Daniel Veillardf8e3db02012-09-11 13:26:36 +0800144static const xmlChSRange xmlIsExtender_srng[] = { {0x2d0, 0x2d0},
145 {0x2d1, 0x2d1}, {0x387, 0x387}, {0x640, 0x640}, {0xe46, 0xe46},
146 {0xec6, 0xec6}, {0x3005, 0x3005}, {0x3031, 0x3035}, {0x309d, 0x309e},
Daniel Veillard05e9db82006-03-27 09:30:13 +0000147 {0x30fc, 0x30fe}};
148const xmlChRangeGroup xmlIsExtenderGroup =
William M. Brackc4b81892003-10-12 10:42:46 +0000149 {10, 0, xmlIsExtender_srng, (xmlChLRangePtr)0};
William M. Brack68aca052003-10-11 15:22:13 +0000150
Daniel Veillardf8e3db02012-09-11 13:26:36 +0800151static const xmlChSRange xmlIsIdeographic_srng[] = { {0x3007, 0x3007},
Daniel Veillardea887cf2003-10-11 22:53:44 +0000152 {0x3021, 0x3029}, {0x4e00, 0x9fa5}};
Daniel Veillard05e9db82006-03-27 09:30:13 +0000153const xmlChRangeGroup xmlIsIdeographicGroup =
William M. Brackc4b81892003-10-12 10:42:46 +0000154 {3, 0, xmlIsIdeographic_srng, (xmlChLRangePtr)0};
William M. Brack68aca052003-10-11 15:22:13 +0000155
156
William M. Brack196b3882003-10-18 12:42:41 +0000157/**
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 */
William M. Brack68aca052003-10-11 15:22:13 +0000167int
Daniel Veillard05e9db82006-03-27 09:30:13 +0000168xmlCharInRange (unsigned int val, const xmlChRangeGroup *rptr) {
William M. Brack68aca052003-10-11 15:22:13 +0000169 int low, high, mid;
Daniel Veillard05e9db82006-03-27 09:30:13 +0000170 const xmlChSRange *sptr;
171 const xmlChLRange *lptr;
Daniel Veillardce682bc2004-11-05 17:22:25 +0000172
173 if (rptr == NULL) return(0);
William M. Brack68aca052003-10-11 15:22:13 +0000174 if (val < 0x10000) { /* is val in 'short' or 'long' array? */
175 if (rptr->nbShortRange == 0)
176 return 0;
177 low = 0;
William M. Brackc4b81892003-10-12 10:42:46 +0000178 high = rptr->nbShortRange - 1;
William M. Brack68aca052003-10-11 15:22:13 +0000179 sptr = rptr->shortRange;
180 while (low <= high) {
181 mid = (low + high) / 2;
William M. Brackc4b81892003-10-12 10:42:46 +0000182 if ((unsigned short) val < sptr[mid].low) {
William M. Brack68aca052003-10-11 15:22:13 +0000183 high = mid - 1;
William M. Brackc4b81892003-10-12 10:42:46 +0000184 } else {
185 if ((unsigned short) val > sptr[mid].high) {
186 low = mid + 1;
187 } else {
188 return 1;
189 }
190 }
William M. Brack68aca052003-10-11 15:22:13 +0000191 }
192 } else {
William M. Brackc4b81892003-10-12 10:42:46 +0000193 if (rptr->nbLongRange == 0) {
William M. Brack68aca052003-10-11 15:22:13 +0000194 return 0;
William M. Brackc4b81892003-10-12 10:42:46 +0000195 }
William M. Brack68aca052003-10-11 15:22:13 +0000196 low = 0;
William M. Brackc4b81892003-10-12 10:42:46 +0000197 high = rptr->nbLongRange - 1;
William M. Brack68aca052003-10-11 15:22:13 +0000198 lptr = rptr->longRange;
199 while (low <= high) {
200 mid = (low + high) / 2;
William M. Brackc4b81892003-10-12 10:42:46 +0000201 if (val < lptr[mid].low) {
William M. Brack68aca052003-10-11 15:22:13 +0000202 high = mid - 1;
William M. Brackc4b81892003-10-12 10:42:46 +0000203 } else {
204 if (val > lptr[mid].high) {
205 low = mid + 1;
206 } else {
207 return 1;
208 }
209 }
William M. Brack68aca052003-10-11 15:22:13 +0000210 }
211 }
212 return 0;
213}
214
William M. Brack196b3882003-10-18 12:42:41 +0000215
216/**
217 * xmlIsBaseChar:
218 * @ch: character to validate
219 *
William M. Brackb1d53162003-11-18 06:54:40 +0000220 * This function is DEPRECATED.
221 * Use xmlIsBaseChar_ch or xmlIsBaseCharQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000222 *
223 * Returns true if argument valid, false otherwise
224 */
William M. Brack871611b2003-10-18 04:53:14 +0000225int
226xmlIsBaseChar(unsigned int ch) {
227 return(xmlIsBaseCharQ(ch));
228}
229
William M. Brack196b3882003-10-18 12:42:41 +0000230
231/**
232 * xmlIsBlank:
233 * @ch: character to validate
234 *
William M. Brackb1d53162003-11-18 06:54:40 +0000235 * This function is DEPRECATED.
236 * Use xmlIsBlank_ch or xmlIsBlankQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000237 *
238 * Returns true if argument valid, false otherwise
239 */
William M. Brack871611b2003-10-18 04:53:14 +0000240int
241xmlIsBlank(unsigned int ch) {
242 return(xmlIsBlankQ(ch));
243}
244
William M. Brack196b3882003-10-18 12:42:41 +0000245
246/**
247 * xmlIsChar:
248 * @ch: character to validate
249 *
William M. Brackb1d53162003-11-18 06:54:40 +0000250 * This function is DEPRECATED.
251 * Use xmlIsChar_ch or xmlIsCharQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000252 *
253 * Returns true if argument valid, false otherwise
254 */
William M. Brack871611b2003-10-18 04:53:14 +0000255int
256xmlIsChar(unsigned int ch) {
257 return(xmlIsCharQ(ch));
258}
259
William M. Brack196b3882003-10-18 12:42:41 +0000260
261/**
262 * xmlIsCombining:
263 * @ch: character to validate
264 *
William M. Brackb1d53162003-11-18 06:54:40 +0000265 * This function is DEPRECATED.
266 * Use xmlIsCombiningQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000267 *
268 * Returns true if argument valid, false otherwise
269 */
William M. Brack871611b2003-10-18 04:53:14 +0000270int
271xmlIsCombining(unsigned int ch) {
272 return(xmlIsCombiningQ(ch));
273}
274
William M. Brack196b3882003-10-18 12:42:41 +0000275
276/**
277 * xmlIsDigit:
278 * @ch: character to validate
279 *
William M. Brackb1d53162003-11-18 06:54:40 +0000280 * This function is DEPRECATED.
281 * Use xmlIsDigit_ch or xmlIsDigitQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000282 *
283 * Returns true if argument valid, false otherwise
284 */
William M. Brack871611b2003-10-18 04:53:14 +0000285int
286xmlIsDigit(unsigned int ch) {
287 return(xmlIsDigitQ(ch));
288}
289
William M. Brack196b3882003-10-18 12:42:41 +0000290
291/**
292 * xmlIsExtender:
293 * @ch: character to validate
294 *
William M. Brackb1d53162003-11-18 06:54:40 +0000295 * This function is DEPRECATED.
296 * Use xmlIsExtender_ch or xmlIsExtenderQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000297 *
298 * Returns true if argument valid, false otherwise
299 */
William M. Brack871611b2003-10-18 04:53:14 +0000300int
301xmlIsExtender(unsigned int ch) {
302 return(xmlIsExtenderQ(ch));
303}
304
William M. Brack196b3882003-10-18 12:42:41 +0000305
306/**
307 * xmlIsIdeographic:
308 * @ch: character to validate
309 *
William M. Brackb1d53162003-11-18 06:54:40 +0000310 * This function is DEPRECATED.
311 * Use xmlIsIdeographicQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000312 *
313 * Returns true if argument valid, false otherwise
314 */
William M. Brack871611b2003-10-18 04:53:14 +0000315int
316xmlIsIdeographic(unsigned int ch) {
317 return(xmlIsIdeographicQ(ch));
318}
319
William M. Brack196b3882003-10-18 12:42:41 +0000320
321/**
322 * xmlIsPubidChar:
323 * @ch: character to validate
324 *
William M. Brackb1d53162003-11-18 06:54:40 +0000325 * This function is DEPRECATED.
326 * Use xmlIsPubidChar_ch or xmlIsPubidCharQ instead
William M. Brack196b3882003-10-18 12:42:41 +0000327 *
328 * Returns true if argument valid, false otherwise
329 */
William M. Brack871611b2003-10-18 04:53:14 +0000330int
331xmlIsPubidChar(unsigned int ch) {
332 return(xmlIsPubidCharQ(ch));
333}
334
Daniel Veillard5d4644e2005-04-01 13:11:58 +0000335#define bottom_chvalid
336#include "elfgcchack.h"