Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(293)

Unified Diff: icu46/source/i18n/ucol_elm.h

Issue 5516007: Check in the pristine copy of ICU 4.6... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « icu46/source/i18n/ucol_cnt.cpp ('k') | icu46/source/i18n/ucol_elm.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: icu46/source/i18n/ucol_elm.h
===================================================================
--- icu46/source/i18n/ucol_elm.h (revision 0)
+++ icu46/source/i18n/ucol_elm.h (revision 0)
@@ -0,0 +1,146 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2000-2010, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: ucol_elm.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created 02/22/2001
+* created by: Vladimir Weinstein
+*
+* This program reads the Franctional UCA table and generates
+* internal format for UCA table as well as inverse UCA table.
+* It then writes binary files containing the data: ucadata.dat
+* & invuca.dat
+*/
+#ifndef UCOL_UCAELEMS_H
+#define UCOL_UCAELEMS_H
+
+#include "unicode/utypes.h"
+#include "unicode/uniset.h"
+#include "ucol_tok.h"
+
+#if !UCONFIG_NO_COLLATION
+
+#include "ucol_imp.h"
+
+#ifdef UCOL_DEBUG
+#include "cmemory.h"
+#include <stdio.h>
+#endif
+
+U_CDECL_BEGIN
+
+/* This is the maximum trie capacity for the mapping trie.
+Due to current limitations in genuca and the design of UTrie,
+this number can't be more than 256K.
+As of Unicode 5, it currently could safely go to 128K without
+a problem. Normally, less than 32K are tailored.
+*/
+#define UCOL_ELM_TRIE_CAPACITY 0x40000
+
+/* This is the maxmun capacity for temparay combining class
+ * table. The table will be compacted after scanning all the
+ * Unicode codepoints.
+*/
+#define UCOL_MAX_CM_TAB 0x10000
+
+
+typedef struct {
+ uint32_t *CEs;
+ int32_t position;
+ int32_t size;
+} ExpansionTable;
+
+typedef struct {
+ UChar prefixChars[128];
+ UChar *prefix;
+ uint32_t prefixSize;
+ UChar uchars[128];
+ UChar *cPoints;
+ uint32_t cSize; /* Number of characters in sequence - for contraction */
+ uint32_t noOfCEs; /* Number of collation elements */
+ uint32_t CEs[128]; /* These are collation elements - there could be more than one - in case of expansion */
+ uint32_t mapCE; /* This is the value element maps in original table */
+ uint32_t sizePrim[128];
+ uint32_t sizeSec[128];
+ uint32_t sizeTer[128];
+ UBool caseBit;
+ UBool isThai;
+} UCAElements;
+
+typedef struct {
+ uint32_t *endExpansionCE;
+ UBool *isV;
+ int32_t position;
+ int32_t size;
+ uint8_t maxLSize;
+ uint8_t maxVSize;
+ uint8_t maxTSize;
+} MaxJamoExpansionTable;
+
+typedef struct {
+ uint32_t *endExpansionCE;
+ uint8_t *expansionCESize;
+ int32_t position;
+ int32_t size;
+} MaxExpansionTable;
+
+typedef struct {
+ uint16_t index[256]; /* index of cPoints by combining class 0-255. */
+ UChar *cPoints; /* code point array of all combining marks */
+ uint32_t size; /* total number of combining marks */
+} CombinClassTable;
+
+typedef struct {
+ /*CompactEIntArray *mapping; */
+ UNewTrie *mapping;
+ ExpansionTable *expansions;
+ struct CntTable *contractions;
+ UCATableHeader *image;
+ UColOptionSet *options;
+ MaxExpansionTable *maxExpansions;
+ MaxJamoExpansionTable *maxJamoExpansions;
+ uint8_t *unsafeCP;
+ uint8_t *contrEndCP;
+ const UCollator *UCA;
+ UHashtable *prefixLookup;
+ CombinClassTable *cmLookup; /* combining class lookup for tailoring. */
+} tempUCATable;
+
+typedef struct {
+ UChar cp;
+ uint16_t cClass; // combining class
+}CompData;
+
+typedef struct {
+ CompData *precomp;
+ int32_t precompLen;
+ UChar *decomp;
+ int32_t decompLen;
+ UChar *comp;
+ int32_t compLen;
+ uint16_t curClass;
+ uint16_t tailoringCM;
+ int32_t cmPos;
+}tempTailorContext;
+
+U_CAPI tempUCATable * U_EXPORT2 uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollator *UCA, UColCETags initTag, UColCETags supplementaryInitTag, UErrorCode *status);
+U_CAPI void U_EXPORT2 uprv_uca_closeTempTable(tempUCATable *t);
+U_CAPI uint32_t U_EXPORT2 uprv_uca_addAnElement(tempUCATable *t, UCAElements *element, UErrorCode *status);
+U_CAPI UCATableHeader * U_EXPORT2 uprv_uca_assembleTable(tempUCATable *t, UErrorCode *status);
+
+U_CAPI int32_t U_EXPORT2
+uprv_uca_canonicalClosure(tempUCATable *t, UColTokenParser *src,
+ U_NAMESPACE_QUALIFIER UnicodeSet *closed, UErrorCode *status);
+
+U_CDECL_END
+
+#endif /* #if !UCONFIG_NO_COLLATION */
+
+#endif
Property changes on: icu46/source/i18n/ucol_elm.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « icu46/source/i18n/ucol_cnt.cpp ('k') | icu46/source/i18n/ucol_elm.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698