Annotation of embedaddon/libxml2/xmlunicode.c, revision 1.1.1.2

1.1       misho       1: /*
                      2:  * xmlunicode.c: this module implements the Unicode character APIs
                      3:  *
                      4:  * This file is automatically generated from the
                      5:  * UCS description files of the Unicode Character Database
                      6:  * http://www.unicode.org/Public/4.0-Update1/UCD-4.0.1.html
                      7:  * using the genUnicode.py Python script.
                      8:  *
                      9:  * Generation date: Mon Mar 27 11:09:52 2006
                     10:  * Sources: Blocks-4.0.1.txt UnicodeData-4.0.1.txt
                     11:  * Daniel Veillard <veillard@redhat.com>
                     12:  */
                     13: 
                     14: #define IN_LIBXML
                     15: #include "libxml.h"
                     16: 
                     17: #ifdef LIBXML_UNICODE_ENABLED
                     18: 
                     19: #include <string.h>
                     20: #include <libxml/xmlversion.h>
                     21: #include <libxml/xmlunicode.h>
                     22: #include <libxml/chvalid.h>
                     23: 
                     24: typedef int (xmlIntFunc)(int); /* just to keep one's mind untwisted */
                     25: 
                     26: typedef struct {
                     27:     const char *rangename;
                     28:     xmlIntFunc *func;
                     29: } xmlUnicodeRange;
                     30: 
                     31: typedef struct {
                     32:     xmlUnicodeRange *table;
                     33:     int                    numentries;
                     34: } xmlUnicodeNameTable;
                     35: 
                     36: 
                     37: static xmlIntFunc *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname);
                     38: 
                     39: static xmlUnicodeRange xmlUnicodeBlocks[] = {
                     40:   {"AegeanNumbers", xmlUCSIsAegeanNumbers},
                     41:   {"AlphabeticPresentationForms", xmlUCSIsAlphabeticPresentationForms},
                     42:   {"Arabic", xmlUCSIsArabic},
                     43:   {"ArabicPresentationForms-A", xmlUCSIsArabicPresentationFormsA},
                     44:   {"ArabicPresentationForms-B", xmlUCSIsArabicPresentationFormsB},
                     45:   {"Armenian", xmlUCSIsArmenian},
                     46:   {"Arrows", xmlUCSIsArrows},
                     47:   {"BasicLatin", xmlUCSIsBasicLatin},
                     48:   {"Bengali", xmlUCSIsBengali},
                     49:   {"BlockElements", xmlUCSIsBlockElements},
                     50:   {"Bopomofo", xmlUCSIsBopomofo},
                     51:   {"BopomofoExtended", xmlUCSIsBopomofoExtended},
                     52:   {"BoxDrawing", xmlUCSIsBoxDrawing},
                     53:   {"BraillePatterns", xmlUCSIsBraillePatterns},
                     54:   {"Buhid", xmlUCSIsBuhid},
                     55:   {"ByzantineMusicalSymbols", xmlUCSIsByzantineMusicalSymbols},
                     56:   {"CJKCompatibility", xmlUCSIsCJKCompatibility},
                     57:   {"CJKCompatibilityForms", xmlUCSIsCJKCompatibilityForms},
                     58:   {"CJKCompatibilityIdeographs", xmlUCSIsCJKCompatibilityIdeographs},
                     59:   {"CJKCompatibilityIdeographsSupplement", xmlUCSIsCJKCompatibilityIdeographsSupplement},
                     60:   {"CJKRadicalsSupplement", xmlUCSIsCJKRadicalsSupplement},
                     61:   {"CJKSymbolsandPunctuation", xmlUCSIsCJKSymbolsandPunctuation},
                     62:   {"CJKUnifiedIdeographs", xmlUCSIsCJKUnifiedIdeographs},
                     63:   {"CJKUnifiedIdeographsExtensionA", xmlUCSIsCJKUnifiedIdeographsExtensionA},
                     64:   {"CJKUnifiedIdeographsExtensionB", xmlUCSIsCJKUnifiedIdeographsExtensionB},
                     65:   {"Cherokee", xmlUCSIsCherokee},
                     66:   {"CombiningDiacriticalMarks", xmlUCSIsCombiningDiacriticalMarks},
                     67:   {"CombiningDiacriticalMarksforSymbols", xmlUCSIsCombiningDiacriticalMarksforSymbols},
                     68:   {"CombiningHalfMarks", xmlUCSIsCombiningHalfMarks},
                     69:   {"CombiningMarksforSymbols", xmlUCSIsCombiningMarksforSymbols},
                     70:   {"ControlPictures", xmlUCSIsControlPictures},
                     71:   {"CurrencySymbols", xmlUCSIsCurrencySymbols},
                     72:   {"CypriotSyllabary", xmlUCSIsCypriotSyllabary},
                     73:   {"Cyrillic", xmlUCSIsCyrillic},
                     74:   {"CyrillicSupplement", xmlUCSIsCyrillicSupplement},
                     75:   {"Deseret", xmlUCSIsDeseret},
                     76:   {"Devanagari", xmlUCSIsDevanagari},
                     77:   {"Dingbats", xmlUCSIsDingbats},
                     78:   {"EnclosedAlphanumerics", xmlUCSIsEnclosedAlphanumerics},
                     79:   {"EnclosedCJKLettersandMonths", xmlUCSIsEnclosedCJKLettersandMonths},
                     80:   {"Ethiopic", xmlUCSIsEthiopic},
                     81:   {"GeneralPunctuation", xmlUCSIsGeneralPunctuation},
                     82:   {"GeometricShapes", xmlUCSIsGeometricShapes},
                     83:   {"Georgian", xmlUCSIsGeorgian},
                     84:   {"Gothic", xmlUCSIsGothic},
                     85:   {"Greek", xmlUCSIsGreek},
                     86:   {"GreekExtended", xmlUCSIsGreekExtended},
                     87:   {"GreekandCoptic", xmlUCSIsGreekandCoptic},
                     88:   {"Gujarati", xmlUCSIsGujarati},
                     89:   {"Gurmukhi", xmlUCSIsGurmukhi},
                     90:   {"HalfwidthandFullwidthForms", xmlUCSIsHalfwidthandFullwidthForms},
                     91:   {"HangulCompatibilityJamo", xmlUCSIsHangulCompatibilityJamo},
                     92:   {"HangulJamo", xmlUCSIsHangulJamo},
                     93:   {"HangulSyllables", xmlUCSIsHangulSyllables},
                     94:   {"Hanunoo", xmlUCSIsHanunoo},
                     95:   {"Hebrew", xmlUCSIsHebrew},
                     96:   {"HighPrivateUseSurrogates", xmlUCSIsHighPrivateUseSurrogates},
                     97:   {"HighSurrogates", xmlUCSIsHighSurrogates},
                     98:   {"Hiragana", xmlUCSIsHiragana},
                     99:   {"IPAExtensions", xmlUCSIsIPAExtensions},
                    100:   {"IdeographicDescriptionCharacters", xmlUCSIsIdeographicDescriptionCharacters},
                    101:   {"Kanbun", xmlUCSIsKanbun},
                    102:   {"KangxiRadicals", xmlUCSIsKangxiRadicals},
                    103:   {"Kannada", xmlUCSIsKannada},
                    104:   {"Katakana", xmlUCSIsKatakana},
                    105:   {"KatakanaPhoneticExtensions", xmlUCSIsKatakanaPhoneticExtensions},
                    106:   {"Khmer", xmlUCSIsKhmer},
                    107:   {"KhmerSymbols", xmlUCSIsKhmerSymbols},
                    108:   {"Lao", xmlUCSIsLao},
                    109:   {"Latin-1Supplement", xmlUCSIsLatin1Supplement},
                    110:   {"LatinExtended-A", xmlUCSIsLatinExtendedA},
                    111:   {"LatinExtended-B", xmlUCSIsLatinExtendedB},
                    112:   {"LatinExtendedAdditional", xmlUCSIsLatinExtendedAdditional},
                    113:   {"LetterlikeSymbols", xmlUCSIsLetterlikeSymbols},
                    114:   {"Limbu", xmlUCSIsLimbu},
                    115:   {"LinearBIdeograms", xmlUCSIsLinearBIdeograms},
                    116:   {"LinearBSyllabary", xmlUCSIsLinearBSyllabary},
                    117:   {"LowSurrogates", xmlUCSIsLowSurrogates},
                    118:   {"Malayalam", xmlUCSIsMalayalam},
                    119:   {"MathematicalAlphanumericSymbols", xmlUCSIsMathematicalAlphanumericSymbols},
                    120:   {"MathematicalOperators", xmlUCSIsMathematicalOperators},
                    121:   {"MiscellaneousMathematicalSymbols-A", xmlUCSIsMiscellaneousMathematicalSymbolsA},
                    122:   {"MiscellaneousMathematicalSymbols-B", xmlUCSIsMiscellaneousMathematicalSymbolsB},
                    123:   {"MiscellaneousSymbols", xmlUCSIsMiscellaneousSymbols},
                    124:   {"MiscellaneousSymbolsandArrows", xmlUCSIsMiscellaneousSymbolsandArrows},
                    125:   {"MiscellaneousTechnical", xmlUCSIsMiscellaneousTechnical},
                    126:   {"Mongolian", xmlUCSIsMongolian},
                    127:   {"MusicalSymbols", xmlUCSIsMusicalSymbols},
                    128:   {"Myanmar", xmlUCSIsMyanmar},
                    129:   {"NumberForms", xmlUCSIsNumberForms},
                    130:   {"Ogham", xmlUCSIsOgham},
                    131:   {"OldItalic", xmlUCSIsOldItalic},
                    132:   {"OpticalCharacterRecognition", xmlUCSIsOpticalCharacterRecognition},
                    133:   {"Oriya", xmlUCSIsOriya},
                    134:   {"Osmanya", xmlUCSIsOsmanya},
                    135:   {"PhoneticExtensions", xmlUCSIsPhoneticExtensions},
                    136:   {"PrivateUse", xmlUCSIsPrivateUse},
                    137:   {"PrivateUseArea", xmlUCSIsPrivateUseArea},
                    138:   {"Runic", xmlUCSIsRunic},
                    139:   {"Shavian", xmlUCSIsShavian},
                    140:   {"Sinhala", xmlUCSIsSinhala},
                    141:   {"SmallFormVariants", xmlUCSIsSmallFormVariants},
                    142:   {"SpacingModifierLetters", xmlUCSIsSpacingModifierLetters},
                    143:   {"Specials", xmlUCSIsSpecials},
                    144:   {"SuperscriptsandSubscripts", xmlUCSIsSuperscriptsandSubscripts},
                    145:   {"SupplementalArrows-A", xmlUCSIsSupplementalArrowsA},
                    146:   {"SupplementalArrows-B", xmlUCSIsSupplementalArrowsB},
                    147:   {"SupplementalMathematicalOperators", xmlUCSIsSupplementalMathematicalOperators},
                    148:   {"SupplementaryPrivateUseArea-A", xmlUCSIsSupplementaryPrivateUseAreaA},
                    149:   {"SupplementaryPrivateUseArea-B", xmlUCSIsSupplementaryPrivateUseAreaB},
                    150:   {"Syriac", xmlUCSIsSyriac},
                    151:   {"Tagalog", xmlUCSIsTagalog},
                    152:   {"Tagbanwa", xmlUCSIsTagbanwa},
                    153:   {"Tags", xmlUCSIsTags},
                    154:   {"TaiLe", xmlUCSIsTaiLe},
                    155:   {"TaiXuanJingSymbols", xmlUCSIsTaiXuanJingSymbols},
                    156:   {"Tamil", xmlUCSIsTamil},
                    157:   {"Telugu", xmlUCSIsTelugu},
                    158:   {"Thaana", xmlUCSIsThaana},
                    159:   {"Thai", xmlUCSIsThai},
                    160:   {"Tibetan", xmlUCSIsTibetan},
                    161:   {"Ugaritic", xmlUCSIsUgaritic},
                    162:   {"UnifiedCanadianAboriginalSyllabics", xmlUCSIsUnifiedCanadianAboriginalSyllabics},
                    163:   {"VariationSelectors", xmlUCSIsVariationSelectors},
                    164:   {"VariationSelectorsSupplement", xmlUCSIsVariationSelectorsSupplement},
                    165:   {"YiRadicals", xmlUCSIsYiRadicals},
                    166:   {"YiSyllables", xmlUCSIsYiSyllables},
                    167:   {"YijingHexagramSymbols", xmlUCSIsYijingHexagramSymbols}};
                    168: 
                    169: static xmlUnicodeRange xmlUnicodeCats[] = {
                    170:   {"C", xmlUCSIsCatC},
                    171:   {"Cc", xmlUCSIsCatCc},
                    172:   {"Cf", xmlUCSIsCatCf},
                    173:   {"Co", xmlUCSIsCatCo},
                    174:   {"Cs", xmlUCSIsCatCs},
                    175:   {"L", xmlUCSIsCatL},
                    176:   {"Ll", xmlUCSIsCatLl},
                    177:   {"Lm", xmlUCSIsCatLm},
                    178:   {"Lo", xmlUCSIsCatLo},
                    179:   {"Lt", xmlUCSIsCatLt},
                    180:   {"Lu", xmlUCSIsCatLu},
                    181:   {"M", xmlUCSIsCatM},
                    182:   {"Mc", xmlUCSIsCatMc},
                    183:   {"Me", xmlUCSIsCatMe},
                    184:   {"Mn", xmlUCSIsCatMn},
                    185:   {"N", xmlUCSIsCatN},
                    186:   {"Nd", xmlUCSIsCatNd},
                    187:   {"Nl", xmlUCSIsCatNl},
                    188:   {"No", xmlUCSIsCatNo},
                    189:   {"P", xmlUCSIsCatP},
                    190:   {"Pc", xmlUCSIsCatPc},
                    191:   {"Pd", xmlUCSIsCatPd},
                    192:   {"Pe", xmlUCSIsCatPe},
                    193:   {"Pf", xmlUCSIsCatPf},
                    194:   {"Pi", xmlUCSIsCatPi},
                    195:   {"Po", xmlUCSIsCatPo},
                    196:   {"Ps", xmlUCSIsCatPs},
                    197:   {"S", xmlUCSIsCatS},
                    198:   {"Sc", xmlUCSIsCatSc},
                    199:   {"Sk", xmlUCSIsCatSk},
                    200:   {"Sm", xmlUCSIsCatSm},
                    201:   {"So", xmlUCSIsCatSo},
                    202:   {"Z", xmlUCSIsCatZ},
                    203:   {"Zl", xmlUCSIsCatZl},
                    204:   {"Zp", xmlUCSIsCatZp},
                    205:   {"Zs", xmlUCSIsCatZs}};
                    206: 
1.1.1.2 ! misho     207: static const xmlChSRange xmlCS[] = {{0x0, 0x1f}, {0x7f, 0x9f},
        !           208:     {0xad, 0xad}, {0x600, 0x603}, {0x6dd, 0x6dd}, {0x70f, 0x70f},
        !           209:     {0x17b4, 0x17b5}, {0x200b, 0x200f}, {0x202a, 0x202e}, {0x2060, 0x2063},
        !           210:     {0x206a, 0x206f}, {0xd800, 0xd800}, {0xdb7f, 0xdb80}, {0xdbff, 0xdc00},
1.1       misho     211:     {0xdfff, 0xe000}, {0xf8ff, 0xf8ff}, {0xfeff, 0xfeff}, {0xfff9, 0xfffb} };
1.1.1.2 ! misho     212: static const xmlChLRange xmlCL[] = {{0x1d173, 0x1d17a}, {0xe0001, 0xe0001},
        !           213:     {0xe0020, 0xe007f}, {0xf0000, 0xf0000}, {0xffffd, 0xffffd},
1.1       misho     214:     {0x100000, 0x100000}, {0x10fffd, 0x10fffd} };
                    215: static xmlChRangeGroup xmlCG = {18,7,xmlCS,xmlCL};
                    216: 
1.1.1.2 ! misho     217: static const xmlChSRange xmlCfS[] = {{0xad, 0xad}, {0x600, 0x603},
        !           218:     {0x6dd, 0x6dd}, {0x70f, 0x70f}, {0x17b4, 0x17b5}, {0x200b, 0x200f},
        !           219:     {0x202a, 0x202e}, {0x2060, 0x2063}, {0x206a, 0x206f}, {0xfeff, 0xfeff},
1.1       misho     220:     {0xfff9, 0xfffb} };
1.1.1.2 ! misho     221: static const xmlChLRange xmlCfL[] = {{0x1d173, 0x1d17a}, {0xe0001, 0xe0001},
1.1       misho     222:     {0xe0020, 0xe007f} };
                    223: static xmlChRangeGroup xmlCfG = {11,3,xmlCfS,xmlCfL};
                    224: 
1.1.1.2 ! misho     225: static const xmlChSRange xmlLS[] = {{0x41, 0x5a}, {0x61, 0x7a},
        !           226:     {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6},
        !           227:     {0xf8, 0x236}, {0x250, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4},
        !           228:     {0x2ee, 0x2ee}, {0x37a, 0x37a}, {0x386, 0x386}, {0x388, 0x38a},
        !           229:     {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3ce}, {0x3d0, 0x3f5},
        !           230:     {0x3f7, 0x3fb}, {0x400, 0x481}, {0x48a, 0x4ce}, {0x4d0, 0x4f5},
        !           231:     {0x4f8, 0x4f9}, {0x500, 0x50f}, {0x531, 0x556}, {0x559, 0x559},
        !           232:     {0x561, 0x587}, {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a},
        !           233:     {0x640, 0x64a}, {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5},
        !           234:     {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff},
        !           235:     {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x74f}, {0x780, 0x7a5},
        !           236:     {0x7b1, 0x7b1}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950},
        !           237:     {0x958, 0x961}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8},
        !           238:     {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bd, 0x9bd},
        !           239:     {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0xa05, 0xa0a},
        !           240:     {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33},
        !           241:     {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e},
        !           242:     {0xa72, 0xa74}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8},
        !           243:     {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd},
        !           244:     {0xad0, 0xad0}, {0xae0, 0xae1}, {0xb05, 0xb0c}, {0xb0f, 0xb10},
        !           245:     {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39},
        !           246:     {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71},
        !           247:     {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95},
        !           248:     {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4},
        !           249:     {0xba8, 0xbaa}, {0xbae, 0xbb5}, {0xbb7, 0xbb9}, {0xc05, 0xc0c},
        !           250:     {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc33}, {0xc35, 0xc39},
        !           251:     {0xc60, 0xc61}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8},
        !           252:     {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcde, 0xcde},
        !           253:     {0xce0, 0xce1}, {0xd05, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd28},
        !           254:     {0xd2a, 0xd39}, {0xd60, 0xd61}, {0xd85, 0xd96}, {0xd9a, 0xdb1},
        !           255:     {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30},
        !           256:     {0xe32, 0xe33}, {0xe40, 0xe46}, {0xe81, 0xe82}, {0xe84, 0xe84},
        !           257:     {0xe87, 0xe88}, {0xe8a, 0xe8a}, {0xe8d, 0xe8d}, {0xe94, 0xe97},
        !           258:     {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xea7},
        !           259:     {0xeaa, 0xeab}, {0xead, 0xeb0}, {0xeb2, 0xeb3}, {0xebd, 0xebd},
        !           260:     {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedd}, {0xf00, 0xf00},
        !           261:     {0xf40, 0xf47}, {0xf49, 0xf6a}, {0xf88, 0xf8b}, {0x1000, 0x1021},
        !           262:     {0x1023, 0x1027}, {0x1029, 0x102a}, {0x1050, 0x1055}, {0x10a0, 0x10c5},
        !           263:     {0x10d0, 0x10f8}, {0x1100, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9},
        !           264:     {0x1200, 0x1206}, {0x1208, 0x1246}, {0x1248, 0x1248}, {0x124a, 0x124d},
        !           265:     {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1286},
        !           266:     {0x1288, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12ae}, {0x12b0, 0x12b0},
        !           267:     {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5},
        !           268:     {0x12c8, 0x12ce}, {0x12d0, 0x12d6}, {0x12d8, 0x12ee}, {0x12f0, 0x130e},
        !           269:     {0x1310, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x131e}, {0x1320, 0x1346},
        !           270:     {0x1348, 0x135a}, {0x13a0, 0x13f4}, {0x1401, 0x166c}, {0x166f, 0x1676},
        !           271:     {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x1700, 0x170c}, {0x170e, 0x1711},
        !           272:     {0x1720, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770},
        !           273:     {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1877},
        !           274:     {0x1880, 0x18a8}, {0x1900, 0x191c}, {0x1950, 0x196d}, {0x1970, 0x1974},
        !           275:     {0x1d00, 0x1d6b}, {0x1e00, 0x1e9b}, {0x1ea0, 0x1ef9}, {0x1f00, 0x1f15},
        !           276:     {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
        !           277:     {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d},
        !           278:     {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4},
        !           279:     {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec},
        !           280:     {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f},
        !           281:     {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115},
        !           282:     {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128},
        !           283:     {0x212a, 0x212d}, {0x212f, 0x2131}, {0x2133, 0x2139}, {0x213d, 0x213f},
        !           284:     {0x2145, 0x2149}, {0x3005, 0x3006}, {0x3031, 0x3035}, {0x303b, 0x303c},
        !           285:     {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff},
        !           286:     {0x3105, 0x312c}, {0x3131, 0x318e}, {0x31a0, 0x31b7}, {0x31f0, 0x31ff},
        !           287:     {0x3400, 0x3400}, {0x4db5, 0x4db5}, {0x4e00, 0x4e00}, {0x9fa5, 0x9fa5},
        !           288:     {0xa000, 0xa48c}, {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xf900, 0xfa2d},
        !           289:     {0xfa30, 0xfa6a}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d},
        !           290:     {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e},
        !           291:     {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d},
        !           292:     {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74},
        !           293:     {0xfe76, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xffbe},
1.1       misho     294:     {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc} };
1.1.1.2 ! misho     295: static const xmlChLRange xmlLL[] = {{0x10000, 0x1000b}, {0x1000d, 0x10026},
        !           296:     {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d},
        !           297:     {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10300, 0x1031e},
        !           298:     {0x10330, 0x10349}, {0x10380, 0x1039d}, {0x10400, 0x1049d},
        !           299:     {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835},
        !           300:     {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x1083f},
        !           301:     {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f},
        !           302:     {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac},
        !           303:     {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3},
        !           304:     {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514},
        !           305:     {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e},
        !           306:     {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550},
        !           307:     {0x1d552, 0x1d6a3}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da},
        !           308:     {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734},
        !           309:     {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788},
        !           310:     {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9},
1.1       misho     311:     {0x20000, 0x20000}, {0x2a6d6, 0x2a6d6}, {0x2f800, 0x2fa1d} };
                    312: static xmlChRangeGroup xmlLG = {279,50,xmlLS,xmlLL};
                    313: 
