summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/tools/gencase/gencase.h
diff options
context:
space:
mode:
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.h127
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