| /* libxml2 - Library for parsing XML documents |
| * Copyright (C) 2006-2019 Free Software Foundation, Inc. |
| * |
| * This file is not part of the GNU gettext program, but is used with |
| * GNU gettext. |
| * |
| * The original copyright notice is as follows: |
| */ |
| |
| /* |
| * Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining a copy |
| * of this software and associated documentation files (the "Software"), to deal |
| * in the Software without restriction, including without limitation the rights |
| * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| * copies of the Software, and to permit persons to whom the Software is fur- |
| * nished to do so, subject to the following conditions: |
| * |
| * The above copyright notice and this permission notice shall be included in |
| * all copies or substantial portions of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- |
| * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
| * THE SOFTWARE. |
| */ |
| |
| /* |
| * Summary: Unicode character range checking |
| * Description: this module exports interfaces for the character |
| * range validation APIs |
| * |
| * This file is automatically generated from the cvs source |
| * definition files using the genChRanges.py Python script |
| * |
| * Generation date: Mon Mar 27 11:09:48 2006 |
| * Sources: chvalid.def |
| * Author: William Brack <wbrack@mmm.com.hk> |
| */ |
| |
| #ifndef __XML_CHVALID_H__ |
| #define __XML_CHVALID_H__ |
| |
| #include <libxml/xmlversion.h> |
| #include <libxml/xmlstring.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /* |
| * Define our typedefs and structures |
| * |
| */ |
| typedef struct _xmlChSRange xmlChSRange; |
| typedef xmlChSRange *xmlChSRangePtr; |
| struct _xmlChSRange { |
| unsigned short low; |
| unsigned short high; |
| }; |
| |
| typedef struct _xmlChLRange xmlChLRange; |
| typedef xmlChLRange *xmlChLRangePtr; |
| struct _xmlChLRange { |
| unsigned int low; |
| unsigned int high; |
| }; |
| |
| typedef struct _xmlChRangeGroup xmlChRangeGroup; |
| typedef xmlChRangeGroup *xmlChRangeGroupPtr; |
| struct _xmlChRangeGroup { |
| int nbShortRange; |
| int nbLongRange; |
| const xmlChSRange *shortRange; /* points to an array of ranges */ |
| const xmlChLRange *longRange; |
| }; |
| |
| /** |
| * Range checking routine |
| */ |
| XMLPUBFUN int XMLCALL |
| xmlCharInRange(unsigned int val, const xmlChRangeGroup *group); |
| |
| |
| /** |
| * xmlIsBaseChar_ch: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsBaseChar_ch(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \ |
| ((0x61 <= (c)) && ((c) <= 0x7a)) || \ |
| ((0xc0 <= (c)) && ((c) <= 0xd6)) || \ |
| ((0xd8 <= (c)) && ((c) <= 0xf6)) || \ |
| (0xf8 <= (c))) |
| |
| /** |
| * xmlIsBaseCharQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsBaseCharQ(c) (((c) < 0x100) ? \ |
| xmlIsBaseChar_ch((c)) : \ |
| xmlCharInRange((c), &xmlIsBaseCharGroup)) |
| |
| XMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup; |
| |
| /** |
| * xmlIsBlank_ch: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsBlank_ch(c) (((c) == 0x20) || \ |
| ((0x9 <= (c)) && ((c) <= 0xa)) || \ |
| ((c) == 0xd)) |
| |
| /** |
| * xmlIsBlankQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsBlankQ(c) (((c) < 0x100) ? \ |
| xmlIsBlank_ch((c)) : 0) |
| |
| |
| /** |
| * xmlIsChar_ch: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \ |
| ((c) == 0xd) || \ |
| (0x20 <= (c))) |
| |
| /** |
| * xmlIsCharQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsCharQ(c) (((c) < 0x100) ? \ |
| xmlIsChar_ch((c)) :\ |
| (((0x100 <= (c)) && ((c) <= 0xd7ff)) || \ |
| ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \ |
| ((0x10000 <= (c)) && ((c) <= 0x10ffff)))) |
| |
| XMLPUBVAR const xmlChRangeGroup xmlIsCharGroup; |
| |
| /** |
| * xmlIsCombiningQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsCombiningQ(c) (((c) < 0x100) ? \ |
| 0 : \ |
| xmlCharInRange((c), &xmlIsCombiningGroup)) |
| |
| XMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup; |
| |
| /** |
| * xmlIsDigit_ch: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39))) |
| |
| /** |
| * xmlIsDigitQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsDigitQ(c) (((c) < 0x100) ? \ |
| xmlIsDigit_ch((c)) : \ |
| xmlCharInRange((c), &xmlIsDigitGroup)) |
| |
| XMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup; |
| |
| /** |
| * xmlIsExtender_ch: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsExtender_ch(c) (((c) == 0xb7)) |
| |
| /** |
| * xmlIsExtenderQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsExtenderQ(c) (((c) < 0x100) ? \ |
| xmlIsExtender_ch((c)) : \ |
| xmlCharInRange((c), &xmlIsExtenderGroup)) |
| |
| XMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup; |
| |
| /** |
| * xmlIsIdeographicQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsIdeographicQ(c) (((c) < 0x100) ? \ |
| 0 :\ |
| (((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \ |
| ((c) == 0x3007) || \ |
| ((0x3021 <= (c)) && ((c) <= 0x3029)))) |
| |
| XMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup; |
| XMLPUBVAR const unsigned char xmlIsPubidChar_tab[256]; |
| |
| /** |
| * xmlIsPubidChar_ch: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)]) |
| |
| /** |
| * xmlIsPubidCharQ: |
| * @c: char to validate |
| * |
| * Automatically generated by genChRanges.py |
| */ |
| #define xmlIsPubidCharQ(c) (((c) < 0x100) ? \ |
| xmlIsPubidChar_ch((c)) : 0) |
| |
| XMLPUBFUN int XMLCALL |
| xmlIsBaseChar(unsigned int ch); |
| XMLPUBFUN int XMLCALL |
| xmlIsBlank(unsigned int ch); |
| XMLPUBFUN int XMLCALL |
| xmlIsChar(unsigned int ch); |
| XMLPUBFUN int XMLCALL |
| xmlIsCombining(unsigned int ch); |
| XMLPUBFUN int XMLCALL |
| xmlIsDigit(unsigned int ch); |
| XMLPUBFUN int XMLCALL |
| xmlIsExtender(unsigned int ch); |
| XMLPUBFUN int XMLCALL |
| xmlIsIdeographic(unsigned int ch); |
| XMLPUBFUN int XMLCALL |
| xmlIsPubidChar(unsigned int ch); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif /* __XML_CHVALID_H__ */ |