1.1.1.2 ! misho     314: static const xmlChSRange xmlLlS[] = {{0x61, 0x7a}, {0xaa, 0xaa},
        !           315:     {0xb5, 0xb5}, {0xba, 0xba}, {0xdf, 0xf6}, {0xf8, 0xff}, {0x101, 0x101},
        !           316:     {0x103, 0x103}, {0x105, 0x105}, {0x107, 0x107}, {0x109, 0x109},
        !           317:     {0x10b, 0x10b}, {0x10d, 0x10d}, {0x10f, 0x10f}, {0x111, 0x111},
        !           318:     {0x113, 0x113}, {0x115, 0x115}, {0x117, 0x117}, {0x119, 0x119},
        !           319:     {0x11b, 0x11b}, {0x11d, 0x11d}, {0x11f, 0x11f}, {0x121, 0x121},
        !           320:     {0x123, 0x123}, {0x125, 0x125}, {0x127, 0x127}, {0x129, 0x129},
        !           321:     {0x12b, 0x12b}, {0x12d, 0x12d}, {0x12f, 0x12f}, {0x131, 0x131},
        !           322:     {0x133, 0x133}, {0x135, 0x135}, {0x137, 0x138}, {0x13a, 0x13a},
        !           323:     {0x13c, 0x13c}, {0x13e, 0x13e}, {0x140, 0x140}, {0x142, 0x142},
        !           324:     {0x144, 0x144}, {0x146, 0x146}, {0x148, 0x149}, {0x14b, 0x14b},
        !           325:     {0x14d, 0x14d}, {0x14f, 0x14f}, {0x151, 0x151}, {0x153, 0x153},
        !           326:     {0x155, 0x155}, {0x157, 0x157}, {0x159, 0x159}, {0x15b, 0x15b},
        !           327:     {0x15d, 0x15d}, {0x15f, 0x15f}, {0x161, 0x161}, {0x163, 0x163},
        !           328:     {0x165, 0x165}, {0x167, 0x167}, {0x169, 0x169}, {0x16b, 0x16b},
        !           329:     {0x16d, 0x16d}, {0x16f, 0x16f}, {0x171, 0x171}, {0x173, 0x173},
        !           330:     {0x175, 0x175}, {0x177, 0x177}, {0x17a, 0x17a}, {0x17c, 0x17c},
        !           331:     {0x17e, 0x180}, {0x183, 0x183}, {0x185, 0x185}, {0x188, 0x188},
        !           332:     {0x18c, 0x18d}, {0x192, 0x192}, {0x195, 0x195}, {0x199, 0x19b},
        !           333:     {0x19e, 0x19e}, {0x1a1, 0x1a1}, {0x1a3, 0x1a3}, {0x1a5, 0x1a5},
        !           334:     {0x1a8, 0x1a8}, {0x1aa, 0x1ab}, {0x1ad, 0x1ad}, {0x1b0, 0x1b0},
        !           335:     {0x1b4, 0x1b4}, {0x1b6, 0x1b6}, {0x1b9, 0x1ba}, {0x1bd, 0x1bf},
        !           336:     {0x1c6, 0x1c6}, {0x1c9, 0x1c9}, {0x1cc, 0x1cc}, {0x1ce, 0x1ce},
        !           337:     {0x1d0, 0x1d0}, {0x1d2, 0x1d2}, {0x1d4, 0x1d4}, {0x1d6, 0x1d6},
        !           338:     {0x1d8, 0x1d8}, {0x1da, 0x1da}, {0x1dc, 0x1dd}, {0x1df, 0x1df},
        !           339:     {0x1e1, 0x1e1}, {0x1e3, 0x1e3}, {0x1e5, 0x1e5}, {0x1e7, 0x1e7},
        !           340:     {0x1e9, 0x1e9}, {0x1eb, 0x1eb}, {0x1ed, 0x1ed}, {0x1ef, 0x1f0},
        !           341:     {0x1f3, 0x1f3}, {0x1f5, 0x1f5}, {0x1f9, 0x1f9}, {0x1fb, 0x1fb},
        !           342:     {0x1fd, 0x1fd}, {0x1ff, 0x1ff}, {0x201, 0x201}, {0x203, 0x203},
        !           343:     {0x205, 0x205}, {0x207, 0x207}, {0x209, 0x209}, {0x20b, 0x20b},
        !           344:     {0x20d, 0x20d}, {0x20f, 0x20f}, {0x211, 0x211}, {0x213, 0x213},
        !           345:     {0x215, 0x215}, {0x217, 0x217}, {0x219, 0x219}, {0x21b, 0x21b},
        !           346:     {0x21d, 0x21d}, {0x21f, 0x21f}, {0x221, 0x221}, {0x223, 0x223},
        !           347:     {0x225, 0x225}, {0x227, 0x227}, {0x229, 0x229}, {0x22b, 0x22b},
        !           348:     {0x22d, 0x22d}, {0x22f, 0x22f}, {0x231, 0x231}, {0x233, 0x236},
        !           349:     {0x250, 0x2af}, {0x390, 0x390}, {0x3ac, 0x3ce}, {0x3d0, 0x3d1},
        !           350:     {0x3d5, 0x3d7}, {0x3d9, 0x3d9}, {0x3db, 0x3db}, {0x3dd, 0x3dd},
        !           351:     {0x3df, 0x3df}, {0x3e1, 0x3e1}, {0x3e3, 0x3e3}, {0x3e5, 0x3e5},
        !           352:     {0x3e7, 0x3e7}, {0x3e9, 0x3e9}, {0x3eb, 0x3eb}, {0x3ed, 0x3ed},
        !           353:     {0x3ef, 0x3f3}, {0x3f5, 0x3f5}, {0x3f8, 0x3f8}, {0x3fb, 0x3fb},
        !           354:     {0x430, 0x45f}, {0x461, 0x461}, {0x463, 0x463}, {0x465, 0x465},
        !           355:     {0x467, 0x467}, {0x469, 0x469}, {0x46b, 0x46b}, {0x46d, 0x46d},
        !           356:     {0x46f, 0x46f}, {0x471, 0x471}, {0x473, 0x473}, {0x475, 0x475},
        !           357:     {0x477, 0x477}, {0x479, 0x479}, {0x47b, 0x47b}, {0x47d, 0x47d},
        !           358:     {0x47f, 0x47f}, {0x481, 0x481}, {0x48b, 0x48b}, {0x48d, 0x48d},
        !           359:     {0x48f, 0x48f}, {0x491, 0x491}, {0x493, 0x493}, {0x495, 0x495},
        !           360:     {0x497, 0x497}, {0x499, 0x499}, {0x49b, 0x49b}, {0x49d, 0x49d},
        !           361:     {0x49f, 0x49f}, {0x4a1, 0x4a1}, {0x4a3, 0x4a3}, {0x4a5, 0x4a5},
        !           362:     {0x4a7, 0x4a7}, {0x4a9, 0x4a9}, {0x4ab, 0x4ab}, {0x4ad, 0x4ad},
        !           363:     {0x4af, 0x4af}, {0x4b1, 0x4b1}, {0x4b3, 0x4b3}, {0x4b5, 0x4b5},
        !           364:     {0x4b7, 0x4b7}, {0x4b9, 0x4b9}, {0x4bb, 0x4bb}, {0x4bd, 0x4bd},
        !           365:     {0x4bf, 0x4bf}, {0x4c2, 0x4c2}, {0x4c4, 0x4c4}, {0x4c6, 0x4c6},
        !           366:     {0x4c8, 0x4c8}, {0x4ca, 0x4ca}, {0x4cc, 0x4cc}, {0x4ce, 0x4ce},
        !           367:     {0x4d1, 0x4d1}, {0x4d3, 0x4d3}, {0x4d5, 0x4d5}, {0x4d7, 0x4d7},
        !           368:     {0x4d9, 0x4d9}, {0x4db, 0x4db}, {0x4dd, 0x4dd}, {0x4df, 0x4df},
        !           369:     {0x4e1, 0x4e1}, {0x4e3, 0x4e3}, {0x4e5, 0x4e5}, {0x4e7, 0x4e7},
        !           370:     {0x4e9, 0x4e9}, {0x4eb, 0x4eb}, {0x4ed, 0x4ed}, {0x4ef, 0x4ef},
        !           371:     {0x4f1, 0x4f1}, {0x4f3, 0x4f3}, {0x4f5, 0x4f5}, {0x4f9, 0x4f9},
        !           372:     {0x501, 0x501}, {0x503, 0x503}, {0x505, 0x505}, {0x507, 0x507},
        !           373:     {0x509, 0x509}, {0x50b, 0x50b}, {0x50d, 0x50d}, {0x50f, 0x50f},
        !           374:     {0x561, 0x587}, {0x1d00, 0x1d2b}, {0x1d62, 0x1d6b}, {0x1e01, 0x1e01},
        !           375:     {0x1e03, 0x1e03}, {0x1e05, 0x1e05}, {0x1e07, 0x1e07}, {0x1e09, 0x1e09},
        !           376:     {0x1e0b, 0x1e0b}, {0x1e0d, 0x1e0d}, {0x1e0f, 0x1e0f}, {0x1e11, 0x1e11},
        !           377:     {0x1e13, 0x1e13}, {0x1e15, 0x1e15}, {0x1e17, 0x1e17}, {0x1e19, 0x1e19},
        !           378:     {0x1e1b, 0x1e1b}, {0x1e1d, 0x1e1d}, {0x1e1f, 0x1e1f}, {0x1e21, 0x1e21},
        !           379:     {0x1e23, 0x1e23}, {0x1e25, 0x1e25}, {0x1e27, 0x1e27}, {0x1e29, 0x1e29},
        !           380:     {0x1e2b, 0x1e2b}, {0x1e2d, 0x1e2d}, {0x1e2f, 0x1e2f}, {0x1e31, 0x1e31},
        !           381:     {0x1e33, 0x1e33}, {0x1e35, 0x1e35}, {0x1e37, 0x1e37}, {0x1e39, 0x1e39},
        !           382:     {0x1e3b, 0x1e3b}, {0x1e3d, 0x1e3d}, {0x1e3f, 0x1e3f}, {0x1e41, 0x1e41},
        !           383:     {0x1e43, 0x1e43}, {0x1e45, 0x1e45}, {0x1e47, 0x1e47}, {0x1e49, 0x1e49},
        !           384:     {0x1e4b, 0x1e4b}, {0x1e4d, 0x1e4d}, {0x1e4f, 0x1e4f}, {0x1e51, 0x1e51},
        !           385:     {0x1e53, 0x1e53}, {0x1e55, 0x1e55}, {0x1e57, 0x1e57}, {0x1e59, 0x1e59},
        !           386:     {0x1e5b, 0x1e5b}, {0x1e5d, 0x1e5d}, {0x1e5f, 0x1e5f}, {0x1e61, 0x1e61},
        !           387:     {0x1e63, 0x1e63}, {0x1e65, 0x1e65}, {0x1e67, 0x1e67}, {0x1e69, 0x1e69},
        !           388:     {0x1e6b, 0x1e6b}, {0x1e6d, 0x1e6d}, {0x1e6f, 0x1e6f}, {0x1e71, 0x1e71},
        !           389:     {0x1e73, 0x1e73}, {0x1e75, 0x1e75}, {0x1e77, 0x1e77}, {0x1e79, 0x1e79},
        !           390:     {0x1e7b, 0x1e7b}, {0x1e7d, 0x1e7d}, {0x1e7f, 0x1e7f}, {0x1e81, 0x1e81},
        !           391:     {0x1e83, 0x1e83}, {0x1e85, 0x1e85}, {0x1e87, 0x1e87}, {0x1e89, 0x1e89},
        !           392:     {0x1e8b, 0x1e8b}, {0x1e8d, 0x1e8d}, {0x1e8f, 0x1e8f}, {0x1e91, 0x1e91},
        !           393:     {0x1e93, 0x1e93}, {0x1e95, 0x1e9b}, {0x1ea1, 0x1ea1}, {0x1ea3, 0x1ea3},
        !           394:     {0x1ea5, 0x1ea5}, {0x1ea7, 0x1ea7}, {0x1ea9, 0x1ea9}, {0x1eab, 0x1eab},
        !           395:     {0x1ead, 0x1ead}, {0x1eaf, 0x1eaf}, {0x1eb1, 0x1eb1}, {0x1eb3, 0x1eb3},
        !           396:     {0x1eb5, 0x1eb5}, {0x1eb7, 0x1eb7}, {0x1eb9, 0x1eb9}, {0x1ebb, 0x1ebb},
        !           397:     {0x1ebd, 0x1ebd}, {0x1ebf, 0x1ebf}, {0x1ec1, 0x1ec1}, {0x1ec3, 0x1ec3},
        !           398:     {0x1ec5, 0x1ec5}, {0x1ec7, 0x1ec7}, {0x1ec9, 0x1ec9}, {0x1ecb, 0x1ecb},
        !           399:     {0x1ecd, 0x1ecd}, {0x1ecf, 0x1ecf}, {0x1ed1, 0x1ed1}, {0x1ed3, 0x1ed3},
        !           400:     {0x1ed5, 0x1ed5}, {0x1ed7, 0x1ed7}, {0x1ed9, 0x1ed9}, {0x1edb, 0x1edb},
        !           401:     {0x1edd, 0x1edd}, {0x1edf, 0x1edf}, {0x1ee1, 0x1ee1}, {0x1ee3, 0x1ee3},
        !           402:     {0x1ee5, 0x1ee5}, {0x1ee7, 0x1ee7}, {0x1ee9, 0x1ee9}, {0x1eeb, 0x1eeb},
        !           403:     {0x1eed, 0x1eed}, {0x1eef, 0x1eef}, {0x1ef1, 0x1ef1}, {0x1ef3, 0x1ef3},
        !           404:     {0x1ef5, 0x1ef5}, {0x1ef7, 0x1ef7}, {0x1ef9, 0x1ef9}, {0x1f00, 0x1f07},
        !           405:     {0x1f10, 0x1f15}, {0x1f20, 0x1f27}, {0x1f30, 0x1f37}, {0x1f40, 0x1f45},
        !           406:     {0x1f50, 0x1f57}, {0x1f60, 0x1f67}, {0x1f70, 0x1f7d}, {0x1f80, 0x1f87},
        !           407:     {0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fb6, 0x1fb7},
        !           408:     {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fc7}, {0x1fd0, 0x1fd3},
        !           409:     {0x1fd6, 0x1fd7}, {0x1fe0, 0x1fe7}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ff7},
        !           410:     {0x2071, 0x2071}, {0x207f, 0x207f}, {0x210a, 0x210a}, {0x210e, 0x210f},
        !           411:     {0x2113, 0x2113}, {0x212f, 0x212f}, {0x2134, 0x2134}, {0x2139, 0x2139},
        !           412:     {0x213d, 0x213d}, {0x2146, 0x2149}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17},
1.1       misho     413:     {0xff41, 0xff5a} };
1.1.1.2 ! misho     414: static const xmlChLRange xmlLlL[] = {{0x10428, 0x1044f}, {0x1d41a, 0x1d433},
        !           415:     {0x1d44e, 0x1d454}, {0x1d456, 0x1d467}, {0x1d482, 0x1d49b},
        !           416:     {0x1d4b6, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3},
        !           417:     {0x1d4c5, 0x1d4cf}, {0x1d4ea, 0x1d503}, {0x1d51e, 0x1d537},
        !           418:     {0x1d552, 0x1d56b}, {0x1d586, 0x1d59f}, {0x1d5ba, 0x1d5d3},
        !           419:     {0x1d5ee, 0x1d607}, {0x1d622, 0x1d63b}, {0x1d656, 0x1d66f},
        !           420:     {0x1d68a, 0x1d6a3}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6e1},
        !           421:     {0x1d6fc, 0x1d714}, {0x1d716, 0x1d71b}, {0x1d736, 0x1d74e},
        !           422:     {0x1d750, 0x1d755}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d78f},
1.1       misho     423:     {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9} };
                    424: static xmlChRangeGroup xmlLlG = {396,28,xmlLlS,xmlLlL};
                    425: 
1.1.1.2 ! misho     426: static const xmlChSRange xmlLmS[] = {{0x2b0, 0x2c1}, {0x2c6, 0x2d1},
        !           427:     {0x2e0, 0x2e4}, {0x2ee, 0x2ee}, {0x37a, 0x37a}, {0x559, 0x559},
        !           428:     {0x640, 0x640}, {0x6e5, 0x6e6}, {0xe46, 0xe46}, {0xec6, 0xec6},
        !           429:     {0x17d7, 0x17d7}, {0x1843, 0x1843}, {0x1d2c, 0x1d61}, {0x3005, 0x3005},
        !           430:     {0x3031, 0x3035}, {0x303b, 0x303b}, {0x309d, 0x309e}, {0x30fc, 0x30fe},
1.1       misho     431:     {0xff70, 0xff70}, {0xff9e, 0xff9f} };
                    432: static xmlChRangeGroup xmlLmG = {20,0,xmlLmS,NULL};
                    433: 
1.1.1.2 ! misho     434: static const xmlChSRange xmlLoS[] = {{0x1bb, 0x1bb}, {0x1c0, 0x1c3},
        !           435:     {0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x621, 0x63a}, {0x641, 0x64a},
        !           436:     {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, {0x6ee, 0x6ef},
        !           437:     {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f},
        !           438:     {0x74d, 0x74f}, {0x780, 0x7a5}, {0x7b1, 0x7b1}, {0x904, 0x939},
        !           439:     {0x93d, 0x93d}, {0x950, 0x950}, {0x958, 0x961}, {0x985, 0x98c},
        !           440:     {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2},
        !           441:     {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, {0x9dc, 0x9dd}, {0x9df, 0x9e1},
        !           442:     {0x9f0, 0x9f1}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28},
        !           443:     {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39},
        !           444:     {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74}, {0xa85, 0xa8d},
        !           445:     {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3},
        !           446:     {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0}, {0xae0, 0xae1},
        !           447:     {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30},
        !           448:     {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3d, 0xb3d}, {0xb5c, 0xb5d},
        !           449:     {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a},
        !           450:     {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c},
        !           451:     {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb5},
        !           452:     {0xbb7, 0xbb9}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28},
        !           453:     {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc60, 0xc61}, {0xc85, 0xc8c},
        !           454:     {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9},
        !           455:     {0xcbd, 0xcbd}, {0xcde, 0xcde}, {0xce0, 0xce1}, {0xd05, 0xd0c},
        !           456:     {0xd0e, 0xd10}, {0xd12, 0xd28}, {0xd2a, 0xd39}, {0xd60, 0xd61},
        !           457:     {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd},
        !           458:     {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe45},
        !           459:     {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe87, 0xe88}, {0xe8a, 0xe8a},
        !           460:     {0xe8d, 0xe8d}, {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3},
        !           461:     {0xea5, 0xea5}, {0xea7, 0xea7}, {0xeaa, 0xeab}, {0xead, 0xeb0},
        !           462:     {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xedc, 0xedd},
        !           463:     {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6a}, {0xf88, 0xf8b},
        !           464:     {0x1000, 0x1021}, {0x1023, 0x1027}, {0x1029, 0x102a}, {0x1050, 0x1055},
        !           465:     {0x10d0, 0x10f8}, {0x1100, 0x1159}, {0x115f, 0x11a2}, {0x11a8, 0x11f9},
        !           466:     {0x1200, 0x1206}, {0x1208, 0x1246}, {0x1248, 0x1248}, {0x124a, 0x124d},
        !           467:     {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1286},
        !           468:     {0x1288, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12ae}, {0x12b0, 0x12b0},
        !           469:     {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5},
        !           470:     {0x12c8, 0x12ce}, {0x12d0, 0x12d6}, {0x12d8, 0x12ee}, {0x12f0, 0x130e},
        !           471:     {0x1310, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x131e}, {0x1320, 0x1346},
        !           472:     {0x1348, 0x135a}, {0x13a0, 0x13f4}, {0x1401, 0x166c}, {0x166f, 0x1676},
        !           473:     {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x1700, 0x170c}, {0x170e, 0x1711},
        !           474:     {0x1720, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770},
        !           475:     {0x1780, 0x17b3}, {0x17dc, 0x17dc}, {0x1820, 0x1842}, {0x1844, 0x1877},
        !           476:     {0x1880, 0x18a8}, {0x1900, 0x191c}, {0x1950, 0x196d}, {0x1970, 0x1974},
        !           477:     {0x2135, 0x2138}, {0x3006, 0x3006}, {0x303c, 0x303c}, {0x3041, 0x3096},
        !           478:     {0x309f, 0x309f}, {0x30a1, 0x30fa}, {0x30ff, 0x30ff}, {0x3105, 0x312c},
        !           479:     {0x3131, 0x318e}, {0x31a0, 0x31b7}, {0x31f0, 0x31ff}, {0x3400, 0x3400},
        !           480:     {0x4db5, 0x4db5}, {0x4e00, 0x4e00}, {0x9fa5, 0x9fa5}, {0xa000, 0xa48c},
        !           481:     {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xf900, 0xfa2d}, {0xfa30, 0xfa6a},
        !           482:     {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c},
        !           483:     {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1},
        !           484:     {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb},
        !           485:     {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff66, 0xff6f}, {0xff71, 0xff9d},
        !           486:     {0xffa0, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7},
1.1       misho     487:     {0xffda, 0xffdc} };
1.1.1.2 ! misho     488: static const xmlChLRange xmlLoL[] = {{0x10000, 0x1000b}, {0x1000d, 0x10026},
        !           489:     {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d},
        !           490:     {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10300, 0x1031e},
        !           491:     {0x10330, 0x10349}, {0x10380, 0x1039d}, {0x10450, 0x1049d},
        !           492:     {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835},
        !           493:     {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x1083f},
1.1       misho     494:     {0x20000, 0x20000}, {0x2a6d6, 0x2a6d6}, {0x2f800, 0x2fa1d} };
                    495: static xmlChRangeGroup xmlLoG = {211,20,xmlLoS,xmlLoL};
                    496: 
1.1.1.2 ! misho     497: static const xmlChSRange xmlLtS[] = {{0x1c5, 0x1c5}, {0x1c8, 0x1c8},
        !           498:     {0x1cb, 0x1cb}, {0x1f2, 0x1f2}, {0x1f88, 0x1f8f}, {0x1f98, 0x1f9f},
1.1       misho     499:     {0x1fa8, 0x1faf}, {0x1fbc, 0x1fbc}, {0x1fcc, 0x1fcc}, {0x1ffc, 0x1ffc} };
                    500: static xmlChRangeGroup xmlLtG = {10,0,xmlLtS,NULL};
                    501: 
