/*
 * xmlunicode.h: this header exports interfaces for 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>
 */

#ifndef __XML_UNICODE_H__
#define __XML_UNICODE_H__

#ifdef __cplusplus
extern "C" {
#endif

int	xmlUCSIsAlphabeticPresentationForms	(int code);
int	xmlUCSIsArabic	(int code);
int	xmlUCSIsArabicPresentationFormsA	(int code);
int	xmlUCSIsArabicPresentationFormsB	(int code);
int	xmlUCSIsArmenian	(int code);
int	xmlUCSIsArrows	(int code);
int	xmlUCSIsBasicLatin	(int code);
int	xmlUCSIsBengali	(int code);
int	xmlUCSIsBlockElements	(int code);
int	xmlUCSIsBopomofo	(int code);
int	xmlUCSIsBopomofoExtended	(int code);
int	xmlUCSIsBoxDrawing	(int code);
int	xmlUCSIsBraillePatterns	(int code);
int	xmlUCSIsByzantineMusicalSymbols	(int code);
int	xmlUCSIsCJKCompatibility	(int code);
int	xmlUCSIsCJKCompatibilityForms	(int code);
int	xmlUCSIsCJKCompatibilityIdeographs	(int code);
int	xmlUCSIsCJKCompatibilityIdeographsSupplement	(int code);
int	xmlUCSIsCJKRadicalsSupplement	(int code);
int	xmlUCSIsCJKSymbolsandPunctuation	(int code);
int	xmlUCSIsCJKUnifiedIdeographs	(int code);
int	xmlUCSIsCJKUnifiedIdeographsExtensionA	(int code);
int	xmlUCSIsCJKUnifiedIdeographsExtensionB	(int code);
int	xmlUCSIsCherokee	(int code);
int	xmlUCSIsCombiningDiacriticalMarks	(int code);
int	xmlUCSIsCombiningHalfMarks	(int code);
int	xmlUCSIsCombiningMarksforSymbols	(int code);
int	xmlUCSIsControlPictures	(int code);
int	xmlUCSIsCurrencySymbols	(int code);
int	xmlUCSIsCyrillic	(int code);
int	xmlUCSIsDeseret	(int code);
int	xmlUCSIsDevanagari	(int code);
int	xmlUCSIsDingbats	(int code);
int	xmlUCSIsEnclosedAlphanumerics	(int code);
int	xmlUCSIsEnclosedCJKLettersandMonths	(int code);
int	xmlUCSIsEthiopic	(int code);
int	xmlUCSIsGeneralPunctuation	(int code);
int	xmlUCSIsGeometricShapes	(int code);
int	xmlUCSIsGeorgian	(int code);
int	xmlUCSIsGothic	(int code);
int	xmlUCSIsGreek	(int code);
int	xmlUCSIsGreekExtended	(int code);
int	xmlUCSIsGujarati	(int code);
int	xmlUCSIsGurmukhi	(int code);
int	xmlUCSIsHalfwidthandFullwidthForms	(int code);
int	xmlUCSIsHangulCompatibilityJamo	(int code);
int	xmlUCSIsHangulJamo	(int code);
int	xmlUCSIsHangulSyllables	(int code);
int	xmlUCSIsHebrew	(int code);
int	xmlUCSIsHighPrivateUseSurrogates	(int code);
int	xmlUCSIsHighSurrogates	(int code);
int	xmlUCSIsHiragana	(int code);
int	xmlUCSIsIPAExtensions	(int code);
int	xmlUCSIsIdeographicDescriptionCharacters	(int code);
int	xmlUCSIsKanbun	(int code);
int	xmlUCSIsKangxiRadicals	(int code);
int	xmlUCSIsKannada	(int code);
int	xmlUCSIsKatakana	(int code);
int	xmlUCSIsKhmer	(int code);
int	xmlUCSIsLao	(int code);
int	xmlUCSIsLatin1Supplement	(int code);
int	xmlUCSIsLatinExtendedA	(int code);
int	xmlUCSIsLatinExtendedB	(int code);
int	xmlUCSIsLatinExtendedAdditional	(int code);
int	xmlUCSIsLetterlikeSymbols	(int code);
int	xmlUCSIsLowSurrogates	(int code);
int	xmlUCSIsMalayalam	(int code);
int	xmlUCSIsMathematicalAlphanumericSymbols	(int code);
int	xmlUCSIsMathematicalOperators	(int code);
int	xmlUCSIsMiscellaneousSymbols	(int code);
int	xmlUCSIsMiscellaneousTechnical	(int code);
int	xmlUCSIsMongolian	(int code);
int	xmlUCSIsMusicalSymbols	(int code);
int	xmlUCSIsMyanmar	(int code);
int	xmlUCSIsNumberForms	(int code);
int	xmlUCSIsOgham	(int code);
int	xmlUCSIsOldItalic	(int code);
int	xmlUCSIsOpticalCharacterRecognition	(int code);
int	xmlUCSIsOriya	(int code);
int	xmlUCSIsPrivateUse	(int code);
int	xmlUCSIsRunic	(int code);
int	xmlUCSIsSinhala	(int code);
int	xmlUCSIsSmallFormVariants	(int code);
int	xmlUCSIsSpacingModifierLetters	(int code);
int	xmlUCSIsSpecials	(int code);
int	xmlUCSIsSuperscriptsandSubscripts	(int code);
int	xmlUCSIsSyriac	(int code);
int	xmlUCSIsTags	(int code);
int	xmlUCSIsTamil	(int code);
int	xmlUCSIsTelugu	(int code);
int	xmlUCSIsThaana	(int code);
int	xmlUCSIsThai	(int code);
int	xmlUCSIsTibetan	(int code);
int	xmlUCSIsUnifiedCanadianAboriginalSyllabics	(int code);
int	xmlUCSIsYiRadicals	(int code);
int	xmlUCSIsYiSyllables	(int code);

int	xmlUCSIsBlock	(int code,
			 const char *block);

int	xmlUCSIsCatC	(int code);
int	xmlUCSIsCatCc	(int code);
int	xmlUCSIsCatCf	(int code);
int	xmlUCSIsCatCo	(int code);
int	xmlUCSIsCatCs	(int code);
int	xmlUCSIsCatL	(int code);
int	xmlUCSIsCatLl	(int code);
int	xmlUCSIsCatLm	(int code);
int	xmlUCSIsCatLo	(int code);
int	xmlUCSIsCatLt	(int code);
int	xmlUCSIsCatLu	(int code);
int	xmlUCSIsCatM	(int code);
int	xmlUCSIsCatMc	(int code);
int	xmlUCSIsCatMe	(int code);
int	xmlUCSIsCatMn	(int code);
int	xmlUCSIsCatN	(int code);
int	xmlUCSIsCatNd	(int code);
int	xmlUCSIsCatNl	(int code);
int	xmlUCSIsCatNo	(int code);
int	xmlUCSIsCatP	(int code);
int	xmlUCSIsCatPc	(int code);
int	xmlUCSIsCatPd	(int code);
int	xmlUCSIsCatPe	(int code);
int	xmlUCSIsCatPf	(int code);
int	xmlUCSIsCatPi	(int code);
int	xmlUCSIsCatPo	(int code);
int	xmlUCSIsCatPs	(int code);
int	xmlUCSIsCatS	(int code);
int	xmlUCSIsCatSc	(int code);
int	xmlUCSIsCatSk	(int code);
int	xmlUCSIsCatSm	(int code);
int	xmlUCSIsCatSo	(int code);
int	xmlUCSIsCatZ	(int code);
int	xmlUCSIsCatZl	(int code);
int	xmlUCSIsCatZp	(int code);
int	xmlUCSIsCatZs	(int code);

int	xmlUCSIsCat	(int code,
			 const char *cat);

#ifdef __cplusplus
}
#endif
#endif /* __XML_UNICODE_H__ */
