diff options
Diffstat (limited to 'bundle/libxml/xmlunicode.c')
| -rw-r--r-- | bundle/libxml/xmlunicode.c | 4290 | 
1 files changed, 4290 insertions, 0 deletions
diff --git a/bundle/libxml/xmlunicode.c b/bundle/libxml/xmlunicode.c new file mode 100644 index 0000000000..8baf8d18c7 --- /dev/null +++ b/bundle/libxml/xmlunicode.c @@ -0,0 +1,4290 @@ +/* + * xmlunicode.c: this module implements the Unicode character APIs + * + * This file is automatically generated from the + * UCS description files of the Unicode Character Database + * http://www.unicode.org/Public/3.1-Update/UnicodeCharacterDatabase-3.1.0.html + * using the genUnicode.py Python script. + * + * Generation date: Tue Apr 16 17:28:05 2002 + * Sources: Blocks-4.txt UnicodeData-3.1.0.txt + * Daniel Veillard <veillard@redhat.com> + */ + +#define IN_LIBXML +#include "libxml.h" + +#ifdef LIBXML_UNICODE_ENABLED + +#include <string.h> +#include <libxml/xmlversion.h> +#include <libxml/xmlunicode.h> + +/** + * xmlUCSIsAlphabeticPresentationForms: + * @code: UCS code point + * + * Check whether the character is part of AlphabeticPresentationForms UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsAlphabeticPresentationForms(int code) { +    return((code >= 0xFB00) && (code <= 0xFB4F)); +} + +/** + * xmlUCSIsArabic: + * @code: UCS code point + * + * Check whether the character is part of Arabic UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsArabic(int code) { +    return((code >= 0x0600) && (code <= 0x06FF)); +} + +/** + * xmlUCSIsArabicPresentationFormsA: + * @code: UCS code point + * + * Check whether the character is part of ArabicPresentationForms-A UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsArabicPresentationFormsA(int code) { +    return((code >= 0xFB50) && (code <= 0xFDFF)); +} + +/** + * xmlUCSIsArabicPresentationFormsB: + * @code: UCS code point + * + * Check whether the character is part of ArabicPresentationForms-B UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsArabicPresentationFormsB(int code) { +    return((code >= 0xFE70) && (code <= 0xFEFE)); +} + +/** + * xmlUCSIsArmenian: + * @code: UCS code point + * + * Check whether the character is part of Armenian UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsArmenian(int code) { +    return((code >= 0x0530) && (code <= 0x058F)); +} + +/** + * xmlUCSIsArrows: + * @code: UCS code point + * + * Check whether the character is part of Arrows UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsArrows(int code) { +    return((code >= 0x2190) && (code <= 0x21FF)); +} + +/** + * xmlUCSIsBasicLatin: + * @code: UCS code point + * + * Check whether the character is part of BasicLatin UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsBasicLatin(int code) { +    return((code >= 0x0000) && (code <= 0x007F)); +} + +/** + * xmlUCSIsBengali: + * @code: UCS code point + * + * Check whether the character is part of Bengali UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsBengali(int code) { +    return((code >= 0x0980) && (code <= 0x09FF)); +} + +/** + * xmlUCSIsBlockElements: + * @code: UCS code point + * + * Check whether the character is part of BlockElements UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsBlockElements(int code) { +    return((code >= 0x2580) && (code <= 0x259F)); +} + +/** + * xmlUCSIsBopomofo: + * @code: UCS code point + * + * Check whether the character is part of Bopomofo UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsBopomofo(int code) { +    return((code >= 0x3100) && (code <= 0x312F)); +} + +/** + * xmlUCSIsBopomofoExtended: + * @code: UCS code point + * + * Check whether the character is part of BopomofoExtended UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsBopomofoExtended(int code) { +    return((code >= 0x31A0) && (code <= 0x31BF)); +} + +/** + * xmlUCSIsBoxDrawing: + * @code: UCS code point + * + * Check whether the character is part of BoxDrawing UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsBoxDrawing(int code) { +    return((code >= 0x2500) && (code <= 0x257F)); +} + +/** + * xmlUCSIsBraillePatterns: + * @code: UCS code point + * + * Check whether the character is part of BraillePatterns UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsBraillePatterns(int code) { +    return((code >= 0x2800) && (code <= 0x28FF)); +} + +/** + * xmlUCSIsByzantineMusicalSymbols: + * @code: UCS code point + * + * Check whether the character is part of ByzantineMusicalSymbols UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsByzantineMusicalSymbols(int code) { +    return((code >= 0x1D000) && (code <= 0x1D0FF)); +} + +/** + * xmlUCSIsCJKCompatibility: + * @code: UCS code point + * + * Check whether the character is part of CJKCompatibility UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKCompatibility(int code) { +    return((code >= 0x3300) && (code <= 0x33FF)); +} + +/** + * xmlUCSIsCJKCompatibilityForms: + * @code: UCS code point + * + * Check whether the character is part of CJKCompatibilityForms UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKCompatibilityForms(int code) { +    return((code >= 0xFE30) && (code <= 0xFE4F)); +} + +/** + * xmlUCSIsCJKCompatibilityIdeographs: + * @code: UCS code point + * + * Check whether the character is part of CJKCompatibilityIdeographs UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKCompatibilityIdeographs(int code) { +    return((code >= 0xF900) && (code <= 0xFAFF)); +} + +/** + * xmlUCSIsCJKCompatibilityIdeographsSupplement: + * @code: UCS code point + * + * Check whether the character is part of CJKCompatibilityIdeographsSupplement UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKCompatibilityIdeographsSupplement(int code) { +    return((code >= 0x2F800) && (code <= 0x2FA1F)); +} + +/** + * xmlUCSIsCJKRadicalsSupplement: + * @code: UCS code point + * + * Check whether the character is part of CJKRadicalsSupplement UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKRadicalsSupplement(int code) { +    return((code >= 0x2E80) && (code <= 0x2EFF)); +} + +/** + * xmlUCSIsCJKSymbolsandPunctuation: + * @code: UCS code point + * + * Check whether the character is part of CJKSymbolsandPunctuation UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKSymbolsandPunctuation(int code) { +    return((code >= 0x3000) && (code <= 0x303F)); +} + +/** + * xmlUCSIsCJKUnifiedIdeographs: + * @code: UCS code point + * + * Check whether the character is part of CJKUnifiedIdeographs UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKUnifiedIdeographs(int code) { +    return((code >= 0x4E00) && (code <= 0x9FFF)); +} + +/** + * xmlUCSIsCJKUnifiedIdeographsExtensionA: + * @code: UCS code point + * + * Check whether the character is part of CJKUnifiedIdeographsExtensionA UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKUnifiedIdeographsExtensionA(int code) { +    return((code >= 0x3400) && (code <= 0x4DB5)); +} + +/** + * xmlUCSIsCJKUnifiedIdeographsExtensionB: + * @code: UCS code point + * + * Check whether the character is part of CJKUnifiedIdeographsExtensionB UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCJKUnifiedIdeographsExtensionB(int code) { +    return((code >= 0x20000) && (code <= 0x2A6D6)); +} + +/** + * xmlUCSIsCherokee: + * @code: UCS code point + * + * Check whether the character is part of Cherokee UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCherokee(int code) { +    return((code >= 0x13A0) && (code <= 0x13FF)); +} + +/** + * xmlUCSIsCombiningDiacriticalMarks: + * @code: UCS code point + * + * Check whether the character is part of CombiningDiacriticalMarks UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCombiningDiacriticalMarks(int code) { +    return((code >= 0x0300) && (code <= 0x036F)); +} + +/** + * xmlUCSIsCombiningHalfMarks: + * @code: UCS code point + * + * Check whether the character is part of CombiningHalfMarks UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCombiningHalfMarks(int code) { +    return((code >= 0xFE20) && (code <= 0xFE2F)); +} + +/** + * xmlUCSIsCombiningMarksforSymbols: + * @code: UCS code point + * + * Check whether the character is part of CombiningMarksforSymbols UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCombiningMarksforSymbols(int code) { +    return((code >= 0x20D0) && (code <= 0x20FF)); +} + +/** + * xmlUCSIsControlPictures: + * @code: UCS code point + * + * Check whether the character is part of ControlPictures UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsControlPictures(int code) { +    return((code >= 0x2400) && (code <= 0x243F)); +} + +/** + * xmlUCSIsCurrencySymbols: + * @code: UCS code point + * + * Check whether the character is part of CurrencySymbols UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCurrencySymbols(int code) { +    return((code >= 0x20A0) && (code <= 0x20CF)); +} + +/** + * xmlUCSIsCyrillic: + * @code: UCS code point + * + * Check whether the character is part of Cyrillic UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCyrillic(int code) { +    return((code >= 0x0400) && (code <= 0x04FF)); +} + +/** + * xmlUCSIsDeseret: + * @code: UCS code point + * + * Check whether the character is part of Deseret UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsDeseret(int code) { +    return((code >= 0x10400) && (code <= 0x1044F)); +} + +/** + * xmlUCSIsDevanagari: + * @code: UCS code point + * + * Check whether the character is part of Devanagari UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsDevanagari(int code) { +    return((code >= 0x0900) && (code <= 0x097F)); +} + +/** + * xmlUCSIsDingbats: + * @code: UCS code point + * + * Check whether the character is part of Dingbats UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsDingbats(int code) { +    return((code >= 0x2700) && (code <= 0x27BF)); +} + +/** + * xmlUCSIsEnclosedAlphanumerics: + * @code: UCS code point + * + * Check whether the character is part of EnclosedAlphanumerics UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsEnclosedAlphanumerics(int code) { +    return((code >= 0x2460) && (code <= 0x24FF)); +} + +/** + * xmlUCSIsEnclosedCJKLettersandMonths: + * @code: UCS code point + * + * Check whether the character is part of EnclosedCJKLettersandMonths UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsEnclosedCJKLettersandMonths(int code) { +    return((code >= 0x3200) && (code <= 0x32FF)); +} + +/** + * xmlUCSIsEthiopic: + * @code: UCS code point + * + * Check whether the character is part of Ethiopic UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsEthiopic(int code) { +    return((code >= 0x1200) && (code <= 0x137F)); +} + +/** + * xmlUCSIsGeneralPunctuation: + * @code: UCS code point + * + * Check whether the character is part of GeneralPunctuation UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGeneralPunctuation(int code) { +    return((code >= 0x2000) && (code <= 0x206F)); +} + +/** + * xmlUCSIsGeometricShapes: + * @code: UCS code point + * + * Check whether the character is part of GeometricShapes UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGeometricShapes(int code) { +    return((code >= 0x25A0) && (code <= 0x25FF)); +} + +/** + * xmlUCSIsGeorgian: + * @code: UCS code point + * + * Check whether the character is part of Georgian UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGeorgian(int code) { +    return((code >= 0x10A0) && (code <= 0x10FF)); +} + +/** + * xmlUCSIsGothic: + * @code: UCS code point + * + * Check whether the character is part of Gothic UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGothic(int code) { +    return((code >= 0x10330) && (code <= 0x1034F)); +} + +/** + * xmlUCSIsGreek: + * @code: UCS code point + * + * Check whether the character is part of Greek UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGreek(int code) { +    return((code >= 0x0370) && (code <= 0x03FF)); +} + +/** + * xmlUCSIsGreekExtended: + * @code: UCS code point + * + * Check whether the character is part of GreekExtended UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGreekExtended(int code) { +    return((code >= 0x1F00) && (code <= 0x1FFF)); +} + +/** + * xmlUCSIsGujarati: + * @code: UCS code point + * + * Check whether the character is part of Gujarati UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGujarati(int code) { +    return((code >= 0x0A80) && (code <= 0x0AFF)); +} + +/** + * xmlUCSIsGurmukhi: + * @code: UCS code point + * + * Check whether the character is part of Gurmukhi UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsGurmukhi(int code) { +    return((code >= 0x0A00) && (code <= 0x0A7F)); +} + +/** + * xmlUCSIsHalfwidthandFullwidthForms: + * @code: UCS code point + * + * Check whether the character is part of HalfwidthandFullwidthForms UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHalfwidthandFullwidthForms(int code) { +    return((code >= 0xFF00) && (code <= 0xFFEF)); +} + +/** + * xmlUCSIsHangulCompatibilityJamo: + * @code: UCS code point + * + * Check whether the character is part of HangulCompatibilityJamo UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHangulCompatibilityJamo(int code) { +    return((code >= 0x3130) && (code <= 0x318F)); +} + +/** + * xmlUCSIsHangulJamo: + * @code: UCS code point + * + * Check whether the character is part of HangulJamo UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHangulJamo(int code) { +    return((code >= 0x1100) && (code <= 0x11FF)); +} + +/** + * xmlUCSIsHangulSyllables: + * @code: UCS code point + * + * Check whether the character is part of HangulSyllables UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHangulSyllables(int code) { +    return((code >= 0xAC00) && (code <= 0xD7A3)); +} + +/** + * xmlUCSIsHebrew: + * @code: UCS code point + * + * Check whether the character is part of Hebrew UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHebrew(int code) { +    return((code >= 0x0590) && (code <= 0x05FF)); +} + +/** + * xmlUCSIsHighPrivateUseSurrogates: + * @code: UCS code point + * + * Check whether the character is part of HighPrivateUseSurrogates UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHighPrivateUseSurrogates(int code) { +    return((code >= 0xDB80) && (code <= 0xDBFF)); +} + +/** + * xmlUCSIsHighSurrogates: + * @code: UCS code point + * + * Check whether the character is part of HighSurrogates UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHighSurrogates(int code) { +    return((code >= 0xD800) && (code <= 0xDB7F)); +} + +/** + * xmlUCSIsHiragana: + * @code: UCS code point + * + * Check whether the character is part of Hiragana UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsHiragana(int code) { +    return((code >= 0x3040) && (code <= 0x309F)); +} + +/** + * xmlUCSIsIPAExtensions: + * @code: UCS code point + * + * Check whether the character is part of IPAExtensions UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsIPAExtensions(int code) { +    return((code >= 0x0250) && (code <= 0x02AF)); +} + +/** + * xmlUCSIsIdeographicDescriptionCharacters: + * @code: UCS code point + * + * Check whether the character is part of IdeographicDescriptionCharacters UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsIdeographicDescriptionCharacters(int code) { +    return((code >= 0x2FF0) && (code <= 0x2FFF)); +} + +/** + * xmlUCSIsKanbun: + * @code: UCS code point + * + * Check whether the character is part of Kanbun UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsKanbun(int code) { +    return((code >= 0x3190) && (code <= 0x319F)); +} + +/** + * xmlUCSIsKangxiRadicals: + * @code: UCS code point + * + * Check whether the character is part of KangxiRadicals UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsKangxiRadicals(int code) { +    return((code >= 0x2F00) && (code <= 0x2FDF)); +} + +/** + * xmlUCSIsKannada: + * @code: UCS code point + * + * Check whether the character is part of Kannada UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsKannada(int code) { +    return((code >= 0x0C80) && (code <= 0x0CFF)); +} + +/** + * xmlUCSIsKatakana: + * @code: UCS code point + * + * Check whether the character is part of Katakana UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsKatakana(int code) { +    return((code >= 0x30A0) && (code <= 0x30FF)); +} + +/** + * xmlUCSIsKhmer: + * @code: UCS code point + * + * Check whether the character is part of Khmer UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsKhmer(int code) { +    return((code >= 0x1780) && (code <= 0x17FF)); +} + +/** + * xmlUCSIsLao: + * @code: UCS code point + * + * Check whether the character is part of Lao UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsLao(int code) { +    return((code >= 0x0E80) && (code <= 0x0EFF)); +} + +/** + * xmlUCSIsLatin1Supplement: + * @code: UCS code point + * + * Check whether the character is part of Latin-1Supplement UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsLatin1Supplement(int code) { +    return((code >= 0x0080) && (code <= 0x00FF)); +} + +/** + * xmlUCSIsLatinExtendedA: + * @code: UCS code point + * + * Check whether the character is part of LatinExtended-A UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsLatinExtendedA(int code) { +    return((code >= 0x0100) && (code <= 0x017F)); +} + +/** + * xmlUCSIsLatinExtendedB: + * @code: UCS code point + * + * Check whether the character is part of LatinExtended-B UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsLatinExtendedB(int code) { +    return((code >= 0x0180) && (code <= 0x024F)); +} + +/** + * xmlUCSIsLatinExtendedAdditional: + * @code: UCS code point + * + * Check whether the character is part of LatinExtendedAdditional UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsLatinExtendedAdditional(int code) { +    return((code >= 0x1E00) && (code <= 0x1EFF)); +} + +/** + * xmlUCSIsLetterlikeSymbols: + * @code: UCS code point + * + * Check whether the character is part of LetterlikeSymbols UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsLetterlikeSymbols(int code) { +    return((code >= 0x2100) && (code <= 0x214F)); +} + +/** + * xmlUCSIsLowSurrogates: + * @code: UCS code point + * + * Check whether the character is part of LowSurrogates UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsLowSurrogates(int code) { +    return((code >= 0xDC00) && (code <= 0xDFFF)); +} + +/** + * xmlUCSIsMalayalam: + * @code: UCS code point + * + * Check whether the character is part of Malayalam UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMalayalam(int code) { +    return((code >= 0x0D00) && (code <= 0x0D7F)); +} + +/** + * xmlUCSIsMathematicalAlphanumericSymbols: + * @code: UCS code point + * + * Check whether the character is part of MathematicalAlphanumericSymbols UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMathematicalAlphanumericSymbols(int code) { +    return((code >= 0x1D400) && (code <= 0x1D7FF)); +} + +/** + * xmlUCSIsMathematicalOperators: + * @code: UCS code point + * + * Check whether the character is part of MathematicalOperators UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMathematicalOperators(int code) { +    return((code >= 0x2200) && (code <= 0x22FF)); +} + +/** + * xmlUCSIsMiscellaneousSymbols: + * @code: UCS code point + * + * Check whether the character is part of MiscellaneousSymbols UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMiscellaneousSymbols(int code) { +    return((code >= 0x2600) && (code <= 0x26FF)); +} + +/** + * xmlUCSIsMiscellaneousTechnical: + * @code: UCS code point + * + * Check whether the character is part of MiscellaneousTechnical UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMiscellaneousTechnical(int code) { +    return((code >= 0x2300) && (code <= 0x23FF)); +} + +/** + * xmlUCSIsMongolian: + * @code: UCS code point + * + * Check whether the character is part of Mongolian UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMongolian(int code) { +    return((code >= 0x1800) && (code <= 0x18AF)); +} + +/** + * xmlUCSIsMusicalSymbols: + * @code: UCS code point + * + * Check whether the character is part of MusicalSymbols UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMusicalSymbols(int code) { +    return((code >= 0x1D100) && (code <= 0x1D1FF)); +} + +/** + * xmlUCSIsMyanmar: + * @code: UCS code point + * + * Check whether the character is part of Myanmar UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsMyanmar(int code) { +    return((code >= 0x1000) && (code <= 0x109F)); +} + +/** + * xmlUCSIsNumberForms: + * @code: UCS code point + * + * Check whether the character is part of NumberForms UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsNumberForms(int code) { +    return((code >= 0x2150) && (code <= 0x218F)); +} + +/** + * xmlUCSIsOgham: + * @code: UCS code point + * + * Check whether the character is part of Ogham UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsOgham(int code) { +    return((code >= 0x1680) && (code <= 0x169F)); +} + +/** + * xmlUCSIsOldItalic: + * @code: UCS code point + * + * Check whether the character is part of OldItalic UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsOldItalic(int code) { +    return((code >= 0x10300) && (code <= 0x1032F)); +} + +/** + * xmlUCSIsOpticalCharacterRecognition: + * @code: UCS code point + * + * Check whether the character is part of OpticalCharacterRecognition UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsOpticalCharacterRecognition(int code) { +    return((code >= 0x2440) && (code <= 0x245F)); +} + +/** + * xmlUCSIsOriya: + * @code: UCS code point + * + * Check whether the character is part of Oriya UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsOriya(int code) { +    return((code >= 0x0B00) && (code <= 0x0B7F)); +} + +/** + * xmlUCSIsPrivateUse: + * @code: UCS code point + * + * Check whether the character is part of PrivateUse UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsPrivateUse(int code) { +    return((code >= 0x100000) && (code <= 0x10FFFD)); +} + +/** + * xmlUCSIsRunic: + * @code: UCS code point + * + * Check whether the character is part of Runic UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsRunic(int code) { +    return((code >= 0x16A0) && (code <= 0x16FF)); +} + +/** + * xmlUCSIsSinhala: + * @code: UCS code point + * + * Check whether the character is part of Sinhala UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsSinhala(int code) { +    return((code >= 0x0D80) && (code <= 0x0DFF)); +} + +/** + * xmlUCSIsSmallFormVariants: + * @code: UCS code point + * + * Check whether the character is part of SmallFormVariants UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsSmallFormVariants(int code) { +    return((code >= 0xFE50) && (code <= 0xFE6F)); +} + +/** + * xmlUCSIsSpacingModifierLetters: + * @code: UCS code point + * + * Check whether the character is part of SpacingModifierLetters UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsSpacingModifierLetters(int code) { +    return((code >= 0x02B0) && (code <= 0x02FF)); +} + +/** + * xmlUCSIsSpecials: + * @code: UCS code point + * + * Check whether the character is part of Specials UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsSpecials(int code) { +    return((code >= 0xFFF0) && (code <= 0xFFFD)); +} + +/** + * xmlUCSIsSuperscriptsandSubscripts: + * @code: UCS code point + * + * Check whether the character is part of SuperscriptsandSubscripts UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsSuperscriptsandSubscripts(int code) { +    return((code >= 0x2070) && (code <= 0x209F)); +} + +/** + * xmlUCSIsSyriac: + * @code: UCS code point + * + * Check whether the character is part of Syriac UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsSyriac(int code) { +    return((code >= 0x0700) && (code <= 0x074F)); +} + +/** + * xmlUCSIsTags: + * @code: UCS code point + * + * Check whether the character is part of Tags UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsTags(int code) { +    return((code >= 0xE0000) && (code <= 0xE007F)); +} + +/** + * xmlUCSIsTamil: + * @code: UCS code point + * + * Check whether the character is part of Tamil UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsTamil(int code) { +    return((code >= 0x0B80) && (code <= 0x0BFF)); +} + +/** + * xmlUCSIsTelugu: + * @code: UCS code point + * + * Check whether the character is part of Telugu UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsTelugu(int code) { +    return((code >= 0x0C00) && (code <= 0x0C7F)); +} + +/** + * xmlUCSIsThaana: + * @code: UCS code point + * + * Check whether the character is part of Thaana UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsThaana(int code) { +    return((code >= 0x0780) && (code <= 0x07BF)); +} + +/** + * xmlUCSIsThai: + * @code: UCS code point + * + * Check whether the character is part of Thai UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsThai(int code) { +    return((code >= 0x0E00) && (code <= 0x0E7F)); +} + +/** + * xmlUCSIsTibetan: + * @code: UCS code point + * + * Check whether the character is part of Tibetan UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsTibetan(int code) { +    return((code >= 0x0F00) && (code <= 0x0FFF)); +} + +/** + * xmlUCSIsUnifiedCanadianAboriginalSyllabics: + * @code: UCS code point + * + * Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsUnifiedCanadianAboriginalSyllabics(int code) { +    return((code >= 0x1400) && (code <= 0x167F)); +} + +/** + * xmlUCSIsYiRadicals: + * @code: UCS code point + * + * Check whether the character is part of YiRadicals UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsYiRadicals(int code) { +    return((code >= 0xA490) && (code <= 0xA4CF)); +} + +/** + * xmlUCSIsYiSyllables: + * @code: UCS code point + * + * Check whether the character is part of YiSyllables UCS Block + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsYiSyllables(int code) { +    return((code >= 0xA000) && (code <= 0xA48F)); +} + +/** + * xmlUCSIsBlock: + * @code: UCS code point + * @block: UCS block name + * + * Check whether the caracter is part of the UCS Block + * + * Returns 1 if true, 0 if false and -1 on unknown block + */ +int +xmlUCSIsBlock(int code, const char *block) { +    if (!strcmp(block, "AlphabeticPresentationForms")) +        return(xmlUCSIsAlphabeticPresentationForms(code)); +    if (!strcmp(block, "Arabic")) +        return(xmlUCSIsArabic(code)); +    if (!strcmp(block, "ArabicPresentationForms-A")) +        return(xmlUCSIsArabicPresentationFormsA(code)); +    if (!strcmp(block, "ArabicPresentationForms-B")) +        return(xmlUCSIsArabicPresentationFormsB(code)); +    if (!strcmp(block, "Armenian")) +        return(xmlUCSIsArmenian(code)); +    if (!strcmp(block, "Arrows")) +        return(xmlUCSIsArrows(code)); +    if (!strcmp(block, "BasicLatin")) +        return(xmlUCSIsBasicLatin(code)); +    if (!strcmp(block, "Bengali")) +        return(xmlUCSIsBengali(code)); +    if (!strcmp(block, "BlockElements")) +        return(xmlUCSIsBlockElements(code)); +    if (!strcmp(block, "Bopomofo")) +        return(xmlUCSIsBopomofo(code)); +    if (!strcmp(block, "BopomofoExtended")) +        return(xmlUCSIsBopomofoExtended(code)); +    if (!strcmp(block, "BoxDrawing")) +        return(xmlUCSIsBoxDrawing(code)); +    if (!strcmp(block, "BraillePatterns")) +        return(xmlUCSIsBraillePatterns(code)); +    if (!strcmp(block, "ByzantineMusicalSymbols")) +        return(xmlUCSIsByzantineMusicalSymbols(code)); +    if (!strcmp(block, "CJKCompatibility")) +        return(xmlUCSIsCJKCompatibility(code)); +    if (!strcmp(block, "CJKCompatibilityForms")) +        return(xmlUCSIsCJKCompatibilityForms(code)); +    if (!strcmp(block, "CJKCompatibilityIdeographs")) +        return(xmlUCSIsCJKCompatibilityIdeographs(code)); +    if (!strcmp(block, "CJKCompatibilityIdeographsSupplement")) +        return(xmlUCSIsCJKCompatibilityIdeographsSupplement(code)); +    if (!strcmp(block, "CJKRadicalsSupplement")) +        return(xmlUCSIsCJKRadicalsSupplement(code)); +    if (!strcmp(block, "CJKSymbolsandPunctuation")) +        return(xmlUCSIsCJKSymbolsandPunctuation(code)); +    if (!strcmp(block, "CJKUnifiedIdeographs")) +        return(xmlUCSIsCJKUnifiedIdeographs(code)); +    if (!strcmp(block, "CJKUnifiedIdeographsExtensionA")) +        return(xmlUCSIsCJKUnifiedIdeographsExtensionA(code)); +    if (!strcmp(block, "CJKUnifiedIdeographsExtensionB")) +        return(xmlUCSIsCJKUnifiedIdeographsExtensionB(code)); +    if (!strcmp(block, "Cherokee")) +        return(xmlUCSIsCherokee(code)); +    if (!strcmp(block, "CombiningDiacriticalMarks")) +        return(xmlUCSIsCombiningDiacriticalMarks(code)); +    if (!strcmp(block, "CombiningHalfMarks")) +        return(xmlUCSIsCombiningHalfMarks(code)); +    if (!strcmp(block, "CombiningMarksforSymbols")) +        return(xmlUCSIsCombiningMarksforSymbols(code)); +    if (!strcmp(block, "ControlPictures")) +        return(xmlUCSIsControlPictures(code)); +    if (!strcmp(block, "CurrencySymbols")) +        return(xmlUCSIsCurrencySymbols(code)); +    if (!strcmp(block, "Cyrillic")) +        return(xmlUCSIsCyrillic(code)); +    if (!strcmp(block, "Deseret")) +        return(xmlUCSIsDeseret(code)); +    if (!strcmp(block, "Devanagari")) +        return(xmlUCSIsDevanagari(code)); +    if (!strcmp(block, "Dingbats")) +        return(xmlUCSIsDingbats(code)); +    if (!strcmp(block, "EnclosedAlphanumerics")) +        return(xmlUCSIsEnclosedAlphanumerics(code)); +    if (!strcmp(block, "EnclosedCJKLettersandMonths")) +        return(xmlUCSIsEnclosedCJKLettersandMonths(code)); +    if (!strcmp(block, "Ethiopic")) +        return(xmlUCSIsEthiopic(code)); +    if (!strcmp(block, "GeneralPunctuation")) +        return(xmlUCSIsGeneralPunctuation(code)); +    if (!strcmp(block, "GeometricShapes")) +        return(xmlUCSIsGeometricShapes(code)); +    if (!strcmp(block, "Georgian")) +        return(xmlUCSIsGeorgian(code)); +    if (!strcmp(block, "Gothic")) +        return(xmlUCSIsGothic(code)); +    if (!strcmp(block, "Greek")) +        return(xmlUCSIsGreek(code)); +    if (!strcmp(block, "GreekExtended")) +        return(xmlUCSIsGreekExtended(code)); +    if (!strcmp(block, "Gujarati")) +        return(xmlUCSIsGujarati(code)); +    if (!strcmp(block, "Gurmukhi")) +        return(xmlUCSIsGurmukhi(code)); +    if (!strcmp(block, "HalfwidthandFullwidthForms")) +        return(xmlUCSIsHalfwidthandFullwidthForms(code)); +    if (!strcmp(block, "HangulCompatibilityJamo")) +        return(xmlUCSIsHangulCompatibilityJamo(code)); +    if (!strcmp(block, "HangulJamo")) +        return(xmlUCSIsHangulJamo(code)); +    if (!strcmp(block, "HangulSyllables")) +        return(xmlUCSIsHangulSyllables(code)); +    if (!strcmp(block, "Hebrew")) +        return(xmlUCSIsHebrew(code)); +    if (!strcmp(block, "HighPrivateUseSurrogates")) +        return(xmlUCSIsHighPrivateUseSurrogates(code)); +    if (!strcmp(block, "HighSurrogates")) +        return(xmlUCSIsHighSurrogates(code)); +    if (!strcmp(block, "Hiragana")) +        return(xmlUCSIsHiragana(code)); +    if (!strcmp(block, "IPAExtensions")) +        return(xmlUCSIsIPAExtensions(code)); +    if (!strcmp(block, "IdeographicDescriptionCharacters")) +        return(xmlUCSIsIdeographicDescriptionCharacters(code)); +    if (!strcmp(block, "Kanbun")) +        return(xmlUCSIsKanbun(code)); +    if (!strcmp(block, "KangxiRadicals")) +        return(xmlUCSIsKangxiRadicals(code)); +    if (!strcmp(block, "Kannada")) +        return(xmlUCSIsKannada(code)); +    if (!strcmp(block, "Katakana")) +        return(xmlUCSIsKatakana(code)); +    if (!strcmp(block, "Khmer")) +        return(xmlUCSIsKhmer(code)); +    if (!strcmp(block, "Lao")) +        return(xmlUCSIsLao(code)); +    if (!strcmp(block, "Latin-1Supplement")) +        return(xmlUCSIsLatin1Supplement(code)); +    if (!strcmp(block, "LatinExtended-A")) +        return(xmlUCSIsLatinExtendedA(code)); +    if (!strcmp(block, "LatinExtended-B")) +        return(xmlUCSIsLatinExtendedB(code)); +    if (!strcmp(block, "LatinExtendedAdditional")) +        return(xmlUCSIsLatinExtendedAdditional(code)); +    if (!strcmp(block, "LetterlikeSymbols")) +        return(xmlUCSIsLetterlikeSymbols(code)); +    if (!strcmp(block, "LowSurrogates")) +        return(xmlUCSIsLowSurrogates(code)); +    if (!strcmp(block, "Malayalam")) +        return(xmlUCSIsMalayalam(code)); +    if (!strcmp(block, "MathematicalAlphanumericSymbols")) +        return(xmlUCSIsMathematicalAlphanumericSymbols(code)); +    if (!strcmp(block, "MathematicalOperators")) +        return(xmlUCSIsMathematicalOperators(code)); +    if (!strcmp(block, "MiscellaneousSymbols")) +        return(xmlUCSIsMiscellaneousSymbols(code)); +    if (!strcmp(block, "MiscellaneousTechnical")) +        return(xmlUCSIsMiscellaneousTechnical(code)); +    if (!strcmp(block, "Mongolian")) +        return(xmlUCSIsMongolian(code)); +    if (!strcmp(block, "MusicalSymbols")) +        return(xmlUCSIsMusicalSymbols(code)); +    if (!strcmp(block, "Myanmar")) +        return(xmlUCSIsMyanmar(code)); +    if (!strcmp(block, "NumberForms")) +        return(xmlUCSIsNumberForms(code)); +    if (!strcmp(block, "Ogham")) +        return(xmlUCSIsOgham(code)); +    if (!strcmp(block, "OldItalic")) +        return(xmlUCSIsOldItalic(code)); +    if (!strcmp(block, "OpticalCharacterRecognition")) +        return(xmlUCSIsOpticalCharacterRecognition(code)); +    if (!strcmp(block, "Oriya")) +        return(xmlUCSIsOriya(code)); +    if (!strcmp(block, "PrivateUse")) +        return(xmlUCSIsPrivateUse(code)); +    if (!strcmp(block, "Runic")) +        return(xmlUCSIsRunic(code)); +    if (!strcmp(block, "Sinhala")) +        return(xmlUCSIsSinhala(code)); +    if (!strcmp(block, "SmallFormVariants")) +        return(xmlUCSIsSmallFormVariants(code)); +    if (!strcmp(block, "SpacingModifierLetters")) +        return(xmlUCSIsSpacingModifierLetters(code)); +    if (!strcmp(block, "Specials")) +        return(xmlUCSIsSpecials(code)); +    if (!strcmp(block, "SuperscriptsandSubscripts")) +        return(xmlUCSIsSuperscriptsandSubscripts(code)); +    if (!strcmp(block, "Syriac")) +        return(xmlUCSIsSyriac(code)); +    if (!strcmp(block, "Tags")) +        return(xmlUCSIsTags(code)); +    if (!strcmp(block, "Tamil")) +        return(xmlUCSIsTamil(code)); +    if (!strcmp(block, "Telugu")) +        return(xmlUCSIsTelugu(code)); +    if (!strcmp(block, "Thaana")) +        return(xmlUCSIsThaana(code)); +    if (!strcmp(block, "Thai")) +        return(xmlUCSIsThai(code)); +    if (!strcmp(block, "Tibetan")) +        return(xmlUCSIsTibetan(code)); +    if (!strcmp(block, "UnifiedCanadianAboriginalSyllabics")) +        return(xmlUCSIsUnifiedCanadianAboriginalSyllabics(code)); +    if (!strcmp(block, "YiRadicals")) +        return(xmlUCSIsYiRadicals(code)); +    if (!strcmp(block, "YiSyllables")) +        return(xmlUCSIsYiSyllables(code)); +    return(-1); +} + +/** + * xmlUCSIsCatC: + * @code: UCS code point + * + * Check whether the character is part of C UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatC(int code) { +    return(((code >= 0x0) && (code <= 0x1f)) || +           ((code >= 0x7f) && (code <= 0x9f)) || +           (code == 0x70f) || +           ((code >= 0x180b) && (code <= 0x180e)) || +           ((code >= 0x200c) && (code <= 0x200f)) || +           ((code >= 0x202a) && (code <= 0x202e)) || +           ((code >= 0x206a) && (code <= 0x206f)) || +           (code == 0xd800) || +           ((code >= 0xdb7f) && (code <= 0xdb80)) || +           ((code >= 0xdbff) && (code <= 0xdc00)) || +           ((code >= 0xdfff) && (code <= 0xe000)) || +           (code == 0xf8ff) || +           (code == 0xfeff) || +           ((code >= 0xfff9) && (code <= 0xfffb)) || +           ((code >= 0x1d173) && (code <= 0x1d17a)) || +           (code == 0xe0001) || +           ((code >= 0xe0020) && (code <= 0xe007f)) || +           (code == 0xf0000) || +           (code == 0xffffd) || +           (code == 0x100000) || +           (code == 0x10fffd)); +} + +/** + * xmlUCSIsCatCc: + * @code: UCS code point + * + * Check whether the character is part of Cc UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatCc(int code) { +    return(((code >= 0x0) && (code <= 0x1f)) || +           ((code >= 0x7f) && (code <= 0x9f))); +} + +/** + * xmlUCSIsCatCf: + * @code: UCS code point + * + * Check whether the character is part of Cf UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatCf(int code) { +    return((code == 0x70f) || +           ((code >= 0x180b) && (code <= 0x180e)) || +           ((code >= 0x200c) && (code <= 0x200f)) || +           ((code >= 0x202a) && (code <= 0x202e)) || +           ((code >= 0x206a) && (code <= 0x206f)) || +           (code == 0xfeff) || +           ((code >= 0xfff9) && (code <= 0xfffb)) || +           ((code >= 0x1d173) && (code <= 0x1d17a)) || +           (code == 0xe0001) || +           ((code >= 0xe0020) && (code <= 0xe007f))); +} + +/** + * xmlUCSIsCatCo: + * @code: UCS code point + * + * Check whether the character is part of Co UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatCo(int code) { +    return((code == 0xe000) || +           (code == 0xf8ff) || +           (code == 0xf0000) || +           (code == 0xffffd) || +           (code == 0x100000) || +           (code == 0x10fffd)); +} + +/** + * xmlUCSIsCatCs: + * @code: UCS code point + * + * Check whether the character is part of Cs UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatCs(int code) { +    return((code == 0xd800) || +           ((code >= 0xdb7f) && (code <= 0xdb80)) || +           ((code >= 0xdbff) && (code <= 0xdc00)) || +           (code == 0xdfff)); +} + +/** + * xmlUCSIsCatL: + * @code: UCS code point + * + * Check whether the character is part of L UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatL(int code) { +    return(((code >= 0x41) && (code <= 0x5a)) || +           ((code >= 0x61) && (code <= 0x7a)) || +           (code == 0xaa) || +           (code == 0xb5) || +           (code == 0xba) || +           ((code >= 0xc0) && (code <= 0xd6)) || +           ((code >= 0xd8) && (code <= 0xf6)) || +           ((code >= 0xf8) && (code <= 0x21f)) || +           ((code >= 0x222) && (code <= 0x233)) || +           ((code >= 0x250) && (code <= 0x2ad)) || +           ((code >= 0x2b0) && (code <= 0x2b8)) || +           ((code >= 0x2bb) && (code <= 0x2c1)) || +           ((code >= 0x2d0) && (code <= 0x2d1)) || +           ((code >= 0x2e0) && (code <= 0x2e4)) || +           (code == 0x2ee) || +           (code == 0x37a) || +           (code == 0x386) || +           ((code >= 0x388) && (code <= 0x38a)) || +           (code == 0x38c) || +           ((code >= 0x38e) && (code <= 0x3a1)) || +           ((code >= 0x3a3) && (code <= 0x3ce)) || +           ((code >= 0x3d0) && (code <= 0x3d7)) || +           ((code >= 0x3da) && (code <= 0x3f5)) || +           ((code >= 0x400) && (code <= 0x481)) || +           ((code >= 0x48c) && (code <= 0x4c4)) || +           ((code >= 0x4c7) && (code <= 0x4c8)) || +           ((code >= 0x4cb) && (code <= 0x4cc)) || +           ((code >= 0x4d0) && (code <= 0x4f5)) || +           ((code >= 0x4f8) && (code <= 0x4f9)) || +           ((code >= 0x531) && (code <= 0x556)) || +           (code == 0x559) || +           ((code >= 0x561) && (code <= 0x587)) || +           ((code >= 0x5d0) && (code <= 0x5ea)) || +           ((code >= 0x5f0) && (code <= 0x5f2)) || +           ((code >= 0x621) && (code <= 0x63a)) || +           ((code >= 0x640) && (code <= 0x64a)) || +           ((code >= 0x671) && (code <= 0x6d3)) || +           (code == 0x6d5) || +           ((code >= 0x6e5) && (code <= 0x6e6)) || +           ((code >= 0x6fa) && (code <= 0x6fc)) || +           (code == 0x710) || +           ((code >= 0x712) && (code <= 0x72c)) || +           ((code >= 0x780) && (code <= 0x7a5)) || +           ((code >= 0x905) && (code <= 0x939)) || +           (code == 0x93d) || +           (code == 0x950) || +           ((code >= 0x958) && (code <= 0x961)) || +           ((code >= 0x985) && (code <= 0x98c)) || +           ((code >= 0x98f) && (code <= 0x990)) || +           ((code >= 0x993) && (code <= 0x9a8)) || +           ((code >= 0x9aa) && (code <= 0x9b0)) || +           (code == 0x9b2) || +           ((code >= 0x9b6) && (code <= 0x9b9)) || +           ((code >= 0x9dc) && (code <= 0x9dd)) || +           ((code >= 0x9df) && (code <= 0x9e1)) || +           ((code >= 0x9f0) && (code <= 0x9f1)) || +           ((code >= 0xa05) && (code <= 0xa0a)) || +           ((code >= 0xa0f) && (code <= 0xa10)) || +           ((code >= 0xa13) && (code <= 0xa28)) || +           ((code >= 0xa2a) && (code <= 0xa30)) || +           ((code >= 0xa32) && (code <= 0xa33)) || +           ((code >= 0xa35) && (code <= 0xa36)) || +           ((code >= 0xa38) && (code <= 0xa39)) || +           ((code >= 0xa59) && (code <= 0xa5c)) || +           (code == 0xa5e) || +           ((code >= 0xa72) && (code <= 0xa74)) || +           ((code >= 0xa85) && (code <= 0xa8b)) || +           (code == 0xa8d) || +           ((code >= 0xa8f) && (code <= 0xa91)) || +           ((code >= 0xa93) && (code <= 0xaa8)) || +           ((code >= 0xaaa) && (code <= 0xab0)) || +           ((code >= 0xab2) && (code <= 0xab3)) || +           ((code >= 0xab5) && (code <= 0xab9)) || +           (code == 0xabd) || +           (code == 0xad0) || +           (code == 0xae0) || +           ((code >= 0xb05) && (code <= 0xb0c)) || +           ((code >= 0xb0f) && (code <= 0xb10)) || +           ((code >= 0xb13) && (code <= 0xb28)) || +           ((code >= 0xb2a) && (code <= 0xb30)) || +           ((code >= 0xb32) && (code <= 0xb33)) || +           ((code >= 0xb36) && (code <= 0xb39)) || +           (code == 0xb3d) || +           ((code >= 0xb5c) && (code <= 0xb5d)) || +           ((code >= 0xb5f) && (code <= 0xb61)) || +           ((code >= 0xb85) && (code <= 0xb8a)) || +           ((code >= 0xb8e) && (code <= 0xb90)) || +           ((code >= 0xb92) && (code <= 0xb95)) || +           ((code >= 0xb99) && (code <= 0xb9a)) || +           (code == 0xb9c) || +           ((code >= 0xb9e) && (code <= 0xb9f)) || +           ((code >= 0xba3) && (code <= 0xba4)) || +           ((code >= 0xba8) && (code <= 0xbaa)) || +           ((code >= 0xbae) && (code <= 0xbb5)) || +           ((code >= 0xbb7) && (code <= 0xbb9)) || +           ((code >= 0xc05) && (code <= 0xc0c)) || +           ((code >= 0xc0e) && (code <= 0xc10)) || +           ((code >= 0xc12) && (code <= 0xc28)) || +           ((code >= 0xc2a) && (code <= 0xc33)) || +           ((code >= 0xc35) && (code <= 0xc39)) || +           ((code >= 0xc60) && (code <= 0xc61)) || +           ((code >= 0xc85) && (code <= 0xc8c)) || +           ((code >= 0xc8e) && (code <= 0xc90)) || +           ((code >= 0xc92) && (code <= 0xca8)) || +           ((code >= 0xcaa) && (code <= 0xcb3)) || +           ((code >= 0xcb5) && (code <= 0xcb9)) || +           (code == 0xcde) || +           ((code >= 0xce0) && (code <= 0xce1)) || +           ((code >= 0xd05) && (code <= 0xd0c)) || +           ((code >= 0xd0e) && (code <= 0xd10)) || +           ((code >= 0xd12) && (code <= 0xd28)) || +           ((code >= 0xd2a) && (code <= 0xd39)) || +           ((code >= 0xd60) && (code <= 0xd61)) || +           ((code >= 0xd85) && (code <= 0xd96)) || +           ((code >= 0xd9a) && (code <= 0xdb1)) || +           ((code >= 0xdb3) && (code <= 0xdbb)) || +           (code == 0xdbd) || +           ((code >= 0xdc0) && (code <= 0xdc6)) || +           ((code >= 0xe01) && (code <= 0xe30)) || +           ((code >= 0xe32) && (code <= 0xe33)) || +           ((code >= 0xe40) && (code <= 0xe46)) || +           ((code >= 0xe81) && (code <= 0xe82)) || +           (code == 0xe84) || +           ((code >= 0xe87) && (code <= 0xe88)) || +           (code == 0xe8a) || +           (code == 0xe8d) || +           ((code >= 0xe94) && (code <= 0xe97)) || +           ((code >= 0xe99) && (code <= 0xe9f)) || +           ((code >= 0xea1) && (code <= 0xea3)) || +           (code == 0xea5) || +           (code == 0xea7) || +           ((code >= 0xeaa) && (code <= 0xeab)) || +           ((code >= 0xead) && (code <= 0xeb0)) || +           ((code >= 0xeb2) && (code <= 0xeb3)) || +           (code == 0xebd) || +           ((code >= 0xec0) && (code <= 0xec4)) || +           (code == 0xec6) || +           ((code >= 0xedc) && (code <= 0xedd)) || +           (code == 0xf00) || +           ((code >= 0xf40) && (code <= 0xf47)) || +           ((code >= 0xf49) && (code <= 0xf6a)) || +           ((code >= 0xf88) && (code <= 0xf8b)) || +           ((code >= 0x1000) && (code <= 0x1021)) || +           ((code >= 0x1023) && (code <= 0x1027)) || +           ((code >= 0x1029) && (code <= 0x102a)) || +           ((code >= 0x1050) && (code <= 0x1055)) || +           ((code >= 0x10a0) && (code <= 0x10c5)) || +           ((code >= 0x10d0) && (code <= 0x10f6)) || +           ((code >= 0x1100) && (code <= 0x1159)) || +           ((code >= 0x115f) && (code <= 0x11a2)) || +           ((code >= 0x11a8) && (code <= 0x11f9)) || +           ((code >= 0x1200) && (code <= 0x1206)) || +           ((code >= 0x1208) && (code <= 0x1246)) || +           (code == 0x1248) || +           ((code >= 0x124a) && (code <= 0x124d)) || +           ((code >= 0x1250) && (code <= 0x1256)) || +           (code == 0x1258) || +           ((code >= 0x125a) && (code <= 0x125d)) || +           ((code >= 0x1260) && (code <= 0x1286)) || +           (code == 0x1288) || +           ((code >= 0x128a) && (code <= 0x128d)) || +           ((code >= 0x1290) && (code <= 0x12ae)) || +           (code == 0x12b0) || +           ((code >= 0x12b2) && (code <= 0x12b5)) || +           ((code >= 0x12b8) && (code <= 0x12be)) || +           (code == 0x12c0) || +           ((code >= 0x12c2) && (code <= 0x12c5)) || +           ((code >= 0x12c8) && (code <= 0x12ce)) || +           ((code >= 0x12d0) && (code <= 0x12d6)) || +           ((code >= 0x12d8) && (code <= 0x12ee)) || +           ((code >= 0x12f0) && (code <= 0x130e)) || +           (code == 0x1310) || +           ((code >= 0x1312) && (code <= 0x1315)) || +           ((code >= 0x1318) && (code <= 0x131e)) || +           ((code >= 0x1320) && (code <= 0x1346)) || +           ((code >= 0x1348) && (code <= 0x135a)) || +           ((code >= 0x13a0) && (code <= 0x13f4)) || +           ((code >= 0x1401) && (code <= 0x166c)) || +           ((code >= 0x166f) && (code <= 0x1676)) || +           ((code >= 0x1681) && (code <= 0x169a)) || +           ((code >= 0x16a0) && (code <= 0x16ea)) || +           ((code >= 0x1780) && (code <= 0x17b3)) || +           ((code >= 0x1820) && (code <= 0x1877)) || +           ((code >= 0x1880) && (code <= 0x18a8)) || +           ((code >= 0x1e00) && (code <= 0x1e9b)) || +           ((code >= 0x1ea0) && (code <= 0x1ef9)) || +           ((code >= 0x1f00) && (code <= 0x1f15)) || +           ((code >= 0x1f18) && (code <= 0x1f1d)) || +           ((code >= 0x1f20) && (code <= 0x1f45)) || +           ((code >= 0x1f48) && (code <= 0x1f4d)) || +           ((code >= 0x1f50) && (code <= 0x1f57)) || +           (code == 0x1f59) || +           (code == 0x1f5b) || +           (code == 0x1f5d) || +           ((code >= 0x1f5f) && (code <= 0x1f7d)) || +           ((code >= 0x1f80) && (code <= 0x1fb4)) || +           ((code >= 0x1fb6) && (code <= 0x1fbc)) || +           (code == 0x1fbe) || +           ((code >= 0x1fc2) && (code <= 0x1fc4)) || +           ((code >= 0x1fc6) && (code <= 0x1fcc)) || +           ((code >= 0x1fd0) && (code <= 0x1fd3)) || +           ((code >= 0x1fd6) && (code <= 0x1fdb)) || +           ((code >= 0x1fe0) && (code <= 0x1fec)) || +           ((code >= 0x1ff2) && (code <= 0x1ff4)) || +           ((code >= 0x1ff6) && (code <= 0x1ffc)) || +           (code == 0x207f) || +           (code == 0x2102) || +           (code == 0x2107) || +           ((code >= 0x210a) && (code <= 0x2113)) || +           (code == 0x2115) || +           ((code >= 0x2119) && (code <= 0x211d)) || +           (code == 0x2124) || +           (code == 0x2126) || +           (code == 0x2128) || +           ((code >= 0x212a) && (code <= 0x212d)) || +           ((code >= 0x212f) && (code <= 0x2131)) || +           ((code >= 0x2133) && (code <= 0x2139)) || +           ((code >= 0x3005) && (code <= 0x3006)) || +           ((code >= 0x3031) && (code <= 0x3035)) || +           ((code >= 0x3041) && (code <= 0x3094)) || +           ((code >= 0x309d) && (code <= 0x309e)) || +           ((code >= 0x30a1) && (code <= 0x30fa)) || +           ((code >= 0x30fc) && (code <= 0x30fe)) || +           ((code >= 0x3105) && (code <= 0x312c)) || +           ((code >= 0x3131) && (code <= 0x318e)) || +           ((code >= 0x31a0) && (code <= 0x31b7)) || +           (code == 0x3400) || +           (code == 0x4db5) || +           (code == 0x4e00) || +           (code == 0x9fa5) || +           ((code >= 0xa000) && (code <= 0xa48c)) || +           (code == 0xac00) || +           (code == 0xd7a3) || +           ((code >= 0xf900) && (code <= 0xfa2d)) || +           ((code >= 0xfb00) && (code <= 0xfb06)) || +           ((code >= 0xfb13) && (code <= 0xfb17)) || +           (code == 0xfb1d) || +           ((code >= 0xfb1f) && (code <= 0xfb28)) || +           ((code >= 0xfb2a) && (code <= 0xfb36)) || +           ((code >= 0xfb38) && (code <= 0xfb3c)) || +           (code == 0xfb3e) || +           ((code >= 0xfb40) && (code <= 0xfb41)) || +           ((code >= 0xfb43) && (code <= 0xfb44)) || +           ((code >= 0xfb46) && (code <= 0xfbb1)) || +           ((code >= 0xfbd3) && (code <= 0xfd3d)) || +           ((code >= 0xfd50) && (code <= 0xfd8f)) || +           ((code >= 0xfd92) && (code <= 0xfdc7)) || +           ((code >= 0xfdf0) && (code <= 0xfdfb)) || +           ((code >= 0xfe70) && (code <= 0xfe72)) || +           (code == 0xfe74) || +           ((code >= 0xfe76) && (code <= 0xfefc)) || +           ((code >= 0xff21) && (code <= 0xff3a)) || +           ((code >= 0xff41) && (code <= 0xff5a)) || +           ((code >= 0xff66) && (code <= 0xffbe)) || +           ((code >= 0xffc2) && (code <= 0xffc7)) || +           ((code >= 0xffca) && (code <= 0xffcf)) || +           ((code >= 0xffd2) && (code <= 0xffd7)) || +           ((code >= 0xffda) && (code <= 0xffdc)) || +           ((code >= 0x10300) && (code <= 0x1031e)) || +           ((code >= 0x10330) && (code <= 0x10349)) || +           ((code >= 0x10400) && (code <= 0x10425)) || +           ((code >= 0x10428) && (code <= 0x1044d)) || +           ((code >= 0x1d400) && (code <= 0x1d454)) || +           ((code >= 0x1d456) && (code <= 0x1d49c)) || +           ((code >= 0x1d49e) && (code <= 0x1d49f)) || +           (code == 0x1d4a2) || +           ((code >= 0x1d4a5) && (code <= 0x1d4a6)) || +           ((code >= 0x1d4a9) && (code <= 0x1d4ac)) || +           ((code >= 0x1d4ae) && (code <= 0x1d4b9)) || +           (code == 0x1d4bb) || +           ((code >= 0x1d4bd) && (code <= 0x1d4c0)) || +           ((code >= 0x1d4c2) && (code <= 0x1d4c3)) || +           ((code >= 0x1d4c5) && (code <= 0x1d505)) || +           ((code >= 0x1d507) && (code <= 0x1d50a)) || +           ((code >= 0x1d50d) && (code <= 0x1d514)) || +           ((code >= 0x1d516) && (code <= 0x1d51c)) || +           ((code >= 0x1d51e) && (code <= 0x1d539)) || +           ((code >= 0x1d53b) && (code <= 0x1d53e)) || +           ((code >= 0x1d540) && (code <= 0x1d544)) || +           (code == 0x1d546) || +           ((code >= 0x1d54a) && (code <= 0x1d550)) || +           ((code >= 0x1d552) && (code <= 0x1d6a3)) || +           ((code >= 0x1d6a8) && (code <= 0x1d6c0)) || +           ((code >= 0x1d6c2) && (code <= 0x1d6da)) || +           ((code >= 0x1d6dc) && (code <= 0x1d6fa)) || +           ((code >= 0x1d6fc) && (code <= 0x1d714)) || +           ((code >= 0x1d716) && (code <= 0x1d734)) || +           ((code >= 0x1d736) && (code <= 0x1d74e)) || +           ((code >= 0x1d750) && (code <= 0x1d76e)) || +           ((code >= 0x1d770) && (code <= 0x1d788)) || +           ((code >= 0x1d78a) && (code <= 0x1d7a8)) || +           ((code >= 0x1d7aa) && (code <= 0x1d7c2)) || +           ((code >= 0x1d7c4) && (code <= 0x1d7c9)) || +           (code == 0x20000) || +           (code == 0x2a6d6) || +           ((code >= 0x2f800) && (code <= 0x2fa1d))); +} + +/** + * xmlUCSIsCatLl: + * @code: UCS code point + * + * Check whether the character is part of Ll UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatLl(int code) { +    return(((code >= 0x61) && (code <= 0x7a)) || +           (code == 0xaa) || +           (code == 0xb5) || +           (code == 0xba) || +           ((code >= 0xdf) && (code <= 0xf6)) || +           ((code >= 0xf8) && (code <= 0xff)) || +           (code == 0x101) || +           (code == 0x103) || +           (code == 0x105) || +           (code == 0x107) || +           (code == 0x109) || +           (code == 0x10b) || +           (code == 0x10d) || +           (code == 0x10f) || +           (code == 0x111) || +           (code == 0x113) || +           (code == 0x115) || +           (code == 0x117) || +           (code == 0x119) || +           (code == 0x11b) || +           (code == 0x11d) || +           (code == 0x11f) || +           (code == 0x121) || +           (code == 0x123) || +           (code == 0x125) || +           (code == 0x127) || +           (code == 0x129) || +           (code == 0x12b) || +           (code == 0x12d) || +           (code == 0x12f) || +           (code == 0x131) || +           (code == 0x133) || +           (code == 0x135) || +           ((code >= 0x137) && (code <= 0x138)) || +           (code == 0x13a) || +           (code == 0x13c) || +           (code == 0x13e) || +           (code == 0x140) || +           (code == 0x142) || +           (code == 0x144) || +           (code == 0x146) || +           ((code >= 0x148) && (code <= 0x149)) || +           (code == 0x14b) || +           (code == 0x14d) || +           (code == 0x14f) || +           (code == 0x151) || +           (code == 0x153) || +           (code == 0x155) || +           (code == 0x157) || +           (code == 0x159) || +           (code == 0x15b) || +           (code == 0x15d) || +           (code == 0x15f) || +           (code == 0x161) || +           (code == 0x163) || +           (code == 0x165) || +           (code == 0x167) || +           (code == 0x169) || +           (code == 0x16b) || +           (code == 0x16d) || +           (code == 0x16f) || +           (code == 0x171) || +           (code == 0x173) || +           (code == 0x175) || +           (code == 0x177) || +           (code == 0x17a) || +           (code == 0x17c) || +           ((code >= 0x17e) && (code <= 0x180)) || +           (code == 0x183) || +           (code == 0x185) || +           (code == 0x188) || +           ((code >= 0x18c) && (code <= 0x18d)) || +           (code == 0x192) || +           (code == 0x195) || +           ((code >= 0x199) && (code <= 0x19b)) || +           (code == 0x19e) || +           (code == 0x1a1) || +           (code == 0x1a3) || +           (code == 0x1a5) || +           (code == 0x1a8) || +           ((code >= 0x1aa) && (code <= 0x1ab)) || +           (code == 0x1ad) || +           (code == 0x1b0) || +           (code == 0x1b4) || +           (code == 0x1b6) || +           ((code >= 0x1b9) && (code <= 0x1ba)) || +           ((code >= 0x1bd) && (code <= 0x1bf)) || +           (code == 0x1c6) || +           (code == 0x1c9) || +           (code == 0x1cc) || +           (code == 0x1ce) || +           (code == 0x1d0) || +           (code == 0x1d2) || +           (code == 0x1d4) || +           (code == 0x1d6) || +           (code == 0x1d8) || +           (code == 0x1da) || +           ((code >= 0x1dc) && (code <= 0x1dd)) || +           (code == 0x1df) || +           (code == 0x1e1) || +           (code == 0x1e3) || +           (code == 0x1e5) || +           (code == 0x1e7) || +           (code == 0x1e9) || +           (code == 0x1eb) || +           (code == 0x1ed) || +           ((code >= 0x1ef) && (code <= 0x1f0)) || +           (code == 0x1f3) || +           (code == 0x1f5) || +           (code == 0x1f9) || +           (code == 0x1fb) || +           (code == 0x1fd) || +           (code == 0x1ff) || +           (code == 0x201) || +           (code == 0x203) || +           (code == 0x205) || +           (code == 0x207) || +           (code == 0x209) || +           (code == 0x20b) || +           (code == 0x20d) || +           (code == 0x20f) || +           (code == 0x211) || +           (code == 0x213) || +           (code == 0x215) || +           (code == 0x217) || +           (code == 0x219) || +           (code == 0x21b) || +           (code == 0x21d) || +           (code == 0x21f) || +           (code == 0x223) || +           (code == 0x225) || +           (code == 0x227) || +           (code == 0x229) || +           (code == 0x22b) || +           (code == 0x22d) || +           (code == 0x22f) || +           (code == 0x231) || +           (code == 0x233) || +           ((code >= 0x250) && (code <= 0x2ad)) || +           (code == 0x390) || +           ((code >= 0x3ac) && (code <= 0x3ce)) || +           ((code >= 0x3d0) && (code <= 0x3d1)) || +           ((code >= 0x3d5) && (code <= 0x3d7)) || +           (code == 0x3db) || +           (code == 0x3dd) || +           (code == 0x3df) || +           (code == 0x3e1) || +           (code == 0x3e3) || +           (code == 0x3e5) || +           (code == 0x3e7) || +           (code == 0x3e9) || +           (code == 0x3eb) || +           (code == 0x3ed) || +           ((code >= 0x3ef) && (code <= 0x3f3)) || +           (code == 0x3f5) || +           ((code >= 0x430) && (code <= 0x45f)) || +           (code == 0x461) || +           (code == 0x463) || +           (code == 0x465) || +           (code == 0x467) || +           (code == 0x469) || +           (code == 0x46b) || +           (code == 0x46d) || +           (code == 0x46f) || +           (code == 0x471) || +           (code == 0x473) || +           (code == 0x475) || +           (code == 0x477) || +           (code == 0x479) || +           (code == 0x47b) || +           (code == 0x47d) || +           (code == 0x47f) || +           (code == 0x481) || +           (code == 0x48d) || +           (code == 0x48f) || +           (code == 0x491) || +           (code == 0x493) || +           (code == 0x495) || +           (code == 0x497) || +           (code == 0x499) || +           (code == 0x49b) || +           (code == 0x49d) || +           (code == 0x49f) || +           (code == 0x4a1) || +           (code == 0x4a3) || +           (code == 0x4a5) || +           (code == 0x4a7) || +           (code == 0x4a9) || +           (code == 0x4ab) || +           (code == 0x4ad) || +           (code == 0x4af) || +           (code == 0x4b1) || +           (code == 0x4b3) || +           (code == 0x4b5) || +           (code == 0x4b7) || +           (code == 0x4b9) || +           (code == 0x4bb) || +           (code == 0x4bd) || +           (code == 0x4bf) || +           (code == 0x4c2) || +           (code == 0x4c4) || +           (code == 0x4c8) || +           (code == 0x4cc) || +           (code == 0x4d1) || +           (code == 0x4d3) || +           (code == 0x4d5) || +           (code == 0x4d7) || +           (code == 0x4d9) || +           (code == 0x4db) || +           (code == 0x4dd) || +           (code == 0x4df) || +           (code == 0x4e1) || +           (code == 0x4e3) || +           (code == 0x4e5) || +           (code == 0x4e7) || +           (code == 0x4e9) || +           (code == 0x4eb) || +           (code == 0x4ed) || +           (code == 0x4ef) || +           (code == 0x4f1) || +           (code == 0x4f3) || +           (code == 0x4f5) || +           (code == 0x4f9) || +           ((code >= 0x561) && (code <= 0x587)) || +           (code == 0x1e01) || +           (code == 0x1e03) || +           (code == 0x1e05) || +           (code == 0x1e07) || +           (code == 0x1e09) || +           (code == 0x1e0b) || +           (code == 0x1e0d) || +           (code == 0x1e0f) || +           (code == 0x1e11) || +           (code == 0x1e13) || +           (code == 0x1e15) || +           (code == 0x1e17) || +           (code == 0x1e19) || +           (code == 0x1e1b) || +           (code == 0x1e1d) || +           (code == 0x1e1f) || +           (code == 0x1e21) || +           (code == 0x1e23) || +           (code == 0x1e25) || +           (code == 0x1e27) || +           (code == 0x1e29) || +           (code == 0x1e2b) || +           (code == 0x1e2d) || +           (code == 0x1e2f) || +           (code == 0x1e31) || +           (code == 0x1e33) || +           (code == 0x1e35) || +           (code == 0x1e37) || +           (code == 0x1e39) || +           (code == 0x1e3b) || +           (code == 0x1e3d) || +           (code == 0x1e3f) || +           (code == 0x1e41) || +           (code == 0x1e43) || +           (code == 0x1e45) || +           (code == 0x1e47) || +           (code == 0x1e49) || +           (code == 0x1e4b) || +           (code == 0x1e4d) || +           (code == 0x1e4f) || +           (code == 0x1e51) || +           (code == 0x1e53) || +           (code == 0x1e55) || +           (code == 0x1e57) || +           (code == 0x1e59) || +           (code == 0x1e5b) || +           (code == 0x1e5d) || +           (code == 0x1e5f) || +           (code == 0x1e61) || +           (code == 0x1e63) || +           (code == 0x1e65) || +           (code == 0x1e67) || +           (code == 0x1e69) || +           (code == 0x1e6b) || +           (code == 0x1e6d) || +           (code == 0x1e6f) || +           (code == 0x1e71) || +           (code == 0x1e73) || +           (code == 0x1e75) || +           (code == 0x1e77) || +           (code == 0x1e79) || +           (code == 0x1e7b) || +           (code == 0x1e7d) || +           (code == 0x1e7f) || +           (code == 0x1e81) || +           (code == 0x1e83) || +           (code == 0x1e85) || +           (code == 0x1e87) || +           (code == 0x1e89) || +           (code == 0x1e8b) || +           (code == 0x1e8d) || +           (code == 0x1e8f) || +           (code == 0x1e91) || +           (code == 0x1e93) || +           ((code >= 0x1e95) && (code <= 0x1e9b)) || +           (code == 0x1ea1) || +           (code == 0x1ea3) || +           (code == 0x1ea5) || +           (code == 0x1ea7) || +           (code == 0x1ea9) || +           (code == 0x1eab) || +           (code == 0x1ead) || +           (code == 0x1eaf) || +           (code == 0x1eb1) || +           (code == 0x1eb3) || +           (code == 0x1eb5) || +           (code == 0x1eb7) || +           (code == 0x1eb9) || +           (code == 0x1ebb) || +           (code == 0x1ebd) || +           (code == 0x1ebf) || +           (code == 0x1ec1) || +           (code == 0x1ec3) || +           (code == 0x1ec5) || +           (code == 0x1ec7) || +           (code == 0x1ec9) || +           (code == 0x1ecb) || +           (code == 0x1ecd) || +           (code == 0x1ecf) || +           (code == 0x1ed1) || +           (code == 0x1ed3) || +           (code == 0x1ed5) || +           (code == 0x1ed7) || +           (code == 0x1ed9) || +           (code == 0x1edb) || +           (code == 0x1edd) || +           (code == 0x1edf) || +           (code == 0x1ee1) || +           (code == 0x1ee3) || +           (code == 0x1ee5) || +           (code == 0x1ee7) || +           (code == 0x1ee9) || +           (code == 0x1eeb) || +           (code == 0x1eed) || +           (code == 0x1eef) || +           (code == 0x1ef1) || +           (code == 0x1ef3) || +           (code == 0x1ef5) || +           (code == 0x1ef7) || +           (code == 0x1ef9) || +           ((code >= 0x1f00) && (code <= 0x1f07)) || +           ((code >= 0x1f10) && (code <= 0x1f15)) || +           ((code >= 0x1f20) && (code <= 0x1f27)) || +           ((code >= 0x1f30) && (code <= 0x1f37)) || +           ((code >= 0x1f40) && (code <= 0x1f45)) || +           ((code >= 0x1f50) && (code <= 0x1f57)) || +           ((code >= 0x1f60) && (code <= 0x1f67)) || +           ((code >= 0x1f70) && (code <= 0x1f7d)) || +           ((code >= 0x1f80) && (code <= 0x1f87)) || +           ((code >= 0x1f90) && (code <= 0x1f97)) || +           ((code >= 0x1fa0) && (code <= 0x1fa7)) || +           ((code >= 0x1fb0) && (code <= 0x1fb4)) || +           ((code >= 0x1fb6) && (code <= 0x1fb7)) || +           (code == 0x1fbe) || +           ((code >= 0x1fc2) && (code <= 0x1fc4)) || +           ((code >= 0x1fc6) && (code <= 0x1fc7)) || +           ((code >= 0x1fd0) && (code <= 0x1fd3)) || +           ((code >= 0x1fd6) && (code <= 0x1fd7)) || +           ((code >= 0x1fe0) && (code <= 0x1fe7)) || +           ((code >= 0x1ff2) && (code <= 0x1ff4)) || +           ((code >= 0x1ff6) && (code <= 0x1ff7)) || +           (code == 0x207f) || +           (code == 0x210a) || +           ((code >= 0x210e) && (code <= 0x210f)) || +           (code == 0x2113) || +           (code == 0x212f) || +           (code == 0x2134) || +           (code == 0x2139) || +           ((code >= 0xfb00) && (code <= 0xfb06)) || +           ((code >= 0xfb13) && (code <= 0xfb17)) || +           ((code >= 0xff41) && (code <= 0xff5a)) || +           ((code >= 0x10428) && (code <= 0x1044d)) || +           ((code >= 0x1d41a) && (code <= 0x1d433)) || +           ((code >= 0x1d44e) && (code <= 0x1d454)) || +           ((code >= 0x1d456) && (code <= 0x1d467)) || +           ((code >= 0x1d482) && (code <= 0x1d49b)) || +           ((code >= 0x1d4b6) && (code <= 0x1d4b9)) || +           (code == 0x1d4bb) || +           ((code >= 0x1d4bd) && (code <= 0x1d4c0)) || +           ((code >= 0x1d4c2) && (code <= 0x1d4c3)) || +           ((code >= 0x1d4c5) && (code <= 0x1d4cf)) || +           ((code >= 0x1d4ea) && (code <= 0x1d503)) || +           ((code >= 0x1d51e) && (code <= 0x1d537)) || +           ((code >= 0x1d552) && (code <= 0x1d56b)) || +           ((code >= 0x1d586) && (code <= 0x1d59f)) || +           ((code >= 0x1d5ba) && (code <= 0x1d5d3)) || +           ((code >= 0x1d5ee) && (code <= 0x1d607)) || +           ((code >= 0x1d622) && (code <= 0x1d63b)) || +           ((code >= 0x1d656) && (code <= 0x1d66f)) || +           ((code >= 0x1d68a) && (code <= 0x1d6a3)) || +           ((code >= 0x1d6c2) && (code <= 0x1d6da)) || +           ((code >= 0x1d6dc) && (code <= 0x1d6e1)) || +           ((code >= 0x1d6fc) && (code <= 0x1d714)) || +           ((code >= 0x1d716) && (code <= 0x1d71b)) || +           ((code >= 0x1d736) && (code <= 0x1d74e)) || +           ((code >= 0x1d750) && (code <= 0x1d755)) || +           ((code >= 0x1d770) && (code <= 0x1d788)) || +           ((code >= 0x1d78a) && (code <= 0x1d78f)) || +           ((code >= 0x1d7aa) && (code <= 0x1d7c2)) || +           ((code >= 0x1d7c4) && (code <= 0x1d7c9))); +} + +/** + * xmlUCSIsCatLm: + * @code: UCS code point + * + * Check whether the character is part of Lm UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatLm(int code) { +    return(((code >= 0x2b0) && (code <= 0x2b8)) || +           ((code >= 0x2bb) && (code <= 0x2c1)) || +           ((code >= 0x2d0) && (code <= 0x2d1)) || +           ((code >= 0x2e0) && (code <= 0x2e4)) || +           (code == 0x2ee) || +           (code == 0x37a) || +           (code == 0x559) || +           (code == 0x640) || +           ((code >= 0x6e5) && (code <= 0x6e6)) || +           (code == 0xe46) || +           (code == 0xec6) || +           (code == 0x1843) || +           (code == 0x3005) || +           ((code >= 0x3031) && (code <= 0x3035)) || +           ((code >= 0x309d) && (code <= 0x309e)) || +           ((code >= 0x30fc) && (code <= 0x30fe)) || +           (code == 0xff70) || +           ((code >= 0xff9e) && (code <= 0xff9f))); +} + +/** + * xmlUCSIsCatLo: + * @code: UCS code point + * + * Check whether the character is part of Lo UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatLo(int code) { +    return((code == 0x1bb) || +           ((code >= 0x1c0) && (code <= 0x1c3)) || +           ((code >= 0x5d0) && (code <= 0x5ea)) || +           ((code >= 0x5f0) && (code <= 0x5f2)) || +           ((code >= 0x621) && (code <= 0x63a)) || +           ((code >= 0x641) && (code <= 0x64a)) || +           ((code >= 0x671) && (code <= 0x6d3)) || +           (code == 0x6d5) || +           ((code >= 0x6fa) && (code <= 0x6fc)) || +           (code == 0x710) || +           ((code >= 0x712) && (code <= 0x72c)) || +           ((code >= 0x780) && (code <= 0x7a5)) || +           ((code >= 0x905) && (code <= 0x939)) || +           (code == 0x93d) || +           (code == 0x950) || +           ((code >= 0x958) && (code <= 0x961)) || +           ((code >= 0x985) && (code <= 0x98c)) || +           ((code >= 0x98f) && (code <= 0x990)) || +           ((code >= 0x993) && (code <= 0x9a8)) || +           ((code >= 0x9aa) && (code <= 0x9b0)) || +           (code == 0x9b2) || +           ((code >= 0x9b6) && (code <= 0x9b9)) || +           ((code >= 0x9dc) && (code <= 0x9dd)) || +           ((code >= 0x9df) && (code <= 0x9e1)) || +           ((code >= 0x9f0) && (code <= 0x9f1)) || +           ((code >= 0xa05) && (code <= 0xa0a)) || +           ((code >= 0xa0f) && (code <= 0xa10)) || +           ((code >= 0xa13) && (code <= 0xa28)) || +           ((code >= 0xa2a) && (code <= 0xa30)) || +           ((code >= 0xa32) && (code <= 0xa33)) || +           ((code >= 0xa35) && (code <= 0xa36)) || +           ((code >= 0xa38) && (code <= 0xa39)) || +           ((code >= 0xa59) && (code <= 0xa5c)) || +           (code == 0xa5e) || +           ((code >= 0xa72) && (code <= 0xa74)) || +           ((code >= 0xa85) && (code <= 0xa8b)) || +           (code == 0xa8d) || +           ((code >= 0xa8f) && (code <= 0xa91)) || +           ((code >= 0xa93) && (code <= 0xaa8)) || +           ((code >= 0xaaa) && (code <= 0xab0)) || +           ((code >= 0xab2) && (code <= 0xab3)) || +           ((code >= 0xab5) && (code <= 0xab9)) || +           (code == 0xabd) || +           (code == 0xad0) || +           (code == 0xae0) || +           ((code >= 0xb05) && (code <= 0xb0c)) || +           ((code >= 0xb0f) && (code <= 0xb10)) || +           ((code >= 0xb13) && (code <= 0xb28)) || +           ((code >= 0xb2a) && (code <= 0xb30)) || +           ((code >= 0xb32) && (code <= 0xb33)) || +           ((code >= 0xb36) && (code <= 0xb39)) || +           (code == 0xb3d) || +           ((code >= 0xb5c) && (code <= 0xb5d)) || +           ((code >= 0xb5f) && (code <= 0xb61)) || +           ((code >= 0xb85) && (code <= 0xb8a)) || +           ((code >= 0xb8e) && (code <= 0xb90)) || +           ((code >= 0xb92) && (code <= 0xb95)) || +           ((code >= 0xb99) && (code <= 0xb9a)) || +           (code == 0xb9c) || +           ((code >= 0xb9e) && (code <= 0xb9f)) || +           ((code >= 0xba3) && (code <= 0xba4)) || +           ((code >= 0xba8) && (code <= 0xbaa)) || +           ((code >= 0xbae) && (code <= 0xbb5)) || +           ((code >= 0xbb7) && (code <= 0xbb9)) || +           ((code >= 0xc05) && (code <= 0xc0c)) || +           ((code >= 0xc0e) && (code <= 0xc10)) || +           ((code >= 0xc12) && (code <= 0xc28)) || +           ((code >= 0xc2a) && (code <= 0xc33)) || +           ((code >= 0xc35) && (code <= 0xc39)) || +           ((code >= 0xc60) && (code <= 0xc61)) || +           ((code >= 0xc85) && (code <= 0xc8c)) || +           ((code >= 0xc8e) && (code <= 0xc90)) || +           ((code >= 0xc92) && (code <= 0xca8)) || +           ((code >= 0xcaa) && (code <= 0xcb3)) || +           ((code >= 0xcb5) && (code <= 0xcb9)) || +           (code == 0xcde) || +           ((code >= 0xce0) && (code <= 0xce1)) || +           ((code >= 0xd05) && (code <= 0xd0c)) || +           ((code >= 0xd0e) && (code <= 0xd10)) || +           ((code >= 0xd12) && (code <= 0xd28)) || +           ((code >= 0xd2a) && (code <= 0xd39)) || +           ((code >= 0xd60) && (code <= 0xd61)) || +           ((code >= 0xd85) && (code <= 0xd96)) || +           ((code >= 0xd9a) && (code <= 0xdb1)) || +           ((code >= 0xdb3) && (code <= 0xdbb)) || +           (code == 0xdbd) || +           ((code >= 0xdc0) && (code <= 0xdc6)) || +           ((code >= 0xe01) && (code <= 0xe30)) || +           ((code >= 0xe32) && (code <= 0xe33)) || +           ((code >= 0xe40) && (code <= 0xe45)) || +           ((code >= 0xe81) && (code <= 0xe82)) || +           (code == 0xe84) || +           ((code >= 0xe87) && (code <= 0xe88)) || +           (code == 0xe8a) || +           (code == 0xe8d) || +           ((code >= 0xe94) && (code <= 0xe97)) || +           ((code >= 0xe99) && (code <= 0xe9f)) || +           ((code >= 0xea1) && (code <= 0xea3)) || +           (code == 0xea5) || +           (code == 0xea7) || +           ((code >= 0xeaa) && (code <= 0xeab)) || +           ((code >= 0xead) && (code <= 0xeb0)) || +           ((code >= 0xeb2) && (code <= 0xeb3)) || +           (code == 0xebd) || +           ((code >= 0xec0) && (code <= 0xec4)) || +           ((code >= 0xedc) && (code <= 0xedd)) || +           (code == 0xf00) || +           ((code >= 0xf40) && (code <= 0xf47)) || +           ((code >= 0xf49) && (code <= 0xf6a)) || +           ((code >= 0xf88) && (code <= 0xf8b)) || +           ((code >= 0x1000) && (code <= 0x1021)) || +           ((code >= 0x1023) && (code <= 0x1027)) || +           ((code >= 0x1029) && (code <= 0x102a)) || +           ((code >= 0x1050) && (code <= 0x1055)) || +           ((code >= 0x10d0) && (code <= 0x10f6)) || +           ((code >= 0x1100) && (code <= 0x1159)) || +           ((code >= 0x115f) && (code <= 0x11a2)) || +           ((code >= 0x11a8) && (code <= 0x11f9)) || +           ((code >= 0x1200) && (code <= 0x1206)) || +           ((code >= 0x1208) && (code <= 0x1246)) || +           (code == 0x1248) || +           ((code >= 0x124a) && (code <= 0x124d)) || +           ((code >= 0x1250) && (code <= 0x1256)) || +           (code == 0x1258) || +           ((code >= 0x125a) && (code <= 0x125d)) || +           ((code >= 0x1260) && (code <= 0x1286)) || +           (code == 0x1288) || +           ((code >= 0x128a) && (code <= 0x128d)) || +           ((code >= 0x1290) && (code <= 0x12ae)) || +           (code == 0x12b0) || +           ((code >= 0x12b2) && (code <= 0x12b5)) || +           ((code >= 0x12b8) && (code <= 0x12be)) || +           (code == 0x12c0) || +           ((code >= 0x12c2) && (code <= 0x12c5)) || +           ((code >= 0x12c8) && (code <= 0x12ce)) || +           ((code >= 0x12d0) && (code <= 0x12d6)) || +           ((code >= 0x12d8) && (code <= 0x12ee)) || +           ((code >= 0x12f0) && (code <= 0x130e)) || +           (code == 0x1310) || +           ((code >= 0x1312) && (code <= 0x1315)) || +           ((code >= 0x1318) && (code <= 0x131e)) || +           ((code >= 0x1320) && (code <= 0x1346)) || +           ((code >= 0x1348) && (code <= 0x135a)) || +           ((code >= 0x13a0) && (code <= 0x13f4)) || +           ((code >= 0x1401) && (code <= 0x166c)) || +           ((code >= 0x166f) && (code <= 0x1676)) || +           ((code >= 0x1681) && (code <= 0x169a)) || +           ((code >= 0x16a0) && (code <= 0x16ea)) || +           ((code >= 0x1780) && (code <= 0x17b3)) || +           ((code >= 0x1820) && (code <= 0x1842)) || +           ((code >= 0x1844) && (code <= 0x1877)) || +           ((code >= 0x1880) && (code <= 0x18a8)) || +           ((code >= 0x2135) && (code <= 0x2138)) || +           (code == 0x3006) || +           ((code >= 0x3041) && (code <= 0x3094)) || +           ((code >= 0x30a1) && (code <= 0x30fa)) || +           ((code >= 0x3105) && (code <= 0x312c)) || +           ((code >= 0x3131) && (code <= 0x318e)) || +           ((code >= 0x31a0) && (code <= 0x31b7)) || +           (code == 0x3400) || +           (code == 0x4db5) || +           (code == 0x4e00) || +           (code == 0x9fa5) || +           ((code >= 0xa000) && (code <= 0xa48c)) || +           (code == 0xac00) || +           (code == 0xd7a3) || +           ((code >= 0xf900) && (code <= 0xfa2d)) || +           (code == 0xfb1d) || +           ((code >= 0xfb1f) && (code <= 0xfb28)) || +           ((code >= 0xfb2a) && (code <= 0xfb36)) || +           ((code >= 0xfb38) && (code <= 0xfb3c)) || +           (code == 0xfb3e) || +           ((code >= 0xfb40) && (code <= 0xfb41)) || +           ((code >= 0xfb43) && (code <= 0xfb44)) || +           ((code >= 0xfb46) && (code <= 0xfbb1)) || +           ((code >= 0xfbd3) && (code <= 0xfd3d)) || +           ((code >= 0xfd50) && (code <= 0xfd8f)) || +           ((code >= 0xfd92) && (code <= 0xfdc7)) || +           ((code >= 0xfdf0) && (code <= 0xfdfb)) || +           ((code >= 0xfe70) && (code <= 0xfe72)) || +           (code == 0xfe74) || +           ((code >= 0xfe76) && (code <= 0xfefc)) || +           ((code >= 0xff66) && (code <= 0xff6f)) || +           ((code >= 0xff71) && (code <= 0xff9d)) || +           ((code >= 0xffa0) && (code <= 0xffbe)) || +           ((code >= 0xffc2) && (code <= 0xffc7)) || +           ((code >= 0xffca) && (code <= 0xffcf)) || +           ((code >= 0xffd2) && (code <= 0xffd7)) || +           ((code >= 0xffda) && (code <= 0xffdc)) || +           ((code >= 0x10300) && (code <= 0x1031e)) || +           ((code >= 0x10330) && (code <= 0x10349)) || +           (code == 0x20000) || +           (code == 0x2a6d6) || +           ((code >= 0x2f800) && (code <= 0x2fa1d))); +} + +/** + * xmlUCSIsCatLt: + * @code: UCS code point + * + * Check whether the character is part of Lt UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatLt(int code) { +    return((code == 0x1c5) || +           (code == 0x1c8) || +           (code == 0x1cb) || +           (code == 0x1f2) || +           ((code >= 0x1f88) && (code <= 0x1f8f)) || +           ((code >= 0x1f98) && (code <= 0x1f9f)) || +           ((code >= 0x1fa8) && (code <= 0x1faf)) || +           (code == 0x1fbc) || +           (code == 0x1fcc) || +           (code == 0x1ffc)); +} + +/** + * xmlUCSIsCatLu: + * @code: UCS code point + * + * Check whether the character is part of Lu UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatLu(int code) { +    return(((code >= 0x41) && (code <= 0x5a)) || +           ((code >= 0xc0) && (code <= 0xd6)) || +           ((code >= 0xd8) && (code <= 0xde)) || +           (code == 0x100) || +           (code == 0x102) || +           (code == 0x104) || +           (code == 0x106) || +           (code == 0x108) || +           (code == 0x10a) || +           (code == 0x10c) || +           (code == 0x10e) || +           (code == 0x110) || +           (code == 0x112) || +           (code == 0x114) || +           (code == 0x116) || +           (code == 0x118) || +           (code == 0x11a) || +           (code == 0x11c) || +           (code == 0x11e) || +           (code == 0x120) || +           (code == 0x122) || +           (code == 0x124) || +           (code == 0x126) || +           (code == 0x128) || +           (code == 0x12a) || +           (code == 0x12c) || +           (code == 0x12e) || +           (code == 0x130) || +           (code == 0x132) || +           (code == 0x134) || +           (code == 0x136) || +           (code == 0x139) || +           (code == 0x13b) || +           (code == 0x13d) || +           (code == 0x13f) || +           (code == 0x141) || +           (code == 0x143) || +           (code == 0x145) || +           (code == 0x147) || +           (code == 0x14a) || +           (code == 0x14c) || +           (code == 0x14e) || +           (code == 0x150) || +           (code == 0x152) || +           (code == 0x154) || +           (code == 0x156) || +           (code == 0x158) || +           (code == 0x15a) || +           (code == 0x15c) || +           (code == 0x15e) || +           (code == 0x160) || +           (code == 0x162) || +           (code == 0x164) || +           (code == 0x166) || +           (code == 0x168) || +           (code == 0x16a) || +           (code == 0x16c) || +           (code == 0x16e) || +           (code == 0x170) || +           (code == 0x172) || +           (code == 0x174) || +           (code == 0x176) || +           ((code >= 0x178) && (code <= 0x179)) || +           (code == 0x17b) || +           (code == 0x17d) || +           ((code >= 0x181) && (code <= 0x182)) || +           (code == 0x184) || +           ((code >= 0x186) && (code <= 0x187)) || +           ((code >= 0x189) && (code <= 0x18b)) || +           ((code >= 0x18e) && (code <= 0x191)) || +           ((code >= 0x193) && (code <= 0x194)) || +           ((code >= 0x196) && (code <= 0x198)) || +           ((code >= 0x19c) && (code <= 0x19d)) || +           ((code >= 0x19f) && (code <= 0x1a0)) || +           (code == 0x1a2) || +           (code == 0x1a4) || +           ((code >= 0x1a6) && (code <= 0x1a7)) || +           (code == 0x1a9) || +           (code == 0x1ac) || +           ((code >= 0x1ae) && (code <= 0x1af)) || +           ((code >= 0x1b1) && (code <= 0x1b3)) || +           (code == 0x1b5) || +           ((code >= 0x1b7) && (code <= 0x1b8)) || +           (code == 0x1bc) || +           (code == 0x1c4) || +           (code == 0x1c7) || +           (code == 0x1ca) || +           (code == 0x1cd) || +           (code == 0x1cf) || +           (code == 0x1d1) || +           (code == 0x1d3) || +           (code == 0x1d5) || +           (code == 0x1d7) || +           (code == 0x1d9) || +           (code == 0x1db) || +           (code == 0x1de) || +           (code == 0x1e0) || +           (code == 0x1e2) || +           (code == 0x1e4) || +           (code == 0x1e6) || +           (code == 0x1e8) || +           (code == 0x1ea) || +           (code == 0x1ec) || +           (code == 0x1ee) || +           (code == 0x1f1) || +           (code == 0x1f4) || +           ((code >= 0x1f6) && (code <= 0x1f8)) || +           (code == 0x1fa) || +           (code == 0x1fc) || +           (code == 0x1fe) || +           (code == 0x200) || +           (code == 0x202) || +           (code == 0x204) || +           (code == 0x206) || +           (code == 0x208) || +           (code == 0x20a) || +           (code == 0x20c) || +           (code == 0x20e) || +           (code == 0x210) || +           (code == 0x212) || +           (code == 0x214) || +           (code == 0x216) || +           (code == 0x218) || +           (code == 0x21a) || +           (code == 0x21c) || +           (code == 0x21e) || +           (code == 0x222) || +           (code == 0x224) || +           (code == 0x226) || +           (code == 0x228) || +           (code == 0x22a) || +           (code == 0x22c) || +           (code == 0x22e) || +           (code == 0x230) || +           (code == 0x232) || +           (code == 0x386) || +           ((code >= 0x388) && (code <= 0x38a)) || +           (code == 0x38c) || +           ((code >= 0x38e) && (code <= 0x38f)) || +           ((code >= 0x391) && (code <= 0x3a1)) || +           ((code >= 0x3a3) && (code <= 0x3ab)) || +           ((code >= 0x3d2) && (code <= 0x3d4)) || +           (code == 0x3da) || +           (code == 0x3dc) || +           (code == 0x3de) || +           (code == 0x3e0) || +           (code == 0x3e2) || +           (code == 0x3e4) || +           (code == 0x3e6) || +           (code == 0x3e8) || +           (code == 0x3ea) || +           (code == 0x3ec) || +           (code == 0x3ee) || +           (code == 0x3f4) || +           ((code >= 0x400) && (code <= 0x42f)) || +           (code == 0x460) || +           (code == 0x462) || +           (code == 0x464) || +           (code == 0x466) || +           (code == 0x468) || +           (code == 0x46a) || +           (code == 0x46c) || +           (code == 0x46e) || +           (code == 0x470) || +           (code == 0x472) || +           (code == 0x474) || +           (code == 0x476) || +           (code == 0x478) || +           (code == 0x47a) || +           (code == 0x47c) || +           (code == 0x47e) || +           (code == 0x480) || +           (code == 0x48c) || +           (code == 0x48e) || +           (code == 0x490) || +           (code == 0x492) || +           (code == 0x494) || +           (code == 0x496) || +           (code == 0x498) || +           (code == 0x49a) || +           (code == 0x49c) || +           (code == 0x49e) || +           (code == 0x4a0) || +           (code == 0x4a2) || +           (code == 0x4a4) || +           (code == 0x4a6) || +           (code == 0x4a8) || +           (code == 0x4aa) || +           (code == 0x4ac) || +           (code == 0x4ae) || +           (code == 0x4b0) || +           (code == 0x4b2) || +           (code == 0x4b4) || +           (code == 0x4b6) || +           (code == 0x4b8) || +           (code == 0x4ba) || +           (code == 0x4bc) || +           (code == 0x4be) || +           ((code >= 0x4c0) && (code <= 0x4c1)) || +           (code == 0x4c3) || +           (code == 0x4c7) || +           (code == 0x4cb) || +           (code == 0x4d0) || +           (code == 0x4d2) || +           (code == 0x4d4) || +           (code == 0x4d6) || +           (code == 0x4d8) || +           (code == 0x4da) || +           (code == 0x4dc) || +           (code == 0x4de) || +           (code == 0x4e0) || +           (code == 0x4e2) || +           (code == 0x4e4) || +           (code == 0x4e6) || +           (code == 0x4e8) || +           (code == 0x4ea) || +           (code == 0x4ec) || +           (code == 0x4ee) || +           (code == 0x4f0) || +           (code == 0x4f2) || +           (code == 0x4f4) || +           (code == 0x4f8) || +           ((code >= 0x531) && (code <= 0x556)) || +           ((code >= 0x10a0) && (code <= 0x10c5)) || +           (code == 0x1e00) || +           (code == 0x1e02) || +           (code == 0x1e04) || +           (code == 0x1e06) || +           (code == 0x1e08) || +           (code == 0x1e0a) || +           (code == 0x1e0c) || +           (code == 0x1e0e) || +           (code == 0x1e10) || +           (code == 0x1e12) || +           (code == 0x1e14) || +           (code == 0x1e16) || +           (code == 0x1e18) || +           (code == 0x1e1a) || +           (code == 0x1e1c) || +           (code == 0x1e1e) || +           (code == 0x1e20) || +           (code == 0x1e22) || +           (code == 0x1e24) || +           (code == 0x1e26) || +           (code == 0x1e28) || +           (code == 0x1e2a) || +           (code == 0x1e2c) || +           (code == 0x1e2e) || +           (code == 0x1e30) || +           (code == 0x1e32) || +           (code == 0x1e34) || +           (code == 0x1e36) || +           (code == 0x1e38) || +           (code == 0x1e3a) || +           (code == 0x1e3c) || +           (code == 0x1e3e) || +           (code == 0x1e40) || +           (code == 0x1e42) || +           (code == 0x1e44) || +           (code == 0x1e46) || +           (code == 0x1e48) || +           (code == 0x1e4a) || +           (code == 0x1e4c) || +           (code == 0x1e4e) || +           (code == 0x1e50) || +           (code == 0x1e52) || +           (code == 0x1e54) || +           (code == 0x1e56) || +           (code == 0x1e58) || +           (code == 0x1e5a) || +           (code == 0x1e5c) || +           (code == 0x1e5e) || +           (code == 0x1e60) || +           (code == 0x1e62) || +           (code == 0x1e64) || +           (code == 0x1e66) || +           (code == 0x1e68) || +           (code == 0x1e6a) || +           (code == 0x1e6c) || +           (code == 0x1e6e) || +           (code == 0x1e70) || +           (code == 0x1e72) || +           (code == 0x1e74) || +           (code == 0x1e76) || +           (code == 0x1e78) || +           (code == 0x1e7a) || +           (code == 0x1e7c) || +           (code == 0x1e7e) || +           (code == 0x1e80) || +           (code == 0x1e82) || +           (code == 0x1e84) || +           (code == 0x1e86) || +           (code == 0x1e88) || +           (code == 0x1e8a) || +           (code == 0x1e8c) || +           (code == 0x1e8e) || +           (code == 0x1e90) || +           (code == 0x1e92) || +           (code == 0x1e94) || +           (code == 0x1ea0) || +           (code == 0x1ea2) || +           (code == 0x1ea4) || +           (code == 0x1ea6) || +           (code == 0x1ea8) || +           (code == 0x1eaa) || +           (code == 0x1eac) || +           (code == 0x1eae) || +           (code == 0x1eb0) || +           (code == 0x1eb2) || +           (code == 0x1eb4) || +           (code == 0x1eb6) || +           (code == 0x1eb8) || +           (code == 0x1eba) || +           (code == 0x1ebc) || +           (code == 0x1ebe) || +           (code == 0x1ec0) || +           (code == 0x1ec2) || +           (code == 0x1ec4) || +           (code == 0x1ec6) || +           (code == 0x1ec8) || +           (code == 0x1eca) || +           (code == 0x1ecc) || +           (code == 0x1ece) || +           (code == 0x1ed0) || +           (code == 0x1ed2) || +           (code == 0x1ed4) || +           (code == 0x1ed6) || +           (code == 0x1ed8) || +           (code == 0x1eda) || +           (code == 0x1edc) || +           (code == 0x1ede) || +           (code == 0x1ee0) || +           (code == 0x1ee2) || +           (code == 0x1ee4) || +           (code == 0x1ee6) || +           (code == 0x1ee8) || +           (code == 0x1eea) || +           (code == 0x1eec) || +           (code == 0x1eee) || +           (code == 0x1ef0) || +           (code == 0x1ef2) || +           (code == 0x1ef4) || +           (code == 0x1ef6) || +           (code == 0x1ef8) || +           ((code >= 0x1f08) && (code <= 0x1f0f)) || +           ((code >= 0x1f18) && (code <= 0x1f1d)) || +           ((code >= 0x1f28) && (code <= 0x1f2f)) || +           ((code >= 0x1f38) && (code <= 0x1f3f)) || +           ((code >= 0x1f48) && (code <= 0x1f4d)) || +           (code == 0x1f59) || +           (code == 0x1f5b) || +           (code == 0x1f5d) || +           (code == 0x1f5f) || +           ((code >= 0x1f68) && (code <= 0x1f6f)) || +           ((code >= 0x1fb8) && (code <= 0x1fbb)) || +           ((code >= 0x1fc8) && (code <= 0x1fcb)) || +           ((code >= 0x1fd8) && (code <= 0x1fdb)) || +           ((code >= 0x1fe8) && (code <= 0x1fec)) || +           ((code >= 0x1ff8) && (code <= 0x1ffb)) || +           (code == 0x2102) || +           (code == 0x2107) || +           ((code >= 0x210b) && (code <= 0x210d)) || +           ((code >= 0x2110) && (code <= 0x2112)) || +           (code == 0x2115) || +           ((code >= 0x2119) && (code <= 0x211d)) || +           (code == 0x2124) || +           (code == 0x2126) || +           (code == 0x2128) || +           ((code >= 0x212a) && (code <= 0x212d)) || +           ((code >= 0x2130) && (code <= 0x2131)) || +           (code == 0x2133) || +           ((code >= 0xff21) && (code <= 0xff3a)) || +           ((code >= 0x10400) && (code <= 0x10425)) || +           ((code >= 0x1d400) && (code <= 0x1d419)) || +           ((code >= 0x1d434) && (code <= 0x1d44d)) || +           ((code >= 0x1d468) && (code <= 0x1d481)) || +           (code == 0x1d49c) || +           ((code >= 0x1d49e) && (code <= 0x1d49f)) || +           (code == 0x1d4a2) || +           ((code >= 0x1d4a5) && (code <= 0x1d4a6)) || +           ((code >= 0x1d4a9) && (code <= 0x1d4ac)) || +           ((code >= 0x1d4ae) && (code <= 0x1d4b5)) || +           ((code >= 0x1d4d0) && (code <= 0x1d4e9)) || +           ((code >= 0x1d504) && (code <= 0x1d505)) || +           ((code >= 0x1d507) && (code <= 0x1d50a)) || +           ((code >= 0x1d50d) && (code <= 0x1d514)) || +           ((code >= 0x1d516) && (code <= 0x1d51c)) || +           ((code >= 0x1d538) && (code <= 0x1d539)) || +           ((code >= 0x1d53b) && (code <= 0x1d53e)) || +           ((code >= 0x1d540) && (code <= 0x1d544)) || +           (code == 0x1d546) || +           ((code >= 0x1d54a) && (code <= 0x1d550)) || +           ((code >= 0x1d56c) && (code <= 0x1d585)) || +           ((code >= 0x1d5a0) && (code <= 0x1d5b9)) || +           ((code >= 0x1d5d4) && (code <= 0x1d5ed)) || +           ((code >= 0x1d608) && (code <= 0x1d621)) || +           ((code >= 0x1d63c) && (code <= 0x1d655)) || +           ((code >= 0x1d670) && (code <= 0x1d689)) || +           ((code >= 0x1d6a8) && (code <= 0x1d6c0)) || +           ((code >= 0x1d6e2) && (code <= 0x1d6fa)) || +           ((code >= 0x1d71c) && (code <= 0x1d734)) || +           ((code >= 0x1d756) && (code <= 0x1d76e)) || +           ((code >= 0x1d790) && (code <= 0x1d7a8))); +} + +/** + * xmlUCSIsCatM: + * @code: UCS code point + * + * Check whether the character is part of M UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatM(int code) { +    return(((code >= 0x300) && (code <= 0x34e)) || +           ((code >= 0x360) && (code <= 0x362)) || +           ((code >= 0x483) && (code <= 0x486)) || +           ((code >= 0x488) && (code <= 0x489)) || +           ((code >= 0x591) && (code <= 0x5a1)) || +           ((code >= 0x5a3) && (code <= 0x5b9)) || +           ((code >= 0x5bb) && (code <= 0x5bd)) || +           (code == 0x5bf) || +           ((code >= 0x5c1) && (code <= 0x5c2)) || +           (code == 0x5c4) || +           ((code >= 0x64b) && (code <= 0x655)) || +           (code == 0x670) || +           ((code >= 0x6d6) && (code <= 0x6e4)) || +           ((code >= 0x6e7) && (code <= 0x6e8)) || +           ((code >= 0x6ea) && (code <= 0x6ed)) || +           (code == 0x711) || +           ((code >= 0x730) && (code <= 0x74a)) || +           ((code >= 0x7a6) && (code <= 0x7b0)) || +           ((code >= 0x901) && (code <= 0x903)) || +           (code == 0x93c) || +           ((code >= 0x93e) && (code <= 0x94d)) || +           ((code >= 0x951) && (code <= 0x954)) || +           ((code >= 0x962) && (code <= 0x963)) || +           ((code >= 0x981) && (code <= 0x983)) || +           (code == 0x9bc) || +           ((code >= 0x9be) && (code <= 0x9c4)) || +           ((code >= 0x9c7) && (code <= 0x9c8)) || +           ((code >= 0x9cb) && (code <= 0x9cd)) || +           (code == 0x9d7) || +           ((code >= 0x9e2) && (code <= 0x9e3)) || +           (code == 0xa02) || +           (code == 0xa3c) || +           ((code >= 0xa3e) && (code <= 0xa42)) || +           ((code >= 0xa47) && (code <= 0xa48)) || +           ((code >= 0xa4b) && (code <= 0xa4d)) || +           ((code >= 0xa70) && (code <= 0xa71)) || +           ((code >= 0xa81) && (code <= 0xa83)) || +           (code == 0xabc) || +           ((code >= 0xabe) && (code <= 0xac5)) || +           ((code >= 0xac7) && (code <= 0xac9)) || +           ((code >= 0xacb) && (code <= 0xacd)) || +           ((code >= 0xb01) && (code <= 0xb03)) || +           (code == 0xb3c) || +           ((code >= 0xb3e) && (code <= 0xb43)) || +           ((code >= 0xb47) && (code <= 0xb48)) || +           ((code >= 0xb4b) && (code <= 0xb4d)) || +           ((code >= 0xb56) && (code <= 0xb57)) || +           ((code >= 0xb82) && (code <= 0xb83)) || +           ((code >= 0xbbe) && (code <= 0xbc2)) || +           ((code >= 0xbc6) && (code <= 0xbc8)) || +           ((code >= 0xbca) && (code <= 0xbcd)) || +           (code == 0xbd7) || +           ((code >= 0xc01) && (code <= 0xc03)) || +           ((code >= 0xc3e) && (code <= 0xc44)) || +           ((code >= 0xc46) && (code <= 0xc48)) || +           ((code >= 0xc4a) && (code <= 0xc4d)) || +           ((code >= 0xc55) && (code <= 0xc56)) || +           ((code >= 0xc82) && (code <= 0xc83)) || +           ((code >= 0xcbe) && (code <= 0xcc4)) || +           ((code >= 0xcc6) && (code <= 0xcc8)) || +           ((code >= 0xcca) && (code <= 0xccd)) || +           ((code >= 0xcd5) && (code <= 0xcd6)) || +           ((code >= 0xd02) && (code <= 0xd03)) || +           ((code >= 0xd3e) && (code <= 0xd43)) || +           ((code >= 0xd46) && (code <= 0xd48)) || +           ((code >= 0xd4a) && (code <= 0xd4d)) || +           (code == 0xd57) || +           ((code >= 0xd82) && (code <= 0xd83)) || +           (code == 0xdca) || +           ((code >= 0xdcf) && (code <= 0xdd4)) || +           (code == 0xdd6) || +           ((code >= 0xdd8) && (code <= 0xddf)) || +           ((code >= 0xdf2) && (code <= 0xdf3)) || +           (code == 0xe31) || +           ((code >= 0xe34) && (code <= 0xe3a)) || +           ((code >= 0xe47) && (code <= 0xe4e)) || +           (code == 0xeb1) || +           ((code >= 0xeb4) && (code <= 0xeb9)) || +           ((code >= 0xebb) && (code <= 0xebc)) || +           ((code >= 0xec8) && (code <= 0xecd)) || +           ((code >= 0xf18) && (code <= 0xf19)) || +           (code == 0xf35) || +           (code == 0xf37) || +           (code == 0xf39) || +           ((code >= 0xf3e) && (code <= 0xf3f)) || +           ((code >= 0xf71) && (code <= 0xf84)) || +           ((code >= 0xf86) && (code <= 0xf87)) || +           ((code >= 0xf90) && (code <= 0xf97)) || +           ((code >= 0xf99) && (code <= 0xfbc)) || +           (code == 0xfc6) || +           ((code >= 0x102c) && (code <= 0x1032)) || +           ((code >= 0x1036) && (code <= 0x1039)) || +           ((code >= 0x1056) && (code <= 0x1059)) || +           ((code >= 0x17b4) && (code <= 0x17d3)) || +           (code == 0x18a9) || +           ((code >= 0x20d0) && (code <= 0x20e3)) || +           ((code >= 0x302a) && (code <= 0x302f)) || +           ((code >= 0x3099) && (code <= 0x309a)) || +           (code == 0xfb1e) || +           ((code >= 0xfe20) && (code <= 0xfe23)) || +           ((code >= 0x1d165) && (code <= 0x1d169)) || +           ((code >= 0x1d16d) && (code <= 0x1d172)) || +           ((code >= 0x1d17b) && (code <= 0x1d182)) || +           ((code >= 0x1d185) && (code <= 0x1d18b)) || +           ((code >= 0x1d1aa) && (code <= 0x1d1ad))); +} + +/** + * xmlUCSIsCatMc: + * @code: UCS code point + * + * Check whether the character is part of Mc UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatMc(int code) { +    return((code == 0x903) || +           ((code >= 0x93e) && (code <= 0x940)) || +           ((code >= 0x949) && (code <= 0x94c)) || +           ((code >= 0x982) && (code <= 0x983)) || +           ((code >= 0x9be) && (code <= 0x9c0)) || +           ((code >= 0x9c7) && (code <= 0x9c8)) || +           ((code >= 0x9cb) && (code <= 0x9cc)) || +           (code == 0x9d7) || +           ((code >= 0xa3e) && (code <= 0xa40)) || +           (code == 0xa83) || +           ((code >= 0xabe) && (code <= 0xac0)) || +           (code == 0xac9) || +           ((code >= 0xacb) && (code <= 0xacc)) || +           ((code >= 0xb02) && (code <= 0xb03)) || +           (code == 0xb3e) || +           (code == 0xb40) || +           ((code >= 0xb47) && (code <= 0xb48)) || +           ((code >= 0xb4b) && (code <= 0xb4c)) || +           (code == 0xb57) || +           (code == 0xb83) || +           ((code >= 0xbbe) && (code <= 0xbbf)) || +           ((code >= 0xbc1) && (code <= 0xbc2)) || +           ((code >= 0xbc6) && (code <= 0xbc8)) || +           ((code >= 0xbca) && (code <= 0xbcc)) || +           (code == 0xbd7) || +           ((code >= 0xc01) && (code <= 0xc03)) || +           ((code >= 0xc41) && (code <= 0xc44)) || +           ((code >= 0xc82) && (code <= 0xc83)) || +           (code == 0xcbe) || +           ((code >= 0xcc0) && (code <= 0xcc4)) || +           ((code >= 0xcc7) && (code <= 0xcc8)) || +           ((code >= 0xcca) && (code <= 0xccb)) || +           ((code >= 0xcd5) && (code <= 0xcd6)) || +           ((code >= 0xd02) && (code <= 0xd03)) || +           ((code >= 0xd3e) && (code <= 0xd40)) || +           ((code >= 0xd46) && (code <= 0xd48)) || +           ((code >= 0xd4a) && (code <= 0xd4c)) || +           (code == 0xd57) || +           ((code >= 0xd82) && (code <= 0xd83)) || +           ((code >= 0xdcf) && (code <= 0xdd1)) || +           ((code >= 0xdd8) && (code <= 0xddf)) || +           ((code >= 0xdf2) && (code <= 0xdf3)) || +           ((code >= 0xf3e) && (code <= 0xf3f)) || +           (code == 0xf7f) || +           (code == 0x102c) || +           (code == 0x1031) || +           (code == 0x1038) || +           ((code >= 0x1056) && (code <= 0x1057)) || +           ((code >= 0x17b4) && (code <= 0x17b6)) || +           ((code >= 0x17be) && (code <= 0x17c5)) || +           ((code >= 0x17c7) && (code <= 0x17c8)) || +           ((code >= 0x1d165) && (code <= 0x1d166)) || +           ((code >= 0x1d16d) && (code <= 0x1d172))); +} + +/** + * xmlUCSIsCatMe: + * @code: UCS code point + * + * Check whether the character is part of Me UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatMe(int code) { +    return(((code >= 0x488) && (code <= 0x489)) || +           ((code >= 0x6dd) && (code <= 0x6de)) || +           ((code >= 0x20dd) && (code <= 0x20e0)) || +           ((code >= 0x20e2) && (code <= 0x20e3))); +} + +/** + * xmlUCSIsCatMn: + * @code: UCS code point + * + * Check whether the character is part of Mn UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatMn(int code) { +    return(((code >= 0x300) && (code <= 0x34e)) || +           ((code >= 0x360) && (code <= 0x362)) || +           ((code >= 0x483) && (code <= 0x486)) || +           ((code >= 0x591) && (code <= 0x5a1)) || +           ((code >= 0x5a3) && (code <= 0x5b9)) || +           ((code >= 0x5bb) && (code <= 0x5bd)) || +           (code == 0x5bf) || +           ((code >= 0x5c1) && (code <= 0x5c2)) || +           (code == 0x5c4) || +           ((code >= 0x64b) && (code <= 0x655)) || +           (code == 0x670) || +           ((code >= 0x6d6) && (code <= 0x6dc)) || +           ((code >= 0x6df) && (code <= 0x6e4)) || +           ((code >= 0x6e7) && (code <= 0x6e8)) || +           ((code >= 0x6ea) && (code <= 0x6ed)) || +           (code == 0x711) || +           ((code >= 0x730) && (code <= 0x74a)) || +           ((code >= 0x7a6) && (code <= 0x7b0)) || +           ((code >= 0x901) && (code <= 0x902)) || +           (code == 0x93c) || +           ((code >= 0x941) && (code <= 0x948)) || +           (code == 0x94d) || +           ((code >= 0x951) && (code <= 0x954)) || +           ((code >= 0x962) && (code <= 0x963)) || +           (code == 0x981) || +           (code == 0x9bc) || +           ((code >= 0x9c1) && (code <= 0x9c4)) || +           (code == 0x9cd) || +           ((code >= 0x9e2) && (code <= 0x9e3)) || +           (code == 0xa02) || +           (code == 0xa3c) || +           ((code >= 0xa41) && (code <= 0xa42)) || +           ((code >= 0xa47) && (code <= 0xa48)) || +           ((code >= 0xa4b) && (code <= 0xa4d)) || +           ((code >= 0xa70) && (code <= 0xa71)) || +           ((code >= 0xa81) && (code <= 0xa82)) || +           (code == 0xabc) || +           ((code >= 0xac1) && (code <= 0xac5)) || +           ((code >= 0xac7) && (code <= 0xac8)) || +           (code == 0xacd) || +           (code == 0xb01) || +           (code == 0xb3c) || +           (code == 0xb3f) || +           ((code >= 0xb41) && (code <= 0xb43)) || +           (code == 0xb4d) || +           (code == 0xb56) || +           (code == 0xb82) || +           (code == 0xbc0) || +           (code == 0xbcd) || +           ((code >= 0xc3e) && (code <= 0xc40)) || +           ((code >= 0xc46) && (code <= 0xc48)) || +           ((code >= 0xc4a) && (code <= 0xc4d)) || +           ((code >= 0xc55) && (code <= 0xc56)) || +           (code == 0xcbf) || +           (code == 0xcc6) || +           ((code >= 0xccc) && (code <= 0xccd)) || +           ((code >= 0xd41) && (code <= 0xd43)) || +           (code == 0xd4d) || +           (code == 0xdca) || +           ((code >= 0xdd2) && (code <= 0xdd4)) || +           (code == 0xdd6) || +           (code == 0xe31) || +           ((code >= 0xe34) && (code <= 0xe3a)) || +           ((code >= 0xe47) && (code <= 0xe4e)) || +           (code == 0xeb1) || +           ((code >= 0xeb4) && (code <= 0xeb9)) || +           ((code >= 0xebb) && (code <= 0xebc)) || +           ((code >= 0xec8) && (code <= 0xecd)) || +           ((code >= 0xf18) && (code <= 0xf19)) || +           (code == 0xf35) || +           (code == 0xf37) || +           (code == 0xf39) || +           ((code >= 0xf71) && (code <= 0xf7e)) || +           ((code >= 0xf80) && (code <= 0xf84)) || +           ((code >= 0xf86) && (code <= 0xf87)) || +           ((code >= 0xf90) && (code <= 0xf97)) || +           ((code >= 0xf99) && (code <= 0xfbc)) || +           (code == 0xfc6) || +           ((code >= 0x102d) && (code <= 0x1030)) || +           (code == 0x1032) || +           ((code >= 0x1036) && (code <= 0x1037)) || +           (code == 0x1039) || +           ((code >= 0x1058) && (code <= 0x1059)) || +           ((code >= 0x17b7) && (code <= 0x17bd)) || +           (code == 0x17c6) || +           ((code >= 0x17c9) && (code <= 0x17d3)) || +           (code == 0x18a9) || +           ((code >= 0x20d0) && (code <= 0x20dc)) || +           (code == 0x20e1) || +           ((code >= 0x302a) && (code <= 0x302f)) || +           ((code >= 0x3099) && (code <= 0x309a)) || +           (code == 0xfb1e) || +           ((code >= 0xfe20) && (code <= 0xfe23)) || +           ((code >= 0x1d167) && (code <= 0x1d169)) || +           ((code >= 0x1d17b) && (code <= 0x1d182)) || +           ((code >= 0x1d185) && (code <= 0x1d18b)) || +           ((code >= 0x1d1aa) && (code <= 0x1d1ad))); +} + +/** + * xmlUCSIsCatN: + * @code: UCS code point + * + * Check whether the character is part of N UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatN(int code) { +    return(((code >= 0x30) && (code <= 0x39)) || +           ((code >= 0xb2) && (code <= 0xb3)) || +           (code == 0xb9) || +           ((code >= 0xbc) && (code <= 0xbe)) || +           ((code >= 0x660) && (code <= 0x669)) || +           ((code >= 0x6f0) && (code <= 0x6f9)) || +           ((code >= 0x966) && (code <= 0x96f)) || +           ((code >= 0x9e6) && (code <= 0x9ef)) || +           ((code >= 0x9f4) && (code <= 0x9f9)) || +           ((code >= 0xa66) && (code <= 0xa6f)) || +           ((code >= 0xae6) && (code <= 0xaef)) || +           ((code >= 0xb66) && (code <= 0xb6f)) || +           ((code >= 0xbe7) && (code <= 0xbf2)) || +           ((code >= 0xc66) && (code <= 0xc6f)) || +           ((code >= 0xce6) && (code <= 0xcef)) || +           ((code >= 0xd66) && (code <= 0xd6f)) || +           ((code >= 0xe50) && (code <= 0xe59)) || +           ((code >= 0xed0) && (code <= 0xed9)) || +           ((code >= 0xf20) && (code <= 0xf33)) || +           ((code >= 0x1040) && (code <= 0x1049)) || +           ((code >= 0x1369) && (code <= 0x137c)) || +           ((code >= 0x16ee) && (code <= 0x16f0)) || +           ((code >= 0x17e0) && (code <= 0x17e9)) || +           ((code >= 0x1810) && (code <= 0x1819)) || +           (code == 0x2070) || +           ((code >= 0x2074) && (code <= 0x2079)) || +           ((code >= 0x2080) && (code <= 0x2089)) || +           ((code >= 0x2153) && (code <= 0x2183)) || +           ((code >= 0x2460) && (code <= 0x249b)) || +           (code == 0x24ea) || +           ((code >= 0x2776) && (code <= 0x2793)) || +           (code == 0x3007) || +           ((code >= 0x3021) && (code <= 0x3029)) || +           ((code >= 0x3038) && (code <= 0x303a)) || +           ((code >= 0x3192) && (code <= 0x3195)) || +           ((code >= 0x3220) && (code <= 0x3229)) || +           ((code >= 0x3280) && (code <= 0x3289)) || +           ((code >= 0xff10) && (code <= 0xff19)) || +           ((code >= 0x10320) && (code <= 0x10323)) || +           (code == 0x1034a) || +           ((code >= 0x1d7ce) && (code <= 0x1d7ff))); +} + +/** + * xmlUCSIsCatNd: + * @code: UCS code point + * + * Check whether the character is part of Nd UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatNd(int code) { +    return(((code >= 0x30) && (code <= 0x39)) || +           ((code >= 0x660) && (code <= 0x669)) || +           ((code >= 0x6f0) && (code <= 0x6f9)) || +           ((code >= 0x966) && (code <= 0x96f)) || +           ((code >= 0x9e6) && (code <= 0x9ef)) || +           ((code >= 0xa66) && (code <= 0xa6f)) || +           ((code >= 0xae6) && (code <= 0xaef)) || +           ((code >= 0xb66) && (code <= 0xb6f)) || +           ((code >= 0xbe7) && (code <= 0xbef)) || +           ((code >= 0xc66) && (code <= 0xc6f)) || +           ((code >= 0xce6) && (code <= 0xcef)) || +           ((code >= 0xd66) && (code <= 0xd6f)) || +           ((code >= 0xe50) && (code <= 0xe59)) || +           ((code >= 0xed0) && (code <= 0xed9)) || +           ((code >= 0xf20) && (code <= 0xf29)) || +           ((code >= 0x1040) && (code <= 0x1049)) || +           ((code >= 0x1369) && (code <= 0x1371)) || +           ((code >= 0x17e0) && (code <= 0x17e9)) || +           ((code >= 0x1810) && (code <= 0x1819)) || +           ((code >= 0xff10) && (code <= 0xff19)) || +           ((code >= 0x1d7ce) && (code <= 0x1d7ff))); +} + +/** + * xmlUCSIsCatNl: + * @code: UCS code point + * + * Check whether the character is part of Nl UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatNl(int code) { +    return(((code >= 0x16ee) && (code <= 0x16f0)) || +           ((code >= 0x2160) && (code <= 0x2183)) || +           (code == 0x3007) || +           ((code >= 0x3021) && (code <= 0x3029)) || +           ((code >= 0x3038) && (code <= 0x303a)) || +           (code == 0x1034a)); +} + +/** + * xmlUCSIsCatNo: + * @code: UCS code point + * + * Check whether the character is part of No UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatNo(int code) { +    return(((code >= 0xb2) && (code <= 0xb3)) || +           (code == 0xb9) || +           ((code >= 0xbc) && (code <= 0xbe)) || +           ((code >= 0x9f4) && (code <= 0x9f9)) || +           ((code >= 0xbf0) && (code <= 0xbf2)) || +           ((code >= 0xf2a) && (code <= 0xf33)) || +           ((code >= 0x1372) && (code <= 0x137c)) || +           (code == 0x2070) || +           ((code >= 0x2074) && (code <= 0x2079)) || +           ((code >= 0x2080) && (code <= 0x2089)) || +           ((code >= 0x2153) && (code <= 0x215f)) || +           ((code >= 0x2460) && (code <= 0x249b)) || +           (code == 0x24ea) || +           ((code >= 0x2776) && (code <= 0x2793)) || +           ((code >= 0x3192) && (code <= 0x3195)) || +           ((code >= 0x3220) && (code <= 0x3229)) || +           ((code >= 0x3280) && (code <= 0x3289)) || +           ((code >= 0x10320) && (code <= 0x10323))); +} + +/** + * xmlUCSIsCatP: + * @code: UCS code point + * + * Check whether the character is part of P UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatP(int code) { +    return(((code >= 0x21) && (code <= 0x23)) || +           ((code >= 0x25) && (code <= 0x2a)) || +           ((code >= 0x2c) && (code <= 0x2f)) || +           ((code >= 0x3a) && (code <= 0x3b)) || +           ((code >= 0x3f) && (code <= 0x40)) || +           ((code >= 0x5b) && (code <= 0x5d)) || +           (code == 0x5f) || +           (code == 0x7b) || +           (code == 0x7d) || +           (code == 0xa1) || +           (code == 0xab) || +           (code == 0xad) || +           (code == 0xb7) || +           (code == 0xbb) || +           (code == 0xbf) || +           (code == 0x37e) || +           (code == 0x387) || +           ((code >= 0x55a) && (code <= 0x55f)) || +           ((code >= 0x589) && (code <= 0x58a)) || +           (code == 0x5be) || +           (code == 0x5c0) || +           (code == 0x5c3) || +           ((code >= 0x5f3) && (code <= 0x5f4)) || +           (code == 0x60c) || +           (code == 0x61b) || +           (code == 0x61f) || +           ((code >= 0x66a) && (code <= 0x66d)) || +           (code == 0x6d4) || +           ((code >= 0x700) && (code <= 0x70d)) || +           ((code >= 0x964) && (code <= 0x965)) || +           (code == 0x970) || +           (code == 0xdf4) || +           (code == 0xe4f) || +           ((code >= 0xe5a) && (code <= 0xe5b)) || +           ((code >= 0xf04) && (code <= 0xf12)) || +           ((code >= 0xf3a) && (code <= 0xf3d)) || +           (code == 0xf85) || +           ((code >= 0x104a) && (code <= 0x104f)) || +           (code == 0x10fb) || +           ((code >= 0x1361) && (code <= 0x1368)) || +           ((code >= 0x166d) && (code <= 0x166e)) || +           ((code >= 0x169b) && (code <= 0x169c)) || +           ((code >= 0x16eb) && (code <= 0x16ed)) || +           ((code >= 0x17d4) && (code <= 0x17da)) || +           (code == 0x17dc) || +           ((code >= 0x1800) && (code <= 0x180a)) || +           ((code >= 0x2010) && (code <= 0x2027)) || +           ((code >= 0x2030) && (code <= 0x2043)) || +           ((code >= 0x2045) && (code <= 0x2046)) || +           ((code >= 0x2048) && (code <= 0x204d)) || +           ((code >= 0x207d) && (code <= 0x207e)) || +           ((code >= 0x208d) && (code <= 0x208e)) || +           ((code >= 0x2329) && (code <= 0x232a)) || +           ((code >= 0x3001) && (code <= 0x3003)) || +           ((code >= 0x3008) && (code <= 0x3011)) || +           ((code >= 0x3014) && (code <= 0x301f)) || +           (code == 0x3030) || +           (code == 0x30fb) || +           ((code >= 0xfd3e) && (code <= 0xfd3f)) || +           ((code >= 0xfe30) && (code <= 0xfe44)) || +           ((code >= 0xfe49) && (code <= 0xfe52)) || +           ((code >= 0xfe54) && (code <= 0xfe61)) || +           (code == 0xfe63) || +           (code == 0xfe68) || +           ((code >= 0xfe6a) && (code <= 0xfe6b)) || +           ((code >= 0xff01) && (code <= 0xff03)) || +           ((code >= 0xff05) && (code <= 0xff0a)) || +           ((code >= 0xff0c) && (code <= 0xff0f)) || +           ((code >= 0xff1a) && (code <= 0xff1b)) || +           ((code >= 0xff1f) && (code <= 0xff20)) || +           ((code >= 0xff3b) && (code <= 0xff3d)) || +           (code == 0xff3f) || +           (code == 0xff5b) || +           (code == 0xff5d) || +           ((code >= 0xff61) && (code <= 0xff65))); +} + +/** + * xmlUCSIsCatPc: + * @code: UCS code point + * + * Check whether the character is part of Pc UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatPc(int code) { +    return((code == 0x5f) || +           ((code >= 0x203f) && (code <= 0x2040)) || +           (code == 0x30fb) || +           ((code >= 0xfe33) && (code <= 0xfe34)) || +           ((code >= 0xfe4d) && (code <= 0xfe4f)) || +           (code == 0xff3f) || +           (code == 0xff65)); +} + +/** + * xmlUCSIsCatPd: + * @code: UCS code point + * + * Check whether the character is part of Pd UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatPd(int code) { +    return((code == 0x2d) || +           (code == 0xad) || +           (code == 0x58a) || +           (code == 0x1806) || +           ((code >= 0x2010) && (code <= 0x2015)) || +           (code == 0x301c) || +           (code == 0x3030) || +           ((code >= 0xfe31) && (code <= 0xfe32)) || +           (code == 0xfe58) || +           (code == 0xfe63) || +           (code == 0xff0d)); +} + +/** + * xmlUCSIsCatPe: + * @code: UCS code point + * + * Check whether the character is part of Pe UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatPe(int code) { +    return((code == 0x29) || +           (code == 0x5d) || +           (code == 0x7d) || +           (code == 0xf3b) || +           (code == 0xf3d) || +           (code == 0x169c) || +           (code == 0x2046) || +           (code == 0x207e) || +           (code == 0x208e) || +           (code == 0x232a) || +           (code == 0x3009) || +           (code == 0x300b) || +           (code == 0x300d) || +           (code == 0x300f) || +           (code == 0x3011) || +           (code == 0x3015) || +           (code == 0x3017) || +           (code == 0x3019) || +           (code == 0x301b) || +           ((code >= 0x301e) && (code <= 0x301f)) || +           (code == 0xfd3f) || +           (code == 0xfe36) || +           (code == 0xfe38) || +           (code == 0xfe3a) || +           (code == 0xfe3c) || +           (code == 0xfe3e) || +           (code == 0xfe40) || +           (code == 0xfe42) || +           (code == 0xfe44) || +           (code == 0xfe5a) || +           (code == 0xfe5c) || +           (code == 0xfe5e) || +           (code == 0xff09) || +           (code == 0xff3d) || +           (code == 0xff5d) || +           (code == 0xff63)); +} + +/** + * xmlUCSIsCatPf: + * @code: UCS code point + * + * Check whether the character is part of Pf UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatPf(int code) { +    return((code == 0xbb) || +           (code == 0x2019) || +           (code == 0x201d) || +           (code == 0x203a)); +} + +/** + * xmlUCSIsCatPi: + * @code: UCS code point + * + * Check whether the character is part of Pi UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatPi(int code) { +    return((code == 0xab) || +           (code == 0x2018) || +           ((code >= 0x201b) && (code <= 0x201c)) || +           (code == 0x201f) || +           (code == 0x2039)); +} + +/** + * xmlUCSIsCatPo: + * @code: UCS code point + * + * Check whether the character is part of Po UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatPo(int code) { +    return(((code >= 0x21) && (code <= 0x23)) || +           ((code >= 0x25) && (code <= 0x27)) || +           (code == 0x2a) || +           (code == 0x2c) || +           ((code >= 0x2e) && (code <= 0x2f)) || +           ((code >= 0x3a) && (code <= 0x3b)) || +           ((code >= 0x3f) && (code <= 0x40)) || +           (code == 0x5c) || +           (code == 0xa1) || +           (code == 0xb7) || +           (code == 0xbf) || +           (code == 0x37e) || +           (code == 0x387) || +           ((code >= 0x55a) && (code <= 0x55f)) || +           (code == 0x589) || +           (code == 0x5be) || +           (code == 0x5c0) || +           (code == 0x5c3) || +           ((code >= 0x5f3) && (code <= 0x5f4)) || +           (code == 0x60c) || +           (code == 0x61b) || +           (code == 0x61f) || +           ((code >= 0x66a) && (code <= 0x66d)) || +           (code == 0x6d4) || +           ((code >= 0x700) && (code <= 0x70d)) || +           ((code >= 0x964) && (code <= 0x965)) || +           (code == 0x970) || +           (code == 0xdf4) || +           (code == 0xe4f) || +           ((code >= 0xe5a) && (code <= 0xe5b)) || +           ((code >= 0xf04) && (code <= 0xf12)) || +           (code == 0xf85) || +           ((code >= 0x104a) && (code <= 0x104f)) || +           (code == 0x10fb) || +           ((code >= 0x1361) && (code <= 0x1368)) || +           ((code >= 0x166d) && (code <= 0x166e)) || +           ((code >= 0x16eb) && (code <= 0x16ed)) || +           ((code >= 0x17d4) && (code <= 0x17da)) || +           (code == 0x17dc) || +           ((code >= 0x1800) && (code <= 0x1805)) || +           ((code >= 0x1807) && (code <= 0x180a)) || +           ((code >= 0x2016) && (code <= 0x2017)) || +           ((code >= 0x2020) && (code <= 0x2027)) || +           ((code >= 0x2030) && (code <= 0x2038)) || +           ((code >= 0x203b) && (code <= 0x203e)) || +           ((code >= 0x2041) && (code <= 0x2043)) || +           ((code >= 0x2048) && (code <= 0x204d)) || +           ((code >= 0x3001) && (code <= 0x3003)) || +           (code == 0xfe30) || +           ((code >= 0xfe49) && (code <= 0xfe4c)) || +           ((code >= 0xfe50) && (code <= 0xfe52)) || +           ((code >= 0xfe54) && (code <= 0xfe57)) || +           ((code >= 0xfe5f) && (code <= 0xfe61)) || +           (code == 0xfe68) || +           ((code >= 0xfe6a) && (code <= 0xfe6b)) || +           ((code >= 0xff01) && (code <= 0xff03)) || +           ((code >= 0xff05) && (code <= 0xff07)) || +           (code == 0xff0a) || +           (code == 0xff0c) || +           ((code >= 0xff0e) && (code <= 0xff0f)) || +           ((code >= 0xff1a) && (code <= 0xff1b)) || +           ((code >= 0xff1f) && (code <= 0xff20)) || +           (code == 0xff3c) || +           (code == 0xff61) || +           (code == 0xff64)); +} + +/** + * xmlUCSIsCatPs: + * @code: UCS code point + * + * Check whether the character is part of Ps UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatPs(int code) { +    return((code == 0x28) || +           (code == 0x5b) || +           (code == 0x7b) || +           (code == 0xf3a) || +           (code == 0xf3c) || +           (code == 0x169b) || +           (code == 0x201a) || +           (code == 0x201e) || +           (code == 0x2045) || +           (code == 0x207d) || +           (code == 0x208d) || +           (code == 0x2329) || +           (code == 0x3008) || +           (code == 0x300a) || +           (code == 0x300c) || +           (code == 0x300e) || +           (code == 0x3010) || +           (code == 0x3014) || +           (code == 0x3016) || +           (code == 0x3018) || +           (code == 0x301a) || +           (code == 0x301d) || +           (code == 0xfd3e) || +           (code == 0xfe35) || +           (code == 0xfe37) || +           (code == 0xfe39) || +           (code == 0xfe3b) || +           (code == 0xfe3d) || +           (code == 0xfe3f) || +           (code == 0xfe41) || +           (code == 0xfe43) || +           (code == 0xfe59) || +           (code == 0xfe5b) || +           (code == 0xfe5d) || +           (code == 0xff08) || +           (code == 0xff3b) || +           (code == 0xff5b) || +           (code == 0xff62)); +} + +/** + * xmlUCSIsCatS: + * @code: UCS code point + * + * Check whether the character is part of S UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatS(int code) { +    return((code == 0x24) || +           (code == 0x2b) || +           ((code >= 0x3c) && (code <= 0x3e)) || +           (code == 0x5e) || +           (code == 0x60) || +           (code == 0x7c) || +           (code == 0x7e) || +           ((code >= 0xa2) && (code <= 0xa9)) || +           (code == 0xac) || +           ((code >= 0xae) && (code <= 0xb1)) || +           (code == 0xb4) || +           (code == 0xb6) || +           (code == 0xb8) || +           (code == 0xd7) || +           (code == 0xf7) || +           ((code >= 0x2b9) && (code <= 0x2ba)) || +           ((code >= 0x2c2) && (code <= 0x2cf)) || +           ((code >= 0x2d2) && (code <= 0x2df)) || +           ((code >= 0x2e5) && (code <= 0x2ed)) || +           ((code >= 0x374) && (code <= 0x375)) || +           ((code >= 0x384) && (code <= 0x385)) || +           (code == 0x482) || +           (code == 0x6e9) || +           ((code >= 0x6fd) && (code <= 0x6fe)) || +           ((code >= 0x9f2) && (code <= 0x9f3)) || +           (code == 0x9fa) || +           (code == 0xb70) || +           (code == 0xe3f) || +           ((code >= 0xf01) && (code <= 0xf03)) || +           ((code >= 0xf13) && (code <= 0xf17)) || +           ((code >= 0xf1a) && (code <= 0xf1f)) || +           (code == 0xf34) || +           (code == 0xf36) || +           (code == 0xf38) || +           ((code >= 0xfbe) && (code <= 0xfc5)) || +           ((code >= 0xfc7) && (code <= 0xfcc)) || +           (code == 0xfcf) || +           (code == 0x17db) || +           (code == 0x1fbd) || +           ((code >= 0x1fbf) && (code <= 0x1fc1)) || +           ((code >= 0x1fcd) && (code <= 0x1fcf)) || +           ((code >= 0x1fdd) && (code <= 0x1fdf)) || +           ((code >= 0x1fed) && (code <= 0x1fef)) || +           ((code >= 0x1ffd) && (code <= 0x1ffe)) || +           (code == 0x2044) || +           ((code >= 0x207a) && (code <= 0x207c)) || +           ((code >= 0x208a) && (code <= 0x208c)) || +           ((code >= 0x20a0) && (code <= 0x20af)) || +           ((code >= 0x2100) && (code <= 0x2101)) || +           ((code >= 0x2103) && (code <= 0x2106)) || +           ((code >= 0x2108) && (code <= 0x2109)) || +           (code == 0x2114) || +           ((code >= 0x2116) && (code <= 0x2118)) || +           ((code >= 0x211e) && (code <= 0x2123)) || +           (code == 0x2125) || +           (code == 0x2127) || +           (code == 0x2129) || +           (code == 0x212e) || +           (code == 0x2132) || +           (code == 0x213a) || +           ((code >= 0x2190) && (code <= 0x21f3)) || +           ((code >= 0x2200) && (code <= 0x22f1)) || +           ((code >= 0x2300) && (code <= 0x2328)) || +           ((code >= 0x232b) && (code <= 0x237b)) || +           ((code >= 0x237d) && (code <= 0x239a)) || +           ((code >= 0x2400) && (code <= 0x2426)) || +           ((code >= 0x2440) && (code <= 0x244a)) || +           ((code >= 0x249c) && (code <= 0x24e9)) || +           ((code >= 0x2500) && (code <= 0x2595)) || +           ((code >= 0x25a0) && (code <= 0x25f7)) || +           ((code >= 0x2600) && (code <= 0x2613)) || +           ((code >= 0x2619) && (code <= 0x2671)) || +           ((code >= 0x2701) && (code <= 0x2704)) || +           ((code >= 0x2706) && (code <= 0x2709)) || +           ((code >= 0x270c) && (code <= 0x2727)) || +           ((code >= 0x2729) && (code <= 0x274b)) || +           (code == 0x274d) || +           ((code >= 0x274f) && (code <= 0x2752)) || +           (code == 0x2756) || +           ((code >= 0x2758) && (code <= 0x275e)) || +           ((code >= 0x2761) && (code <= 0x2767)) || +           (code == 0x2794) || +           ((code >= 0x2798) && (code <= 0x27af)) || +           ((code >= 0x27b1) && (code <= 0x27be)) || +           ((code >= 0x2800) && (code <= 0x28ff)) || +           ((code >= 0x2e80) && (code <= 0x2e99)) || +           ((code >= 0x2e9b) && (code <= 0x2ef3)) || +           ((code >= 0x2f00) && (code <= 0x2fd5)) || +           ((code >= 0x2ff0) && (code <= 0x2ffb)) || +           (code == 0x3004) || +           ((code >= 0x3012) && (code <= 0x3013)) || +           (code == 0x3020) || +           ((code >= 0x3036) && (code <= 0x3037)) || +           ((code >= 0x303e) && (code <= 0x303f)) || +           ((code >= 0x309b) && (code <= 0x309c)) || +           ((code >= 0x3190) && (code <= 0x3191)) || +           ((code >= 0x3196) && (code <= 0x319f)) || +           ((code >= 0x3200) && (code <= 0x321c)) || +           ((code >= 0x322a) && (code <= 0x3243)) || +           ((code >= 0x3260) && (code <= 0x327b)) || +           (code == 0x327f) || +           ((code >= 0x328a) && (code <= 0x32b0)) || +           ((code >= 0x32c0) && (code <= 0x32cb)) || +           ((code >= 0x32d0) && (code <= 0x32fe)) || +           ((code >= 0x3300) && (code <= 0x3376)) || +           ((code >= 0x337b) && (code <= 0x33dd)) || +           ((code >= 0x33e0) && (code <= 0x33fe)) || +           ((code >= 0xa490) && (code <= 0xa4a1)) || +           ((code >= 0xa4a4) && (code <= 0xa4b3)) || +           ((code >= 0xa4b5) && (code <= 0xa4c0)) || +           ((code >= 0xa4c2) && (code <= 0xa4c4)) || +           (code == 0xa4c6) || +           (code == 0xfb29) || +           (code == 0xfe62) || +           ((code >= 0xfe64) && (code <= 0xfe66)) || +           (code == 0xfe69) || +           (code == 0xff04) || +           (code == 0xff0b) || +           ((code >= 0xff1c) && (code <= 0xff1e)) || +           (code == 0xff3e) || +           (code == 0xff40) || +           (code == 0xff5c) || +           (code == 0xff5e) || +           ((code >= 0xffe0) && (code <= 0xffe6)) || +           ((code >= 0xffe8) && (code <= 0xffee)) || +           ((code >= 0xfffc) && (code <= 0xfffd)) || +           ((code >= 0x1d000) && (code <= 0x1d0f5)) || +           ((code >= 0x1d100) && (code <= 0x1d126)) || +           ((code >= 0x1d12a) && (code <= 0x1d164)) || +           ((code >= 0x1d16a) && (code <= 0x1d16c)) || +           ((code >= 0x1d183) && (code <= 0x1d184)) || +           ((code >= 0x1d18c) && (code <= 0x1d1a9)) || +           ((code >= 0x1d1ae) && (code <= 0x1d1dd)) || +           (code == 0x1d6c1) || +           (code == 0x1d6db) || +           (code == 0x1d6fb) || +           (code == 0x1d715) || +           (code == 0x1d735) || +           (code == 0x1d74f) || +           (code == 0x1d76f) || +           (code == 0x1d789) || +           (code == 0x1d7a9) || +           (code == 0x1d7c3)); +} + +/** + * xmlUCSIsCatSc: + * @code: UCS code point + * + * Check whether the character is part of Sc UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatSc(int code) { +    return((code == 0x24) || +           ((code >= 0xa2) && (code <= 0xa5)) || +           ((code >= 0x9f2) && (code <= 0x9f3)) || +           (code == 0xe3f) || +           (code == 0x17db) || +           ((code >= 0x20a0) && (code <= 0x20af)) || +           (code == 0xfe69) || +           (code == 0xff04) || +           ((code >= 0xffe0) && (code <= 0xffe1)) || +           ((code >= 0xffe5) && (code <= 0xffe6))); +} + +/** + * xmlUCSIsCatSk: + * @code: UCS code point + * + * Check whether the character is part of Sk UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatSk(int code) { +    return((code == 0x5e) || +           (code == 0x60) || +           (code == 0xa8) || +           (code == 0xaf) || +           (code == 0xb4) || +           (code == 0xb8) || +           ((code >= 0x2b9) && (code <= 0x2ba)) || +           ((code >= 0x2c2) && (code <= 0x2cf)) || +           ((code >= 0x2d2) && (code <= 0x2df)) || +           ((code >= 0x2e5) && (code <= 0x2ed)) || +           ((code >= 0x374) && (code <= 0x375)) || +           ((code >= 0x384) && (code <= 0x385)) || +           (code == 0x1fbd) || +           ((code >= 0x1fbf) && (code <= 0x1fc1)) || +           ((code >= 0x1fcd) && (code <= 0x1fcf)) || +           ((code >= 0x1fdd) && (code <= 0x1fdf)) || +           ((code >= 0x1fed) && (code <= 0x1fef)) || +           ((code >= 0x1ffd) && (code <= 0x1ffe)) || +           ((code >= 0x309b) && (code <= 0x309c)) || +           (code == 0xff3e) || +           (code == 0xff40) || +           (code == 0xffe3)); +} + +/** + * xmlUCSIsCatSm: + * @code: UCS code point + * + * Check whether the character is part of Sm UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatSm(int code) { +    return((code == 0x2b) || +           ((code >= 0x3c) && (code <= 0x3e)) || +           (code == 0x7c) || +           (code == 0x7e) || +           (code == 0xac) || +           (code == 0xb1) || +           (code == 0xd7) || +           (code == 0xf7) || +           (code == 0x2044) || +           ((code >= 0x207a) && (code <= 0x207c)) || +           ((code >= 0x208a) && (code <= 0x208c)) || +           ((code >= 0x2190) && (code <= 0x2194)) || +           ((code >= 0x219a) && (code <= 0x219b)) || +           (code == 0x21a0) || +           (code == 0x21a3) || +           (code == 0x21a6) || +           (code == 0x21ae) || +           ((code >= 0x21ce) && (code <= 0x21cf)) || +           (code == 0x21d2) || +           (code == 0x21d4) || +           ((code >= 0x2200) && (code <= 0x22f1)) || +           ((code >= 0x2308) && (code <= 0x230b)) || +           ((code >= 0x2320) && (code <= 0x2321)) || +           (code == 0x25b7) || +           (code == 0x25c1) || +           (code == 0x266f) || +           (code == 0xfb29) || +           (code == 0xfe62) || +           ((code >= 0xfe64) && (code <= 0xfe66)) || +           (code == 0xff0b) || +           ((code >= 0xff1c) && (code <= 0xff1e)) || +           (code == 0xff5c) || +           (code == 0xff5e) || +           (code == 0xffe2) || +           ((code >= 0xffe9) && (code <= 0xffec)) || +           (code == 0x1d6c1) || +           (code == 0x1d6db) || +           (code == 0x1d6fb) || +           (code == 0x1d715) || +           (code == 0x1d735) || +           (code == 0x1d74f) || +           (code == 0x1d76f) || +           (code == 0x1d789) || +           (code == 0x1d7a9) || +           (code == 0x1d7c3)); +} + +/** + * xmlUCSIsCatSo: + * @code: UCS code point + * + * Check whether the character is part of So UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatSo(int code) { +    return(((code >= 0xa6) && (code <= 0xa7)) || +           (code == 0xa9) || +           (code == 0xae) || +           (code == 0xb0) || +           (code == 0xb6) || +           (code == 0x482) || +           (code == 0x6e9) || +           ((code >= 0x6fd) && (code <= 0x6fe)) || +           (code == 0x9fa) || +           (code == 0xb70) || +           ((code >= 0xf01) && (code <= 0xf03)) || +           ((code >= 0xf13) && (code <= 0xf17)) || +           ((code >= 0xf1a) && (code <= 0xf1f)) || +           (code == 0xf34) || +           (code == 0xf36) || +           (code == 0xf38) || +           ((code >= 0xfbe) && (code <= 0xfc5)) || +           ((code >= 0xfc7) && (code <= 0xfcc)) || +           (code == 0xfcf) || +           ((code >= 0x2100) && (code <= 0x2101)) || +           ((code >= 0x2103) && (code <= 0x2106)) || +           ((code >= 0x2108) && (code <= 0x2109)) || +           (code == 0x2114) || +           ((code >= 0x2116) && (code <= 0x2118)) || +           ((code >= 0x211e) && (code <= 0x2123)) || +           (code == 0x2125) || +           (code == 0x2127) || +           (code == 0x2129) || +           (code == 0x212e) || +           (code == 0x2132) || +           (code == 0x213a) || +           ((code >= 0x2195) && (code <= 0x2199)) || +           ((code >= 0x219c) && (code <= 0x219f)) || +           ((code >= 0x21a1) && (code <= 0x21a2)) || +           ((code >= 0x21a4) && (code <= 0x21a5)) || +           ((code >= 0x21a7) && (code <= 0x21ad)) || +           ((code >= 0x21af) && (code <= 0x21cd)) || +           ((code >= 0x21d0) && (code <= 0x21d1)) || +           (code == 0x21d3) || +           ((code >= 0x21d5) && (code <= 0x21f3)) || +           ((code >= 0x2300) && (code <= 0x2307)) || +           ((code >= 0x230c) && (code <= 0x231f)) || +           ((code >= 0x2322) && (code <= 0x2328)) || +           ((code >= 0x232b) && (code <= 0x237b)) || +           ((code >= 0x237d) && (code <= 0x239a)) || +           ((code >= 0x2400) && (code <= 0x2426)) || +           ((code >= 0x2440) && (code <= 0x244a)) || +           ((code >= 0x249c) && (code <= 0x24e9)) || +           ((code >= 0x2500) && (code <= 0x2595)) || +           ((code >= 0x25a0) && (code <= 0x25b6)) || +           ((code >= 0x25b8) && (code <= 0x25c0)) || +           ((code >= 0x25c2) && (code <= 0x25f7)) || +           ((code >= 0x2600) && (code <= 0x2613)) || +           ((code >= 0x2619) && (code <= 0x266e)) || +           ((code >= 0x2670) && (code <= 0x2671)) || +           ((code >= 0x2701) && (code <= 0x2704)) || +           ((code >= 0x2706) && (code <= 0x2709)) || +           ((code >= 0x270c) && (code <= 0x2727)) || +           ((code >= 0x2729) && (code <= 0x274b)) || +           (code == 0x274d) || +           ((code >= 0x274f) && (code <= 0x2752)) || +           (code == 0x2756) || +           ((code >= 0x2758) && (code <= 0x275e)) || +           ((code >= 0x2761) && (code <= 0x2767)) || +           (code == 0x2794) || +           ((code >= 0x2798) && (code <= 0x27af)) || +           ((code >= 0x27b1) && (code <= 0x27be)) || +           ((code >= 0x2800) && (code <= 0x28ff)) || +           ((code >= 0x2e80) && (code <= 0x2e99)) || +           ((code >= 0x2e9b) && (code <= 0x2ef3)) || +           ((code >= 0x2f00) && (code <= 0x2fd5)) || +           ((code >= 0x2ff0) && (code <= 0x2ffb)) || +           (code == 0x3004) || +           ((code >= 0x3012) && (code <= 0x3013)) || +           (code == 0x3020) || +           ((code >= 0x3036) && (code <= 0x3037)) || +           ((code >= 0x303e) && (code <= 0x303f)) || +           ((code >= 0x3190) && (code <= 0x3191)) || +           ((code >= 0x3196) && (code <= 0x319f)) || +           ((code >= 0x3200) && (code <= 0x321c)) || +           ((code >= 0x322a) && (code <= 0x3243)) || +           ((code >= 0x3260) && (code <= 0x327b)) || +           (code == 0x327f) || +           ((code >= 0x328a) && (code <= 0x32b0)) || +           ((code >= 0x32c0) && (code <= 0x32cb)) || +           ((code >= 0x32d0) && (code <= 0x32fe)) || +           ((code >= 0x3300) && (code <= 0x3376)) || +           ((code >= 0x337b) && (code <= 0x33dd)) || +           ((code >= 0x33e0) && (code <= 0x33fe)) || +           ((code >= 0xa490) && (code <= 0xa4a1)) || +           ((code >= 0xa4a4) && (code <= 0xa4b3)) || +           ((code >= 0xa4b5) && (code <= 0xa4c0)) || +           ((code >= 0xa4c2) && (code <= 0xa4c4)) || +           (code == 0xa4c6) || +           (code == 0xffe4) || +           (code == 0xffe8) || +           ((code >= 0xffed) && (code <= 0xffee)) || +           ((code >= 0xfffc) && (code <= 0xfffd)) || +           ((code >= 0x1d000) && (code <= 0x1d0f5)) || +           ((code >= 0x1d100) && (code <= 0x1d126)) || +           ((code >= 0x1d12a) && (code <= 0x1d164)) || +           ((code >= 0x1d16a) && (code <= 0x1d16c)) || +           ((code >= 0x1d183) && (code <= 0x1d184)) || +           ((code >= 0x1d18c) && (code <= 0x1d1a9)) || +           ((code >= 0x1d1ae) && (code <= 0x1d1dd))); +} + +/** + * xmlUCSIsCatZ: + * @code: UCS code point + * + * Check whether the character is part of Z UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatZ(int code) { +    return((code == 0x20) || +           (code == 0xa0) || +           (code == 0x1680) || +           ((code >= 0x2000) && (code <= 0x200b)) || +           ((code >= 0x2028) && (code <= 0x2029)) || +           (code == 0x202f) || +           (code == 0x3000)); +} + +/** + * xmlUCSIsCatZl: + * @code: UCS code point + * + * Check whether the character is part of Zl UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatZl(int code) { +    return((code == 0x2028)); +} + +/** + * xmlUCSIsCatZp: + * @code: UCS code point + * + * Check whether the character is part of Zp UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatZp(int code) { +    return((code == 0x2029)); +} + +/** + * xmlUCSIsCatZs: + * @code: UCS code point + * + * Check whether the character is part of Zs UCS Category + * + * Returns 1 if true 0 otherwise + */ +int +xmlUCSIsCatZs(int code) { +    return((code == 0x20) || +           (code == 0xa0) || +           (code == 0x1680) || +           ((code >= 0x2000) && (code <= 0x200b)) || +           (code == 0x202f) || +           (code == 0x3000)); +} + +/** + * xmlUCSIsCat: + * @code: UCS code point + * @cat: UCS Category name + * + * Check whether the caracter is part of the UCS Category + * + * Returns 1 if true, 0 if false and -1 on unknown category + */ +int +xmlUCSIsCat(int code, const char *cat) { +    if (!strcmp(cat, "C")) +        return(xmlUCSIsCatC(code)); +    if (!strcmp(cat, "Cc")) +        return(xmlUCSIsCatCc(code)); +    if (!strcmp(cat, "Cf")) +        return(xmlUCSIsCatCf(code)); +    if (!strcmp(cat, "Co")) +        return(xmlUCSIsCatCo(code)); +    if (!strcmp(cat, "Cs")) +        return(xmlUCSIsCatCs(code)); +    if (!strcmp(cat, "L")) +        return(xmlUCSIsCatL(code)); +    if (!strcmp(cat, "Ll")) +        return(xmlUCSIsCatLl(code)); +    if (!strcmp(cat, "Lm")) +        return(xmlUCSIsCatLm(code)); +    if (!strcmp(cat, "Lo")) +        return(xmlUCSIsCatLo(code)); +    if (!strcmp(cat, "Lt")) +        return(xmlUCSIsCatLt(code)); +    if (!strcmp(cat, "Lu")) +        return(xmlUCSIsCatLu(code)); +    if (!strcmp(cat, "M")) +        return(xmlUCSIsCatM(code)); +    if (!strcmp(cat, "Mc")) +        return(xmlUCSIsCatMc(code)); +    if (!strcmp(cat, "Me")) +        return(xmlUCSIsCatMe(code)); +    if (!strcmp(cat, "Mn")) +        return(xmlUCSIsCatMn(code)); +    if (!strcmp(cat, "N")) +        return(xmlUCSIsCatN(code)); +    if (!strcmp(cat, "Nd")) +        return(xmlUCSIsCatNd(code)); +    if (!strcmp(cat, "Nl")) +        return(xmlUCSIsCatNl(code)); +    if (!strcmp(cat, "No")) +        return(xmlUCSIsCatNo(code)); +    if (!strcmp(cat, "P")) +        return(xmlUCSIsCatP(code)); +    if (!strcmp(cat, "Pc")) +        return(xmlUCSIsCatPc(code)); +    if (!strcmp(cat, "Pd")) +        return(xmlUCSIsCatPd(code)); +    if (!strcmp(cat, "Pe")) +        return(xmlUCSIsCatPe(code)); +    if (!strcmp(cat, "Pf")) +        return(xmlUCSIsCatPf(code)); +    if (!strcmp(cat, "Pi")) +        return(xmlUCSIsCatPi(code)); +    if (!strcmp(cat, "Po")) +        return(xmlUCSIsCatPo(code)); +    if (!strcmp(cat, "Ps")) +        return(xmlUCSIsCatPs(code)); +    if (!strcmp(cat, "S")) +        return(xmlUCSIsCatS(code)); +    if (!strcmp(cat, "Sc")) +        return(xmlUCSIsCatSc(code)); +    if (!strcmp(cat, "Sk")) +        return(xmlUCSIsCatSk(code)); +    if (!strcmp(cat, "Sm")) +        return(xmlUCSIsCatSm(code)); +    if (!strcmp(cat, "So")) +        return(xmlUCSIsCatSo(code)); +    if (!strcmp(cat, "Z")) +        return(xmlUCSIsCatZ(code)); +    if (!strcmp(cat, "Zl")) +        return(xmlUCSIsCatZl(code)); +    if (!strcmp(cat, "Zp")) +        return(xmlUCSIsCatZp(code)); +    if (!strcmp(cat, "Zs")) +        return(xmlUCSIsCatZs(code)); +    return(-1); +} + + +#endif /* LIBXML_UNICODE_ENABLED */  | 