1.1.1.2 ! misho     502: static const xmlChSRange xmlLuS[] = {{0x41, 0x5a}, {0xc0, 0xd6},
        !           503:     {0xd8, 0xde}, {0x100, 0x100}, {0x102, 0x102}, {0x104, 0x104},
        !           504:     {0x106, 0x106}, {0x108, 0x108}, {0x10a, 0x10a}, {0x10c, 0x10c},
        !           505:     {0x10e, 0x10e}, {0x110, 0x110}, {0x112, 0x112}, {0x114, 0x114},
        !           506:     {0x116, 0x116}, {0x118, 0x118}, {0x11a, 0x11a}, {0x11c, 0x11c},
        !           507:     {0x11e, 0x11e}, {0x120, 0x120}, {0x122, 0x122}, {0x124, 0x124},
        !           508:     {0x126, 0x126}, {0x128, 0x128}, {0x12a, 0x12a}, {0x12c, 0x12c},
        !           509:     {0x12e, 0x12e}, {0x130, 0x130}, {0x132, 0x132}, {0x134, 0x134},
        !           510:     {0x136, 0x136}, {0x139, 0x139}, {0x13b, 0x13b}, {0x13d, 0x13d},
        !           511:     {0x13f, 0x13f}, {0x141, 0x141}, {0x143, 0x143}, {0x145, 0x145},
        !           512:     {0x147, 0x147}, {0x14a, 0x14a}, {0x14c, 0x14c}, {0x14e, 0x14e},
        !           513:     {0x150, 0x150}, {0x152, 0x152}, {0x154, 0x154}, {0x156, 0x156},
        !           514:     {0x158, 0x158}, {0x15a, 0x15a}, {0x15c, 0x15c}, {0x15e, 0x15e},
        !           515:     {0x160, 0x160}, {0x162, 0x162}, {0x164, 0x164}, {0x166, 0x166},
        !           516:     {0x168, 0x168}, {0x16a, 0x16a}, {0x16c, 0x16c}, {0x16e, 0x16e},
        !           517:     {0x170, 0x170}, {0x172, 0x172}, {0x174, 0x174}, {0x176, 0x176},
        !           518:     {0x178, 0x179}, {0x17b, 0x17b}, {0x17d, 0x17d}, {0x181, 0x182},
        !           519:     {0x184, 0x184}, {0x186, 0x187}, {0x189, 0x18b}, {0x18e, 0x191},
        !           520:     {0x193, 0x194}, {0x196, 0x198}, {0x19c, 0x19d}, {0x19f, 0x1a0},
        !           521:     {0x1a2, 0x1a2}, {0x1a4, 0x1a4}, {0x1a6, 0x1a7}, {0x1a9, 0x1a9},
        !           522:     {0x1ac, 0x1ac}, {0x1ae, 0x1af}, {0x1b1, 0x1b3}, {0x1b5, 0x1b5},
        !           523:     {0x1b7, 0x1b8}, {0x1bc, 0x1bc}, {0x1c4, 0x1c4}, {0x1c7, 0x1c7},
        !           524:     {0x1ca, 0x1ca}, {0x1cd, 0x1cd}, {0x1cf, 0x1cf}, {0x1d1, 0x1d1},
        !           525:     {0x1d3, 0x1d3}, {0x1d5, 0x1d5}, {0x1d7, 0x1d7}, {0x1d9, 0x1d9},
        !           526:     {0x1db, 0x1db}, {0x1de, 0x1de}, {0x1e0, 0x1e0}, {0x1e2, 0x1e2},
        !           527:     {0x1e4, 0x1e4}, {0x1e6, 0x1e6}, {0x1e8, 0x1e8}, {0x1ea, 0x1ea},
        !           528:     {0x1ec, 0x1ec}, {0x1ee, 0x1ee}, {0x1f1, 0x1f1}, {0x1f4, 0x1f4},
        !           529:     {0x1f6, 0x1f8}, {0x1fa, 0x1fa}, {0x1fc, 0x1fc}, {0x1fe, 0x1fe},
        !           530:     {0x200, 0x200}, {0x202, 0x202}, {0x204, 0x204}, {0x206, 0x206},
        !           531:     {0x208, 0x208}, {0x20a, 0x20a}, {0x20c, 0x20c}, {0x20e, 0x20e},
        !           532:     {0x210, 0x210}, {0x212, 0x212}, {0x214, 0x214}, {0x216, 0x216},
        !           533:     {0x218, 0x218}, {0x21a, 0x21a}, {0x21c, 0x21c}, {0x21e, 0x21e},
        !           534:     {0x220, 0x220}, {0x222, 0x222}, {0x224, 0x224}, {0x226, 0x226},
        !           535:     {0x228, 0x228}, {0x22a, 0x22a}, {0x22c, 0x22c}, {0x22e, 0x22e},
        !           536:     {0x230, 0x230}, {0x232, 0x232}, {0x386, 0x386}, {0x388, 0x38a},
        !           537:     {0x38c, 0x38c}, {0x38e, 0x38f}, {0x391, 0x3a1}, {0x3a3, 0x3ab},
        !           538:     {0x3d2, 0x3d4}, {0x3d8, 0x3d8}, {0x3da, 0x3da}, {0x3dc, 0x3dc},
        !           539:     {0x3de, 0x3de}, {0x3e0, 0x3e0}, {0x3e2, 0x3e2}, {0x3e4, 0x3e4},
        !           540:     {0x3e6, 0x3e6}, {0x3e8, 0x3e8}, {0x3ea, 0x3ea}, {0x3ec, 0x3ec},
        !           541:     {0x3ee, 0x3ee}, {0x3f4, 0x3f4}, {0x3f7, 0x3f7}, {0x3f9, 0x3fa},
        !           542:     {0x400, 0x42f}, {0x460, 0x460}, {0x462, 0x462}, {0x464, 0x464},
        !           543:     {0x466, 0x466}, {0x468, 0x468}, {0x46a, 0x46a}, {0x46c, 0x46c},
        !           544:     {0x46e, 0x46e}, {0x470, 0x470}, {0x472, 0x472}, {0x474, 0x474},
        !           545:     {0x476, 0x476}, {0x478, 0x478}, {0x47a, 0x47a}, {0x47c, 0x47c},
        !           546:     {0x47e, 0x47e}, {0x480, 0x480}, {0x48a, 0x48a}, {0x48c, 0x48c},
        !           547:     {0x48e, 0x48e}, {0x490, 0x490}, {0x492, 0x492}, {0x494, 0x494},
        !           548:     {0x496, 0x496}, {0x498, 0x498}, {0x49a, 0x49a}, {0x49c, 0x49c},
        !           549:     {0x49e, 0x49e}, {0x4a0, 0x4a0}, {0x4a2, 0x4a2}, {0x4a4, 0x4a4},
        !           550:     {0x4a6, 0x4a6}, {0x4a8, 0x4a8}, {0x4aa, 0x4aa}, {0x4ac, 0x4ac},
        !           551:     {0x4ae, 0x4ae}, {0x4b0, 0x4b0}, {0x4b2, 0x4b2}, {0x4b4, 0x4b4},
        !           552:     {0x4b6, 0x4b6}, {0x4b8, 0x4b8}, {0x4ba, 0x4ba}, {0x4bc, 0x4bc},
        !           553:     {0x4be, 0x4be}, {0x4c0, 0x4c1}, {0x4c3, 0x4c3}, {0x4c5, 0x4c5},
        !           554:     {0x4c7, 0x4c7}, {0x4c9, 0x4c9}, {0x4cb, 0x4cb}, {0x4cd, 0x4cd},
        !           555:     {0x4d0, 0x4d0}, {0x4d2, 0x4d2}, {0x4d4, 0x4d4}, {0x4d6, 0x4d6},
        !           556:     {0x4d8, 0x4d8}, {0x4da, 0x4da}, {0x4dc, 0x4dc}, {0x4de, 0x4de},
        !           557:     {0x4e0, 0x4e0}, {0x4e2, 0x4e2}, {0x4e4, 0x4e4}, {0x4e6, 0x4e6},
        !           558:     {0x4e8, 0x4e8}, {0x4ea, 0x4ea}, {0x4ec, 0x4ec}, {0x4ee, 0x4ee},
        !           559:     {0x4f0, 0x4f0}, {0x4f2, 0x4f2}, {0x4f4, 0x4f4}, {0x4f8, 0x4f8},
        !           560:     {0x500, 0x500}, {0x502, 0x502}, {0x504, 0x504}, {0x506, 0x506},
        !           561:     {0x508, 0x508}, {0x50a, 0x50a}, {0x50c, 0x50c}, {0x50e, 0x50e},
        !           562:     {0x531, 0x556}, {0x10a0, 0x10c5}, {0x1e00, 0x1e00}, {0x1e02, 0x1e02},
        !           563:     {0x1e04, 0x1e04}, {0x1e06, 0x1e06}, {0x1e08, 0x1e08}, {0x1e0a, 0x1e0a},
        !           564:     {0x1e0c, 0x1e0c}, {0x1e0e, 0x1e0e}, {0x1e10, 0x1e10}, {0x1e12, 0x1e12},
        !           565:     {0x1e14, 0x1e14}, {0x1e16, 0x1e16}, {0x1e18, 0x1e18}, {0x1e1a, 0x1e1a},
        !           566:     {0x1e1c, 0x1e1c}, {0x1e1e, 0x1e1e}, {0x1e20, 0x1e20}, {0x1e22, 0x1e22},
        !           567:     {0x1e24, 0x1e24}, {0x1e26, 0x1e26}, {0x1e28, 0x1e28}, {0x1e2a, 0x1e2a},
        !           568:     {0x1e2c, 0x1e2c}, {0x1e2e, 0x1e2e}, {0x1e30, 0x1e30}, {0x1e32, 0x1e32},
        !           569:     {0x1e34, 0x1e34}, {0x1e36, 0x1e36}, {0x1e38, 0x1e38}, {0x1e3a, 0x1e3a},
        !           570:     {0x1e3c, 0x1e3c}, {0x1e3e, 0x1e3e}, {0x1e40, 0x1e40}, {0x1e42, 0x1e42},
        !           571:     {0x1e44, 0x1e44}, {0x1e46, 0x1e46}, {0x1e48, 0x1e48}, {0x1e4a, 0x1e4a},
        !           572:     {0x1e4c, 0x1e4c}, {0x1e4e, 0x1e4e}, {0x1e50, 0x1e50}, {0x1e52, 0x1e52},
        !           573:     {0x1e54, 0x1e54}, {0x1e56, 0x1e56}, {0x1e58, 0x1e58}, {0x1e5a, 0x1e5a},
        !           574:     {0x1e5c, 0x1e5c}, {0x1e5e, 0x1e5e}, {0x1e60, 0x1e60}, {0x1e62, 0x1e62},
        !           575:     {0x1e64, 0x1e64}, {0x1e66, 0x1e66}, {0x1e68, 0x1e68}, {0x1e6a, 0x1e6a},
        !           576:     {0x1e6c, 0x1e6c}, {0x1e6e, 0x1e6e}, {0x1e70, 0x1e70}, {0x1e72, 0x1e72},
        !           577:     {0x1e74, 0x1e74}, {0x1e76, 0x1e76}, {0x1e78, 0x1e78}, {0x1e7a, 0x1e7a},
        !           578:     {0x1e7c, 0x1e7c}, {0x1e7e, 0x1e7e}, {0x1e80, 0x1e80}, {0x1e82, 0x1e82},
        !           579:     {0x1e84, 0x1e84}, {0x1e86, 0x1e86}, {0x1e88, 0x1e88}, {0x1e8a, 0x1e8a},
        !           580:     {0x1e8c, 0x1e8c}, {0x1e8e, 0x1e8e}, {0x1e90, 0x1e90}, {0x1e92, 0x1e92},
        !           581:     {0x1e94, 0x1e94}, {0x1ea0, 0x1ea0}, {0x1ea2, 0x1ea2}, {0x1ea4, 0x1ea4},
        !           582:     {0x1ea6, 0x1ea6}, {0x1ea8, 0x1ea8}, {0x1eaa, 0x1eaa}, {0x1eac, 0x1eac},
        !           583:     {0x1eae, 0x1eae}, {0x1eb0, 0x1eb0}, {0x1eb2, 0x1eb2}, {0x1eb4, 0x1eb4},
        !           584:     {0x1eb6, 0x1eb6}, {0x1eb8, 0x1eb8}, {0x1eba, 0x1eba}, {0x1ebc, 0x1ebc},
        !           585:     {0x1ebe, 0x1ebe}, {0x1ec0, 0x1ec0}, {0x1ec2, 0x1ec2}, {0x1ec4, 0x1ec4},
        !           586:     {0x1ec6, 0x1ec6}, {0x1ec8, 0x1ec8}, {0x1eca, 0x1eca}, {0x1ecc, 0x1ecc},
        !           587:     {0x1ece, 0x1ece}, {0x1ed0, 0x1ed0}, {0x1ed2, 0x1ed2}, {0x1ed4, 0x1ed4},
        !           588:     {0x1ed6, 0x1ed6}, {0x1ed8, 0x1ed8}, {0x1eda, 0x1eda}, {0x1edc, 0x1edc},
        !           589:     {0x1ede, 0x1ede}, {0x1ee0, 0x1ee0}, {0x1ee2, 0x1ee2}, {0x1ee4, 0x1ee4},
        !           590:     {0x1ee6, 0x1ee6}, {0x1ee8, 0x1ee8}, {0x1eea, 0x1eea}, {0x1eec, 0x1eec},
        !           591:     {0x1eee, 0x1eee}, {0x1ef0, 0x1ef0}, {0x1ef2, 0x1ef2}, {0x1ef4, 0x1ef4},
        !           592:     {0x1ef6, 0x1ef6}, {0x1ef8, 0x1ef8}, {0x1f08, 0x1f0f}, {0x1f18, 0x1f1d},
        !           593:     {0x1f28, 0x1f2f}, {0x1f38, 0x1f3f}, {0x1f48, 0x1f4d}, {0x1f59, 0x1f59},
        !           594:     {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f5f}, {0x1f68, 0x1f6f},
        !           595:     {0x1fb8, 0x1fbb}, {0x1fc8, 0x1fcb}, {0x1fd8, 0x1fdb}, {0x1fe8, 0x1fec},
        !           596:     {0x1ff8, 0x1ffb}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210b, 0x210d},
        !           597:     {0x2110, 0x2112}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124},
        !           598:     {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x212d}, {0x2130, 0x2131},
1.1       misho     599:     {0x2133, 0x2133}, {0x213e, 0x213f}, {0x2145, 0x2145}, {0xff21, 0xff3a} };
1.1.1.2 ! misho     600: static const xmlChLRange xmlLuL[] = {{0x10400, 0x10427}, {0x1d400, 0x1d419},
        !           601:     {0x1d434, 0x1d44d}, {0x1d468, 0x1d481}, {0x1d49c, 0x1d49c},
        !           602:     {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6},
        !           603:     {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b5}, {0x1d4d0, 0x1d4e9},
        !           604:     {0x1d504, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514},
        !           605:     {0x1d516, 0x1d51c}, {0x1d538, 0x1d539}, {0x1d53b, 0x1d53e},
        !           606:     {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550},
        !           607:     {0x1d56c, 0x1d585}, {0x1d5a0, 0x1d5b9}, {0x1d5d4, 0x1d5ed},
        !           608:     {0x1d608, 0x1d621}, {0x1d63c, 0x1d655}, {0x1d670, 0x1d689},
        !           609:     {0x1d6a8, 0x1d6c0}, {0x1d6e2, 0x1d6fa}, {0x1d71c, 0x1d734},
1.1       misho     610:     {0x1d756, 0x1d76e}, {0x1d790, 0x1d7a8} };
                    611: static xmlChRangeGroup xmlLuG = {390,31,xmlLuS,xmlLuL};
                    612: 
1.1.1.2 ! misho     613: static const xmlChSRange xmlMS[] = {{0x300, 0x357}, {0x35d, 0x36f},
        !           614:     {0x483, 0x486}, {0x488, 0x489}, {0x591, 0x5a1}, {0x5a3, 0x5b9},
        !           615:     {0x5bb, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4},
        !           616:     {0x610, 0x615}, {0x64b, 0x658}, {0x670, 0x670}, {0x6d6, 0x6dc},
        !           617:     {0x6de, 0x6e4}, {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x711, 0x711},
        !           618:     {0x730, 0x74a}, {0x7a6, 0x7b0}, {0x901, 0x903}, {0x93c, 0x93c},
        !           619:     {0x93e, 0x94d}, {0x951, 0x954}, {0x962, 0x963}, {0x981, 0x983},
        !           620:     {0x9bc, 0x9bc}, {0x9be, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9cd},
        !           621:     {0x9d7, 0x9d7}, {0x9e2, 0x9e3}, {0xa01, 0xa03}, {0xa3c, 0xa3c},
        !           622:     {0xa3e, 0xa42}, {0xa47, 0xa48}, {0xa4b, 0xa4d}, {0xa70, 0xa71},
        !           623:     {0xa81, 0xa83}, {0xabc, 0xabc}, {0xabe, 0xac5}, {0xac7, 0xac9},
        !           624:     {0xacb, 0xacd}, {0xae2, 0xae3}, {0xb01, 0xb03}, {0xb3c, 0xb3c},
        !           625:     {0xb3e, 0xb43}, {0xb47, 0xb48}, {0xb4b, 0xb4d}, {0xb56, 0xb57},
        !           626:     {0xb82, 0xb82}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, {0xbca, 0xbcd},
        !           627:     {0xbd7, 0xbd7}, {0xc01, 0xc03}, {0xc3e, 0xc44}, {0xc46, 0xc48},
        !           628:     {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc82, 0xc83}, {0xcbc, 0xcbc},
        !           629:     {0xcbe, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6},
        !           630:     {0xd02, 0xd03}, {0xd3e, 0xd43}, {0xd46, 0xd48}, {0xd4a, 0xd4d},
        !           631:     {0xd57, 0xd57}, {0xd82, 0xd83}, {0xdca, 0xdca}, {0xdcf, 0xdd4},
        !           632:     {0xdd6, 0xdd6}, {0xdd8, 0xddf}, {0xdf2, 0xdf3}, {0xe31, 0xe31},
        !           633:     {0xe34, 0xe3a}, {0xe47, 0xe4e}, {0xeb1, 0xeb1}, {0xeb4, 0xeb9},
        !           634:     {0xebb, 0xebc}, {0xec8, 0xecd}, {0xf18, 0xf19}, {0xf35, 0xf35},
        !           635:     {0xf37, 0xf37}, {0xf39, 0xf39}, {0xf3e, 0xf3f}, {0xf71, 0xf84},
        !           636:     {0xf86, 0xf87}, {0xf90, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6},
        !           637:     {0x102c, 0x1032}, {0x1036, 0x1039}, {0x1056, 0x1059}, {0x1712, 0x1714},
        !           638:     {0x1732, 0x1734}, {0x1752, 0x1753}, {0x1772, 0x1773}, {0x17b6, 0x17d3},
        !           639:     {0x17dd, 0x17dd}, {0x180b, 0x180d}, {0x18a9, 0x18a9}, {0x1920, 0x192b},
        !           640:     {0x1930, 0x193b}, {0x20d0, 0x20ea}, {0x302a, 0x302f}, {0x3099, 0x309a},
1.1       misho     641:     {0xfb1e, 0xfb1e}, {0xfe00, 0xfe0f}, {0xfe20, 0xfe23} };
1.1.1.2 ! misho     642: static const xmlChLRange xmlML[] = {{0x1d165, 0x1d169}, {0x1d16d, 0x1d172},
        !           643:     {0x1d17b, 0x1d182}, {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad},
1.1       misho     644:     {0xe0100, 0xe01ef} };
                    645: static xmlChRangeGroup xmlMG = {113,6,xmlMS,xmlML};
                    646: 
1.1.1.2 ! misho     647: static const xmlChSRange xmlMcS[] = {{0x903, 0x903}, {0x93e, 0x940},
        !           648:     {0x949, 0x94c}, {0x982, 0x983}, {0x9be, 0x9c0}, {0x9c7, 0x9c8},
        !           649:     {0x9cb, 0x9cc}, {0x9d7, 0x9d7}, {0xa03, 0xa03}, {0xa3e, 0xa40},
        !           650:     {0xa83, 0xa83}, {0xabe, 0xac0}, {0xac9, 0xac9}, {0xacb, 0xacc},
        !           651:     {0xb02, 0xb03}, {0xb3e, 0xb3e}, {0xb40, 0xb40}, {0xb47, 0xb48},
        !           652:     {0xb4b, 0xb4c}, {0xb57, 0xb57}, {0xbbe, 0xbbf}, {0xbc1, 0xbc2},
        !           653:     {0xbc6, 0xbc8}, {0xbca, 0xbcc}, {0xbd7, 0xbd7}, {0xc01, 0xc03},
        !           654:     {0xc41, 0xc44}, {0xc82, 0xc83}, {0xcbe, 0xcbe}, {0xcc0, 0xcc4},
        !           655:     {0xcc7, 0xcc8}, {0xcca, 0xccb}, {0xcd5, 0xcd6}, {0xd02, 0xd03},
        !           656:     {0xd3e, 0xd40}, {0xd46, 0xd48}, {0xd4a, 0xd4c}, {0xd57, 0xd57},
        !           657:     {0xd82, 0xd83}, {0xdcf, 0xdd1}, {0xdd8, 0xddf}, {0xdf2, 0xdf3},
        !           658:     {0xf3e, 0xf3f}, {0xf7f, 0xf7f}, {0x102c, 0x102c}, {0x1031, 0x1031},
        !           659:     {0x1038, 0x1038}, {0x1056, 0x1057}, {0x17b6, 0x17b6}, {0x17be, 0x17c5},
        !           660:     {0x17c7, 0x17c8}, {0x1923, 0x1926}, {0x1929, 0x192b}, {0x1930, 0x1931},
1.1       misho     661:     {0x1933, 0x1938} };
                    662: static const xmlChLRange xmlMcL[] = {{0x1d165, 0x1d166}, {0x1d16d, 0x1d172} };
                    663: static xmlChRangeGroup xmlMcG = {55,2,xmlMcS,xmlMcL};
                    664: 
1.1.1.2 ! misho     665: static const xmlChSRange xmlMnS[] = {{0x300, 0x357}, {0x35d, 0x36f},
        !           666:     {0x483, 0x486}, {0x591, 0x5a1}, {0x5a3, 0x5b9}, {0x5bb, 0x5bd},
        !           667:     {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, {0x5c4, 0x5c4}, {0x610, 0x615},
        !           668:     {0x64b, 0x658}, {0x670, 0x670}, {0x6d6, 0x6dc}, {0x6df, 0x6e4},
        !           669:     {0x6e7, 0x6e8}, {0x6ea, 0x6ed}, {0x711, 0x711}, {0x730, 0x74a},
        !           670:     {0x7a6, 0x7b0}, {0x901, 0x902}, {0x93c, 0x93c}, {0x941, 0x948},
        !           671:     {0x94d, 0x94d}, {0x951, 0x954}, {0x962, 0x963}, {0x981, 0x981},
        !           672:     {0x9bc, 0x9bc}, {0x9c1, 0x9c4}, {0x9cd, 0x9cd}, {0x9e2, 0x9e3},
        !           673:     {0xa01, 0xa02}, {0xa3c, 0xa3c}, {0xa41, 0xa42}, {0xa47, 0xa48},
        !           674:     {0xa4b, 0xa4d}, {0xa70, 0xa71}, {0xa81, 0xa82}, {0xabc, 0xabc},
        !           675:     {0xac1, 0xac5}, {0xac7, 0xac8}, {0xacd, 0xacd}, {0xae2, 0xae3},
        !           676:     {0xb01, 0xb01}, {0xb3c, 0xb3c}, {0xb3f, 0xb3f}, {0xb41, 0xb43},
        !           677:     {0xb4d, 0xb4d}, {0xb56, 0xb56}, {0xb82, 0xb82}, {0xbc0, 0xbc0},
        !           678:     {0xbcd, 0xbcd}, {0xc3e, 0xc40}, {0xc46, 0xc48}, {0xc4a, 0xc4d},
        !           679:     {0xc55, 0xc56}, {0xcbc, 0xcbc}, {0xcbf, 0xcbf}, {0xcc6, 0xcc6},
        !           680:     {0xccc, 0xccd}, {0xd41, 0xd43}, {0xd4d, 0xd4d}, {0xdca, 0xdca},
        !           681:     {0xdd2, 0xdd4}, {0xdd6, 0xdd6}, {0xe31, 0xe31}, {0xe34, 0xe3a},
        !           682:     {0xe47, 0xe4e}, {0xeb1, 0xeb1}, {0xeb4, 0xeb9}, {0xebb, 0xebc},
        !           683:     {0xec8, 0xecd}, {0xf18, 0xf19}, {0xf35, 0xf35}, {0xf37, 0xf37},
        !           684:     {0xf39, 0xf39}, {0xf71, 0xf7e}, {0xf80, 0xf84}, {0xf86, 0xf87},
        !           685:     {0xf90, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6}, {0x102d, 0x1030},
        !           686:     {0x1032, 0x1032}, {0x1036, 0x1037}, {0x1039, 0x1039}, {0x1058, 0x1059},
        !           687:     {0x1712, 0x1714}, {0x1732, 0x1734}, {0x1752, 0x1753}, {0x1772, 0x1773},
        !           688:     {0x17b7, 0x17bd}, {0x17c6, 0x17c6}, {0x17c9, 0x17d3}, {0x17dd, 0x17dd},
        !           689:     {0x180b, 0x180d}, {0x18a9, 0x18a9}, {0x1920, 0x1922}, {0x1927, 0x1928},
        !           690:     {0x1932, 0x1932}, {0x1939, 0x193b}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1},
        !           691:     {0x20e5, 0x20ea}, {0x302a, 0x302f}, {0x3099, 0x309a}, {0xfb1e, 0xfb1e},
1.1       misho     692:     {0xfe00, 0xfe0f}, {0xfe20, 0xfe23} };
1.1.1.2 ! misho     693: static const xmlChLRange xmlMnL[] = {{0x1d167, 0x1d169}, {0x1d17b, 0x1d182},
1.1       misho     694:     {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad}, {0xe0100, 0xe01ef} };
                    695: static xmlChRangeGroup xmlMnG = {108,5,xmlMnS,xmlMnL};
                    696: 
