diff options
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/tools/gencase/gencase.h')
-rw-r--r-- | Build/source/libs/icu/icu-xetex/tools/gencase/gencase.h | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/tools/gencase/gencase.h b/Build/source/libs/icu/icu-xetex/tools/gencase/gencase.h new file mode 100644 index 00000000000..8b09cb2dfd1 --- /dev/null +++ b/Build/source/libs/icu/icu-xetex/tools/gencase/gencase.h @@ -0,0 +1,127 @@ +/* +******************************************************************************* +* +* Copyright (C) 2004-2005, International Business Machines +* Corporation and others. All Rights Reserved. +* +******************************************************************************* +* file name: gencase.h +* encoding: US-ASCII +* tab size: 8 (not used) +* indentation:4 +* +* created on: 2004aug28 +* created by: Markus W. Scherer +*/ + +#ifndef __GENCASE_H__ +#define __GENCASE_H__ + +#include "unicode/utypes.h" +#include "utrie.h" +#include "ucase.h" + +U_CDECL_BEGIN + +/* Unicode versions --------------------------------------------------------- */ + +enum { + UNI_1_0, + UNI_1_1, + UNI_2_0, + UNI_3_0, + UNI_3_1, + UNI_3_2, + UNI_4_0, + UNI_4_0_1, + UNI_4_1, + UNI_VER_COUNT +}; + +extern int32_t ucdVersion; + +/* gencase ------------------------------------------------------------------ */ + +#define UGENCASE_EXC_SHIFT 16 +#define UGENCASE_EXC_MASK 0xffff0000 + +/* + * Values for the ucase.icu unfold[] data array, see store.c. + * The values are stored in ucase.icu so that the runtime code will work with + * changing values, but they are hardcoded for gencase for simplicity. + * They are optimized, that is, provide for minimal table column widths, + * for the actual Unicode data, so that the table size is minimized. + * Future versions of Unicode may require increases of some of these values. + */ +enum { + UGENCASE_UNFOLD_STRING_WIDTH=3, + UGENCASE_UNFOLD_CP_WIDTH=2, + UGENCASE_UNFOLD_WIDTH=UGENCASE_UNFOLD_STRING_WIDTH+UGENCASE_UNFOLD_CP_WIDTH, + UGENCASE_UNFOLD_MAX_ROWS=250 +}; + +/* Values for additional data stored in pv column 1 */ +enum { + UGENCASE_IS_MID_LETTER_SHIFT /* bit 0 */ +}; + +/* special casing data */ +typedef struct { + UChar32 code; + UBool isComplex; + UChar lowerCase[32], upperCase[32], titleCase[32]; +} SpecialCasing; + +/* case folding data */ +typedef struct { + UChar32 code, simple; + char status; + UChar full[32]; +} CaseFolding; + +/* case mapping properties */ +typedef struct { + UChar32 code, lowerCase, upperCase, titleCase; + UChar32 closure[8]; + SpecialCasing *specialCasing; + CaseFolding *caseFolding; + uint8_t gc, cc; +} Props; + +/* global flags */ +extern UBool beVerbose, haveCopyright; + +/* properties vectors in gencase.c */ +extern uint32_t *pv; + +/* prototypes */ +U_CFUNC void +writeUCDFilename(char *basename, const char *filename, const char *suffix); + +U_CFUNC UBool +isToken(const char *token, const char *s); + +extern void +setUnicodeVersion(const char *v); + +extern void +setProps(Props *p); + +U_CFUNC uint32_t U_EXPORT2 +getFoldedPropsValue(UNewTrie *trie, UChar32 start, int32_t offset); + +extern void +addCaseSensitive(UChar32 first, UChar32 last); + +extern void +makeCaseClosure(void); + +extern void +makeExceptions(void); + +extern void +generateData(const char *dataDir, UBool csource); + +U_CDECL_END + +#endif |