codekingpro/portable-devtools
116k
1/*2 * Summary: Unicode character range checking3 * Description: this module exports interfaces for the character4 * range validation APIs5 *6 * This file is automatically generated from the cvs source7 * definition files using the genChRanges.py Python script8 *9 * Generation date: Mon Mar 27 11:09:48 200610 * Sources: chvalid.def11 * 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 __cplusplus21extern "C" {22#endif23 24/*25 * Define our typedefs and structures26 *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 routine53 */54XMLPUBFUN int55 xmlCharInRange(unsigned int val, const xmlChRangeGroup *group);56 57 58/**59 * xmlIsBaseChar_ch:60 * @c: char to validate61 *62 * Automatically generated by genChRanges.py63 */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 validate73 *74 * Automatically generated by genChRanges.py75 */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 validate85 *86 * Automatically generated by genChRanges.py87 */88#define xmlIsBlank_ch(c) (((c) == 0x20) || \89 ((0x9 <= (c)) && ((c) <= 0xa)) || \90 ((c) == 0xd))91 92/**93 * xmlIsBlankQ:94 * @c: char to validate95 *96 * Automatically generated by genChRanges.py97 */98#define xmlIsBlankQ(c) (((c) < 0x100) ? \99 xmlIsBlank_ch((c)) : 0)100 101 102/**103 * xmlIsChar_ch:104 * @c: char to validate105 *106 * Automatically generated by genChRanges.py107 */108#define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \109 ((c) == 0xd) || \110 (0x20 <= (c)))111 112/**113 * xmlIsCharQ:114 * @c: char to validate115 *116 * Automatically generated by genChRanges.py117 */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 validate129 *130 * Automatically generated by genChRanges.py131 */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 validate141 *142 * Automatically generated by genChRanges.py143 */144#define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39)))145 146/**147 * xmlIsDigitQ:148 * @c: char to validate149 *150 * Automatically generated by genChRanges.py151 */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 validate161 *162 * Automatically generated by genChRanges.py163 */164#define xmlIsExtender_ch(c) (((c) == 0xb7))165 166/**167 * xmlIsExtenderQ:168 * @c: char to validate169 *170 * Automatically generated by genChRanges.py171 */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 validate181 *182 * Automatically generated by genChRanges.py183 */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 validate196 *197 * Automatically generated by genChRanges.py198 */199#define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)])200 201/**202 * xmlIsPubidCharQ:203 * @c: char to validate204 *205 * Automatically generated by genChRanges.py206 */207#define xmlIsPubidCharQ(c) (((c) < 0x100) ? \208 xmlIsPubidChar_ch((c)) : 0)209 210XMLPUBFUN int211 xmlIsBaseChar(unsigned int ch);212XMLPUBFUN int213 xmlIsBlank(unsigned int ch);214XMLPUBFUN int215 xmlIsChar(unsigned int ch);216XMLPUBFUN int217 xmlIsCombining(unsigned int ch);218XMLPUBFUN int219 xmlIsDigit(unsigned int ch);220XMLPUBFUN int221 xmlIsExtender(unsigned int ch);222XMLPUBFUN int223 xmlIsIdeographic(unsigned int ch);224XMLPUBFUN int225 xmlIsPubidChar(unsigned int ch);226 227#ifdef __cplusplus228}229#endif230#endif /* __XML_CHVALID_H__ */231 