1.1.1.2 ! misho     697: static const xmlChSRange xmlNS[] = {{0x30, 0x39}, {0xb2, 0xb3},
        !           698:     {0xb9, 0xb9}, {0xbc, 0xbe}, {0x660, 0x669}, {0x6f0, 0x6f9},
        !           699:     {0x966, 0x96f}, {0x9e6, 0x9ef}, {0x9f4, 0x9f9}, {0xa66, 0xa6f},
        !           700:     {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbf2}, {0xc66, 0xc6f},
        !           701:     {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9},
        !           702:     {0xf20, 0xf33}, {0x1040, 0x1049}, {0x1369, 0x137c}, {0x16ee, 0x16f0},
        !           703:     {0x17e0, 0x17e9}, {0x17f0, 0x17f9}, {0x1810, 0x1819}, {0x1946, 0x194f},
        !           704:     {0x2070, 0x2070}, {0x2074, 0x2079}, {0x2080, 0x2089}, {0x2153, 0x2183},
        !           705:     {0x2460, 0x249b}, {0x24ea, 0x24ff}, {0x2776, 0x2793}, {0x3007, 0x3007},
        !           706:     {0x3021, 0x3029}, {0x3038, 0x303a}, {0x3192, 0x3195}, {0x3220, 0x3229},
1.1       misho     707:     {0x3251, 0x325f}, {0x3280, 0x3289}, {0x32b1, 0x32bf}, {0xff10, 0xff19} };
1.1.1.2 ! misho     708: static const xmlChLRange xmlNL[] = {{0x10107, 0x10133}, {0x10320, 0x10323},
1.1       misho     709:     {0x1034a, 0x1034a}, {0x104a0, 0x104a9}, {0x1d7ce, 0x1d7ff} };
                    710: static xmlChRangeGroup xmlNG = {42,5,xmlNS,xmlNL};
                    711: 
1.1.1.2 ! misho     712: static const xmlChSRange xmlNdS[] = {{0x30, 0x39}, {0x660, 0x669},
        !           713:     {0x6f0, 0x6f9}, {0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f},
        !           714:     {0xae6, 0xaef}, {0xb66, 0xb6f}, {0xbe7, 0xbef}, {0xc66, 0xc6f},
        !           715:     {0xce6, 0xcef}, {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9},
        !           716:     {0xf20, 0xf29}, {0x1040, 0x1049}, {0x1369, 0x1371}, {0x17e0, 0x17e9},
1.1       misho     717:     {0x1810, 0x1819}, {0x1946, 0x194f}, {0xff10, 0xff19} };
                    718: static const xmlChLRange xmlNdL[] = {{0x104a0, 0x104a9}, {0x1d7ce, 0x1d7ff} };
                    719: static xmlChRangeGroup xmlNdG = {21,2,xmlNdS,xmlNdL};
                    720: 
1.1.1.2 ! misho     721: static const xmlChSRange xmlNoS[] = {{0xb2, 0xb3}, {0xb9, 0xb9},
        !           722:     {0xbc, 0xbe}, {0x9f4, 0x9f9}, {0xbf0, 0xbf2}, {0xf2a, 0xf33},
        !           723:     {0x1372, 0x137c}, {0x17f0, 0x17f9}, {0x2070, 0x2070}, {0x2074, 0x2079},
        !           724:     {0x2080, 0x2089}, {0x2153, 0x215f}, {0x2460, 0x249b}, {0x24ea, 0x24ff},
        !           725:     {0x2776, 0x2793}, {0x3192, 0x3195}, {0x3220, 0x3229}, {0x3251, 0x325f},
1.1       misho     726:     {0x3280, 0x3289}, {0x32b1, 0x32bf} };
                    727: static const xmlChLRange xmlNoL[] = {{0x10107, 0x10133}, {0x10320, 0x10323} };
                    728: static xmlChRangeGroup xmlNoG = {20,2,xmlNoS,xmlNoL};
                    729: 
1.1.1.2 ! misho     730: static const xmlChSRange xmlPS[] = {{0x21, 0x23}, {0x25, 0x2a},
        !           731:     {0x2c, 0x2f}, {0x3a, 0x3b}, {0x3f, 0x40}, {0x5b, 0x5d}, {0x5f, 0x5f},
        !           732:     {0x7b, 0x7b}, {0x7d, 0x7d}, {0xa1, 0xa1}, {0xab, 0xab}, {0xb7, 0xb7},
        !           733:     {0xbb, 0xbb}, {0xbf, 0xbf}, {0x37e, 0x37e}, {0x387, 0x387},
        !           734:     {0x55a, 0x55f}, {0x589, 0x58a}, {0x5be, 0x5be}, {0x5c0, 0x5c0},
        !           735:     {0x5c3, 0x5c3}, {0x5f3, 0x5f4}, {0x60c, 0x60d}, {0x61b, 0x61b},
        !           736:     {0x61f, 0x61f}, {0x66a, 0x66d}, {0x6d4, 0x6d4}, {0x700, 0x70d},
        !           737:     {0x964, 0x965}, {0x970, 0x970}, {0xdf4, 0xdf4}, {0xe4f, 0xe4f},
        !           738:     {0xe5a, 0xe5b}, {0xf04, 0xf12}, {0xf3a, 0xf3d}, {0xf85, 0xf85},
        !           739:     {0x104a, 0x104f}, {0x10fb, 0x10fb}, {0x1361, 0x1368}, {0x166d, 0x166e},
        !           740:     {0x169b, 0x169c}, {0x16eb, 0x16ed}, {0x1735, 0x1736}, {0x17d4, 0x17d6},
        !           741:     {0x17d8, 0x17da}, {0x1800, 0x180a}, {0x1944, 0x1945}, {0x2010, 0x2027},
        !           742:     {0x2030, 0x2043}, {0x2045, 0x2051}, {0x2053, 0x2054}, {0x2057, 0x2057},
        !           743:     {0x207d, 0x207e}, {0x208d, 0x208e}, {0x2329, 0x232a}, {0x23b4, 0x23b6},
        !           744:     {0x2768, 0x2775}, {0x27e6, 0x27eb}, {0x2983, 0x2998}, {0x29d8, 0x29db},
        !           745:     {0x29fc, 0x29fd}, {0x3001, 0x3003}, {0x3008, 0x3011}, {0x3014, 0x301f},
        !           746:     {0x3030, 0x3030}, {0x303d, 0x303d}, {0x30a0, 0x30a0}, {0x30fb, 0x30fb},
        !           747:     {0xfd3e, 0xfd3f}, {0xfe30, 0xfe52}, {0xfe54, 0xfe61}, {0xfe63, 0xfe63},
        !           748:     {0xfe68, 0xfe68}, {0xfe6a, 0xfe6b}, {0xff01, 0xff03}, {0xff05, 0xff0a},
        !           749:     {0xff0c, 0xff0f}, {0xff1a, 0xff1b}, {0xff1f, 0xff20}, {0xff3b, 0xff3d},
1.1       misho     750:     {0xff3f, 0xff3f}, {0xff5b, 0xff5b}, {0xff5d, 0xff5d}, {0xff5f, 0xff65} };
                    751: static const xmlChLRange xmlPL[] = {{0x10100, 0x10101}, {0x1039f, 0x1039f} };
                    752: static xmlChRangeGroup xmlPG = {84,2,xmlPS,xmlPL};
                    753: 
1.1.1.2 ! misho     754: static const xmlChSRange xmlPdS[] = {{0x2d, 0x2d}, {0x58a, 0x58a},
        !           755:     {0x1806, 0x1806}, {0x2010, 0x2015}, {0x301c, 0x301c}, {0x3030, 0x3030},
        !           756:     {0x30a0, 0x30a0}, {0xfe31, 0xfe32}, {0xfe58, 0xfe58}, {0xfe63, 0xfe63},
1.1       misho     757:     {0xff0d, 0xff0d} };
                    758: static xmlChRangeGroup xmlPdG = {11,0,xmlPdS,NULL};
                    759: 
1.1.1.2 ! misho     760: static const xmlChSRange xmlPeS[] = {{0x29, 0x29}, {0x5d, 0x5d},
        !           761:     {0x7d, 0x7d}, {0xf3b, 0xf3b}, {0xf3d, 0xf3d}, {0x169c, 0x169c},
        !           762:     {0x2046, 0x2046}, {0x207e, 0x207e}, {0x208e, 0x208e}, {0x232a, 0x232a},
        !           763:     {0x23b5, 0x23b5}, {0x2769, 0x2769}, {0x276b, 0x276b}, {0x276d, 0x276d},
        !           764:     {0x276f, 0x276f}, {0x2771, 0x2771}, {0x2773, 0x2773}, {0x2775, 0x2775},
        !           765:     {0x27e7, 0x27e7}, {0x27e9, 0x27e9}, {0x27eb, 0x27eb}, {0x2984, 0x2984},
        !           766:     {0x2986, 0x2986}, {0x2988, 0x2988}, {0x298a, 0x298a}, {0x298c, 0x298c},
        !           767:     {0x298e, 0x298e}, {0x2990, 0x2990}, {0x2992, 0x2992}, {0x2994, 0x2994},
        !           768:     {0x2996, 0x2996}, {0x2998, 0x2998}, {0x29d9, 0x29d9}, {0x29db, 0x29db},
        !           769:     {0x29fd, 0x29fd}, {0x3009, 0x3009}, {0x300b, 0x300b}, {0x300d, 0x300d},
        !           770:     {0x300f, 0x300f}, {0x3011, 0x3011}, {0x3015, 0x3015}, {0x3017, 0x3017},
        !           771:     {0x3019, 0x3019}, {0x301b, 0x301b}, {0x301e, 0x301f}, {0xfd3f, 0xfd3f},
        !           772:     {0xfe36, 0xfe36}, {0xfe38, 0xfe38}, {0xfe3a, 0xfe3a}, {0xfe3c, 0xfe3c},
        !           773:     {0xfe3e, 0xfe3e}, {0xfe40, 0xfe40}, {0xfe42, 0xfe42}, {0xfe44, 0xfe44},
        !           774:     {0xfe48, 0xfe48}, {0xfe5a, 0xfe5a}, {0xfe5c, 0xfe5c}, {0xfe5e, 0xfe5e},
        !           775:     {0xff09, 0xff09}, {0xff3d, 0xff3d}, {0xff5d, 0xff5d}, {0xff60, 0xff60},
1.1       misho     776:     {0xff63, 0xff63} };
                    777: static xmlChRangeGroup xmlPeG = {63,0,xmlPeS,NULL};
                    778: 
1.1.1.2 ! misho     779: static const xmlChSRange xmlPoS[] = {{0x21, 0x23}, {0x25, 0x27},
        !           780:     {0x2a, 0x2a}, {0x2c, 0x2c}, {0x2e, 0x2f}, {0x3a, 0x3b}, {0x3f, 0x40},
        !           781:     {0x5c, 0x5c}, {0xa1, 0xa1}, {0xb7, 0xb7}, {0xbf, 0xbf}, {0x37e, 0x37e},
        !           782:     {0x387, 0x387}, {0x55a, 0x55f}, {0x589, 0x589}, {0x5be, 0x5be},
        !           783:     {0x5c0, 0x5c0}, {0x5c3, 0x5c3}, {0x5f3, 0x5f4}, {0x60c, 0x60d},
        !           784:     {0x61b, 0x61b}, {0x61f, 0x61f}, {0x66a, 0x66d}, {0x6d4, 0x6d4},
        !           785:     {0x700, 0x70d}, {0x964, 0x965}, {0x970, 0x970}, {0xdf4, 0xdf4},
        !           786:     {0xe4f, 0xe4f}, {0xe5a, 0xe5b}, {0xf04, 0xf12}, {0xf85, 0xf85},
        !           787:     {0x104a, 0x104f}, {0x10fb, 0x10fb}, {0x1361, 0x1368}, {0x166d, 0x166e},
        !           788:     {0x16eb, 0x16ed}, {0x1735, 0x1736}, {0x17d4, 0x17d6}, {0x17d8, 0x17da},
        !           789:     {0x1800, 0x1805}, {0x1807, 0x180a}, {0x1944, 0x1945}, {0x2016, 0x2017},
        !           790:     {0x2020, 0x2027}, {0x2030, 0x2038}, {0x203b, 0x203e}, {0x2041, 0x2043},
        !           791:     {0x2047, 0x2051}, {0x2053, 0x2053}, {0x2057, 0x2057}, {0x23b6, 0x23b6},
        !           792:     {0x3001, 0x3003}, {0x303d, 0x303d}, {0xfe30, 0xfe30}, {0xfe45, 0xfe46},
        !           793:     {0xfe49, 0xfe4c}, {0xfe50, 0xfe52}, {0xfe54, 0xfe57}, {0xfe5f, 0xfe61},
        !           794:     {0xfe68, 0xfe68}, {0xfe6a, 0xfe6b}, {0xff01, 0xff03}, {0xff05, 0xff07},
        !           795:     {0xff0a, 0xff0a}, {0xff0c, 0xff0c}, {0xff0e, 0xff0f}, {0xff1a, 0xff1b},
1.1       misho     796:     {0xff1f, 0xff20}, {0xff3c, 0xff3c}, {0xff61, 0xff61}, {0xff64, 0xff64} };
                    797: static const xmlChLRange xmlPoL[] = {{0x10100, 0x10101}, {0x1039f, 0x1039f} };
                    798: static xmlChRangeGroup xmlPoG = {72,2,xmlPoS,xmlPoL};
                    799: 
1.1.1.2 ! misho     800: static const xmlChSRange xmlPsS[] = {{0x28, 0x28}, {0x5b, 0x5b},
        !           801:     {0x7b, 0x7b}, {0xf3a, 0xf3a}, {0xf3c, 0xf3c}, {0x169b, 0x169b},
        !           802:     {0x201a, 0x201a}, {0x201e, 0x201e}, {0x2045, 0x2045}, {0x207d, 0x207d},
        !           803:     {0x208d, 0x208d}, {0x2329, 0x2329}, {0x23b4, 0x23b4}, {0x2768, 0x2768},
        !           804:     {0x276a, 0x276a}, {0x276c, 0x276c}, {0x276e, 0x276e}, {0x2770, 0x2770},
        !           805:     {0x2772, 0x2772}, {0x2774, 0x2774}, {0x27e6, 0x27e6}, {0x27e8, 0x27e8},
        !           806:     {0x27ea, 0x27ea}, {0x2983, 0x2983}, {0x2985, 0x2985}, {0x2987, 0x2987},
        !           807:     {0x2989, 0x2989}, {0x298b, 0x298b}, {0x298d, 0x298d}, {0x298f, 0x298f},
        !           808:     {0x2991, 0x2991}, {0x2993, 0x2993}, {0x2995, 0x2995}, {0x2997, 0x2997},
        !           809:     {0x29d8, 0x29d8}, {0x29da, 0x29da}, {0x29fc, 0x29fc}, {0x3008, 0x3008},
        !           810:     {0x300a, 0x300a}, {0x300c, 0x300c}, {0x300e, 0x300e}, {0x3010, 0x3010},
        !           811:     {0x3014, 0x3014}, {0x3016, 0x3016}, {0x3018, 0x3018}, {0x301a, 0x301a},
        !           812:     {0x301d, 0x301d}, {0xfd3e, 0xfd3e}, {0xfe35, 0xfe35}, {0xfe37, 0xfe37},
        !           813:     {0xfe39, 0xfe39}, {0xfe3b, 0xfe3b}, {0xfe3d, 0xfe3d}, {0xfe3f, 0xfe3f},
        !           814:     {0xfe41, 0xfe41}, {0xfe43, 0xfe43}, {0xfe47, 0xfe47}, {0xfe59, 0xfe59},
        !           815:     {0xfe5b, 0xfe5b}, {0xfe5d, 0xfe5d}, {0xff08, 0xff08}, {0xff3b, 0xff3b},
1.1       misho     816:     {0xff5b, 0xff5b}, {0xff5f, 0xff5f}, {0xff62, 0xff62} };
                    817: static xmlChRangeGroup xmlPsG = {65,0,xmlPsS,NULL};
                    818: 
1.1.1.2 ! misho     819: static const xmlChSRange xmlSS[] = {{0x24, 0x24}, {0x2b, 0x2b},
        !           820:     {0x3c, 0x3e}, {0x5e, 0x5e}, {0x60, 0x60}, {0x7c, 0x7c}, {0x7e, 0x7e},
        !           821:     {0xa2, 0xa9}, {0xac, 0xac}, {0xae, 0xb1}, {0xb4, 0xb4}, {0xb6, 0xb6},
        !           822:     {0xb8, 0xb8}, {0xd7, 0xd7}, {0xf7, 0xf7}, {0x2c2, 0x2c5},
        !           823:     {0x2d2, 0x2df}, {0x2e5, 0x2ed}, {0x2ef, 0x2ff}, {0x374, 0x375},
        !           824:     {0x384, 0x385}, {0x3f6, 0x3f6}, {0x482, 0x482}, {0x60e, 0x60f},
        !           825:     {0x6e9, 0x6e9}, {0x6fd, 0x6fe}, {0x9f2, 0x9f3}, {0x9fa, 0x9fa},
        !           826:     {0xaf1, 0xaf1}, {0xb70, 0xb70}, {0xbf3, 0xbfa}, {0xe3f, 0xe3f},
        !           827:     {0xf01, 0xf03}, {0xf13, 0xf17}, {0xf1a, 0xf1f}, {0xf34, 0xf34},
        !           828:     {0xf36, 0xf36}, {0xf38, 0xf38}, {0xfbe, 0xfc5}, {0xfc7, 0xfcc},
        !           829:     {0xfcf, 0xfcf}, {0x17db, 0x17db}, {0x1940, 0x1940}, {0x19e0, 0x19ff},
        !           830:     {0x1fbd, 0x1fbd}, {0x1fbf, 0x1fc1}, {0x1fcd, 0x1fcf}, {0x1fdd, 0x1fdf},
        !           831:     {0x1fed, 0x1fef}, {0x1ffd, 0x1ffe}, {0x2044, 0x2044}, {0x2052, 0x2052},
        !           832:     {0x207a, 0x207c}, {0x208a, 0x208c}, {0x20a0, 0x20b1}, {0x2100, 0x2101},
        !           833:     {0x2103, 0x2106}, {0x2108, 0x2109}, {0x2114, 0x2114}, {0x2116, 0x2118},
        !           834:     {0x211e, 0x2123}, {0x2125, 0x2125}, {0x2127, 0x2127}, {0x2129, 0x2129},
        !           835:     {0x212e, 0x212e}, {0x2132, 0x2132}, {0x213a, 0x213b}, {0x2140, 0x2144},
        !           836:     {0x214a, 0x214b}, {0x2190, 0x2328}, {0x232b, 0x23b3}, {0x23b7, 0x23d0},
        !           837:     {0x2400, 0x2426}, {0x2440, 0x244a}, {0x249c, 0x24e9}, {0x2500, 0x2617},
        !           838:     {0x2619, 0x267d}, {0x2680, 0x2691}, {0x26a0, 0x26a1}, {0x2701, 0x2704},
        !           839:     {0x2706, 0x2709}, {0x270c, 0x2727}, {0x2729, 0x274b}, {0x274d, 0x274d},
        !           840:     {0x274f, 0x2752}, {0x2756, 0x2756}, {0x2758, 0x275e}, {0x2761, 0x2767},
        !           841:     {0x2794, 0x2794}, {0x2798, 0x27af}, {0x27b1, 0x27be}, {0x27d0, 0x27e5},
        !           842:     {0x27f0, 0x2982}, {0x2999, 0x29d7}, {0x29dc, 0x29fb}, {0x29fe, 0x2b0d},
        !           843:     {0x2e80, 0x2e99}, {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb},
        !           844:     {0x3004, 0x3004}, {0x3012, 0x3013}, {0x3020, 0x3020}, {0x3036, 0x3037},
        !           845:     {0x303e, 0x303f}, {0x309b, 0x309c}, {0x3190, 0x3191}, {0x3196, 0x319f},
        !           846:     {0x3200, 0x321e}, {0x322a, 0x3243}, {0x3250, 0x3250}, {0x3260, 0x327d},
        !           847:     {0x327f, 0x327f}, {0x328a, 0x32b0}, {0x32c0, 0x32fe}, {0x3300, 0x33ff},
        !           848:     {0x4dc0, 0x4dff}, {0xa490, 0xa4c6}, {0xfb29, 0xfb29}, {0xfdfc, 0xfdfd},
        !           849:     {0xfe62, 0xfe62}, {0xfe64, 0xfe66}, {0xfe69, 0xfe69}, {0xff04, 0xff04},
        !           850:     {0xff0b, 0xff0b}, {0xff1c, 0xff1e}, {0xff3e, 0xff3e}, {0xff40, 0xff40},
        !           851:     {0xff5c, 0xff5c}, {0xff5e, 0xff5e}, {0xffe0, 0xffe6}, {0xffe8, 0xffee},
1.1       misho     852:     {0xfffc, 0xfffd} };
1.1.1.2 ! misho     853: static const xmlChLRange xmlSL[] = {{0x10102, 0x10102}, {0x10137, 0x1013f},
        !           854:     {0x1d000, 0x1d0f5}, {0x1d100, 0x1d126}, {0x1d12a, 0x1d164},
        !           855:     {0x1d16a, 0x1d16c}, {0x1d183, 0x1d184}, {0x1d18c, 0x1d1a9},
        !           856:     {0x1d1ae, 0x1d1dd}, {0x1d300, 0x1d356}, {0x1d6c1, 0x1d6c1},
        !           857:     {0x1d6db, 0x1d6db}, {0x1d6fb, 0x1d6fb}, {0x1d715, 0x1d715},
        !           858:     {0x1d735, 0x1d735}, {0x1d74f, 0x1d74f}, {0x1d76f, 0x1d76f},
1.1       misho     859:     {0x1d789, 0x1d789}, {0x1d7a9, 0x1d7a9}, {0x1d7c3, 0x1d7c3} };
                    860: static xmlChRangeGroup xmlSG = {133,20,xmlSS,xmlSL};
                    861: 
1.1.1.2 ! misho     862: static const xmlChSRange xmlScS[] = {{0x24, 0x24}, {0xa2, 0xa5},
        !           863:     {0x9f2, 0x9f3}, {0xaf1, 0xaf1}, {0xbf9, 0xbf9}, {0xe3f, 0xe3f},
        !           864:     {0x17db, 0x17db}, {0x20a0, 0x20b1}, {0xfdfc, 0xfdfc}, {0xfe69, 0xfe69},
1.1       misho     865:     {0xff04, 0xff04}, {0xffe0, 0xffe1}, {0xffe5, 0xffe6} };
                    866: static xmlChRangeGroup xmlScG = {13,0,xmlScS,NULL};
                    867: 
