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 (at) 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