blob: 6301a91fa082fdef0fe948fdb3155f6610bb909b [file] [log] [blame]
William M. Brack68aca052003-10-11 15:22:13 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: Unicode character range checking
3 * Description: this module exports interfaces for the character
William M. Brack68aca052003-10-11 15:22:13 +00004 * range validation APIs
5 *
6 * This file is automatically generated from the cvs source
7 * definition files using the genChRanges.py Python script
8 *
William M. Brackb1d53162003-11-18 06:54:40 +00009 * Generation date: Tue Nov 18 08:14:21 2003
William M. Brack68aca052003-10-11 15:22:13 +000010 * Sources: chvalid.def
Daniel Veillardbe586972003-11-18 20:56:51 +000011 * Author: William Brack <wbrack@mmm.com.hk>
William M. Brack68aca052003-10-11 15:22:13 +000012 */
13
14#ifndef __XML_CHVALID_H__
15#define __XML_CHVALID_H__
16
William M. Brack871611b2003-10-18 04:53:14 +000017#include <libxml/xmlversion.h>
William M. Bracka2e844a2004-01-06 11:52:13 +000018#include <libxml/xmlstring.h>
William M. Brack871611b2003-10-18 04:53:14 +000019
William M. Brack68aca052003-10-11 15:22:13 +000020#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 {
William M. Brack196b3882003-10-18 12:42:41 +000038 unsigned int low;
39 unsigned int high;
William M. Brack68aca052003-10-11 15:22:13 +000040};
41
42typedef struct _xmlChRangeGroup xmlChRangeGroup;
43typedef xmlChRangeGroup *xmlChRangeGroupPtr;
44struct _xmlChRangeGroup {
45 int nbShortRange;
46 int nbLongRange;
47 xmlChSRangePtr shortRange; /* points to an array of ranges */
48 xmlChLRangePtr longRange;
49};
50
William M. Brack196b3882003-10-18 12:42:41 +000051/**
52 * Range checking routine
53 */
William M. Brack871611b2003-10-18 04:53:14 +000054XMLPUBFUN int XMLCALL
William M. Brack272693c2003-11-14 16:20:34 +000055 xmlCharInRange(unsigned int val, const xmlChRangeGroupPtr group);
William M. Brack68aca052003-10-11 15:22:13 +000056
William M. Brack196b3882003-10-18 12:42:41 +000057
58/**
59 * xmlIsBaseChar_ch:
William M. Brack196b3882003-10-18 12:42:41 +000060 * @c: char to validate
61 *
62 * Automatically generated by genChRanges.py
63 */
William M. Brackc4b81892003-10-12 10:42:46 +000064#define xmlIsBaseChar_ch(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \
65 ((0x61 <= (c)) && ((c) <= 0x7a)) || \
66 ((0xc0 <= (c)) && ((c) <= 0xd6)) || \
67 ((0xd8 <= (c)) && ((c) <= 0xf6)) || \
William M. Brack272693c2003-11-14 16:20:34 +000068 (0xf8 <= (c)))
William M. Brack196b3882003-10-18 12:42:41 +000069
70/**
71 * xmlIsBaseCharQ:
72 * @c: char to validate
73 *
74 * Automatically generated by genChRanges.py
75 */
William M. Brack871611b2003-10-18 04:53:14 +000076#define xmlIsBaseCharQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +000077 xmlIsBaseChar_ch((c)) : \
78 xmlCharInRange((c), &xmlIsBaseCharGroup))
William M. Brack68aca052003-10-11 15:22:13 +000079
William M. Brack871611b2003-10-18 04:53:14 +000080XMLPUBVAR xmlChRangeGroup xmlIsBaseCharGroup;
William M. Brack196b3882003-10-18 12:42:41 +000081
82/**
83 * xmlIsBlank_ch:
William M. Brack196b3882003-10-18 12:42:41 +000084 * @c: char to validate
85 *
86 * Automatically generated by genChRanges.py
87 */
William M. Brackc4b81892003-10-12 10:42:46 +000088#define xmlIsBlank_ch(c) (((c) == 0x20) || \
89 ((0x9 <= (c)) && ((c) <= 0xa)) || \
90 ((c) == 0xd))
William M. Brack196b3882003-10-18 12:42:41 +000091
92/**
93 * xmlIsBlankQ:
94 * @c: char to validate
95 *
96 * Automatically generated by genChRanges.py
97 */
William M. Brack871611b2003-10-18 04:53:14 +000098#define xmlIsBlankQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +000099 xmlIsBlank_ch((c)) : 0)
William M. Brack68aca052003-10-11 15:22:13 +0000100
William M. Brack196b3882003-10-18 12:42:41 +0000101
102/**
103 * xmlIsChar_ch:
William M. Brack196b3882003-10-18 12:42:41 +0000104 * @c: char to validate
105 *
106 * Automatically generated by genChRanges.py
107 */
William M. Brackc4b81892003-10-12 10:42:46 +0000108#define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \
109 ((c) == 0xd) || \
William M. Brack272693c2003-11-14 16:20:34 +0000110 (0x20 <= (c)))
William M. Brack196b3882003-10-18 12:42:41 +0000111
112/**
113 * xmlIsCharQ:
114 * @c: char to validate
115 *
116 * Automatically generated by genChRanges.py
117 */
William M. Brack871611b2003-10-18 04:53:14 +0000118#define xmlIsCharQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +0000119 xmlIsChar_ch((c)) :\
120 (((0x100 <= (c)) && ((c) <= 0xd7ff)) || \
121 ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \
122 ((0x10000 <= (c)) && ((c) <= 0x10ffff))))
William M. Brack68aca052003-10-11 15:22:13 +0000123
William M. Brack871611b2003-10-18 04:53:14 +0000124XMLPUBVAR xmlChRangeGroup xmlIsCharGroup;
William M. Brack196b3882003-10-18 12:42:41 +0000125
126/**
127 * xmlIsCombiningQ:
128 * @c: char to validate
129 *
130 * Automatically generated by genChRanges.py
131 */
William M. Brack871611b2003-10-18 04:53:14 +0000132#define xmlIsCombiningQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +0000133 0 : \
134 xmlCharInRange((c), &xmlIsCombiningGroup))
William M. Brack68aca052003-10-11 15:22:13 +0000135
William M. Brack871611b2003-10-18 04:53:14 +0000136XMLPUBVAR xmlChRangeGroup xmlIsCombiningGroup;
William M. Brack196b3882003-10-18 12:42:41 +0000137
138/**
139 * xmlIsDigit_ch:
William M. Brack196b3882003-10-18 12:42:41 +0000140 * @c: char to validate
141 *
142 * Automatically generated by genChRanges.py
143 */
William M. Brackc4b81892003-10-12 10:42:46 +0000144#define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39)))
William M. Brack196b3882003-10-18 12:42:41 +0000145
146/**
147 * xmlIsDigitQ:
148 * @c: char to validate
149 *
150 * Automatically generated by genChRanges.py
151 */
William M. Brack871611b2003-10-18 04:53:14 +0000152#define xmlIsDigitQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +0000153 xmlIsDigit_ch((c)) : \
154 xmlCharInRange((c), &xmlIsDigitGroup))
William M. Brack68aca052003-10-11 15:22:13 +0000155
William M. Brack871611b2003-10-18 04:53:14 +0000156XMLPUBVAR xmlChRangeGroup xmlIsDigitGroup;
William M. Brack196b3882003-10-18 12:42:41 +0000157
158/**
159 * xmlIsExtender_ch:
William M. Brack196b3882003-10-18 12:42:41 +0000160 * @c: char to validate
161 *
162 * Automatically generated by genChRanges.py
163 */
William M. Brackc4b81892003-10-12 10:42:46 +0000164#define xmlIsExtender_ch(c) (((c) == 0xb7))
William M. Brack196b3882003-10-18 12:42:41 +0000165
166/**
167 * xmlIsExtenderQ:
168 * @c: char to validate
169 *
170 * Automatically generated by genChRanges.py
171 */
William M. Brack871611b2003-10-18 04:53:14 +0000172#define xmlIsExtenderQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +0000173 xmlIsExtender_ch((c)) : \
174 xmlCharInRange((c), &xmlIsExtenderGroup))
William M. Brack68aca052003-10-11 15:22:13 +0000175
William M. Brack871611b2003-10-18 04:53:14 +0000176XMLPUBVAR xmlChRangeGroup xmlIsExtenderGroup;
William M. Brack196b3882003-10-18 12:42:41 +0000177
178/**
179 * xmlIsIdeographicQ:
180 * @c: char to validate
181 *
182 * Automatically generated by genChRanges.py
183 */
William M. Brack871611b2003-10-18 04:53:14 +0000184#define xmlIsIdeographicQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +0000185 0 :\
186 (((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \
187 ((c) == 0x3007) || \
188 ((0x3021 <= (c)) && ((c) <= 0x3029))))
William M. Brack68aca052003-10-11 15:22:13 +0000189
William M. Brack871611b2003-10-18 04:53:14 +0000190XMLPUBVAR xmlChRangeGroup xmlIsIdeographicGroup;
191XMLPUBVAR unsigned char xmlIsPubidChar_tab[256];
William M. Brack196b3882003-10-18 12:42:41 +0000192
193/**
194 * xmlIsPubidChar_ch:
195 * @c: char to validate
196 *
197 * Automatically generated by genChRanges.py
198 */
William M. Brack68aca052003-10-11 15:22:13 +0000199#define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)])
William M. Brack196b3882003-10-18 12:42:41 +0000200
201/**
202 * xmlIsPubidCharQ:
203 * @c: char to validate
204 *
205 * Automatically generated by genChRanges.py
206 */
William M. Brack871611b2003-10-18 04:53:14 +0000207#define xmlIsPubidCharQ(c) (((c) < 0x100) ? \
William M. Brackc4b81892003-10-12 10:42:46 +0000208 xmlIsPubidChar_ch((c)) : 0)
William M. Brack68aca052003-10-11 15:22:13 +0000209
William M. Brack871611b2003-10-18 04:53:14 +0000210XMLPUBFUN 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);
William M. Brack68aca052003-10-11 15:22:13 +0000226
227#ifdef __cplusplus
228}
229#endif
230#endif /* __XML_CHVALID_H__ */