1.1.1.2 ! misho     868: static const xmlChSRange xmlSkS[] = {{0x5e, 0x5e}, {0x60, 0x60},
        !           869:     {0xa8, 0xa8}, {0xaf, 0xaf}, {0xb4, 0xb4}, {0xb8, 0xb8}, {0x2c2, 0x2c5},
        !           870:     {0x2d2, 0x2df}, {0x2e5, 0x2ed}, {0x2ef, 0x2ff}, {0x374, 0x375},
        !           871:     {0x384, 0x385}, {0x1fbd, 0x1fbd}, {0x1fbf, 0x1fc1}, {0x1fcd, 0x1fcf},
        !           872:     {0x1fdd, 0x1fdf}, {0x1fed, 0x1fef}, {0x1ffd, 0x1ffe}, {0x309b, 0x309c},
1.1       misho     873:     {0xff3e, 0xff3e}, {0xff40, 0xff40}, {0xffe3, 0xffe3} };
                    874: static xmlChRangeGroup xmlSkG = {22,0,xmlSkS,NULL};
                    875: 
1.1.1.2 ! misho     876: static const xmlChSRange xmlSmS[] = {{0x2b, 0x2b}, {0x3c, 0x3e},
        !           877:     {0x7c, 0x7c}, {0x7e, 0x7e}, {0xac, 0xac}, {0xb1, 0xb1}, {0xd7, 0xd7},
        !           878:     {0xf7, 0xf7}, {0x3f6, 0x3f6}, {0x2044, 0x2044}, {0x2052, 0x2052},
        !           879:     {0x207a, 0x207c}, {0x208a, 0x208c}, {0x2140, 0x2144}, {0x214b, 0x214b},
        !           880:     {0x2190, 0x2194}, {0x219a, 0x219b}, {0x21a0, 0x21a0}, {0x21a3, 0x21a3},
        !           881:     {0x21a6, 0x21a6}, {0x21ae, 0x21ae}, {0x21ce, 0x21cf}, {0x21d2, 0x21d2},
        !           882:     {0x21d4, 0x21d4}, {0x21f4, 0x22ff}, {0x2308, 0x230b}, {0x2320, 0x2321},
        !           883:     {0x237c, 0x237c}, {0x239b, 0x23b3}, {0x25b7, 0x25b7}, {0x25c1, 0x25c1},
        !           884:     {0x25f8, 0x25ff}, {0x266f, 0x266f}, {0x27d0, 0x27e5}, {0x27f0, 0x27ff},
        !           885:     {0x2900, 0x2982}, {0x2999, 0x29d7}, {0x29dc, 0x29fb}, {0x29fe, 0x2aff},
        !           886:     {0xfb29, 0xfb29}, {0xfe62, 0xfe62}, {0xfe64, 0xfe66}, {0xff0b, 0xff0b},
        !           887:     {0xff1c, 0xff1e}, {0xff5c, 0xff5c}, {0xff5e, 0xff5e}, {0xffe2, 0xffe2},
1.1       misho     888:     {0xffe9, 0xffec} };
1.1.1.2 ! misho     889: static const xmlChLRange xmlSmL[] = {{0x1d6c1, 0x1d6c1}, {0x1d6db, 0x1d6db},
        !           890:     {0x1d6fb, 0x1d6fb}, {0x1d715, 0x1d715}, {0x1d735, 0x1d735},
        !           891:     {0x1d74f, 0x1d74f}, {0x1d76f, 0x1d76f}, {0x1d789, 0x1d789},
1.1       misho     892:     {0x1d7a9, 0x1d7a9}, {0x1d7c3, 0x1d7c3} };
                    893: static xmlChRangeGroup xmlSmG = {48,10,xmlSmS,xmlSmL};
                    894: 
1.1.1.2 ! misho     895: static const xmlChSRange xmlSoS[] = {{0xa6, 0xa7}, {0xa9, 0xa9},
        !           896:     {0xae, 0xae}, {0xb0, 0xb0}, {0xb6, 0xb6}, {0x482, 0x482},
        !           897:     {0x60e, 0x60f}, {0x6e9, 0x6e9}, {0x6fd, 0x6fe}, {0x9fa, 0x9fa},
        !           898:     {0xb70, 0xb70}, {0xbf3, 0xbf8}, {0xbfa, 0xbfa}, {0xf01, 0xf03},
        !           899:     {0xf13, 0xf17}, {0xf1a, 0xf1f}, {0xf34, 0xf34}, {0xf36, 0xf36},
        !           900:     {0xf38, 0xf38}, {0xfbe, 0xfc5}, {0xfc7, 0xfcc}, {0xfcf, 0xfcf},
        !           901:     {0x1940, 0x1940}, {0x19e0, 0x19ff}, {0x2100, 0x2101}, {0x2103, 0x2106},
        !           902:     {0x2108, 0x2109}, {0x2114, 0x2114}, {0x2116, 0x2118}, {0x211e, 0x2123},
        !           903:     {0x2125, 0x2125}, {0x2127, 0x2127}, {0x2129, 0x2129}, {0x212e, 0x212e},
        !           904:     {0x2132, 0x2132}, {0x213a, 0x213b}, {0x214a, 0x214a}, {0x2195, 0x2199},
        !           905:     {0x219c, 0x219f}, {0x21a1, 0x21a2}, {0x21a4, 0x21a5}, {0x21a7, 0x21ad},
        !           906:     {0x21af, 0x21cd}, {0x21d0, 0x21d1}, {0x21d3, 0x21d3}, {0x21d5, 0x21f3},
        !           907:     {0x2300, 0x2307}, {0x230c, 0x231f}, {0x2322, 0x2328}, {0x232b, 0x237b},
        !           908:     {0x237d, 0x239a}, {0x23b7, 0x23d0}, {0x2400, 0x2426}, {0x2440, 0x244a},
        !           909:     {0x249c, 0x24e9}, {0x2500, 0x25b6}, {0x25b8, 0x25c0}, {0x25c2, 0x25f7},
        !           910:     {0x2600, 0x2617}, {0x2619, 0x266e}, {0x2670, 0x267d}, {0x2680, 0x2691},
        !           911:     {0x26a0, 0x26a1}, {0x2701, 0x2704}, {0x2706, 0x2709}, {0x270c, 0x2727},
        !           912:     {0x2729, 0x274b}, {0x274d, 0x274d}, {0x274f, 0x2752}, {0x2756, 0x2756},
        !           913:     {0x2758, 0x275e}, {0x2761, 0x2767}, {0x2794, 0x2794}, {0x2798, 0x27af},
        !           914:     {0x27b1, 0x27be}, {0x2800, 0x28ff}, {0x2b00, 0x2b0d}, {0x2e80, 0x2e99},
        !           915:     {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb}, {0x3004, 0x3004},
        !           916:     {0x3012, 0x3013}, {0x3020, 0x3020}, {0x3036, 0x3037}, {0x303e, 0x303f},
        !           917:     {0x3190, 0x3191}, {0x3196, 0x319f}, {0x3200, 0x321e}, {0x322a, 0x3243},
        !           918:     {0x3250, 0x3250}, {0x3260, 0x327d}, {0x327f, 0x327f}, {0x328a, 0x32b0},
        !           919:     {0x32c0, 0x32fe}, {0x3300, 0x33ff}, {0x4dc0, 0x4dff}, {0xa490, 0xa4c6},
        !           920:     {0xfdfd, 0xfdfd}, {0xffe4, 0xffe4}, {0xffe8, 0xffe8}, {0xffed, 0xffee},
1.1       misho     921:     {0xfffc, 0xfffd} };
1.1.1.2 ! misho     922: static const xmlChLRange xmlSoL[] = {{0x10102, 0x10102}, {0x10137, 0x1013f},
        !           923:     {0x1d000, 0x1d0f5}, {0x1d100, 0x1d126}, {0x1d12a, 0x1d164},
        !           924:     {0x1d16a, 0x1d16c}, {0x1d183, 0x1d184}, {0x1d18c, 0x1d1a9},
1.1       misho     925:     {0x1d1ae, 0x1d1dd}, {0x1d300, 0x1d356} };
                    926: static xmlChRangeGroup xmlSoG = {103,10,xmlSoS,xmlSoL};
                    927: 
