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 21extern "C" { 22#endif 23 24/* 25 * Define our typedefs and structures 26 * 27 */ 28typedef struct _xmlChSRange xmlChSRange; 29typedef xmlChSRange *xmlChSRangePtr; 30struct _xmlChSRange { 31 unsigned short low; 32 unsigned short high; 33}; 34 35typedef struct _xmlChLRange xmlChLRange; 36typedef xmlChLRange *xmlChLRangePtr; 37struct _xmlChLRange { 38 unsigned int low; 39 unsigned int high; 40}; 41 42typedef struct _xmlChRangeGroup xmlChRangeGroup; 43typedef xmlChRangeGroup *xmlChRangeGroupPtr; 44struct _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 */ 54XMLPUBFUN 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 80XMLPUBVAR 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 124XMLPUBVAR 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 136XMLPUBVAR 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 156XMLPUBVAR 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 176XMLPUBVAR 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 190XMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup; 191XMLPUBVAR 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 210XMLPUBFUN int XMLCALL 211 xmlIsBaseChar(unsigned int ch); 212XMLPUBFUN int XMLCALL 213 xmlIsBlank(unsigned int ch); 214XMLPUBFUN int XMLCALL 215 xmlIsChar(unsigned int ch); 216XMLPUBFUN int XMLCALL 217 xmlIsCombining(unsigned int ch); 218XMLPUBFUN int XMLCALL 219 xmlIsDigit(unsigned int ch); 220XMLPUBFUN int XMLCALL 221 xmlIsExtender(unsigned int ch); 222XMLPUBFUN int XMLCALL 223 xmlIsIdeographic(unsigned int ch); 224XMLPUBFUN int XMLCALL 225 xmlIsPubidChar(unsigned int ch); 226 227#ifdef __cplusplus 228} 229#endif 230#endif /* __XML_CHVALID_H__ */ 231