38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Summary: Unicode character range checking
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Description: this module exports interfaces for the character
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * range validation APIs
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * This file is automatically generated from the cvs source
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * definition files using the genChRanges.py Python script
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Generation date: Mon Mar 27 11:09:48 2006
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Sources: chvalid.def
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Author: William Brack <wbrack@mmm.com.hk>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifndef __XML_CHVALID_H__
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define __XML_CHVALID_H__
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/xmlversion.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/xmlstring.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef __cplusplus
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncextern "C" {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Define our typedefs and structures
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef struct _xmlChSRange xmlChSRange;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef xmlChSRange *xmlChSRangePtr;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncstruct _xmlChSRange {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync unsigned short low;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync unsigned short high;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync};
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef struct _xmlChLRange xmlChLRange;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef xmlChLRange *xmlChLRangePtr;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncstruct _xmlChLRange {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync unsigned int low;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync unsigned int high;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync};
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef struct _xmlChRangeGroup xmlChRangeGroup;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef xmlChRangeGroup *xmlChRangeGroupPtr;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncstruct _xmlChRangeGroup {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int nbShortRange;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int nbLongRange;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const xmlChSRange *shortRange; /* points to an array of ranges */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const xmlChLRange *longRange;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync};
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Range checking routine
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlCharInRange(unsigned int val, const xmlChRangeGroup *group);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsBaseChar_ch:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsBaseChar_ch(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((0x61 <= (c)) && ((c) <= 0x7a)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((0xc0 <= (c)) && ((c) <= 0xd6)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((0xd8 <= (c)) && ((c) <= 0xf6)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync (0xf8 <= (c)))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsBaseCharQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsBaseCharQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsBaseChar_ch((c)) : \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlCharInRange((c), &xmlIsBaseCharGroup))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsBlank_ch:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsBlank_ch(c) (((c) == 0x20) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((0x9 <= (c)) && ((c) <= 0xa)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((c) == 0xd))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsBlankQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsBlankQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsBlank_ch((c)) : 0)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsChar_ch:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((c) == 0xd) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync (0x20 <= (c)))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsCharQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsCharQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsChar_ch((c)) :\
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync (((0x100 <= (c)) && ((c) <= 0xd7ff)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((0x10000 <= (c)) && ((c) <= 0x10ffff))))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBVAR const xmlChRangeGroup xmlIsCharGroup;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsCombiningQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsCombiningQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync 0 : \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlCharInRange((c), &xmlIsCombiningGroup))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsDigit_ch:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39)))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsDigitQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsDigitQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsDigit_ch((c)) : \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlCharInRange((c), &xmlIsDigitGroup))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsExtender_ch:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsExtender_ch(c) (((c) == 0xb7))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsExtenderQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsExtenderQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsExtender_ch((c)) : \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlCharInRange((c), &xmlIsExtenderGroup))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsIdeographicQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsIdeographicQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync 0 :\
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync (((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((c) == 0x3007) || \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync ((0x3021 <= (c)) && ((c) <= 0x3029))))
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBVAR const unsigned char xmlIsPubidChar_tab[256];
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsPubidChar_ch:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)])
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * xmlIsPubidCharQ:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @c: char to validate
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatically generated by genChRanges.py
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define xmlIsPubidCharQ(c) (((c) < 0x100) ? \
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsPubidChar_ch((c)) : 0)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsBaseChar(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsBlank(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsChar(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsCombining(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsDigit(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsExtender(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsIdeographic(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlIsPubidChar(unsigned int ch);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef __cplusplus
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif /* __XML_CHVALID_H__ */