1.1.1.2 ! misho     928: static const xmlChSRange xmlZS[] = {{0x20, 0x20}, {0xa0, 0xa0},
        !           929:     {0x1680, 0x1680}, {0x180e, 0x180e}, {0x2000, 0x200a}, {0x2028, 0x2029},
1.1       misho     930:     {0x202f, 0x202f}, {0x205f, 0x205f}, {0x3000, 0x3000} };
                    931: static xmlChRangeGroup xmlZG = {9,0,xmlZS,NULL};
                    932: 
                    933: static xmlUnicodeNameTable xmlUnicodeBlockTbl = {xmlUnicodeBlocks, 128};
                    934: static xmlUnicodeNameTable xmlUnicodeCatTbl = {xmlUnicodeCats, 36};
                    935: 
                    936: /**
                    937:  * xmlUnicodeLookup:
                    938:  * @tptr: pointer to the name table
                    939:  * @name: name to be found
                    940:  *
                    941:  * binary table lookup for user-supplied name
                    942:  *
                    943:  * Returns pointer to range function if found, otherwise NULL
                    944:  */
                    945: static xmlIntFunc
                    946: *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname) {
                    947:     int low, high, mid, cmp;
                    948:     xmlUnicodeRange *sptr;
                    949: 
                    950:     if ((tptr == NULL) || (tname == NULL)) return(NULL);
                    951: 
                    952:     low = 0;
                    953:     high = tptr->numentries - 1;
                    954:     sptr = tptr->table;
                    955:     while (low <= high) {
                    956:        mid = (low + high) / 2;
                    957:        if ((cmp=strcmp(tname, sptr[mid].rangename)) == 0)
                    958:            return (sptr[mid].func);
                    959:        if (cmp < 0)
                    960:            high = mid - 1;
                    961:        else
                    962:            low = mid + 1;
                    963:     }
1.1.1.2 ! misho     964:     return (NULL);
1.1       misho     965: }
                    966: 
                    967: /**
                    968:  * xmlUCSIsAegeanNumbers:
                    969:  * @code: UCS code point
                    970:  *
                    971:  * Check whether the character is part of AegeanNumbers UCS Block
                    972:  *
                    973:  * Returns 1 if true 0 otherwise
                    974:  */
                    975: int
                    976: xmlUCSIsAegeanNumbers(int code) {
                    977:     return(((code >= 0x10100) && (code <= 0x1013F)));
                    978: }
                    979: 
                    980: /**
                    981:  * xmlUCSIsAlphabeticPresentationForms:
                    982:  * @code: UCS code point
                    983:  *
                    984:  * Check whether the character is part of AlphabeticPresentationForms UCS Block
                    985:  *
                    986:  * Returns 1 if true 0 otherwise
                    987:  */
                    988: int
                    989: xmlUCSIsAlphabeticPresentationForms(int code) {
                    990:     return(((code >= 0xFB00) && (code <= 0xFB4F)));
                    991: }
                    992: 
                    993: /**
                    994:  * xmlUCSIsArabic:
                    995:  * @code: UCS code point
                    996:  *
                    997:  * Check whether the character is part of Arabic UCS Block
                    998:  *
                    999:  * Returns 1 if true 0 otherwise
                   1000:  */
                   1001: int
                   1002: xmlUCSIsArabic(int code) {
                   1003:     return(((code >= 0x0600) && (code <= 0x06FF)));
                   1004: }
                   1005: 
                   1006: /**
                   1007:  * xmlUCSIsArabicPresentationFormsA:
                   1008:  * @code: UCS code point
                   1009:  *
                   1010:  * Check whether the character is part of ArabicPresentationForms-A UCS Block
                   1011:  *
                   1012:  * Returns 1 if true 0 otherwise
                   1013:  */
                   1014: int
                   1015: xmlUCSIsArabicPresentationFormsA(int code) {
                   1016:     return(((code >= 0xFB50) && (code <= 0xFDFF)));
                   1017: }
                   1018: 
                   1019: /**
                   1020:  * xmlUCSIsArabicPresentationFormsB:
                   1021:  * @code: UCS code point
                   1022:  *
                   1023:  * Check whether the character is part of ArabicPresentationForms-B UCS Block
                   1024:  *
                   1025:  * Returns 1 if true 0 otherwise
                   1026:  */
                   1027: int
                   1028: xmlUCSIsArabicPresentationFormsB(int code) {
                   1029:     return(((code >= 0xFE70) && (code <= 0xFEFF)));
                   1030: }
                   1031: 
                   1032: /**
                   1033:  * xmlUCSIsArmenian:
                   1034:  * @code: UCS code point
                   1035:  *
                   1036:  * Check whether the character is part of Armenian UCS Block
                   1037:  *
                   1038:  * Returns 1 if true 0 otherwise
                   1039:  */
                   1040: int
                   1041: xmlUCSIsArmenian(int code) {
                   1042:     return(((code >= 0x0530) && (code <= 0x058F)));
                   1043: }
                   1044: 
                   1045: /**
                   1046:  * xmlUCSIsArrows:
                   1047:  * @code: UCS code point
                   1048:  *
                   1049:  * Check whether the character is part of Arrows UCS Block
                   1050:  *
                   1051:  * Returns 1 if true 0 otherwise
                   1052:  */
                   1053: int
                   1054: xmlUCSIsArrows(int code) {
                   1055:     return(((code >= 0x2190) && (code <= 0x21FF)));
                   1056: }
                   1057: 
                   1058: /**
                   1059:  * xmlUCSIsBasicLatin:
                   1060:  * @code: UCS code point
                   1061:  *
                   1062:  * Check whether the character is part of BasicLatin UCS Block
                   1063:  *
                   1064:  * Returns 1 if true 0 otherwise
                   1065:  */
                   1066: int
                   1067: xmlUCSIsBasicLatin(int code) {
                   1068:     return(((code >= 0x0000) && (code <= 0x007F)));
                   1069: }
                   1070: 
                   1071: /**
                   1072:  * xmlUCSIsBengali:
                   1073:  * @code: UCS code point
                   1074:  *
                   1075:  * Check whether the character is part of Bengali UCS Block
                   1076:  *
                   1077:  * Returns 1 if true 0 otherwise
                   1078:  */
                   1079: int
                   1080: xmlUCSIsBengali(int code) {
                   1081:     return(((code >= 0x0980) && (code <= 0x09FF)));
                   1082: }
                   1083: 
                   1084: /**
                   1085:  * xmlUCSIsBlockElements:
                   1086:  * @code: UCS code point
                   1087:  *
                   1088:  * Check whether the character is part of BlockElements UCS Block
                   1089:  *
                   1090:  * Returns 1 if true 0 otherwise
                   1091:  */
                   1092: int
                   1093: xmlUCSIsBlockElements(int code) {
                   1094:     return(((code >= 0x2580) && (code <= 0x259F)));
                   1095: }
                   1096: 
                   1097: /**
                   1098:  * xmlUCSIsBopomofo:
                   1099:  * @code: UCS code point
                   1100:  *
                   1101:  * Check whether the character is part of Bopomofo UCS Block
                   1102:  *
                   1103:  * Returns 1 if true 0 otherwise
                   1104:  */
                   1105: int
                   1106: xmlUCSIsBopomofo(int code) {
                   1107:     return(((code >= 0x3100) && (code <= 0x312F)));
                   1108: }
                   1109: 
                   1110: /**
                   1111:  * xmlUCSIsBopomofoExtended:
                   1112:  * @code: UCS code point
                   1113:  *
                   1114:  * Check whether the character is part of BopomofoExtended UCS Block
                   1115:  *
                   1116:  * Returns 1 if true 0 otherwise
                   1117:  */
                   1118: int
                   1119: xmlUCSIsBopomofoExtended(int code) {
                   1120:     return(((code >= 0x31A0) && (code <= 0x31BF)));
                   1121: }
                   1122: 
                   1123: /**
                   1124:  * xmlUCSIsBoxDrawing:
                   1125:  * @code: UCS code point
                   1126:  *
                   1127:  * Check whether the character is part of BoxDrawing UCS Block
                   1128:  *
                   1129:  * Returns 1 if true 0 otherwise
                   1130:  */
                   1131: int
                   1132: xmlUCSIsBoxDrawing(int code) {
                   1133:     return(((code >= 0x2500) && (code <= 0x257F)));
                   1134: }
                   1135: 
                   1136: /**
                   1137:  * xmlUCSIsBraillePatterns:
                   1138:  * @code: UCS code point
                   1139:  *
                   1140:  * Check whether the character is part of BraillePatterns UCS Block
                   1141:  *
                   1142:  * Returns 1 if true 0 otherwise
                   1143:  */
                   1144: int
                   1145: xmlUCSIsBraillePatterns(int code) {
                   1146:     return(((code >= 0x2800) && (code <= 0x28FF)));
                   1147: }
                   1148: 
                   1149: /**
                   1150:  * xmlUCSIsBuhid:
                   1151:  * @code: UCS code point
                   1152:  *
                   1153:  * Check whether the character is part of Buhid UCS Block
                   1154:  *
                   1155:  * Returns 1 if true 0 otherwise
                   1156:  */
                   1157: int
                   1158: xmlUCSIsBuhid(int code) {
                   1159:     return(((code >= 0x1740) && (code <= 0x175F)));
                   1160: }
                   1161: 
                   1162: /**
                   1163:  * xmlUCSIsByzantineMusicalSymbols:
                   1164:  * @code: UCS code point
                   1165:  *
                   1166:  * Check whether the character is part of ByzantineMusicalSymbols UCS Block
                   1167:  *
                   1168:  * Returns 1 if true 0 otherwise
                   1169:  */
                   1170: int
                   1171: xmlUCSIsByzantineMusicalSymbols(int code) {
                   1172:     return(((code >= 0x1D000) && (code <= 0x1D0FF)));
                   1173: }
                   1174: 
                   1175: /**
                   1176:  * xmlUCSIsCJKCompatibility:
                   1177:  * @code: UCS code point
                   1178:  *
                   1179:  * Check whether the character is part of CJKCompatibility UCS Block
                   1180:  *
                   1181:  * Returns 1 if true 0 otherwise
                   1182:  */
                   1183: int
                   1184: xmlUCSIsCJKCompatibility(int code) {
                   1185:     return(((code >= 0x3300) && (code <= 0x33FF)));
                   1186: }
                   1187: 
                   1188: /**
                   1189:  * xmlUCSIsCJKCompatibilityForms:
                   1190:  * @code: UCS code point
                   1191:  *
                   1192:  * Check whether the character is part of CJKCompatibilityForms UCS Block
                   1193:  *
                   1194:  * Returns 1 if true 0 otherwise
                   1195:  */
                   1196: int
                   1197: xmlUCSIsCJKCompatibilityForms(int code) {
                   1198:     return(((code >= 0xFE30) && (code <= 0xFE4F)));
                   1199: }
                   1200: 
                   1201: /**
                   1202:  * xmlUCSIsCJKCompatibilityIdeographs:
                   1203:  * @code: UCS code point
                   1204:  *
                   1205:  * Check whether the character is part of CJKCompatibilityIdeographs UCS Block
                   1206:  *
                   1207:  * Returns 1 if true 0 otherwise
                   1208:  */
                   1209: int
                   1210: xmlUCSIsCJKCompatibilityIdeographs(int code) {
                   1211:     return(((code >= 0xF900) && (code <= 0xFAFF)));
                   1212: }
                   1213: 
                   1214: /**
                   1215:  * xmlUCSIsCJKCompatibilityIdeographsSupplement:
                   1216:  * @code: UCS code point
                   1217:  *
                   1218:  * Check whether the character is part of CJKCompatibilityIdeographsSupplement UCS Block
                   1219:  *
                   1220:  * Returns 1 if true 0 otherwise
                   1221:  */
                   1222: int
                   1223: xmlUCSIsCJKCompatibilityIdeographsSupplement(int code) {
                   1224:     return(((code >= 0x2F800) && (code <= 0x2FA1F)));
                   1225: }
                   1226: 
                   1227: /**
                   1228:  * xmlUCSIsCJKRadicalsSupplement:
                   1229:  * @code: UCS code point
                   1230:  *
                   1231:  * Check whether the character is part of CJKRadicalsSupplement UCS Block
                   1232:  *
                   1233:  * Returns 1 if true 0 otherwise
                   1234:  */
                   1235: int
                   1236: xmlUCSIsCJKRadicalsSupplement(int code) {
                   1237:     return(((code >= 0x2E80) && (code <= 0x2EFF)));
                   1238: }
                   1239: 
                   1240: /**
                   1241:  * xmlUCSIsCJKSymbolsandPunctuation:
                   1242:  * @code: UCS code point
                   1243:  *
                   1244:  * Check whether the character is part of CJKSymbolsandPunctuation UCS Block
                   1245:  *
                   1246:  * Returns 1 if true 0 otherwise
                   1247:  */
                   1248: int
                   1249: xmlUCSIsCJKSymbolsandPunctuation(int code) {
                   1250:     return(((code >= 0x3000) && (code <= 0x303F)));
                   1251: }
                   1252: 
                   1253: /**
                   1254:  * xmlUCSIsCJKUnifiedIdeographs:
                   1255:  * @code: UCS code point
                   1256:  *
                   1257:  * Check whether the character is part of CJKUnifiedIdeographs UCS Block
                   1258:  *
                   1259:  * Returns 1 if true 0 otherwise
                   1260:  */
                   1261: int
                   1262: xmlUCSIsCJKUnifiedIdeographs(int code) {
                   1263:     return(((code >= 0x4E00) && (code <= 0x9FFF)));
                   1264: }
                   1265: 
                   1266: /**
                   1267:  * xmlUCSIsCJKUnifiedIdeographsExtensionA:
                   1268:  * @code: UCS code point
                   1269:  *
                   1270:  * Check whether the character is part of CJKUnifiedIdeographsExtensionA UCS Block
                   1271:  *
                   1272:  * Returns 1 if true 0 otherwise
                   1273:  */
                   1274: int
                   1275: xmlUCSIsCJKUnifiedIdeographsExtensionA(int code) {
                   1276:     return(((code >= 0x3400) && (code <= 0x4DBF)));
                   1277: }
                   1278: 
                   1279: /**
                   1280:  * xmlUCSIsCJKUnifiedIdeographsExtensionB:
                   1281:  * @code: UCS code point
                   1282:  *
                   1283:  * Check whether the character is part of CJKUnifiedIdeographsExtensionB UCS Block
                   1284:  *
                   1285:  * Returns 1 if true 0 otherwise
                   1286:  */
                   1287: int
                   1288: xmlUCSIsCJKUnifiedIdeographsExtensionB(int code) {
                   1289:     return(((code >= 0x20000) && (code <= 0x2A6DF)));
                   1290: }
                   1291: 
                   1292: /**
                   1293:  * xmlUCSIsCherokee:
                   1294:  * @code: UCS code point
                   1295:  *
                   1296:  * Check whether the character is part of Cherokee UCS Block
                   1297:  *
                   1298:  * Returns 1 if true 0 otherwise
                   1299:  */
                   1300: int
                   1301: xmlUCSIsCherokee(int code) {
                   1302:     return(((code >= 0x13A0) && (code <= 0x13FF)));
                   1303: }
                   1304: 
                   1305: /**
                   1306:  * xmlUCSIsCombiningDiacriticalMarks:
                   1307:  * @code: UCS code point
                   1308:  *
                   1309:  * Check whether the character is part of CombiningDiacriticalMarks UCS Block
                   1310:  *
                   1311:  * Returns 1 if true 0 otherwise
                   1312:  */
                   1313: int
                   1314: xmlUCSIsCombiningDiacriticalMarks(int code) {
                   1315:     return(((code >= 0x0300) && (code <= 0x036F)));
                   1316: }
                   1317: 
                   1318: /**
                   1319:  * xmlUCSIsCombiningDiacriticalMarksforSymbols:
                   1320:  * @code: UCS code point
                   1321:  *
                   1322:  * Check whether the character is part of CombiningDiacriticalMarksforSymbols UCS Block
                   1323:  *
                   1324:  * Returns 1 if true 0 otherwise
                   1325:  */
                   1326: int
                   1327: xmlUCSIsCombiningDiacriticalMarksforSymbols(int code) {
                   1328:     return(((code >= 0x20D0) && (code <= 0x20FF)));
                   1329: }
                   1330: 
                   1331: /**
                   1332:  * xmlUCSIsCombiningHalfMarks:
                   1333:  * @code: UCS code point
                   1334:  *
                   1335:  * Check whether the character is part of CombiningHalfMarks UCS Block
                   1336:  *
                   1337:  * Returns 1 if true 0 otherwise
                   1338:  */
                   1339: int
                   1340: xmlUCSIsCombiningHalfMarks(int code) {
                   1341:     return(((code >= 0xFE20) && (code <= 0xFE2F)));
                   1342: }
                   1343: 
                   1344: /**
                   1345:  * xmlUCSIsCombiningMarksforSymbols:
                   1346:  * @code: UCS code point
                   1347:  *
                   1348:  * Check whether the character is part of CombiningMarksforSymbols UCS Block
                   1349:  *
                   1350:  * Returns 1 if true 0 otherwise
                   1351:  */
                   1352: int
                   1353: xmlUCSIsCombiningMarksforSymbols(int code) {
                   1354:     return(((code >= 0x20D0) && (code <= 0x20FF)));
                   1355: }
                   1356: 
                   1357: /**
                   1358:  * xmlUCSIsControlPictures:
                   1359:  * @code: UCS code point
                   1360:  *
                   1361:  * Check whether the character is part of ControlPictures UCS Block
                   1362:  *
                   1363:  * Returns 1 if true 0 otherwise
                   1364:  */
                   1365: int
                   1366: xmlUCSIsControlPictures(int code) {
                   1367:     return(((code >= 0x2400) && (code <= 0x243F)));
                   1368: }
                   1369: 
                   1370: /**
                   1371:  * xmlUCSIsCurrencySymbols:
                   1372:  * @code: UCS code point
                   1373:  *
                   1374:  * Check whether the character is part of CurrencySymbols UCS Block
                   1375:  *
                   1376:  * Returns 1 if true 0 otherwise
                   1377:  */
                   1378: int
                   1379: xmlUCSIsCurrencySymbols(int code) {
                   1380:     return(((code >= 0x20A0) && (code <= 0x20CF)));
                   1381: }
                   1382: 
                   1383: /**
                   1384:  * xmlUCSIsCypriotSyllabary:
                   1385:  * @code: UCS code point
                   1386:  *
                   1387:  * Check whether the character is part of CypriotSyllabary UCS Block
                   1388:  *
                   1389:  * Returns 1 if true 0 otherwise
                   1390:  */
                   1391: int
                   1392: xmlUCSIsCypriotSyllabary(int code) {
                   1393:     return(((code >= 0x10800) && (code <= 0x1083F)));
                   1394: }
                   1395: 
                   1396: /**
                   1397:  * xmlUCSIsCyrillic:
                   1398:  * @code: UCS code point
                   1399:  *
                   1400:  * Check whether the character is part of Cyrillic UCS Block
                   1401:  *
                   1402:  * Returns 1 if true 0 otherwise
                   1403:  */
                   1404: int
                   1405: xmlUCSIsCyrillic(int code) {
                   1406:     return(((code >= 0x0400) && (code <= 0x04FF)));
                   1407: }
                   1408: 
                   1409: /**
                   1410:  * xmlUCSIsCyrillicSupplement:
                   1411:  * @code: UCS code point
                   1412:  *
                   1413:  * Check whether the character is part of CyrillicSupplement UCS Block
                   1414:  *
                   1415:  * Returns 1 if true 0 otherwise
                   1416:  */
                   1417: int
                   1418: xmlUCSIsCyrillicSupplement(int code) {
                   1419:     return(((code >= 0x0500) && (code <= 0x052F)));
                   1420: }
                   1421: 
                   1422: /**
                   1423:  * xmlUCSIsDeseret:
                   1424:  * @code: UCS code point
                   1425:  *
                   1426:  * Check whether the character is part of Deseret UCS Block
                   1427:  *
                   1428:  * Returns 1 if true 0 otherwise
                   1429:  */
                   1430: int
                   1431: xmlUCSIsDeseret(int code) {
                   1432:     return(((code >= 0x10400) && (code <= 0x1044F)));
                   1433: }
                   1434: 
                   1435: /**
                   1436:  * xmlUCSIsDevanagari:
                   1437:  * @code: UCS code point
                   1438:  *
                   1439:  * Check whether the character is part of Devanagari UCS Block
                   1440:  *
                   1441:  * Returns 1 if true 0 otherwise
                   1442:  */
                   1443: int
                   1444: xmlUCSIsDevanagari(int code) {
                   1445:     return(((code >= 0x0900) && (code <= 0x097F)));
                   1446: }
                   1447: 
                   1448: /**
                   1449:  * xmlUCSIsDingbats:
                   1450:  * @code: UCS code point
                   1451:  *
                   1452:  * Check whether the character is part of Dingbats UCS Block
                   1453:  *
                   1454:  * Returns 1 if true 0 otherwise
                   1455:  */
                   1456: int
                   1457: xmlUCSIsDingbats(int code) {
                   1458:     return(((code >= 0x2700) && (code <= 0x27BF)));
                   1459: }
                   1460: 
                   1461: /**
                   1462:  * xmlUCSIsEnclosedAlphanumerics:
                   1463:  * @code: UCS code point
                   1464:  *
                   1465:  * Check whether the character is part of EnclosedAlphanumerics UCS Block
                   1466:  *
                   1467:  * Returns 1 if true 0 otherwise
                   1468:  */
                   1469: int
                   1470: xmlUCSIsEnclosedAlphanumerics(int code) {
                   1471:     return(((code >= 0x2460) && (code <= 0x24FF)));
                   1472: }
                   1473: 
                   1474: /**
                   1475:  * xmlUCSIsEnclosedCJKLettersandMonths:
                   1476:  * @code: UCS code point
                   1477:  *
                   1478:  * Check whether the character is part of EnclosedCJKLettersandMonths UCS Block
                   1479:  *
                   1480:  * Returns 1 if true 0 otherwise
                   1481:  */
                   1482: int
                   1483: xmlUCSIsEnclosedCJKLettersandMonths(int code) {
                   1484:     return(((code >= 0x3200) && (code <= 0x32FF)));
                   1485: }
                   1486: 
                   1487: /**
                   1488:  * xmlUCSIsEthiopic:
                   1489:  * @code: UCS code point
                   1490:  *
                   1491:  * Check whether the character is part of Ethiopic UCS Block
                   1492:  *
                   1493:  * Returns 1 if true 0 otherwise
                   1494:  */
                   1495: int
                   1496: xmlUCSIsEthiopic(int code) {
                   1497:     return(((code >= 0x1200) && (code <= 0x137F)));
                   1498: }
                   1499: 
                   1500: /**
                   1501:  * xmlUCSIsGeneralPunctuation:
                   1502:  * @code: UCS code point
                   1503:  *
                   1504:  * Check whether the character is part of GeneralPunctuation UCS Block
                   1505:  *
                   1506:  * Returns 1 if true 0 otherwise
                   1507:  */
                   1508: int
                   1509: xmlUCSIsGeneralPunctuation(int code) {
                   1510:     return(((code >= 0x2000) && (code <= 0x206F)));
                   1511: }
                   1512: 
                   1513: /**
                   1514:  * xmlUCSIsGeometricShapes:
                   1515:  * @code: UCS code point
                   1516:  *
                   1517:  * Check whether the character is part of GeometricShapes UCS Block
                   1518:  *
                   1519:  * Returns 1 if true 0 otherwise
                   1520:  */
                   1521: int
                   1522: xmlUCSIsGeometricShapes(int code) {
                   1523:     return(((code >= 0x25A0) && (code <= 0x25FF)));
                   1524: }
                   1525: 
                   1526: /**
                   1527:  * xmlUCSIsGeorgian:
                   1528:  * @code: UCS code point
                   1529:  *
                   1530:  * Check whether the character is part of Georgian UCS Block
                   1531:  *
                   1532:  * Returns 1 if true 0 otherwise
                   1533:  */
                   1534: int
                   1535: xmlUCSIsGeorgian(int code) {
                   1536:     return(((code >= 0x10A0) && (code <= 0x10FF)));
                   1537: }
                   1538: 
                   1539: /**
                   1540:  * xmlUCSIsGothic:
                   1541:  * @code: UCS code point
                   1542:  *
                   1543:  * Check whether the character is part of Gothic UCS Block
                   1544:  *
                   1545:  * Returns 1 if true 0 otherwise
                   1546:  */
                   1547: int
                   1548: xmlUCSIsGothic(int code) {
                   1549:     return(((code >= 0x10330) && (code <= 0x1034F)));
                   1550: }
                   1551: 
                   1552: /**
                   1553:  * xmlUCSIsGreek:
                   1554:  * @code: UCS code point
                   1555:  *
                   1556:  * Check whether the character is part of Greek UCS Block
                   1557:  *
                   1558:  * Returns 1 if true 0 otherwise
                   1559:  */
                   1560: int
                   1561: xmlUCSIsGreek(int code) {
                   1562:     return(((code >= 0x0370) && (code <= 0x03FF)));
                   1563: }
                   1564: 
                   1565: /**
                   1566:  * xmlUCSIsGreekExtended:
                   1567:  * @code: UCS code point
                   1568:  *
                   1569:  * Check whether the character is part of GreekExtended UCS Block
                   1570:  *
                   1571:  * Returns 1 if true 0 otherwise
                   1572:  */
                   1573: int
                   1574: xmlUCSIsGreekExtended(int code) {
                   1575:     return(((code >= 0x1F00) && (code <= 0x1FFF)));
                   1576: }
                   1577: 
                   1578: /**
                   1579:  * xmlUCSIsGreekandCoptic:
                   1580:  * @code: UCS code point
                   1581:  *
                   1582:  * Check whether the character is part of GreekandCoptic UCS Block
                   1583:  *
                   1584:  * Returns 1 if true 0 otherwise
                   1585:  */
                   1586: int
                   1587: xmlUCSIsGreekandCoptic(int code) {
                   1588:     return(((code >= 0x0370) && (code <= 0x03FF)));
                   1589: }
                   1590: 
                   1591: /**
                   1592:  * xmlUCSIsGujarati:
                   1593:  * @code: UCS code point
                   1594:  *
                   1595:  * Check whether the character is part of Gujarati UCS Block
                   1596:  *
                   1597:  * Returns 1 if true 0 otherwise
                   1598:  */
                   1599: int
                   1600: xmlUCSIsGujarati(int code) {
                   1601:     return(((code >= 0x0A80) && (code <= 0x0AFF)));
                   1602: }
                   1603: 
                   1604: /**
                   1605:  * xmlUCSIsGurmukhi:
                   1606:  * @code: UCS code point
                   1607:  *
                   1608:  * Check whether the character is part of Gurmukhi UCS Block
                   1609:  *
                   1610:  * Returns 1 if true 0 otherwise
                   1611:  */
                   1612: int
                   1613: xmlUCSIsGurmukhi(int code) {
                   1614:     return(((code >= 0x0A00) && (code <= 0x0A7F)));
                   1615: }
                   1616: 
                   1617: /**
                   1618:  * xmlUCSIsHalfwidthandFullwidthForms:
                   1619:  * @code: UCS code point
                   1620:  *
                   1621:  * Check whether the character is part of HalfwidthandFullwidthForms UCS Block
                   1622:  *
                   1623:  * Returns 1 if true 0 otherwise
                   1624:  */
                   1625: int
                   1626: xmlUCSIsHalfwidthandFullwidthForms(int code) {
                   1627:     return(((code >= 0xFF00) && (code <= 0xFFEF)));
                   1628: }
                   1629: 
                   1630: /**
                   1631:  * xmlUCSIsHangulCompatibilityJamo:
                   1632:  * @code: UCS code point
                   1633:  *
                   1634:  * Check whether the character is part of HangulCompatibilityJamo UCS Block
                   1635:  *
                   1636:  * Returns 1 if true 0 otherwise
                   1637:  */
                   1638: int
                   1639: xmlUCSIsHangulCompatibilityJamo(int code) {
                   1640:     return(((code >= 0x3130) && (code <= 0x318F)));
                   1641: }
                   1642: 
                   1643: /**
                   1644:  * xmlUCSIsHangulJamo:
                   1645:  * @code: UCS code point
                   1646:  *
                   1647:  * Check whether the character is part of HangulJamo UCS Block
                   1648:  *
                   1649:  * Returns 1 if true 0 otherwise
                   1650:  */
                   1651: int
                   1652: xmlUCSIsHangulJamo(int code) {
                   1653:     return(((code >= 0x1100) && (code <= 0x11FF)));
                   1654: }
                   1655: 
                   1656: /**
                   1657:  * xmlUCSIsHangulSyllables:
                   1658:  * @code: UCS code point
                   1659:  *
                   1660:  * Check whether the character is part of HangulSyllables UCS Block
                   1661:  *
                   1662:  * Returns 1 if true 0 otherwise
                   1663:  */
                   1664: int
                   1665: xmlUCSIsHangulSyllables(int code) {
                   1666:     return(((code >= 0xAC00) && (code <= 0xD7AF)));
                   1667: }
                   1668: 
                   1669: /**
                   1670:  * xmlUCSIsHanunoo:
                   1671:  * @code: UCS code point
                   1672:  *
                   1673:  * Check whether the character is part of Hanunoo UCS Block
                   1674:  *
                   1675:  * Returns 1 if true 0 otherwise
                   1676:  */
                   1677: int
                   1678: xmlUCSIsHanunoo(int code) {
                   1679:     return(((code >= 0x1720) && (code <= 0x173F)));
                   1680: }
                   1681: 
                   1682: /**
                   1683:  * xmlUCSIsHebrew:
                   1684:  * @code: UCS code point
                   1685:  *
                   1686:  * Check whether the character is part of Hebrew UCS Block
                   1687:  *
                   1688:  * Returns 1 if true 0 otherwise
                   1689:  */
                   1690: int
                   1691: xmlUCSIsHebrew(int code) {
                   1692:     return(((code >= 0x0590) && (code <= 0x05FF)));
                   1693: }
                   1694: 
                   1695: /**
                   1696:  * xmlUCSIsHighPrivateUseSurrogates:
                   1697:  * @code: UCS code point
                   1698:  *
                   1699:  * Check whether the character is part of HighPrivateUseSurrogates UCS Block
                   1700:  *
                   1701:  * Returns 1 if true 0 otherwise
                   1702:  */
                   1703: int
                   1704: xmlUCSIsHighPrivateUseSurrogates(int code) {
                   1705:     return(((code >= 0xDB80) && (code <= 0xDBFF)));
                   1706: }
                   1707: 
                   1708: /**
                   1709:  * xmlUCSIsHighSurrogates:
                   1710:  * @code: UCS code point
                   1711:  *
                   1712:  * Check whether the character is part of HighSurrogates UCS Block
                   1713:  *
                   1714:  * Returns 1 if true 0 otherwise
                   1715:  */
                   1716: int
                   1717: xmlUCSIsHighSurrogates(int code) {
                   1718:     return(((code >= 0xD800) && (code <= 0xDB7F)));
                   1719: }
                   1720: 
                   1721: /**
                   1722:  * xmlUCSIsHiragana:
                   1723:  * @code: UCS code point
                   1724:  *
                   1725:  * Check whether the character is part of Hiragana UCS Block
                   1726:  *
                   1727:  * Returns 1 if true 0 otherwise
                   1728:  */
                   1729: int
                   1730: xmlUCSIsHiragana(int code) {
                   1731:     return(((code >= 0x3040) && (code <= 0x309F)));
                   1732: }
                   1733: 
                   1734: /**
                   1735:  * xmlUCSIsIPAExtensions:
                   1736:  * @code: UCS code point
                   1737:  *
                   1738:  * Check whether the character is part of IPAExtensions UCS Block
                   1739:  *
                   1740:  * Returns 1 if true 0 otherwise
                   1741:  */
                   1742: int
                   1743: xmlUCSIsIPAExtensions(int code) {
                   1744:     return(((code >= 0x0250) && (code <= 0x02AF)));
                   1745: }
                   1746: 
                   1747: /**
                   1748:  * xmlUCSIsIdeographicDescriptionCharacters:
                   1749:  * @code: UCS code point
                   1750:  *
                   1751:  * Check whether the character is part of IdeographicDescriptionCharacters UCS Block
                   1752:  *
                   1753:  * Returns 1 if true 0 otherwise
                   1754:  */
                   1755: int
                   1756: xmlUCSIsIdeographicDescriptionCharacters(int code) {
                   1757:     return(((code >= 0x2FF0) && (code <= 0x2FFF)));
                   1758: }
                   1759: 
                   1760: /**
                   1761:  * xmlUCSIsKanbun:
                   1762:  * @code: UCS code point
                   1763:  *
                   1764:  * Check whether the character is part of Kanbun UCS Block
                   1765:  *
                   1766:  * Returns 1 if true 0 otherwise
                   1767:  */
                   1768: int
                   1769: xmlUCSIsKanbun(int code) {
                   1770:     return(((code >= 0x3190) && (code <= 0x319F)));
                   1771: }
                   1772: 
                   1773: /**
                   1774:  * xmlUCSIsKangxiRadicals:
                   1775:  * @code: UCS code point
                   1776:  *
                   1777:  * Check whether the character is part of KangxiRadicals UCS Block
                   1778:  *
                   1779:  * Returns 1 if true 0 otherwise
                   1780:  */
                   1781: int
                   1782: xmlUCSIsKangxiRadicals(int code) {
                   1783:     return(((code >= 0x2F00) && (code <= 0x2FDF)));
                   1784: }
                   1785: 
                   1786: /**
                   1787:  * xmlUCSIsKannada:
                   1788:  * @code: UCS code point
                   1789:  *
                   1790:  * Check whether the character is part of Kannada UCS Block
                   1791:  *
                   1792:  * Returns 1 if true 0 otherwise
                   1793:  */
                   1794: int
                   1795: xmlUCSIsKannada(int code) {
                   1796:     return(((code >= 0x0C80) && (code <= 0x0CFF)));
                   1797: }
                   1798: 
                   1799: /**
                   1800:  * xmlUCSIsKatakana:
                   1801:  * @code: UCS code point
                   1802:  *
                   1803:  * Check whether the character is part of Katakana UCS Block
                   1804:  *
                   1805:  * Returns 1 if true 0 otherwise
                   1806:  */
                   1807: int
                   1808: xmlUCSIsKatakana(int code) {
                   1809:     return(((code >= 0x30A0) && (code <= 0x30FF)));
                   1810: }
                   1811: 
                   1812: /**
                   1813:  * xmlUCSIsKatakanaPhoneticExtensions:
                   1814:  * @code: UCS code point
                   1815:  *
                   1816:  * Check whether the character is part of KatakanaPhoneticExtensions UCS Block
                   1817:  *
                   1818:  * Returns 1 if true 0 otherwise
                   1819:  */
                   1820: int
                   1821: xmlUCSIsKatakanaPhoneticExtensions(int code) {
                   1822:     return(((code >= 0x31F0) && (code <= 0x31FF)));
                   1823: }
                   1824: 
                   1825: /**
                   1826:  * xmlUCSIsKhmer:
                   1827:  * @code: UCS code point
                   1828:  *
                   1829:  * Check whether the character is part of Khmer UCS Block
                   1830:  *
                   1831:  * Returns 1 if true 0 otherwise
                   1832:  */
                   1833: int
                   1834: xmlUCSIsKhmer(int code) {
                   1835:     return(((code >= 0x1780) && (code <= 0x17FF)));
                   1836: }
                   1837: 
                   1838: /**
                   1839:  * xmlUCSIsKhmerSymbols:
                   1840:  * @code: UCS code point
                   1841:  *
                   1842:  * Check whether the character is part of KhmerSymbols UCS Block
                   1843:  *
                   1844:  * Returns 1 if true 0 otherwise
                   1845:  */
                   1846: int
                   1847: xmlUCSIsKhmerSymbols(int code) {
                   1848:     return(((code >= 0x19E0) && (code <= 0x19FF)));
                   1849: }
                   1850: 
                   1851: /**
                   1852:  * xmlUCSIsLao:
                   1853:  * @code: UCS code point
                   1854:  *
                   1855:  * Check whether the character is part of Lao UCS Block
                   1856:  *
                   1857:  * Returns 1 if true 0 otherwise
                   1858:  */
                   1859: int
                   1860: xmlUCSIsLao(int code) {
                   1861:     return(((code >= 0x0E80) && (code <= 0x0EFF)));
                   1862: }
                   1863: 
                   1864: /**
                   1865:  * xmlUCSIsLatin1Supplement:
                   1866:  * @code: UCS code point
                   1867:  *
                   1868:  * Check whether the character is part of Latin-1Supplement UCS Block
                   1869:  *
                   1870:  * Returns 1 if true 0 otherwise
                   1871:  */
                   1872: int
                   1873: xmlUCSIsLatin1Supplement(int code) {
                   1874:     return(((code >= 0x0080) && (code <= 0x00FF)));
                   1875: }
                   1876: 
                   1877: /**
                   1878:  * xmlUCSIsLatinExtendedA:
                   1879:  * @code: UCS code point
                   1880:  *
                   1881:  * Check whether the character is part of LatinExtended-A UCS Block
                   1882:  *
                   1883:  * Returns 1 if true 0 otherwise
                   1884:  */
                   1885: int
                   1886: xmlUCSIsLatinExtendedA(int code) {
                   1887:     return(((code >= 0x0100) && (code <= 0x017F)));
                   1888: }
                   1889: 
                   1890: /**
                   1891:  * xmlUCSIsLatinExtendedB:
                   1892:  * @code: UCS code point
                   1893:  *
                   1894:  * Check whether the character is part of LatinExtended-B UCS Block
                   1895:  *
                   1896:  * Returns 1 if true 0 otherwise
                   1897:  */
                   1898: int
                   1899: xmlUCSIsLatinExtendedB(int code) {
                   1900:     return(((code >= 0x0180) && (code <= 0x024F)));
                   1901: }
                   1902: 
                   1903: /**
                   1904:  * xmlUCSIsLatinExtendedAdditional:
                   1905:  * @code: UCS code point
                   1906:  *
                   1907:  * Check whether the character is part of LatinExtendedAdditional UCS Block
                   1908:  *
                   1909:  * Returns 1 if true 0 otherwise
                   1910:  */
                   1911: int
                   1912: xmlUCSIsLatinExtendedAdditional(int code) {
                   1913:     return(((code >= 0x1E00) && (code <= 0x1EFF)));
                   1914: }
                   1915: 
                   1916: /**
                   1917:  * xmlUCSIsLetterlikeSymbols:
                   1918:  * @code: UCS code point
                   1919:  *
                   1920:  * Check whether the character is part of LetterlikeSymbols UCS Block
                   1921:  *
                   1922:  * Returns 1 if true 0 otherwise
                   1923:  */
                   1924: int
                   1925: xmlUCSIsLetterlikeSymbols(int code) {
                   1926:     return(((code >= 0x2100) && (code <= 0x214F)));
                   1927: }
                   1928: 
                   1929: /**
                   1930:  * xmlUCSIsLimbu:
                   1931:  * @code: UCS code point
                   1932:  *
                   1933:  * Check whether the character is part of Limbu UCS Block
                   1934:  *
                   1935:  * Returns 1 if true 0 otherwise
                   1936:  */
                   1937: int
                   1938: xmlUCSIsLimbu(int code) {
                   1939:     return(((code >= 0x1900) && (code <= 0x194F)));
                   1940: }
                   1941: 
                   1942: /**
                   1943:  * xmlUCSIsLinearBIdeograms:
                   1944:  * @code: UCS code point
                   1945:  *
                   1946:  * Check whether the character is part of LinearBIdeograms UCS Block
                   1947:  *
                   1948:  * Returns 1 if true 0 otherwise
                   1949:  */
                   1950: int
                   1951: xmlUCSIsLinearBIdeograms(int code) {
                   1952:     return(((code >= 0x10080) && (code <= 0x100FF)));
                   1953: }
                   1954: 
                   1955: /**
                   1956:  * xmlUCSIsLinearBSyllabary:
                   1957:  * @code: UCS code point
                   1958:  *
                   1959:  * Check whether the character is part of LinearBSyllabary UCS Block
                   1960:  *
                   1961:  * Returns 1 if true 0 otherwise
                   1962:  */
                   1963: int
                   1964: xmlUCSIsLinearBSyllabary(int code) {
                   1965:     return(((code >= 0x10000) && (code <= 0x1007F)));
                   1966: }
                   1967: 
                   1968: /**
                   1969:  * xmlUCSIsLowSurrogates:
                   1970:  * @code: UCS code point
                   1971:  *
                   1972:  * Check whether the character is part of LowSurrogates UCS Block
                   1973:  *
                   1974:  * Returns 1 if true 0 otherwise
                   1975:  */
                   1976: int
                   1977: xmlUCSIsLowSurrogates(int code) {
                   1978:     return(((code >= 0xDC00) && (code <= 0xDFFF)));
                   1979: }
                   1980: 
                   1981: /**
                   1982:  * xmlUCSIsMalayalam:
                   1983:  * @code: UCS code point
                   1984:  *
                   1985:  * Check whether the character is part of Malayalam UCS Block
                   1986:  *
                   1987:  * Returns 1 if true 0 otherwise
                   1988:  */
                   1989: int
                   1990: xmlUCSIsMalayalam(int code) {
                   1991:     return(((code >= 0x0D00) && (code <= 0x0D7F)));
                   1992: }
                   1993: 
                   1994: /**
                   1995:  * xmlUCSIsMathematicalAlphanumericSymbols:
                   1996:  * @code: UCS code point
                   1997:  *
                   1998:  * Check whether the character is part of MathematicalAlphanumericSymbols UCS Block
                   1999:  *
                   2000:  * Returns 1 if true 0 otherwise
                   2001:  */
                   2002: int
                   2003: xmlUCSIsMathematicalAlphanumericSymbols(int code) {
                   2004:     return(((code >= 0x1D400) && (code <= 0x1D7FF)));
                   2005: }
                   2006: 
                   2007: /**
                   2008:  * xmlUCSIsMathematicalOperators:
                   2009:  * @code: UCS code point
                   2010:  *
                   2011:  * Check whether the character is part of MathematicalOperators UCS Block
                   2012:  *
                   2013:  * Returns 1 if true 0 otherwise
                   2014:  */
                   2015: int
                   2016: xmlUCSIsMathematicalOperators(int code) {
                   2017:     return(((code >= 0x2200) && (code <= 0x22FF)));
                   2018: }
                   2019: 
                   2020: /**
                   2021:  * xmlUCSIsMiscellaneousMathematicalSymbolsA:
                   2022:  * @code: UCS code point
                   2023:  *
                   2024:  * Check whether the character is part of MiscellaneousMathematicalSymbols-A UCS Block
                   2025:  *
                   2026:  * Returns 1 if true 0 otherwise
                   2027:  */
                   2028: int
                   2029: xmlUCSIsMiscellaneousMathematicalSymbolsA(int code) {
                   2030:     return(((code >= 0x27C0) && (code <= 0x27EF)));
                   2031: }
                   2032: 
                   2033: /**
                   2034:  * xmlUCSIsMiscellaneousMathematicalSymbolsB:
                   2035:  * @code: UCS code point
                   2036:  *
                   2037:  * Check whether the character is part of MiscellaneousMathematicalSymbols-B UCS Block
                   2038:  *
                   2039:  * Returns 1 if true 0 otherwise
                   2040:  */
                   2041: int
                   2042: xmlUCSIsMiscellaneousMathematicalSymbolsB(int code) {
                   2043:     return(((code >= 0x2980) && (code <= 0x29FF)));
                   2044: }
                   2045: 
                   2046: /**
                   2047:  * xmlUCSIsMiscellaneousSymbols:
                   2048:  * @code: UCS code point
                   2049:  *
                   2050:  * Check whether the character is part of MiscellaneousSymbols UCS Block
                   2051:  *
                   2052:  * Returns 1 if true 0 otherwise
                   2053:  */
                   2054: int
                   2055: xmlUCSIsMiscellaneousSymbols(int code) {
                   2056:     return(((code >= 0x2600) && (code <= 0x26FF)));
                   2057: }
                   2058: 
                   2059: /**
                   2060:  * xmlUCSIsMiscellaneousSymbolsandArrows:
                   2061:  * @code: UCS code point
                   2062:  *
                   2063:  * Check whether the character is part of MiscellaneousSymbolsandArrows UCS Block
                   2064:  *
                   2065:  * Returns 1 if true 0 otherwise
                   2066:  */
                   2067: int
                   2068: xmlUCSIsMiscellaneousSymbolsandArrows(int code) {
                   2069:     return(((code >= 0x2B00) && (code <= 0x2BFF)));
                   2070: }
                   2071: 
                   2072: /**
                   2073:  * xmlUCSIsMiscellaneousTechnical:
                   2074:  * @code: UCS code point
                   2075:  *
                   2076:  * Check whether the character is part of MiscellaneousTechnical UCS Block
                   2077:  *
                   2078:  * Returns 1 if true 0 otherwise
                   2079:  */
                   2080: int
                   2081: xmlUCSIsMiscellaneousTechnical(int code) {
                   2082:     return(((code >= 0x2300) && (code <= 0x23FF)));
                   2083: }
                   2084: 
                   2085: /**
                   2086:  * xmlUCSIsMongolian:
                   2087:  * @code: UCS code point
                   2088:  *
                   2089:  * Check whether the character is part of Mongolian UCS Block
                   2090:  *
                   2091:  * Returns 1 if true 0 otherwise
                   2092:  */
                   2093: int
                   2094: xmlUCSIsMongolian(int code) {
                   2095:     return(((code >= 0x1800) && (code <= 0x18AF)));
                   2096: }
                   2097: 
                   2098: /**
                   2099:  * xmlUCSIsMusicalSymbols:
                   2100:  * @code: UCS code point
                   2101:  *
                   2102:  * Check whether the character is part of MusicalSymbols UCS Block
                   2103:  *
                   2104:  * Returns 1 if true 0 otherwise
                   2105:  */
                   2106: int
                   2107: xmlUCSIsMusicalSymbols(int code) {
                   2108:     return(((code >= 0x1D100) && (code <= 0x1D1FF)));
                   2109: }
                   2110: 
                   2111: /**
                   2112:  * xmlUCSIsMyanmar:
                   2113:  * @code: UCS code point
                   2114:  *
                   2115:  * Check whether the character is part of Myanmar UCS Block
                   2116:  *
                   2117:  * Returns 1 if true 0 otherwise
                   2118:  */
                   2119: int
                   2120: xmlUCSIsMyanmar(int code) {
                   2121:     return(((code >= 0x1000) && (code <= 0x109F)));
                   2122: }
                   2123: 
                   2124: /**
                   2125:  * xmlUCSIsNumberForms:
                   2126:  * @code: UCS code point
                   2127:  *
                   2128:  * Check whether the character is part of NumberForms UCS Block
                   2129:  *
                   2130:  * Returns 1 if true 0 otherwise
                   2131:  */
                   2132: int
                   2133: xmlUCSIsNumberForms(int code) {
                   2134:     return(((code >= 0x2150) && (code <= 0x218F)));
                   2135: }
                   2136: 
                   2137: /**
                   2138:  * xmlUCSIsOgham:
                   2139:  * @code: UCS code point
                   2140:  *
                   2141:  * Check whether the character is part of Ogham UCS Block
                   2142:  *
                   2143:  * Returns 1 if true 0 otherwise
                   2144:  */
                   2145: int
                   2146: xmlUCSIsOgham(int code) {
                   2147:     return(((code >= 0x1680) && (code <= 0x169F)));
                   2148: }
                   2149: 
                   2150: /**
                   2151:  * xmlUCSIsOldItalic:
                   2152:  * @code: UCS code point
                   2153:  *
                   2154:  * Check whether the character is part of OldItalic UCS Block
                   2155:  *
                   2156:  * Returns 1 if true 0 otherwise
                   2157:  */
                   2158: int
                   2159: xmlUCSIsOldItalic(int code) {
                   2160:     return(((code >= 0x10300) && (code <= 0x1032F)));
                   2161: }
                   2162: 
                   2163: /**
                   2164:  * xmlUCSIsOpticalCharacterRecognition:
                   2165:  * @code: UCS code point
                   2166:  *
                   2167:  * Check whether the character is part of OpticalCharacterRecognition UCS Block
                   2168:  *
                   2169:  * Returns 1 if true 0 otherwise
                   2170:  */
                   2171: int
                   2172: xmlUCSIsOpticalCharacterRecognition(int code) {
                   2173:     return(((code >= 0x2440) && (code <= 0x245F)));
                   2174: }
                   2175: 
                   2176: /**
                   2177:  * xmlUCSIsOriya:
                   2178:  * @code: UCS code point
                   2179:  *
                   2180:  * Check whether the character is part of Oriya UCS Block
                   2181:  *
                   2182:  * Returns 1 if true 0 otherwise
                   2183:  */
                   2184: int
                   2185: xmlUCSIsOriya(int code) {
                   2186:     return(((code >= 0x0B00) && (code <= 0x0B7F)));
                   2187: }
                   2188: 
                   2189: /**
                   2190:  * xmlUCSIsOsmanya:
                   2191:  * @code: UCS code point
                   2192:  *
                   2193:  * Check whether the character is part of Osmanya UCS Block
                   2194:  *
                   2195:  * Returns 1 if true 0 otherwise
                   2196:  */
                   2197: int
                   2198: xmlUCSIsOsmanya(int code) {
                   2199:     return(((code >= 0x10480) && (code <= 0x104AF)));
                   2200: }
                   2201: 
                   2202: /**
                   2203:  * xmlUCSIsPhoneticExtensions:
                   2204:  * @code: UCS code point
                   2205:  *
                   2206:  * Check whether the character is part of PhoneticExtensions UCS Block
                   2207:  *
                   2208:  * Returns 1 if true 0 otherwise
                   2209:  */
                   2210: int
                   2211: xmlUCSIsPhoneticExtensions(int code) {
                   2212:     return(((code >= 0x1D00) && (code <= 0x1D7F)));
                   2213: }
                   2214: 
                   2215: /**
                   2216:  * xmlUCSIsPrivateUse:
                   2217:  * @code: UCS code point
                   2218:  *
                   2219:  * Check whether the character is part of PrivateUse UCS Block
                   2220:  *
                   2221:  * Returns 1 if true 0 otherwise
                   2222:  */
                   2223: int
                   2224: xmlUCSIsPrivateUse(int code) {
                   2225:     return(((code >= 0xE000) && (code <= 0xF8FF)) ||
                   2226:            ((code >= 0xF0000) && (code <= 0xFFFFF)) ||
                   2227:            ((code >= 0x100000) && (code <= 0x10FFFF)));
                   2228: }
                   2229: 
                   2230: /**
                   2231:  * xmlUCSIsPrivateUseArea:
                   2232:  * @code: UCS code point
                   2233:  *
                   2234:  * Check whether the character is part of PrivateUseArea UCS Block
                   2235:  *
                   2236:  * Returns 1 if true 0 otherwise
                   2237:  */
                   2238: int
                   2239: xmlUCSIsPrivateUseArea(int code) {
                   2240:     return(((code >= 0xE000) && (code <= 0xF8FF)));
                   2241: }
                   2242: 
                   2243: /**
                   2244:  * xmlUCSIsRunic:
                   2245:  * @code: UCS code point
                   2246:  *
                   2247:  * Check whether the character is part of Runic UCS Block
                   2248:  *
                   2249:  * Returns 1 if true 0 otherwise
                   2250:  */
                   2251: int
                   2252: xmlUCSIsRunic(int code) {
                   2253:     return(((code >= 0x16A0) && (code <= 0x16FF)));
                   2254: }
                   2255: 
                   2256: /**
                   2257:  * xmlUCSIsShavian:
                   2258:  * @code: UCS code point
                   2259:  *
                   2260:  * Check whether the character is part of Shavian UCS Block
                   2261:  *
                   2262:  * Returns 1 if true 0 otherwise
                   2263:  */
                   2264: int
                   2265: xmlUCSIsShavian(int code) {
                   2266:     return(((code >= 0x10450) && (code <= 0x1047F)));
                   2267: }
                   2268: 
                   2269: /**
                   2270:  * xmlUCSIsSinhala:
                   2271:  * @code: UCS code point
                   2272:  *
                   2273:  * Check whether the character is part of Sinhala UCS Block
                   2274:  *
                   2275:  * Returns 1 if true 0 otherwise
                   2276:  */
                   2277: int
                   2278: xmlUCSIsSinhala(int code) {
                   2279:     return(((code >= 0x0D80) && (code <= 0x0DFF)));
                   2280: }
                   2281: 
                   2282: /**
                   2283:  * xmlUCSIsSmallFormVariants:
                   2284:  * @code: UCS code point
                   2285:  *
                   2286:  * Check whether the character is part of SmallFormVariants UCS Block
                   2287:  *
                   2288:  * Returns 1 if true 0 otherwise
                   2289:  */
                   2290: int
                   2291: xmlUCSIsSmallFormVariants(int code) {
                   2292:     return(((code >= 0xFE50) && (code <= 0xFE6F)));
                   2293: }
                   2294: 
                   2295: /**
                   2296:  * xmlUCSIsSpacingModifierLetters:
                   2297:  * @code: UCS code point
                   2298:  *
                   2299:  * Check whether the character is part of SpacingModifierLetters UCS Block
                   2300:  *
                   2301:  * Returns 1 if true 0 otherwise
                   2302:  */
                   2303: int
                   2304: xmlUCSIsSpacingModifierLetters(int code) {
                   2305:     return(((code >= 0x02B0) && (code <= 0x02FF)));
                   2306: }
                   2307: 
                   2308: /**
                   2309:  * xmlUCSIsSpecials:
                   2310:  * @code: UCS code point
                   2311:  *
                   2312:  * Check whether the character is part of Specials UCS Block
                   2313:  *
                   2314:  * Returns 1 if true 0 otherwise
                   2315:  */
                   2316: int
                   2317: xmlUCSIsSpecials(int code) {
                   2318:     return(((code >= 0xFFF0) && (code <= 0xFFFF)));
                   2319: }
                   2320: 
                   2321: /**
                   2322:  * xmlUCSIsSuperscriptsandSubscripts:
                   2323:  * @code: UCS code point
                   2324:  *
                   2325:  * Check whether the character is part of SuperscriptsandSubscripts UCS Block
                   2326:  *
                   2327:  * Returns 1 if true 0 otherwise
                   2328:  */
                   2329: int
                   2330: xmlUCSIsSuperscriptsandSubscripts(int code) {
                   2331:     return(((code >= 0x2070) && (code <= 0x209F)));
                   2332: }
                   2333: 
                   2334: /**
                   2335:  * xmlUCSIsSupplementalArrowsA:
                   2336:  * @code: UCS code point
                   2337:  *
                   2338:  * Check whether the character is part of SupplementalArrows-A UCS Block
                   2339:  *
                   2340:  * Returns 1 if true 0 otherwise
                   2341:  */
                   2342: int
                   2343: xmlUCSIsSupplementalArrowsA(int code) {
                   2344:     return(((code >= 0x27F0) && (code <= 0x27FF)));
                   2345: }
                   2346: 
                   2347: /**
                   2348:  * xmlUCSIsSupplementalArrowsB:
                   2349:  * @code: UCS code point
                   2350:  *
                   2351:  * Check whether the character is part of SupplementalArrows-B UCS Block
                   2352:  *
                   2353:  * Returns 1 if true 0 otherwise
                   2354:  */
                   2355: int
                   2356: xmlUCSIsSupplementalArrowsB(int code) {
                   2357:     return(((code >= 0x2900) && (code <= 0x297F)));
                   2358: }
                   2359: 
                   2360: /**
                   2361:  * xmlUCSIsSupplementalMathematicalOperators:
                   2362:  * @code: UCS code point
                   2363:  *
                   2364:  * Check whether the character is part of SupplementalMathematicalOperators UCS Block
                   2365:  *
                   2366:  * Returns 1 if true 0 otherwise
                   2367:  */
                   2368: int
                   2369: xmlUCSIsSupplementalMathematicalOperators(int code) {
                   2370:     return(((code >= 0x2A00) && (code <= 0x2AFF)));
                   2371: }
                   2372: 
                   2373: /**
                   2374:  * xmlUCSIsSupplementaryPrivateUseAreaA:
                   2375:  * @code: UCS code point
                   2376:  *
                   2377:  * Check whether the character is part of SupplementaryPrivateUseArea-A UCS Block
                   2378:  *
                   2379:  * Returns 1 if true 0 otherwise
                   2380:  */
                   2381: int
                   2382: xmlUCSIsSupplementaryPrivateUseAreaA(int code) {
                   2383:     return(((code >= 0xF0000) && (code <= 0xFFFFF)));
                   2384: }
                   2385: 
                   2386: /**
                   2387:  * xmlUCSIsSupplementaryPrivateUseAreaB:
                   2388:  * @code: UCS code point
                   2389:  *
                   2390:  * Check whether the character is part of SupplementaryPrivateUseArea-B UCS Block
                   2391:  *
                   2392:  * Returns 1 if true 0 otherwise
                   2393:  */
                   2394: int
                   2395: xmlUCSIsSupplementaryPrivateUseAreaB(int code) {
                   2396:     return(((code >= 0x100000) && (code <= 0x10FFFF)));
                   2397: }
                   2398: 
                   2399: /**
                   2400:  * xmlUCSIsSyriac:
                   2401:  * @code: UCS code point
                   2402:  *
                   2403:  * Check whether the character is part of Syriac UCS Block
                   2404:  *
                   2405:  * Returns 1 if true 0 otherwise
                   2406:  */
                   2407: int
                   2408: xmlUCSIsSyriac(int code) {
                   2409:     return(((code >= 0x0700) && (code <= 0x074F)));
                   2410: }
                   2411: 
                   2412: /**
                   2413:  * xmlUCSIsTagalog:
                   2414:  * @code: UCS code point
                   2415:  *
                   2416:  * Check whether the character is part of Tagalog UCS Block
                   2417:  *
                   2418:  * Returns 1 if true 0 otherwise
                   2419:  */
                   2420: int
                   2421: xmlUCSIsTagalog(int code) {
                   2422:     return(((code >= 0x1700) && (code <= 0x171F)));
                   2423: }
                   2424: 
                   2425: /**
                   2426:  * xmlUCSIsTagbanwa:
                   2427:  * @code: UCS code point
                   2428:  *
                   2429:  * Check whether the character is part of Tagbanwa UCS Block
                   2430:  *
                   2431:  * Returns 1 if true 0 otherwise
                   2432:  */
                   2433: int
                   2434: xmlUCSIsTagbanwa(int code) {
                   2435:     return(((code >= 0x1760) && (code <= 0x177F)));
                   2436: }
                   2437: 
                   2438: /**
                   2439:  * xmlUCSIsTags:
                   2440:  * @code: UCS code point
                   2441:  *
                   2442:  * Check whether the character is part of Tags UCS Block
                   2443:  *
                   2444:  * Returns 1 if true 0 otherwise
                   2445:  */
                   2446: int
                   2447: xmlUCSIsTags(int code) {
                   2448:     return(((code >= 0xE0000) && (code <= 0xE007F)));
                   2449: }
                   2450: 
                   2451: /**
                   2452:  * xmlUCSIsTaiLe:
                   2453:  * @code: UCS code point
                   2454:  *
                   2455:  * Check whether the character is part of TaiLe UCS Block
                   2456:  *
                   2457:  * Returns 1 if true 0 otherwise
                   2458:  */
                   2459: int
                   2460: xmlUCSIsTaiLe(int code) {
                   2461:     return(((code >= 0x1950) && (code <= 0x197F)));
                   2462: }
                   2463: 
                   2464: /**
                   2465:  * xmlUCSIsTaiXuanJingSymbols:
                   2466:  * @code: UCS code point
                   2467:  *
                   2468:  * Check whether the character is part of TaiXuanJingSymbols UCS Block
                   2469:  *
                   2470:  * Returns 1 if true 0 otherwise
                   2471:  */
                   2472: int
                   2473: xmlUCSIsTaiXuanJingSymbols(int code) {
                   2474:     return(((code >= 0x1D300) && (code <= 0x1D35F)));
                   2475: }
                   2476: 
                   2477: /**
                   2478:  * xmlUCSIsTamil:
                   2479:  * @code: UCS code point
                   2480:  *
                   2481:  * Check whether the character is part of Tamil UCS Block
                   2482:  *
                   2483:  * Returns 1 if true 0 otherwise
                   2484:  */
                   2485: int
                   2486: xmlUCSIsTamil(int code) {
                   2487:     return(((code >= 0x0B80) && (code <= 0x0BFF)));
                   2488: }
                   2489: 
                   2490: /**
                   2491:  * xmlUCSIsTelugu:
                   2492:  * @code: UCS code point
                   2493:  *
                   2494:  * Check whether the character is part of Telugu UCS Block
                   2495:  *
                   2496:  * Returns 1 if true 0 otherwise
                   2497:  */
                   2498: int
                   2499: xmlUCSIsTelugu(int code) {
                   2500:     return(((code >= 0x0C00) && (code <= 0x0C7F)));
                   2501: }
                   2502: 
                   2503: /**
                   2504:  * xmlUCSIsThaana:
                   2505:  * @code: UCS code point
                   2506:  *
                   2507:  * Check whether the character is part of Thaana UCS Block
                   2508:  *
                   2509:  * Returns 1 if true 0 otherwise
                   2510:  */
                   2511: int
                   2512: xmlUCSIsThaana(int code) {
                   2513:     return(((code >= 0x0780) && (code <= 0x07BF)));
                   2514: }
                   2515: 
                   2516: /**
                   2517:  * xmlUCSIsThai:
                   2518:  * @code: UCS code point
                   2519:  *
                   2520:  * Check whether the character is part of Thai UCS Block
                   2521:  *
                   2522:  * Returns 1 if true 0 otherwise
                   2523:  */
                   2524: int
                   2525: xmlUCSIsThai(int code) {
                   2526:     return(((code >= 0x0E00) && (code <= 0x0E7F)));
                   2527: }
                   2528: 
                   2529: /**
                   2530:  * xmlUCSIsTibetan:
                   2531:  * @code: UCS code point
                   2532:  *
                   2533:  * Check whether the character is part of Tibetan UCS Block
                   2534:  *
                   2535:  * Returns 1 if true 0 otherwise
                   2536:  */
                   2537: int
                   2538: xmlUCSIsTibetan(int code) {
                   2539:     return(((code >= 0x0F00) && (code <= 0x0FFF)));
                   2540: }
                   2541: 
                   2542: /**
                   2543:  * xmlUCSIsUgaritic:
                   2544:  * @code: UCS code point
                   2545:  *
                   2546:  * Check whether the character is part of Ugaritic UCS Block
                   2547:  *
                   2548:  * Returns 1 if true 0 otherwise
                   2549:  */
                   2550: int
                   2551: xmlUCSIsUgaritic(int code) {
                   2552:     return(((code >= 0x10380) && (code <= 0x1039F)));
                   2553: }
                   2554: 
                   2555: /**
                   2556:  * xmlUCSIsUnifiedCanadianAboriginalSyllabics:
                   2557:  * @code: UCS code point
                   2558:  *
                   2559:  * Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block
                   2560:  *
                   2561:  * Returns 1 if true 0 otherwise
                   2562:  */
                   2563: int
                   2564: xmlUCSIsUnifiedCanadianAboriginalSyllabics(int code) {
                   2565:     return(((code >= 0x1400) && (code <= 0x167F)));
                   2566: }
                   2567: 
                   2568: /**
                   2569:  * xmlUCSIsVariationSelectors:
                   2570:  * @code: UCS code point
                   2571:  *
                   2572:  * Check whether the character is part of VariationSelectors UCS Block
                   2573:  *
                   2574:  * Returns 1 if true 0 otherwise
                   2575:  */
                   2576: int
                   2577: xmlUCSIsVariationSelectors(int code) {
                   2578:     return(((code >= 0xFE00) && (code <= 0xFE0F)));
                   2579: }
                   2580: 
                   2581: /**
                   2582:  * xmlUCSIsVariationSelectorsSupplement:
                   2583:  * @code: UCS code point
                   2584:  *
                   2585:  * Check whether the character is part of VariationSelectorsSupplement UCS Block
                   2586:  *
                   2587:  * Returns 1 if true 0 otherwise
                   2588:  */
                   2589: int
                   2590: xmlUCSIsVariationSelectorsSupplement(int code) {
                   2591:     return(((code >= 0xE0100) && (code <= 0xE01EF)));
                   2592: }
                   2593: 
                   2594: /**
                   2595:  * xmlUCSIsYiRadicals:
                   2596:  * @code: UCS code point
                   2597:  *
                   2598:  * Check whether the character is part of YiRadicals UCS Block
                   2599:  *
                   2600:  * Returns 1 if true 0 otherwise
                   2601:  */
                   2602: int
                   2603: xmlUCSIsYiRadicals(int code) {
                   2604:     return(((code >= 0xA490) && (code <= 0xA4CF)));
                   2605: }
                   2606: 
                   2607: /**
                   2608:  * xmlUCSIsYiSyllables:
                   2609:  * @code: UCS code point
                   2610:  *
                   2611:  * Check whether the character is part of YiSyllables UCS Block
                   2612:  *
                   2613:  * Returns 1 if true 0 otherwise
                   2614:  */
                   2615: int
                   2616: xmlUCSIsYiSyllables(int code) {
                   2617:     return(((code >= 0xA000) && (code <= 0xA48F)));
                   2618: }
                   2619: 
                   2620: /**
                   2621:  * xmlUCSIsYijingHexagramSymbols:
                   2622:  * @code: UCS code point
                   2623:  *
                   2624:  * Check whether the character is part of YijingHexagramSymbols UCS Block
                   2625:  *
                   2626:  * Returns 1 if true 0 otherwise
                   2627:  */
                   2628: int
                   2629: xmlUCSIsYijingHexagramSymbols(int code) {
                   2630:     return(((code >= 0x4DC0) && (code <= 0x4DFF)));
                   2631: }
                   2632: 
                   2633: /**
                   2634:  * xmlUCSIsBlock:
                   2635:  * @code: UCS code point
                   2636:  * @block: UCS block name
                   2637:  *
                   2638:  * Check whether the character is part of the UCS Block
                   2639:  *
                   2640:  * Returns 1 if true, 0 if false and -1 on unknown block
                   2641:  */
                   2642: int
                   2643: xmlUCSIsBlock(int code, const char *block) {
                   2644:     xmlIntFunc *func;
                   2645: 
                   2646:     func = xmlUnicodeLookup(&xmlUnicodeBlockTbl, block);
                   2647:     if (func == NULL)
                   2648:        return (-1);
                   2649:     return (func(code));
                   2650: }
                   2651: 
                   2652: /**
                   2653:  * xmlUCSIsCatC:
                   2654:  * @code: UCS code point
                   2655:  *
                   2656:  * Check whether the character is part of C UCS Category
                   2657:  *
                   2658:  * Returns 1 if true 0 otherwise
                   2659:  */
                   2660: int
                   2661: xmlUCSIsCatC(int code) {
                   2662:     return(xmlCharInRange((unsigned int)code, &xmlCG));
                   2663: }
                   2664: 
                   2665: /**
                   2666:  * xmlUCSIsCatCc:
                   2667:  * @code: UCS code point
                   2668:  *
                   2669:  * Check whether the character is part of Cc UCS Category
                   2670:  *
                   2671:  * Returns 1 if true 0 otherwise
                   2672:  */
                   2673: int
                   2674: xmlUCSIsCatCc(int code) {
                   2675:     return(((code >= 0x0) && (code <= 0x1f)) ||
                   2676:            ((code >= 0x7f) && (code <= 0x9f)));
                   2677: }
                   2678: 
                   2679: /**
                   2680:  * xmlUCSIsCatCf:
                   2681:  * @code: UCS code point
                   2682:  *
                   2683:  * Check whether the character is part of Cf UCS Category
                   2684:  *
                   2685:  * Returns 1 if true 0 otherwise
                   2686:  */
                   2687: int
                   2688: xmlUCSIsCatCf(int code) {
                   2689:     return(xmlCharInRange((unsigned int)code, &xmlCfG));
                   2690: }
                   2691: 
                   2692: /**
                   2693:  * xmlUCSIsCatCo:
                   2694:  * @code: UCS code point
                   2695:  *
                   2696:  * Check whether the character is part of Co UCS Category
                   2697:  *
                   2698:  * Returns 1 if true 0 otherwise
                   2699:  */
                   2700: int
                   2701: xmlUCSIsCatCo(int code) {
                   2702:     return((code == 0xe000) ||
                   2703:            (code == 0xf8ff) ||
                   2704:            (code == 0xf0000) ||
                   2705:            (code == 0xffffd) ||
                   2706:            (code == 0x100000) ||
                   2707:            (code == 0x10fffd));
                   2708: }
                   2709: 
                   2710: /**
                   2711:  * xmlUCSIsCatCs:
                   2712:  * @code: UCS code point
                   2713:  *
                   2714:  * Check whether the character is part of Cs UCS Category
                   2715:  *
                   2716:  * Returns 1 if true 0 otherwise
                   2717:  */
                   2718: int
                   2719: xmlUCSIsCatCs(int code) {
                   2720:     return((code == 0xd800) ||
                   2721:            ((code >= 0xdb7f) && (code <= 0xdb80)) ||
                   2722:            ((code >= 0xdbff) && (code <= 0xdc00)) ||
                   2723:            (code == 0xdfff));
                   2724: }
                   2725: 
                   2726: /**
                   2727:  * xmlUCSIsCatL:
                   2728:  * @code: UCS code point
                   2729:  *
                   2730:  * Check whether the character is part of L UCS Category
                   2731:  *
                   2732:  * Returns 1 if true 0 otherwise
                   2733:  */
                   2734: int
                   2735: xmlUCSIsCatL(int code) {
                   2736:     return(xmlCharInRange((unsigned int)code, &xmlLG));
                   2737: }
                   2738: 
                   2739: /**
                   2740:  * xmlUCSIsCatLl:
                   2741:  * @code: UCS code point
                   2742:  *
                   2743:  * Check whether the character is part of Ll UCS Category
                   2744:  *
                   2745:  * Returns 1 if true 0 otherwise
                   2746:  */
                   2747: int
                   2748: xmlUCSIsCatLl(int code) {
                   2749:     return(xmlCharInRange((unsigned int)code, &xmlLlG));
                   2750: }
                   2751: 
                   2752: /**
                   2753:  * xmlUCSIsCatLm:
                   2754:  * @code: UCS code point
                   2755:  *
                   2756:  * Check whether the character is part of Lm UCS Category
                   2757:  *
                   2758:  * Returns 1 if true 0 otherwise
                   2759:  */
                   2760: int
                   2761: xmlUCSIsCatLm(int code) {
                   2762:     return(xmlCharInRange((unsigned int)code, &xmlLmG));
                   2763: }
                   2764: 
                   2765: /**
                   2766:  * xmlUCSIsCatLo:
                   2767:  * @code: UCS code point
                   2768:  *
                   2769:  * Check whether the character is part of Lo UCS Category
                   2770:  *
                   2771:  * Returns 1 if true 0 otherwise
                   2772:  */
                   2773: int
                   2774: xmlUCSIsCatLo(int code) {
                   2775:     return(xmlCharInRange((unsigned int)code, &xmlLoG));
                   2776: }
                   2777: 
                   2778: /**
                   2779:  * xmlUCSIsCatLt:
                   2780:  * @code: UCS code point
                   2781:  *
                   2782:  * Check whether the character is part of Lt UCS Category
                   2783:  *
                   2784:  * Returns 1 if true 0 otherwise
                   2785:  */
                   2786: int
                   2787: xmlUCSIsCatLt(int code) {
                   2788:     return(xmlCharInRange((unsigned int)code, &xmlLtG));
                   2789: }
                   2790: 
                   2791: /**
                   2792:  * xmlUCSIsCatLu:
                   2793:  * @code: UCS code point
                   2794:  *
                   2795:  * Check whether the character is part of Lu UCS Category
                   2796:  *
                   2797:  * Returns 1 if true 0 otherwise
                   2798:  */
                   2799: int
                   2800: xmlUCSIsCatLu(int code) {
                   2801:     return(xmlCharInRange((unsigned int)code, &xmlLuG));
                   2802: }
                   2803: 
                   2804: /**
                   2805:  * xmlUCSIsCatM:
                   2806:  * @code: UCS code point
                   2807:  *
                   2808:  * Check whether the character is part of M UCS Category
                   2809:  *
                   2810:  * Returns 1 if true 0 otherwise
                   2811:  */
                   2812: int
                   2813: xmlUCSIsCatM(int code) {
                   2814:     return(xmlCharInRange((unsigned int)code, &xmlMG));
                   2815: }
                   2816: 
                   2817: /**
                   2818:  * xmlUCSIsCatMc:
                   2819:  * @code: UCS code point
                   2820:  *
                   2821:  * Check whether the character is part of Mc UCS Category
                   2822:  *
                   2823:  * Returns 1 if true 0 otherwise
                   2824:  */
                   2825: int
                   2826: xmlUCSIsCatMc(int code) {
                   2827:     return(xmlCharInRange((unsigned int)code, &xmlMcG));
                   2828: }
                   2829: 
                   2830: /**
                   2831:  * xmlUCSIsCatMe:
                   2832:  * @code: UCS code point
                   2833:  *
                   2834:  * Check whether the character is part of Me UCS Category
                   2835:  *
                   2836:  * Returns 1 if true 0 otherwise
                   2837:  */
                   2838: int
                   2839: xmlUCSIsCatMe(int code) {
                   2840:     return(((code >= 0x488) && (code <= 0x489)) ||
                   2841:            (code == 0x6de) ||
                   2842:            ((code >= 0x20dd) && (code <= 0x20e0)) ||
                   2843:            ((code >= 0x20e2) && (code <= 0x20e4)));
                   2844: }
                   2845: 
                   2846: /**
                   2847:  * xmlUCSIsCatMn:
                   2848:  * @code: UCS code point
                   2849:  *
                   2850:  * Check whether the character is part of Mn UCS Category
                   2851:  *
                   2852:  * Returns 1 if true 0 otherwise
                   2853:  */
                   2854: int
                   2855: xmlUCSIsCatMn(int code) {
                   2856:     return(xmlCharInRange((unsigned int)code, &xmlMnG));
                   2857: }
                   2858: 
                   2859: /**
                   2860:  * xmlUCSIsCatN:
                   2861:  * @code: UCS code point
                   2862:  *
                   2863:  * Check whether the character is part of N UCS Category
                   2864:  *
                   2865:  * Returns 1 if true 0 otherwise
                   2866:  */
                   2867: int
                   2868: xmlUCSIsCatN(int code) {
                   2869:     return(xmlCharInRange((unsigned int)code, &xmlNG));
                   2870: }
                   2871: 
                   2872: /**
                   2873:  * xmlUCSIsCatNd:
                   2874:  * @code: UCS code point
                   2875:  *
                   2876:  * Check whether the character is part of Nd UCS Category
                   2877:  *
                   2878:  * Returns 1 if true 0 otherwise
                   2879:  */
                   2880: int
                   2881: xmlUCSIsCatNd(int code) {
                   2882:     return(xmlCharInRange((unsigned int)code, &xmlNdG));
                   2883: }
                   2884: 
                   2885: /**
                   2886:  * xmlUCSIsCatNl:
                   2887:  * @code: UCS code point
                   2888:  *
                   2889:  * Check whether the character is part of Nl UCS Category
                   2890:  *
                   2891:  * Returns 1 if true 0 otherwise
                   2892:  */
                   2893: int
                   2894: xmlUCSIsCatNl(int code) {
                   2895:     return(((code >= 0x16ee) && (code <= 0x16f0)) ||
                   2896:            ((code >= 0x2160) && (code <= 0x2183)) ||
                   2897:            (code == 0x3007) ||
                   2898:            ((code >= 0x3021) && (code <= 0x3029)) ||
                   2899:            ((code >= 0x3038) && (code <= 0x303a)) ||
                   2900:            (code == 0x1034a));
                   2901: }
                   2902: 
                   2903: /**
                   2904:  * xmlUCSIsCatNo:
                   2905:  * @code: UCS code point
                   2906:  *
                   2907:  * Check whether the character is part of No UCS Category
                   2908:  *
                   2909:  * Returns 1 if true 0 otherwise
                   2910:  */
                   2911: int
                   2912: xmlUCSIsCatNo(int code) {
                   2913:     return(xmlCharInRange((unsigned int)code, &xmlNoG));
                   2914: }
                   2915: 
                   2916: /**
                   2917:  * xmlUCSIsCatP:
                   2918:  * @code: UCS code point
                   2919:  *
                   2920:  * Check whether the character is part of P UCS Category
                   2921:  *
                   2922:  * Returns 1 if true 0 otherwise
                   2923:  */
                   2924: int
                   2925: xmlUCSIsCatP(int code) {
                   2926:     return(xmlCharInRange((unsigned int)code, &xmlPG));
                   2927: }
                   2928: 
                   2929: /**
                   2930:  * xmlUCSIsCatPc:
                   2931:  * @code: UCS code point
                   2932:  *
                   2933:  * Check whether the character is part of Pc UCS Category
                   2934:  *
                   2935:  * Returns 1 if true 0 otherwise
                   2936:  */
                   2937: int
                   2938: xmlUCSIsCatPc(int code) {
                   2939:     return((code == 0x5f) ||
                   2940:            ((code >= 0x203f) && (code <= 0x2040)) ||
                   2941:            (code == 0x2054) ||
                   2942:            (code == 0x30fb) ||
                   2943:            ((code >= 0xfe33) && (code <= 0xfe34)) ||
                   2944:            ((code >= 0xfe4d) && (code <= 0xfe4f)) ||
                   2945:            (code == 0xff3f) ||
                   2946:            (code == 0xff65));
                   2947: }
                   2948: 
                   2949: /**
                   2950:  * xmlUCSIsCatPd:
                   2951:  * @code: UCS code point
                   2952:  *
                   2953:  * Check whether the character is part of Pd UCS Category
                   2954:  *
                   2955:  * Returns 1 if true 0 otherwise
                   2956:  */
                   2957: int
                   2958: xmlUCSIsCatPd(int code) {
                   2959:     return(xmlCharInRange((unsigned int)code, &xmlPdG));
                   2960: }
                   2961: 
                   2962: /**
                   2963:  * xmlUCSIsCatPe:
                   2964:  * @code: UCS code point
                   2965:  *
                   2966:  * Check whether the character is part of Pe UCS Category
                   2967:  *
                   2968:  * Returns 1 if true 0 otherwise
                   2969:  */
                   2970: int
                   2971: xmlUCSIsCatPe(int code) {
                   2972:     return(xmlCharInRange((unsigned int)code, &xmlPeG));
                   2973: }
                   2974: 
                   2975: /**
                   2976:  * xmlUCSIsCatPf:
                   2977:  * @code: UCS code point
                   2978:  *
                   2979:  * Check whether the character is part of Pf UCS Category
                   2980:  *
                   2981:  * Returns 1 if true 0 otherwise
                   2982:  */
                   2983: int
                   2984: xmlUCSIsCatPf(int code) {
                   2985:     return((code == 0xbb) ||
                   2986:            (code == 0x2019) ||
                   2987:            (code == 0x201d) ||
                   2988:            (code == 0x203a));
                   2989: }
                   2990: 
                   2991: /**
                   2992:  * xmlUCSIsCatPi:
                   2993:  * @code: UCS code point
                   2994:  *
                   2995:  * Check whether the character is part of Pi UCS Category
                   2996:  *
                   2997:  * Returns 1 if true 0 otherwise
                   2998:  */
                   2999: int
                   3000: xmlUCSIsCatPi(int code) {
                   3001:     return((code == 0xab) ||
                   3002:            (code == 0x2018) ||
                   3003:            ((code >= 0x201b) && (code <= 0x201c)) ||
                   3004:            (code == 0x201f) ||
                   3005:            (code == 0x2039));
                   3006: }
                   3007: 
                   3008: /**
                   3009:  * xmlUCSIsCatPo:
                   3010:  * @code: UCS code point
                   3011:  *
                   3012:  * Check whether the character is part of Po UCS Category
                   3013:  *
                   3014:  * Returns 1 if true 0 otherwise
                   3015:  */
                   3016: int
                   3017: xmlUCSIsCatPo(int code) {
                   3018:     return(xmlCharInRange((unsigned int)code, &xmlPoG));
                   3019: }
                   3020: 
                   3021: /**
                   3022:  * xmlUCSIsCatPs:
                   3023:  * @code: UCS code point
                   3024:  *
                   3025:  * Check whether the character is part of Ps UCS Category
                   3026:  *
                   3027:  * Returns 1 if true 0 otherwise
                   3028:  */
                   3029: int
                   3030: xmlUCSIsCatPs(int code) {
                   3031:     return(xmlCharInRange((unsigned int)code, &xmlPsG));
                   3032: }
                   3033: 
                   3034: /**
                   3035:  * xmlUCSIsCatS:
                   3036:  * @code: UCS code point
                   3037:  *
                   3038:  * Check whether the character is part of S UCS Category
                   3039:  *
                   3040:  * Returns 1 if true 0 otherwise
                   3041:  */
                   3042: int
                   3043: xmlUCSIsCatS(int code) {
                   3044:     return(xmlCharInRange((unsigned int)code, &xmlSG));
                   3045: }
                   3046: 
                   3047: /**
                   3048:  * xmlUCSIsCatSc:
                   3049:  * @code: UCS code point
                   3050:  *
                   3051:  * Check whether the character is part of Sc UCS Category
                   3052:  *
                   3053:  * Returns 1 if true 0 otherwise
                   3054:  */
                   3055: int
                   3056: xmlUCSIsCatSc(int code) {
                   3057:     return(xmlCharInRange((unsigned int)code, &xmlScG));
                   3058: }
                   3059: 
                   3060: /**
                   3061:  * xmlUCSIsCatSk:
                   3062:  * @code: UCS code point
                   3063:  *
                   3064:  * Check whether the character is part of Sk UCS Category
                   3065:  *
                   3066:  * Returns 1 if true 0 otherwise
                   3067:  */
                   3068: int
                   3069: xmlUCSIsCatSk(int code) {
                   3070:     return(xmlCharInRange((unsigned int)code, &xmlSkG));
                   3071: }
                   3072: 
                   3073: /**
                   3074:  * xmlUCSIsCatSm:
                   3075:  * @code: UCS code point
                   3076:  *
                   3077:  * Check whether the character is part of Sm UCS Category
                   3078:  *
                   3079:  * Returns 1 if true 0 otherwise
                   3080:  */
                   3081: int
                   3082: xmlUCSIsCatSm(int code) {
                   3083:     return(xmlCharInRange((unsigned int)code, &xmlSmG));
                   3084: }
                   3085: 
                   3086: /**
                   3087:  * xmlUCSIsCatSo:
                   3088:  * @code: UCS code point
                   3089:  *
                   3090:  * Check whether the character is part of So UCS Category
                   3091:  *
                   3092:  * Returns 1 if true 0 otherwise
                   3093:  */
                   3094: int
                   3095: xmlUCSIsCatSo(int code) {
                   3096:     return(xmlCharInRange((unsigned int)code, &xmlSoG));
                   3097: }
                   3098: 
                   3099: /**
                   3100:  * xmlUCSIsCatZ:
                   3101:  * @code: UCS code point
                   3102:  *
                   3103:  * Check whether the character is part of Z UCS Category
                   3104:  *
                   3105:  * Returns 1 if true 0 otherwise
                   3106:  */
                   3107: int
                   3108: xmlUCSIsCatZ(int code) {
                   3109:     return(xmlCharInRange((unsigned int)code, &xmlZG));
                   3110: }
                   3111: 
                   3112: /**
                   3113:  * xmlUCSIsCatZl:
                   3114:  * @code: UCS code point
                   3115:  *
                   3116:  * Check whether the character is part of Zl UCS Category
                   3117:  *
                   3118:  * Returns 1 if true 0 otherwise
                   3119:  */
                   3120: int
                   3121: xmlUCSIsCatZl(int code) {
                   3122:     return((code == 0x2028));
                   3123: }
                   3124: 
                   3125: /**
                   3126:  * xmlUCSIsCatZp:
                   3127:  * @code: UCS code point
                   3128:  *
                   3129:  * Check whether the character is part of Zp UCS Category
                   3130:  *
                   3131:  * Returns 1 if true 0 otherwise
                   3132:  */
                   3133: int
                   3134: xmlUCSIsCatZp(int code) {
                   3135:     return((code == 0x2029));
                   3136: }
                   3137: 
                   3138: /**
                   3139:  * xmlUCSIsCatZs:
                   3140:  * @code: UCS code point
                   3141:  *
                   3142:  * Check whether the character is part of Zs UCS Category
                   3143:  *
                   3144:  * Returns 1 if true 0 otherwise
                   3145:  */
                   3146: int
                   3147: xmlUCSIsCatZs(int code) {
                   3148:     return((code == 0x20) ||
                   3149:            (code == 0xa0) ||
                   3150:            (code == 0x1680) ||
                   3151:            (code == 0x180e) ||
                   3152:            ((code >= 0x2000) && (code <= 0x200a)) ||
                   3153:            (code == 0x202f) ||
                   3154:            (code == 0x205f) ||
                   3155:            (code == 0x3000));
                   3156: }
                   3157: 
                   3158: /**
                   3159:  * xmlUCSIsCat:
                   3160:  * @code: UCS code point
                   3161:  * @cat: UCS Category name
                   3162:  *
                   3163:  * Check whether the character is part of the UCS Category
                   3164:  *
                   3165:  * Returns 1 if true, 0 if false and -1 on unknown category
                   3166:  */
                   3167: int
                   3168: xmlUCSIsCat(int code, const char *cat) {
                   3169:     xmlIntFunc *func;
                   3170: 
                   3171:     func = xmlUnicodeLookup(&xmlUnicodeCatTbl, cat);
                   3172:     if (func == NULL)
                   3173:        return (-1);
                   3174:     return (func(code));
                   3175: }
                   3176: 
                   3177: #define bottom_xmlunicode
                   3178: #include "elfgcchack.h"
                   3179: #endif /* LIBXML_UNICODE_ENABLED */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>