diff options
Diffstat (limited to 'Build/source/libs/icu-xetex/common/unicode')
44 files changed, 4491 insertions, 3262 deletions
diff --git a/Build/source/libs/icu-xetex/common/unicode/brkiter.h b/Build/source/libs/icu-xetex/common/unicode/brkiter.h index 152e6a3d781..ba65650b5f3 100644 --- a/Build/source/libs/icu-xetex/common/unicode/brkiter.h +++ b/Build/source/libs/icu-xetex/common/unicode/brkiter.h @@ -1,6 +1,6 @@ /* ******************************************************************************** -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************** * @@ -48,38 +48,31 @@ U_NAMESPACE_END #include "unicode/ubrk.h" #include "unicode/strenum.h" #include "unicode/utext.h" +#include "unicode/umisc.h" U_NAMESPACE_BEGIN -#if !UCONFIG_NO_SERVICE -/** - * Opaque type returned by registerInstance. - * @stable - */ -typedef const void* URegistryKey; -#endif - /** * The BreakIterator class implements methods for finding the location * of boundaries in text. BreakIterator is an abstract base class. * Instances of BreakIterator maintain a current position and scan over * text returning the index of characters where boundaries occur. - * <P> + * <p> * Line boundary analysis determines where a text string can be broken * when line-wrapping. The mechanism correctly handles punctuation and * hyphenated words. - * <P> + * <p> * Sentence boundary analysis allows selection with correct * interpretation of periods within numbers and abbreviations, and * trailing punctuation marks such as quotation marks and parentheses. - * <P> + * <p> * Word boundary analysis is used by search and replace functions, as * well as within text editing applications that allow the user to * select words with a double click. Word selection provides correct * interpretation of punctuation marks within and following * words. Characters that are not part of a word, such as symbols or * punctuation marks, have word-breaks on both sides. - * <P> + * <p> * Character boundary analysis allows users to interact with * characters as they expect to, for example, when moving the cursor * through a text string. Character boundary analysis provides correct @@ -87,126 +80,22 @@ typedef const void* URegistryKey; * character is stored. For example, an accented character might be * stored as a base character and a diacritical mark. What users * consider to be a character can differ between languages. - * <P> - * This is the interface for all text boundaries. - * <P> - * Examples: - * <P> - * Helper function to output text - * <pre> - * \code - * void printTextRange( BreakIterator& iterator, int32_t start, int32_t end ) - * { - * UnicodeString textBuffer, temp; - * CharacterIterator *strIter = iterator.createText(); - * strIter->getText(temp); - * cout << " " << start << " " << end << " |" - * << temp.extractBetween(start, end, textBuffer) - * << "|" << endl; - * delete strIter; - * } - * \endcode - * </pre> - * Print each element in order: - * <pre> - * \code - * void printEachForward( BreakIterator& boundary) - * { - * int32_t start = boundary.first(); - * for (int32_t end = boundary.next(); - * end != BreakIterator::DONE; - * start = end, end = boundary.next()) - * { - * printTextRange( boundary, start, end ); - * } - * } - * \endcode - * </pre> - * Print each element in reverse order: - * <pre> - * \code - * void printEachBackward( BreakIterator& boundary) - * { - * int32_t end = boundary.last(); - * for (int32_t start = boundary.previous(); - * start != BreakIterator::DONE; - * end = start, start = boundary.previous()) - * { - * printTextRange( boundary, start, end ); - * } - * } - * \endcode - * </pre> - * Print first element - * <pre> - * \code - * void printFirst(BreakIterator& boundary) - * { - * int32_t start = boundary.first(); - * int32_t end = boundary.next(); - * printTextRange( boundary, start, end ); - * } - * \endcode - * </pre> - * Print last element - * <pre> - * \code - * void printLast(BreakIterator& boundary) - * { - * int32_t end = boundary.last(); - * int32_t start = boundary.previous(); - * printTextRange( boundary, start, end ); - * } - * \endcode - * </pre> - * Print the element at a specified position - * <pre> - * \code - * void printAt(BreakIterator &boundary, int32_t pos ) - * { - * int32_t end = boundary.following(pos); - * int32_t start = boundary.previous(); - * printTextRange( boundary, start, end ); - * } - * \endcode - * </pre> - * Creating and using text boundaries - * <pre> - * \code - * void BreakIterator_Example( void ) - * { - * BreakIterator* boundary; - * UnicodeString stringToExamine("Aaa bbb ccc. Ddd eee fff."); - * cout << "Examining: " << stringToExamine << endl; - * - * //print each sentence in forward and reverse order - * boundary = BreakIterator::createSentenceInstance( Locale::US ); - * boundary->setText(stringToExamine); - * cout << "----- forward: -----------" << endl; - * printEachForward(*boundary); - * cout << "----- backward: ----------" << endl; - * printEachBackward(*boundary); - * delete boundary; - * - * //print each word in order - * boundary = BreakIterator::createWordInstance(); - * boundary->setText(stringToExamine); - * cout << "----- forward: -----------" << endl; - * printEachForward(*boundary); - * //print first element - * cout << "----- first: -------------" << endl; - * printFirst(*boundary); - * //print last element - * cout << "----- last: --------------" << endl; - * printLast(*boundary); - * //print word at charpos 10 - * cout << "----- at pos 10: ---------" << endl; - * printAt(*boundary, 10 ); + * <p> + * The text boundary positions are found according to the rules + * described in Unicode Standard Annex #29, Text Boundaries, and + * Unicode Standard Annex #14, Line Breaking Properties. These + * are available at http://www.unicode.org/reports/tr14/ and + * http://www.unicode.org/reports/tr29/. + * <p> + * In addition to the C++ API defined in this header file, a + * plain C API with equivalent functionality is defined in the + * file ubrk.h + * <p> + * Code snippits illustrating the use of the Break Iterator APIs + * are available in the ICU User Guide, + * http://icu.sourceforge.net/userguide/boundaryAnalysis.html + * and in the sample program icu/source/samples/break/break.cpp" * - * delete boundary; - * } - * \endcode - * </pre> */ class U_COMMON_API BreakIterator : public UObject { public: @@ -255,11 +144,9 @@ public: /** * Return a CharacterIterator over the text being analyzed. - * Changing the state of the returned iterator can have undefined consequences - * on the operation of the break iterator. If you need to change it, clone it first. * @stable ICU 2.0 */ - virtual const CharacterIterator& getText(void) const = 0; + virtual CharacterIterator& getText(void) const = 0; /** @@ -304,6 +191,8 @@ public: /** * Change the text over which this operates. The text boundary is * reset to the start. + * Note that setText(UText *) provides similar functionality to this function, + * and is more efficient. * @param it The CharacterIterator used to change the text. * @stable ICU 2.0 */ @@ -613,7 +502,7 @@ public: /** * Returns the locale for this break iterator. Two flavors are available: valid and * actual locale. - * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback + * @stable ICU 2.8 */ Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const; @@ -626,8 +515,8 @@ public: const char *getLocaleID(ULocDataLocaleType type, UErrorCode& status) const; private: - static BreakIterator* buildInstance(const Locale& loc, const char *type, UBool dict, UErrorCode& status); - static BreakIterator* createInstance(const Locale& loc, UBreakIteratorType kind, UErrorCode& status); + static BreakIterator* buildInstance(const Locale& loc, const char *type, int32_t kind, UErrorCode& status); + static BreakIterator* createInstance(const Locale& loc, int32_t kind, UErrorCode& status); static BreakIterator* makeInstance(const Locale& loc, int32_t kind, UErrorCode& status); friend class ICUBreakIteratorFactory; diff --git a/Build/source/libs/icu-xetex/common/unicode/caniter.h b/Build/source/libs/icu-xetex/common/unicode/caniter.h index 5e1526dbf48..84a65958d16 100644 --- a/Build/source/libs/icu-xetex/common/unicode/caniter.h +++ b/Build/source/libs/icu-xetex/common/unicode/caniter.h @@ -1,6 +1,6 @@ /* ******************************************************************************* - * Copyright (C) 1996-2005, International Business Machines Corporation and * + * Copyright (C) 1996-2006, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ @@ -178,7 +178,7 @@ private: UnicodeString *getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status); //private String[] getEquivalents(String segment) //Set getEquivalents2(String segment); - Hashtable *getEquivalents2(const UChar *segment, int32_t segLen, UErrorCode &status); + Hashtable *getEquivalents2(Hashtable *fillinResult, const UChar *segment, int32_t segLen, UErrorCode &status); //Hashtable *getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status); /** @@ -187,7 +187,7 @@ private: * If so, take the remainder, and return the equivalents */ //Set extract(int comp, String segment, int segmentPos, StringBuffer buffer); - Hashtable *extract(UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status); + Hashtable *extract(Hashtable *fillinResult, UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status); //Hashtable *extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status); void cleanPieces(); diff --git a/Build/source/libs/icu-xetex/common/unicode/dbbi.h b/Build/source/libs/icu-xetex/common/unicode/dbbi.h index 2fb15497c9b..c7984ef862f 100644 --- a/Build/source/libs/icu-xetex/common/unicode/dbbi.h +++ b/Build/source/libs/icu-xetex/common/unicode/dbbi.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1999-2005 IBM Corp. All rights reserved. +* Copyright (C) 1999-2006 IBM Corp. All rights reserved. ********************************************************************** * Date Name Description * 12/1/99 rgillam Complete port from Java. @@ -22,253 +22,17 @@ U_NAMESPACE_BEGIN -/* forward declaration */ -class DictionaryBasedBreakIteratorTables; - /** - * A subclass of RuleBasedBreakIterator that adds the ability to use a dictionary - * to further subdivide ranges of text beyond what is possible using just the - * state-table-based algorithm. This is necessary, for example, to handle - * word and line breaking in Thai, which doesn't use spaces between words. The - * state-table-based algorithm used by RuleBasedBreakIterator is used to divide - * up text as far as possible, and then contiguous ranges of letters are - * repeatedly compared against a list of known words (i.e., the dictionary) - * to divide them up into words. - * - * <p>Applications do not normally need to include this header.</p> - * - * <p>This class will probably be deprecated in a future release of ICU, and replaced - * with a more flexible and capable dictionary based break iterator. This change - * should be invisible to applications, because creation and use of instances of - * DictionaryBasedBreakIterator is through the factories and abstract - * API on class BreakIterator, which will remain stable.</p> - * - * <p>This class is not intended to be subclassed.</p> - * - * - * DictionaryBasedBreakIterator uses the same rule language as RuleBasedBreakIterator, - * but adds one more special substitution name: <dictionary>. This substitution - * name is used to identify characters in words in the dictionary. The idea is that - * if the iterator passes over a chunk of text that includes two or more characters - * in a row that are included in <dictionary>, it goes back through that range and - * derives additional break positions (if possible) using the dictionary. - * - * DictionaryBasedBreakIterator is also constructed with the filename of a dictionary - * file. It follows a prescribed search path to locate the dictionary (right now, - * it looks for it in /com/ibm/text/resources in each directory in the classpath, - * and won't find it in JAR files, but this location is likely to change). The - * dictionary file is in a serialized binary format. We have a very primitive (and - * slow) BuildDictionaryFile utility for creating dictionary files, but aren't - * currently making it public. Contact us for help. - * <p> - * <b> NOTE </b> The DictionaryBasedIterator class is still under development. The - * APIs are not in stable condition yet. + * An obsolete subclass of RuleBasedBreakIterator. Handling of dictionary- + * based break iteration has been folded into the base class. This class + * is deprecated as of ICU 3.6. */ -class U_COMMON_API DictionaryBasedBreakIterator : public RuleBasedBreakIterator { - -private: - - /** - * when a range of characters is divided up using the dictionary, the break - * positions that are discovered are stored here, preventing us from having - * to use either the dictionary or the state table again until the iterator - * leaves this range of text - */ - int32_t* cachedBreakPositions; - - /** - * The number of elements in cachedBreakPositions - */ - int32_t numCachedBreakPositions; - - /** - * if cachedBreakPositions is not null, this indicates which item in the - * cache the current iteration position refers to - */ - int32_t positionInCache; - - DictionaryBasedBreakIteratorTables *fTables; - - /**======================================================================= - * Create a dictionary based break boundary detection iterator. - * @param tablesImage The location for the dictionary to be loaded into memory - * @param dictionaryFilename The name of the dictionary file - * @param status the error code status - * @return A dictionary based break detection iterator. The UErrorCode& status - * parameter is used to return status information to the user. - * To check whether the construction succeeded or not, you should check - * the value of U_SUCCESS(err). If you wish more detailed information, you - * can check for informational error results which still indicate success. For example, - * U_FILE_ACCESS_ERROR will be returned if the file does not exist. - * The caller owns the returned object and is responsible for deleting it. - ======================================================================= */ - DictionaryBasedBreakIterator(UDataMemory* tablesImage, const char* dictionaryFilename, UErrorCode& status); - -public: - //======================================================================= - // boilerplate - //======================================================================= - - /** - * Destructor - * @stable ICU 2.0 - */ - virtual ~DictionaryBasedBreakIterator(); - - /** - * Default constructor. Creates an "empty" break iterator. - * Such an iterator can subsequently be assigned to. - * @return the newly created DictionaryBaseBreakIterator. - * @stable ICU 2.0 - */ - DictionaryBasedBreakIterator(); - - /** - * Copy constructor. - * @param other The DictionaryBasedBreakIterator to be copied. - * @return the newly created DictionaryBasedBreakIterator. - * @stable ICU 2.0 - */ - DictionaryBasedBreakIterator(const DictionaryBasedBreakIterator &other); - - /** - * Assignment operator. - * @param that The object to be copied. - * @return the newly set DictionaryBasedBreakIterator. - * @stable ICU 2.0 - */ - DictionaryBasedBreakIterator& operator=(const DictionaryBasedBreakIterator& that); - - /** - * Returns a newly-constructed RuleBasedBreakIterator with the same - * behavior, and iterating over the same text, as this one. - * @return Returns a newly-constructed RuleBasedBreakIterator. - * @stable ICU 2.0 - */ - virtual BreakIterator* clone(void) const; - - //======================================================================= - // BreakIterator overrides - //======================================================================= - /** - * Advances the iterator backwards, to the last boundary preceding this one. - * @return The position of the last boundary position preceding this one. - * @stable ICU 2.0 - */ - virtual int32_t previous(void); - - /** - * Sets the iterator to refer to the first boundary position following - * the specified position. - * @param offset The position from which to begin searching for a break position. - * @return The position of the first break after the current position. - * @stable ICU 2.0 - */ - virtual int32_t following(int32_t offset); - - /** - * Sets the iterator to refer to the last boundary position before the - * specified position. - * @param offset The position to begin searching for a break from. - * @return The position of the last boundary before the starting position. - * @stable ICU 2.0 - */ - virtual int32_t preceding(int32_t offset); - - /** - * Returns the class ID for this class. This is useful only for - * comparing to a return value from getDynamicClassID(). For example: - * - * Base* polymorphic_pointer = createPolymorphicObject(); - * if (polymorphic_pointer->getDynamicClassID() == - * Derived::getStaticClassID()) ... - * - * @return The class ID for all objects of this class. - * @stable ICU 2.0 - */ - static UClassID U_EXPORT2 getStaticClassID(void); - - /** - * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. - * This method is to implement a simple version of RTTI, since not all - * C++ compilers support genuine RTTI. Polymorphic operator==() and - * clone() methods call this method. - * - * @return The class ID for this object. All objects of a - * given class have the same class ID. Objects of - * other classes have different class IDs. - * @stable ICU 2.0 - */ - virtual UClassID getDynamicClassID(void) const; - -protected: - //======================================================================= - // implementation - //======================================================================= - /** - * This method is the actual implementation of the next() method. All iteration - * vectors through here. This method initializes the state machine to state 1 - * and advances through the text character by character until we reach the end - * of the text or the state machine transitions to state 0. We update our return - * value every time the state machine passes through a possible end state. - * @internal - */ - virtual int32_t handleNext(void); - - /** - * removes the cache of break positions (usually in response to a change in - * position of some sort) - * @internal - */ - virtual void reset(void); - - /** - * init Initialize a dbbi. Common routine for use by constructors. - * @internal - */ - void init(); - - /** - * @param stackBuffer user allocated space for the new clone. If NULL new memory will be allocated. - * If buffer is not large enough, new memory will be allocated. - * @param BufferSize reference to size of allocated space. - * If BufferSize == 0, a sufficient size for use in cloning will - * be returned ('pre-flighting') - * If BufferSize is not enough for a stack-based safe clone, - * new memory will be allocated. - * @param status to indicate whether the operation went on smoothly or there were errors - * An informational status value, U_SAFECLONE_ALLOCATED_ERROR, is used if any allocations were - * necessary. - * @return pointer to the new clone - * @internal - */ - virtual BreakIterator * createBufferClone(void *stackBuffer, - int32_t &BufferSize, - UErrorCode &status); - - -private: - /** - * This is the function that actually implements the dictionary-based - * algorithm. Given the endpoints of a range of text, it uses the - * dictionary to determine the positions of any boundaries in this - * range. It stores all the boundary positions it discovers in - * cachedBreakPositions so that we only have to do this work once - * for each time we enter the range. - * @param startPos The start position of a range of text - * @param endPos The end position of a range of text - * @param status The error code status - */ - void divideUpDictionaryRange(int32_t startPos, int32_t endPos, UErrorCode &status); + +#ifndef U_HIDE_DEPRECATED_API +typedef RuleBasedBreakIterator DictionaryBasedBreakIterator; - /* - * HSYS : Please revisit with Rich, the ctors of the DBBI class is currently - * marked as private. - */ - friend class DictionaryBasedBreakIteratorTables; - friend class BreakIterator; -}; +#endif U_NAMESPACE_END diff --git a/Build/source/libs/icu-xetex/common/unicode/locid.h b/Build/source/libs/icu-xetex/common/unicode/locid.h index aba214aa239..a3cc23b31fa 100644 --- a/Build/source/libs/icu-xetex/common/unicode/locid.h +++ b/Build/source/libs/icu-xetex/common/unicode/locid.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 1996-2005, International Business Machines +* Copyright (C) 1996-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -57,9 +57,9 @@ * this class: * \htmlonly<blockquote>\endhtmlonly * <pre> - * . Locale( const char* language, - * . const char* country, - * . const char* variant); + * Locale( const char* language, + * const char* country, + * const char* variant); * </pre> * \htmlonly</blockquote>\endhtmlonly * The first argument to the constructors is a valid <STRONG>ISO @@ -74,8 +74,8 @@ * Code.</STRONG> These codes are the upper-case two-letter codes * as defined by ISO-3166. * You can find a full list of these codes at a number of sites, such as: - * <BR><a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/index.html"> - * http://www.iso.ch/iso/en/prods-services/iso3166ma/index.html</a> + * <BR><a href="http://www.iso.org/iso/en/prods-services/iso3166ma/index.html"> + * http://www.iso.org/iso/en/prods-services/iso3166ma/index.html</a> * * <P> * The third constructor requires a third argument--the <STRONG>Variant.</STRONG> @@ -367,7 +367,7 @@ public: * the string by calling uloc_canonicalize(). * @param name the locale ID to create from. Must not be NULL. * @return a new locale object corresponding to the given name - * @draft ICU 3.0 + * @stable ICU 3.0 * @see uloc_canonicalize */ static Locale U_EXPORT2 createCanonical(const char* name); @@ -446,7 +446,7 @@ public: /** * returns the locale's three-letter language code, as specified - * in ISO draft standard ISO-639-2.. + * in ISO draft standard ISO-639-2. * @return An alias to the code, or NULL * @stable ICU 2.0 */ diff --git a/Build/source/libs/icu-xetex/common/unicode/normlzr.h b/Build/source/libs/icu-xetex/common/unicode/normlzr.h index 2b1f7e61de9..7974f1ac4dd 100644 --- a/Build/source/libs/icu-xetex/common/unicode/normlzr.h +++ b/Build/source/libs/icu-xetex/common/unicode/normlzr.h @@ -1,7 +1,7 @@ /* ******************************************************************** * COPYRIGHT: - * Copyright (c) 1996-2005, International Business Machines Corporation and + * Copyright (c) 1996-2006, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************** */ @@ -29,6 +29,9 @@ typedef struct UCharIterator UCharIterator; /**< C typedef for struct UCharItera U_NAMESPACE_BEGIN /** + * The Normalizer class supports the standard normalization forms described in + * <a href="http://www.unicode.org/unicode/reports/tr15/" target="unicode"> + * Unicode Standard Annex #15: Unicode Normalization Forms</a>. * * The Normalizer class consists of two parts: * - static functions that normalize strings or test if strings are normalized diff --git a/Build/source/libs/icu-xetex/common/unicode/platform.h.in b/Build/source/libs/icu-xetex/common/unicode/platform.h.in index 2726ebd218a..80766a253e2 100644 --- a/Build/source/libs/icu-xetex/common/unicode/platform.h.in +++ b/Build/source/libs/icu-xetex/common/unicode/platform.h.in @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -249,7 +249,16 @@ typedef unsigned int uint32_t; /* Symbol import-export control */ /*===========================================================================*/ +#if defined(U_DARWIN) && defined(__GNUC__) && (__GNUC__ >= 4) +#define USE_GCC_VISIBILITY_ATTRIBUTE 1 +#endif + +#ifdef USE_GCC_VISIBILITY_ATTRIBUTE +#define U_EXPORT __attribute__((visibility("default"))) +#else #define U_EXPORT +#endif + /* U_CALLCONV is releated to U_EXPORT2 */ #define U_EXPORT2 diff --git a/Build/source/libs/icu-xetex/common/unicode/ppalmos.h b/Build/source/libs/icu-xetex/common/unicode/ppalmos.h index a14d306b920..c15b2ceae32 100644 --- a/Build/source/libs/icu-xetex/common/unicode/ppalmos.h +++ b/Build/source/libs/icu-xetex/common/unicode/ppalmos.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -270,4 +270,4 @@ typedef unsigned int uint32_t; #define U_MAKE_IS_NMAKE 1 #endif -#endif
\ No newline at end of file +#endif diff --git a/Build/source/libs/icu-xetex/common/unicode/pwin32.h b/Build/source/libs/icu-xetex/common/unicode/pwin32.h index e31ac84d5ac..198ce8e3322 100644 --- a/Build/source/libs/icu-xetex/common/unicode/pwin32.h +++ b/Build/source/libs/icu-xetex/common/unicode/pwin32.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -97,8 +97,12 @@ /* Define 64 bit limits */ #if !U_INT64_IS_LONG_LONG -#define INT64_C(x) ((int64_t)x) -#define UINT64_C(x) ((uint64_t)x) +# ifndef INT64_C +# define INT64_C(x) ((int64_t)x) +# endif +# ifndef UINT64_C +# define UINT64_C(x) ((uint64_t)x) +# endif /* else use the umachine.h definition */ #endif @@ -168,8 +172,14 @@ typedef unsigned int uint32_t; /* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */ #define ICU_USE_THREADS 1 -/* Windows currently only runs on x86 CPUs which currently all have strong memory models. */ +/* On strong memory model CPUs (e.g. x86 CPUs), we use a safe & quick double check mutex lock. */ +/* +Microsoft can define _M_IX86, _M_AMD64 (before Visual Studio 8) or _M_X64 (starting in Visual Studio 8). +Intel can define _M_IX86 or _M_X64 +*/ +#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) #define UMTX_STRONG_MEMORY_MODEL 1 +#endif #ifndef U_DEBUG #ifdef _DEBUG @@ -271,7 +281,7 @@ typedef unsigned int uint32_t; # endif #endif -#if defined(_MSC_VER) && defined(_M_IX86) +#if defined(_MSC_VER) && defined(_M_IX86) && !defined(_MANAGED) #define U_ALIGN_CODE(val) __asm align val #else #define U_ALIGN_CODE(val) diff --git a/Build/source/libs/icu-xetex/common/unicode/rbbi.h b/Build/source/libs/icu-xetex/common/unicode/rbbi.h index 1097a4e7d07..2b81c3ecf29 100644 --- a/Build/source/libs/icu-xetex/common/unicode/rbbi.h +++ b/Build/source/libs/icu-xetex/common/unicode/rbbi.h @@ -1,6 +1,6 @@ /* *************************************************************************** -* Copyright (C) 1999-2005 International Business Machines Corporation * +* Copyright (C) 1999-2006 International Business Machines Corporation * * and others. All rights reserved. * *************************************************************************** @@ -26,6 +26,8 @@ #include "unicode/brkiter.h" #include "unicode/udata.h" #include "unicode/parseerr.h" +#include "unicode/schriter.h" +#include "unicode/uchriter.h" struct UTrie; @@ -37,10 +39,14 @@ struct RBBIDataHeader; class RuleBasedBreakIteratorTables; class BreakIterator; class RBBIDataWrapper; +class UStack; +class LanguageBreakEngine; +class UnhandledEngine; struct RBBIStateTable; + /** * * A subclass of BreakIterator whose behavior is specified using a list of rules. @@ -60,10 +66,31 @@ class U_COMMON_API RuleBasedBreakIterator : public BreakIterator { protected: /** - * The character iterator through which this BreakIterator accesses the text + * The UText through which this BreakIterator accesses the text * @internal */ - CharacterIterator* fText; + UText *fText; + + /** + * A character iterator that refers to the same text as the UText, above. + * Only included for compatibility with old API, which was based on CharacterIterators. + * Value may be adopted from outside, or one of fSCharIter or fDCharIter, below. + */ + CharacterIterator *fCharIter; + + /** + * When the input text is provided by a UnicodeString, this will point to + * a characterIterator that wraps that data. Needed only for the + * implementation of getText(), a backwards compatibility issue. + */ + StringCharacterIterator *fSCharIter; + + /** + * When the input text is provided by a UText, this + * dummy CharacterIterator over an empty string will + * be returned from getText() + */ + UCharCharacterIterator *fDCharIter; /** * The rule data for this BreakIterator instance @@ -86,20 +113,58 @@ protected: /** * Counter for the number of characters encountered with the "dictionary" - * flag set. Normal RBBI iterators don't use it, although the code - * for updating it is live. Dictionary Based break iterators (a subclass - * of us) access this field directly. + * flag set. * @internal */ - uint32_t fDictionaryCharCount; + uint32_t fDictionaryCharCount; /** - * Debugging flag. Trace operation of state machine when true. + * When a range of characters is divided up using the dictionary, the break + * positions that are discovered are stored here, preventing us from having + * to use either the dictionary or the state table again until the iterator + * leaves this range of text. Has the most impact for line breaking. * @internal */ - static UBool fTrace; + int32_t* fCachedBreakPositions; + /** + * The number of elements in fCachedBreakPositions + * @internal + */ + int32_t fNumCachedBreakPositions; + /** + * if fCachedBreakPositions is not null, this indicates which item in the + * cache the current iteration position refers to + * @internal + */ + int32_t fPositionInCache; + + /** + * + * If present, UStack of LanguageBreakEngine objects that might handle + * dictionary characters. Searched from top to bottom to find an object to + * handle a given character. + * @internal + */ + UStack *fLanguageBreakEngines; + + /** + * + * If present, the special LanguageBreakEngine used for handling + * characters that are in the dictionary set, but not handled by any + * LangugageBreakEngine. + * @internal + */ + UnhandledEngine *fUnhandledBreakEngine; + + /** + * + * The type of the break iterator, or -1 if it has not been set. + * @internal + */ + int32_t fBreakType; + protected: //======================================================================= // constructors @@ -117,7 +182,7 @@ protected: */ RuleBasedBreakIterator(RBBIDataHeader* data, UErrorCode &status); - /** @internal */ + friend class RBBIRuleBuilder; /** @internal */ friend class BreakIterator; @@ -232,14 +297,31 @@ public: //======================================================================= /** - * Return a CharacterIterator over the text being analyzed. This version - * of this method returns the actual CharacterIterator we're using internally. - * Changing the state of this iterator can have undefined consequences. If - * you need to change it, clone it first. + * <p> + * Return a CharacterIterator over the text being analyzed. + * The returned character iterator is owned by the break iterator, and must + * not be deleted by the caller. Repeated calls to this function may + * return the same CharacterIterator. + * </p> + * <p> + * The returned character iterator must not be used concurrently with + * the break iterator. If concurrent operation is needed, clone the + * returned character iterator first and operate on the clone. + * </p> + * <p> + * When the break iterator is operating on text supplied via a UText, + * this function will fail. Lacking any way to signal failures, it + * returns an CharacterIterator containing no text. + * The function getUText() provides similar functionality, + * is reliable, and is more efficient. + * </p> + * + * TODO: deprecate this function? + * * @return An iterator over the text being analyzed. - * @stable ICU 2.0 + * @stable ICU 2.0 */ - virtual const CharacterIterator& getText(void) const; + virtual CharacterIterator& getText(void) const; /** @@ -292,7 +374,6 @@ public: /** * Sets the current iteration position to the beginning of the text. - * (i.e., the CharacterIterator's starting offset). * @return The offset of the beginning of the text. * @stable ICU 2.0 */ @@ -300,7 +381,6 @@ public: /** * Sets the current iteration position to the end of the text. - * (i.e., the CharacterIterator's ending offset). * @return The text's past-the-end offset. * @stable ICU 2.0 */ @@ -423,7 +503,7 @@ public: * is the total number of status values that were available, * not the reduced number that were actually returned. * @see getRuleStatus - * @draft ICU 3.0 + * @stable ICU 3.0 */ virtual int32_t getRuleStatusVec(int32_t *fillInVec, int32_t capacity, UErrorCode &status); @@ -507,33 +587,13 @@ protected: // implementation //======================================================================= /** - * This method is the actual implementation of the next() method. All iteration - * vectors through here. This method initializes the state machine to state 1 - * and advances through the text character by character until we reach the end - * of the text or the state machine transitions to state 0. We update our return - * value every time the state machine passes through a possible end state. - * @internal - */ - virtual int32_t handleNext(void); - - /** - * This method backs the iterator back up to a "safe position" in the text. - * This is a position that we know, without any context, must be a break position. - * The various calling methods then iterate forward from this safe position to - * the appropriate position to return. (For more information, see the description - * of buildBackwardsStateTable() in RuleBasedBreakIterator.Builder.) - * @internal - */ - virtual int32_t handlePrevious(void); - - /** * Dumps caches and performs other actions associated with a complete change - * in text or iteration position. This function is a no-op in RuleBasedBreakIterator, - * but subclasses can and do override it. + * in text or iteration position. * @internal */ virtual void reset(void); +#if 0 /** * Return true if the category lookup for this char * indicates that it is in the set of dictionary lookup chars. @@ -545,6 +605,19 @@ protected: virtual UBool isDictionaryChar(UChar32); /** + * Get the type of the break iterator. + * @internal + */ + virtual int32_t getBreakType() const; +#endif + + /** + * Set the type of the break iterator. + * @internal + */ + virtual void setBreakType(int32_t type); + + /** * Common initialization function, used by constructors and bufferClone. * (Also used by DictionaryBasedBreakIterator::createBufferClone().) * @internal @@ -576,6 +649,30 @@ private: int32_t handleNext(const RBBIStateTable *statetable); /** + * This is the function that actually implements dictionary-based + * breaking. Covering at least the range from startPos to endPos, + * it checks for dictionary characters, and if it finds them determines + * the appropriate object to deal with them. It may cache found breaks in + * fCachedBreakPositions as it goes. It may well also look at text outside + * the range startPos to endPos. + * If going forward, endPos is the normal Unicode break result, and + * if goind in reverse, startPos is the normal Unicode break result + * @param startPos The start position of a range of text + * @param endPos The end position of a range of text + * @param reverse The call is for the reverse direction + * @internal + */ + int32_t checkDictionary(int32_t startPos, int32_t endPos, UBool reverse); + + /** + * This function returns the appropriate LanguageBreakEngine for a + * given character c. + * @param c A character in the dictionary set + * @internal + */ + const LanguageBreakEngine *getLanguageBreakEngine(UChar32 c); + + /** * @internal */ void makeRuleStatusValid(); diff --git a/Build/source/libs/icu-xetex/common/unicode/strenum.h b/Build/source/libs/icu-xetex/common/unicode/strenum.h index c75e4b223b6..5e956430dcc 100644 --- a/Build/source/libs/icu-xetex/common/unicode/strenum.h +++ b/Build/source/libs/icu-xetex/common/unicode/strenum.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 2002-2005, International Business Machines +* Copyright (C) 2002-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -184,6 +184,23 @@ public: */ virtual void reset(UErrorCode& status) = 0; + /** + * Compares this enumeration to other to check if both are equal + * + * @param that The other string enumeration to compare this object to + * @return TRUE if the enumerations are equal. FALSE if not. + * @draft ICU 3.6 + */ + virtual UBool operator==(const StringEnumeration& that)const; + /** + * Compares this enumeration to other to check if both are not equal + * + * @param that The other string enumeration to compare this object to + * @return TRUE if the enumerations are equal. FALSE if not. + * @draft ICU 3.6 + */ + virtual UBool operator!=(const StringEnumeration& that)const; + protected: /** * UnicodeString field for use with default implementations and subclasses. diff --git a/Build/source/libs/icu-xetex/common/unicode/ubidi.h b/Build/source/libs/icu-xetex/common/unicode/ubidi.h index 9cfe827b7dd..71d181cadee 100644 --- a/Build/source/libs/icu-xetex/common/unicode/ubidi.h +++ b/Build/source/libs/icu-xetex/common/unicode/ubidi.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 1999-2005, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -20,20 +20,6 @@ #include "unicode/utypes.h" #include "unicode/uchar.h" -/* - * javadoc-style comments are intended to be transformed into HTML - * using DOC++ - see - * http://www.zib.de/Visual/software/doc++/index.html . - * - * The HTML documentation is created with - * doc++ -H ubidi.h - * - * The following #define trick allows us to do it all in one file - * and still be able to compile it. - */ -/*#define DOCXX_TAG*/ -/*#define BIDI_SAMPLE_CODE*/ - /** *\file * \brief C API: BIDI algorithm @@ -369,6 +355,21 @@ typedef uint8_t UBiDiLevel; #define UBIDI_LEVEL_OVERRIDE 0x80 /** + * Special value which can be returned by the mapping functions when a logical + * index has no corresponding visual index or vice-versa. This may happen + * for the logical-to-visual mapping of a BiDi control when option + * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is specified. This can also happen + * for the visual-to-logical mapping of a BiDi mark (LRM or RLM) inserted + * by option <code>#UBIDI_OPTION_INSERT_MARKS</code>. + * @see ubidi_getVisualIndex + * @see ubidi_getVisualMap + * @see ubidi_getLogicalIndex + * @see ubidi_getLogicalMap + * @draft ICU 3.6 + */ +#define UBIDI_MAP_NOWHERE (-1) + +/** * <code>UBiDiDirection</code> values indicate the text direction. * @stable ICU 2.0 */ @@ -442,9 +443,9 @@ ubidi_open(void); * that internal memory will be preallocated for. An attempt to access * visual runs on an object that was not preallocated for as many runs * as the text was actually resolved to will fail, - * unless this value is 0, which leaves the allocation up to the implementation.<p> + * unless this value is 0, which leaves the allocation up to the implementation.<br><br> * The number of runs depends on the actual text and maybe anywhere between - * 1 and <code>maxLength</code>. It is typically small.<p> + * 1 and <code>maxLength</code>. It is typically small. * * @param pErrorCode must be a valid pointer to an error code value. * @@ -461,8 +462,8 @@ ubidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode *pErrorCode); * <strong>Important: </strong> * A parent <code>UBiDi</code> object must not be destroyed or reused if * it still has children. - * If a <code>UBiDi</code> object is the <i>child</i> - * of another one (its <i>parent</i>), after calling + * If a <code>UBiDi</code> object has become the <i>child</i> + * of another one (its <i>parent</i>) by calling * <code>ubidi_setLine()</code>, then the child object must * be destroyed (closed) or reused (by calling * <code>ubidi_setPara()</code> or <code>ubidi_setLine()</code>) @@ -505,12 +506,24 @@ ubidi_close(UBiDi *pBiDi); * <code>ubidi_getVisualRun()</code> gets the reordered runs, these are actually * the runs of the logically ordered output.</p> * + * <p>Calling this function with argument <code>isInverse</code> set to + * <code>TRUE</code> is equivalent to calling + * <code>ubidi_setReorderingMode</code> with argument + * <code>reorderingMode</code> + * set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br> + * Calling this function with argument <code>isInverse</code> set to + * <code>FALSE</code> is equivalent to calling + * <code>ubidi_setReorderingMode</code> with argument + * <code>reorderingMode</code> + * set to <code>#UBIDI_REORDER_DEFAULT</code>. + * * @param pBiDi is a <code>UBiDi</code> object. * - * @param isInverse specifies "forward" or "inverse" BiDi operation + * @param isInverse specifies "forward" or "inverse" BiDi operation. * * @see ubidi_setPara * @see ubidi_writeReordered + * @see ubidi_setReorderingMode * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 @@ -518,11 +531,17 @@ ubidi_setInverse(UBiDi *pBiDi, UBool isInverse); /** * Is this BiDi object set to perform the inverse BiDi algorithm? + * <p>Note: calling this function after setting the reordering mode with + * <code>ubidi_setReorderingMode</code> will return <code>TRUE</code> if the + * reordering mode was set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>, + * <code>FALSE</code> for all other values.</p> * * @param pBiDi is a <code>UBiDi</code> object. * @return TRUE if the BiDi object is set to perform the inverse BiDi algorithm + * by handling numbers as L. * * @see ubidi_setInverse + * @see ubidi_setReorderingMode * @stable ICU 2.0 */ @@ -567,6 +586,373 @@ U_STABLE UBool U_EXPORT2 ubidi_isOrderParagraphsLTR(UBiDi *pBiDi); /** + * <code>UBiDiReorderingMode</code> values indicate which variant of the BiDi + * algorithm to use. + * + * @see ubidi_setReorderingMode + * @draft ICU 3.6 + */ +typedef enum UBiDiReorderingMode { + /** Regular Logical to Visual BiDi algorithm according to Unicode. + * This is a 0 value. @draft ICU 3.6 */ + UBIDI_REORDER_DEFAULT = 0, + /** Logical to Visual algorithm which handles numbers in a way which + * mimicks the behavior of Windows XP. + * @draft ICU 3.6 */ + UBIDI_REORDER_NUMBERS_SPECIAL, + /** Logical to Visual algorithm grouping numbers with adjacent R characters + * (reversible algorithm). + * @draft ICU 3.6 */ + UBIDI_REORDER_GROUP_NUMBERS_WITH_R, + /** Reorder runs only to transform a Logical LTR string to the Logical RTL + * string with the same display, or vice-versa.<br> + * If this mode is set together with option + * <code>#UBIDI_OPTION_INSERT_MARKS</code>, some BiDi controls in the source + * text may be removed and other controls may be added to produce the + * minimum combination which has the required display. + * @draft ICU 3.6 */ + UBIDI_REORDER_RUNS_ONLY, + /** Visual to Logical algorithm which handles numbers like L + * (same algorithm as selected by <code>ubidi_setInverse(TRUE)</code>. + * @see ubidi_setInverse + * @draft ICU 3.6 */ + UBIDI_REORDER_INVERSE_NUMBERS_AS_L, + /** Visual to Logical algorithm equivalent to the regular Logical to Visual + * algorithm. @draft ICU 3.6 */ + UBIDI_REORDER_INVERSE_LIKE_DIRECT, + /** Inverse BiDi (Visual to Logical) algorithm for the + * <code>UBIDI_REORDER_NUMBERS_SPECIAL</code> BiDi algorithm. + * @draft ICU 3.6 */ + UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL, + /** Number of values for reordering mode. + * @draft ICU 3.6 */ + UBIDI_REORDER_COUNT +} UBiDiReorderingMode; + +/** + * Modify the operation of the BiDi algorithm such that it implements some + * variant to the basic BiDi algorithm or approximates an "inverse BiDi" + * algorithm, depending on different values of the "reordering mode". + * This function must be called before <code>ubidi_setPara()</code>, and stays + * in effect until called again with a different argument. + * + * <p>The normal operation of the BiDi algorithm as described + * in the Unicode Standard Annex #9 is to take text stored in logical + * (keyboard, typing) order and to determine how to reorder it for visual + * rendering.</p> + * + * <p>With the reordering mode set to a value other than + * <code>#UBIDI_REORDER_DEFAULT</code>, this function changes the behavior of + * some of the subsequent functions in a way such that they implement an + * inverse BiDi algorithm or some other algorithm variants.</p> + * + * <p>Some legacy systems store text in visual order, and for operations + * with standard, Unicode-based algorithms, the text needs to be transformed + * into logical order. This is effectively the inverse algorithm of the + * described BiDi algorithm. Note that there is no standard algorithm for + * this "inverse BiDi", so a number of variants are implemented here.</p> + * + * <p>In other cases, it may be desirable to emulate some variant of the + * Logical to Visual algorithm (e.g. one used in MS Windows), or perform a + * Logical to Logical transformation.</p> + * + * <ul> + * <li>When the reordering mode is set to <code>#UBIDI_REORDER_DEFAULT</code>, + * the standard BiDi Logical to Visual algorithm is applied.</li> + * + * <li>When the reordering mode is set to + * <code>#UBIDI_REORDER_NUMBERS_SPECIAL</code>, + * the algorithm used to perform BiDi transformations when calling + * <code>ubidi_setPara</code> should approximate the algorithm used in + * Microsoft Windows XP rather than strictly conform to the Unicode BiDi + * algorithm. + * <br> + * The differences between the basic algorithm and the algorithm addressed + * by this option are as follows: + * <ul> + * <li>Within text at an even embedding level, the sequence "123AB" + * (where AB represent R or AL letters) is transformed to "123BA" by the + * Unicode algorithm and to "BA123" by the Windows algorithm.</li> + * <li>Arabic-Indic numbers (AN) are handled by the Windows algorithm just + * like regular numbers (EN).</li> + * </ul></li> + * + * <li>When the reordering mode is set to + * <code>#UBIDI_REORDER_GROUP_NUMBERS_WITH_R</code>, + * numbers located between LTR text and RTL text are associated with the RTL + * text. For instance, an LTR paragraph with content "abc 123 DEF" (where + * upper case letters represent RTL characters) will be transformed to + * "abc FED 123" (and not "abc 123 FED"), "DEF 123 abc" will be transformed + * to "123 FED abc" and "123 FED abc" will be transformed to "DEF 123 abc". + * This makes the algorithm reversible and makes it useful when round trip + * (from visual to logical and back to visual) must be achieved without + * adding LRM characters. However, this is a variation from the standard + * Unicode Bidi algorithm.<br> + * The source text should not contain BiDi control characters other than LRM + * or RLM.</li> + * + * <li>When the reordering mode is set to + * <code>#UBIDI_REORDER_RUNS_ONLY</code>, + * a "Logical to Logical" transformation must be performed: + * <ul> + * <li>If the default text level of the source text (argument <code>paraLevel</code> + * in <code>ubidi_setPara</code>) is even, the source text will be handled as + * LTR logical text and will be transformed to the RTL logical text which has + * the same LTR visual display.</li> + * <li>If the default level of the source text is odd, the source text + * will be handled as RTL logical text and will be transformed to the + * LTR logical text which has the same LTR visual display.</li> + * </ul> + * This mode may be needed when logical text which is basically Arabic or + * Hebrew, with possible included numbers or phrases in English, has to be + * displayed as if it had an even embedding level (this can happen if the + * displaying application treats all text as if it was basically LTR. + * <br> + * This mode may also be needed in the reverse case, when logical text which is + * basically English, with possible included phrases in Arabic or Hebrew, has to + * be displayed as if it had an odd embedding level. + * <br> + * Both cases could be handled by adding LRE or RLE at the head of the text, + * if the display subsystem supports these formatting controls. If it does not, + * the problem may be handled by transforming the source text in this mode + * before displaying it, so that it will be displayed properly.<br> + * The source text should not contain BiDi control characters other than LRM + * or RLM.</li> + * + * <li>When the reordering mode is set to + * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>, an "inverse BiDi" algorithm + * is applied. + * Runs of text with numeric characters will be treated like LTR letters and + * may need to be surrounded with LRM characters when they are written in + * reordered sequence (the option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> can + * be used with function <code>ubidi_writeReordered</code> to this end. This + * mode is equivalent to calling <code>ubidi_setInverse()</code> with + * argument <code>isInverse</code> set to <code>TRUE</code>.</li> + * + * <li>When the reordering mode is set to + * <code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>, the "direct" Logical to Visual + * BiDi algorithm is used as an approximation of an "inverse BiDi" algorithm. + * This mode is similar to mode <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> + * but is closer to the regular BiDi algorithm. + * <br> + * For example, an LTR paragraph with the content "FED 123 456 CBA" (where + * upper case represents RTL characters) will be transformed to + * "ABC 456 123 DEF", as opposed to "DEF 123 456 ABC" + * with mode <code>UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br> + * When used in conjunction with option + * <code>#UBIDI_OPTION_INSERT_MARKS</code>, this mode generally + * adds BiDi marks to the output significantly more sparingly than mode + * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> with option + * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to + * <code>ubidi_writeReordered</code>.</li> + * + * <li>When the reordering mode is set to + * <code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the Logical to Visual + * BiDi algorithm used in Windows XP is used as an approximation of an + * "inverse BiDi" algorithm. + * <br> + * For example, an LTR paragraph with the content "abc FED123" (where + * upper case represents RTL characters) will be transformed to + * "abc 123DEF.</li> + * </ul> + * + * <p>In all the reordering modes specifying an "inverse BiDi" algorithm + * (i.e. those with a name starting with <code>UBIDI_REORDER_INVERSE</code>), + * output runs should be retrieved using + * <code>ubidi_getVisualRun()</code>, and the output text with + * <code>ubidi_writeReordered()</code>. The caller should keep in mind that in + * "inverse BiDi" modes the input is actually visually ordered text and + * reordered output returned by <code>ubidi_getVisualRun()</code> or + * <code>ubidi_writeReordered()</code> are actually runs or character string + * of logically ordered output.<br> + * For all the "inverse BiDi" modes, the source text should not contain + * BiDi control characters other than LRM or RLM.</p> + * + * <p>Note that option <code>#UBIDI_OUTPUT_REVERSE</code> of + * <code>ubidi_writeReordered</code> has no useful meaning and should not be + * used in conjunction with any value of the reordering mode specifying + * "inverse BiDi" or with value <code>UBIDI_REORDER_RUNS_ONLY</code>. + * + * @param pBiDi is a <code>UBiDi</code> object. + * @param reorderingMode specifies the required variant of the BiDi algorithm. + * + * @see UBiDiReorderingMode + * @see ubidi_setInverse + * @see ubidi_setPara + * @see ubidi_writeReordered + * @draft ICU 3.6 + */ +U_DRAFT void U_EXPORT2 +ubidi_setReorderingMode(UBiDi *pBiDi, UBiDiReorderingMode reorderingMode); + +/** + * What is the requested reordering mode for a given BiDi object? + * + * @param pBiDi is a <code>UBiDi</code> object. + * @return the current reordering mode of the BiDi object + * @see ubidi_setReorderingMode + * @draft ICU 3.6 + */ +U_DRAFT UBiDiReorderingMode U_EXPORT2 +ubidi_getReorderingMode(UBiDi *pBiDi); + +/** + * <code>UBiDiReorderingOption</code> values indicate which options are + * specified to affect the BiDi algorithm. + * + * @see ubidi_setReorderingOptions + * @draft ICU 3.6 + */ +typedef enum UBiDiReorderingOption { + /** + * option value for <code>ubidi_setReorderingOptions</code>: + * disable all the options which can be set with this function + * @see ubidi_setReorderingOptions + * @draft ICU 3.6 + */ + UBIDI_OPTION_DEFAULT = 0, + + /** + * option bit for <code>ubidi_setReorderingOptions</code>: + * insert BiDi marks (LRM or RLM) when needed to ensure correct result of + * a reordering to a Logical order + * + * <p>This option must be set or reset before calling + * <code>ubidi_setPara</code>.</p> + * + * <p>This option is significant only with reordering modes which generate + * a result with Logical order, specifically:</p> + * <ul> + * <li><code>#UBIDI_REORDER_RUNS_ONLY</code></li> + * <li><code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code></li> + * <li><code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code></li> + * <li><code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code></li> + * </ul> + * + * <p>If this option is set in conjunction with reordering mode + * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> or with calling + * <code>ubidi_setInverse(TRUE)</code>, it implies + * option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> + * in calls to function <code>ubidi_writeReordered()</code>.</p> + * + * <p>For other reordering modes, a minimum number of LRM or RLM characters + * will be added to the source text after reordering it so as to ensure + * round trip, i.e. when applying the inverse reordering mode on the + * resulting logical text with removal of BiDi marks + * (option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> set before calling + * <code>ubidi_setPara()</code> or option <code>#UBIDI_REMOVE_BIDI_CONTROLS</code> + * in <code>ubidi_writeReordered</code>), the result will be identical to the + * source text in the first transformation. + * + * <p>This option will be ignored if specified together with option + * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>. It inhibits option + * <code>UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to function + * <code>ubidi_writeReordered()</code> and it implies option + * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to function + * <code>ubidi_writeReordered()</code> if the reordering mode is + * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.</p> + * + * @see ubidi_setReorderingMode + * @see ubidi_setReorderingOptions + * @draft ICU 3.6 + */ + UBIDI_OPTION_INSERT_MARKS = 1, + + /** + * option bit for <code>ubidi_setReorderingOptions</code>: + * remove BiDi control characters + * + * <p>This option must be set or reset before calling + * <code>ubidi_setPara</code>.</p> + * + * <p>This option nullifies option <code>#UBIDI_OPTION_INSERT_MARKS</code>. + * It inhibits option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls + * to function <code>ubidi_writeReordered()</code> and it implies option + * <code>#UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to that function.</p> + * + * @see ubidi_setReorderingMode + * @see ubidi_setReorderingOptions + * @draft ICU 3.6 + */ + UBIDI_OPTION_REMOVE_CONTROLS = 2, + + /** + * option bit for <code>ubidi_setReorderingOptions</code>: + * process the output as part of a stream to be continued + * + * <p>This option must be set or reset before calling + * <code>ubidi_setPara</code>.</p> + * + * <p>This option specifies that the caller is interested in processing large + * text object in parts. + * The results of the successive calls are expected to be concatenated by the + * caller. Only the call for the last part will have this option bit off.</p> + * + * <p>When this option bit is on, <code>ubidi_setPara()</code> may process + * less than the full source text in order to truncate the text at a meaningful + * boundary. The caller should call <code>ubidi_getProcessedLength()</code> + * immediately after calling <code>ubidi_setPara()</code> in order to + * determine how much of the source text has been processed. + * Source text beyond that length should be resubmitted in following calls to + * <code>ubidi_setPara</code>. The processed length may be less than + * the length of the source text if a character preceding the last character of + * the source text constitutes a reasonable boundary (like a block separator) + * for text to be continued.<br> + * If the last character of the source text constitutes a reasonable + * boundary, the whole text will be processed at once.<br> + * If nowhere in the source text there exists + * such a reasonable boundary, the processed length will be zero.<br> + * The caller should check for such an occurrence and do one of the following: + * <ul><li>submit a larger amount of text with a better chance to include + * a reasonable boundary.</li> + * <li>resubmit the same text after turning off option + * <code>UBIDI_OPTION_STREAMING</code>.</li></ul> + * In all cases, this option should be turned off before processing the last + * part of the text.</p> + * + * <p>When the <code>UBIDI_OPTION_STREAMING</code> option is used, + * it is recommended to call <code>ubidi_orderParagraphsLTR()</code> with + * argument <code>orderParagraphsLTR</code> set to <code>TRUE</code> before + * calling <code>ubidi_setPara</code> so that later paragraphs may be + * concatenated to previous paragraphs on the right.</p> + * + * @see ubidi_setReorderingMode + * @see ubidi_setReorderingOptions + * @see ubidi_getProcessedLength + * @see ubidi_orderParagraphsLTR + * @draft ICU 3.6 + */ + UBIDI_OPTION_STREAMING = 4 +} UBiDiReorderingOption; + +/** + * Specify which of the reordering options + * should be applied during BiDi transformations. + * + * @param pBiDi is a <code>UBiDi</code> object. + * @param reorderingOptions is a combination of zero or more of the following + * options: + * <code>#UBIDI_OPTION_DEFAULT</code>, <code>#UBIDI_OPTION_INSERT_MARKS</code>, + * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>, <code>#UBIDI_OPTION_STREAMING</code>. + * + * @see ubidi_getReorderingOptions + * @draft ICU 3.6 + */ +U_DRAFT void U_EXPORT2 +ubidi_setReorderingOptions(UBiDi *pBiDi, uint32_t reorderingOptions); + +/** + * What are the reordering options applied to a given BiDi object? + * + * @param pBiDi is a <code>UBiDi</code> object. + * @return the current reordering options of the BiDi object + * @see ubidi_setReorderingOptions + * @draft ICU 3.6 + */ +U_DRAFT uint32_t U_EXPORT2 +ubidi_getReorderingOptions(UBiDi *pBiDi); + +/** * Perform the Unicode BiDi algorithm. It is defined in the * <a href="http://www.unicode.org/unicode/reports/tr9/">Unicode Standard Anned #9</a>, * version 13, @@ -597,11 +983,10 @@ ubidi_isOrderParagraphsLTR(UBiDi *pBiDi); * which will be set to contain the reordering information, * especially the resolved levels for all the characters in <code>text</code>. * - * @param text is a pointer to the text that the - * BiDi algorithm will be performed on - * <strong>The text must be (at least) <code>length</code> long.</strong> + * @param text is a pointer to the text that the BiDi algorithm will be performed on. * This pointer is stored in the UBiDi object and can be retrieved - * with <code>ubidi_getText()</code>. + * with <code>ubidi_getText()</code>.<br> + * <strong>Note:</strong> the text must be (at least) <code>length</code> long. * * @param length is the length of the text; if <code>length==-1</code> then * the text must be zero-terminated. @@ -610,24 +995,24 @@ ubidi_isOrderParagraphsLTR(UBiDi *pBiDi); * it is typically 0 (LTR) or 1 (RTL). * If the function shall determine the paragraph level from the text, * then <code>paraLevel</code> can be set to - * either <code>UBIDI_DEFAULT_LTR</code> - * or <code>UBIDI_DEFAULT_RTL</code>; if the text contains multiple + * either <code>#UBIDI_DEFAULT_LTR</code> + * or <code>#UBIDI_DEFAULT_RTL</code>; if the text contains multiple * paragraphs, the paragraph level shall be determined separately for * each paragraph; if a paragraph does not include any strongly typed * character, then the desired default is used (0 for LTR or 1 for RTL). - * Any other value between 0 and <code>UBIDI_MAX_EXPLICIT_LEVEL</code> is also valid, - * with odd levels indicating RTL. + * Any other value between 0 and <code>#UBIDI_MAX_EXPLICIT_LEVEL</code> + * is also valid, with odd levels indicating RTL. * * @param embeddingLevels (in) may be used to preset the embedding and override levels, * ignoring characters like LRE and PDF in the text. * A level overrides the directional property of its corresponding * (same index) character if the level has the - * <code>UBIDI_LEVEL_OVERRIDE</code> bit set.<p> + * <code>#UBIDI_LEVEL_OVERRIDE</code> bit set.<br><br> * Except for that bit, it must be * <code>paraLevel<=embeddingLevels[]<=UBIDI_MAX_EXPLICIT_LEVEL</code>, * with one exception: a level of zero may be specified for a paragraph * separator even if <code>paraLevel>0</code> when multiple paragraphs - * are submitted in the same call to <code>ubidi_setPara()</code>.<p> + * are submitted in the same call to <code>ubidi_setPara()</code>.<br><br> * <strong>Caution: </strong>A copy of this pointer, not of the levels, * will be stored in the <code>UBiDi</code> object; * the <code>embeddingLevels</code> array must not be @@ -635,11 +1020,11 @@ ubidi_isOrderParagraphsLTR(UBiDi *pBiDi); * and the <code>embeddingLevels</code> * should not be modified to avoid unexpected results on subsequent BiDi operations. * However, the <code>ubidi_setPara()</code> and - * <code>ubidi_setLine()</code> functions may modify some or all of the levels.<p> + * <code>ubidi_setLine()</code> functions may modify some or all of the levels.<br><br> * After the <code>UBiDi</code> object is reused or destroyed, the caller - * must take care of the deallocation of the <code>embeddingLevels</code> array.<p> - * <strong>The <code>embeddingLevels</code> array must be - * at least <code>length</code> long.</strong> + * must take care of the deallocation of the <code>embeddingLevels</code> array.<br><br> + * <strong>Note:</strong> the <code>embeddingLevels</code> array must be + * at least <code>length</code> long. * * @param pErrorCode must be a valid pointer to an error code value. * @stable ICU 2.0 @@ -692,6 +1077,7 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length, * @param pErrorCode must be a valid pointer to an error code value. * * @see ubidi_setPara + * @see ubidi_getProcessedLength * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 @@ -776,7 +1162,7 @@ ubidi_countParagraphs(UBiDi *pBiDi); * @param pBiDi is the paragraph or line <code>UBiDi</code> object. * * @param charIndex is the index of a character within the text, in the - * range <code>[0..ubidi_getLength(pBiDi)-1]</code>. + * range <code>[0..ubidi_getProcessedLength(pBiDi)-1]</code>. * * @param pParaStart will receive the index of the first character of the * paragraph in the text. @@ -797,6 +1183,8 @@ ubidi_countParagraphs(UBiDi *pBiDi); * @param pErrorCode must be a valid pointer to an error code value. * * @return The index of the paragraph containing the specified position. + * + * @see ubidi_getProcessedLength * @stable ICU 3.4 */ U_STABLE int32_t U_EXPORT2 @@ -846,6 +1234,7 @@ ubidi_getParagraphByIndex(const UBiDi *pBiDi, int32_t paraIndex, * @return The level for the character at charIndex. * * @see UBiDiLevel + * @see ubidi_getProcessedLength * @stable ICU 2.0 */ U_STABLE UBiDiLevel U_EXPORT2 @@ -866,6 +1255,7 @@ ubidi_getLevelAt(const UBiDi *pBiDi, int32_t charIndex); * or <code>NULL</code> if an error occurs. * * @see UBiDiLevel + * @see ubidi_getProcessedLength * @stable ICU 2.0 */ U_STABLE const UBiDiLevel * U_EXPORT2 @@ -891,6 +1281,8 @@ ubidi_getLevels(UBiDi *pBiDi, UErrorCode *pErrorCode); * @param pLevel will receive the level of the run. * This pointer can be <code>NULL</code> if this * value is not necessary. + * + * @see ubidi_getProcessedLength * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 @@ -976,6 +1368,10 @@ ubidi_getVisualRun(UBiDi *pBiDi, int32_t runIndex, * <code>UBiDi</code> object, then calling * <code>ubidi_getLogicalMap()</code> is more efficient.<p> * + * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no + * visual position because the corresponding text character is a BiDi control + * removed from output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>. + * <p> * Note that in right-to-left runs, this mapping places * modifier letters before base characters and second surrogates * before first ones. @@ -990,6 +1386,7 @@ ubidi_getVisualRun(UBiDi *pBiDi, int32_t runIndex, * * @see ubidi_getLogicalMap * @see ubidi_getLogicalIndex + * @see ubidi_getProcessedLength * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 @@ -1001,6 +1398,10 @@ ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode) * <code>UBiDi</code> object, then calling * <code>ubidi_getVisualMap()</code> is more efficient.<p> * + * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no + * logical position because the corresponding text character is a BiDi mark + * inserted in the output by option <code>#UBIDI_OPTION_INSERT_MARKS</code>. + * <p> * This is the inverse function to <code>ubidi_getVisualIndex()</code>. * * @param pBiDi is the paragraph or line <code>UBiDi</code> object. @@ -1013,6 +1414,7 @@ ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode) * * @see ubidi_getVisualMap * @see ubidi_getVisualIndex + * @see ubidi_getResultLength * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 @@ -1021,18 +1423,27 @@ ubidi_getLogicalIndex(UBiDi *pBiDi, int32_t visualIndex, UErrorCode *pErrorCode) /** * Get a logical-to-visual index map (array) for the characters in the UBiDi * (paragraph or line) object. + * <p> + * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the + * corresponding text characters are BiDi controls removed from the visual + * output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>. * * @param pBiDi is the paragraph or line <code>UBiDi</code> object. * - * @param indexMap is a pointer to an array of <code>ubidi_getLength()</code> + * @param indexMap is a pointer to an array of <code>ubidi_getProcessedLength()</code> * indexes which will reflect the reordering of the characters. - * The array does not need to be initialized.<p> - * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>.<p> + * If option <code>#UBIDI_OPTION_INSERT_MARKS</code> is set, the number + * of elements allocated in <code>indexMap</code> must be no less than + * <code>ubidi_getResultLength()</code>. + * The array does not need to be initialized.<br><br> + * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>. * * @param pErrorCode must be a valid pointer to an error code value. * * @see ubidi_getVisualMap * @see ubidi_getVisualIndex + * @see ubidi_getProcessedLength + * @see ubidi_getResultLength * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 @@ -1041,18 +1452,27 @@ ubidi_getLogicalMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode); /** * Get a visual-to-logical index map (array) for the characters in the UBiDi * (paragraph or line) object. + * <p> + * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the + * corresponding text characters are BiDi marks inserted in the visual output + * by the option <code>#UBIDI_OPTION_INSERT_MARKS</code>. * * @param pBiDi is the paragraph or line <code>UBiDi</code> object. * - * @param indexMap is a pointer to an array of <code>ubidi_getLength()</code> + * @param indexMap is a pointer to an array of <code>ubidi_getResultLength()</code> * indexes which will reflect the reordering of the characters. - * The array does not need to be initialized.<p> - * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>.<p> + * If option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is set, the number + * of elements allocated in <code>indexMap</code> must be no less than + * <code>ubidi_getProcessedLength()</code>. + * The array does not need to be initialized.<br><br> + * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>. * * @param pErrorCode must be a valid pointer to an error code value. * * @see ubidi_getLogicalMap * @see ubidi_getLogicalIndex + * @see ubidi_getProcessedLength + * @see ubidi_getResultLength * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 @@ -1062,7 +1482,7 @@ ubidi_getVisualMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode); * This is a convenience function that does not use a UBiDi object. * It is intended to be used for when an application has determined the levels * of objects (character sequences) and just needs to have them reordered (L2). - * This is equivalent to using <code>ubidi_getLogicalMap</code> on a + * This is equivalent to using <code>ubidi_getLogicalMap()</code> on a * <code>UBiDi</code> object. * * @param levels is an array with <code>length</code> levels that have been determined by @@ -1085,7 +1505,7 @@ ubidi_reorderLogical(const UBiDiLevel *levels, int32_t length, int32_t *indexMap * This is a convenience function that does not use a UBiDi object. * It is intended to be used for when an application has determined the levels * of objects (character sequences) and just needs to have them reordered (L2). - * This is equivalent to using <code>ubidi_getVisualMap</code> on a + * This is equivalent to using <code>ubidi_getVisualMap()</code> on a * <code>UBiDi</code> object. * * @param levels is an array with <code>length</code> levels that have been determined by @@ -1106,16 +1526,29 @@ ubidi_reorderVisual(const UBiDiLevel *levels, int32_t length, int32_t *indexMap) /** * Invert an index map. - * The one-to-one index mapping of the first map is inverted and written to + * The index mapping of the first map is inverted and written to * the second one. * * @param srcMap is an array with <code>length</code> indexes - * which define the original mapping. - * - * @param destMap is an array with <code>length</code> indexes - * which will be filled with the inverse mapping. + * which defines the original mapping from a source array containing + * <code>length</code> elements to a destination array. + * All indexes must be >=0 or equal to <code>UBIDI_MAP_NOWHERE</code>. + * This special value means that the corresponding elements in the source + * array have no matching element in the destination array. + * Some indexes may have a value >= <code>length</code>, if the + * destination array has more elements than the source array. + * There must be no duplicate indexes (two or more indexes with the + * same value except <code>UBIDI_MAP_NOWHERE</code>). + * + * @param destMap is an array with a number of indexes equal to 1 + the highest + * value in <code>srcMap</code>. + * <code>destMap</code> will be filled with the inverse mapping. + * Elements of <code>destMap</code> which have no matching elements in + * <code>srcMap</code> will receive an index equal to + * <code>UBIDI_MAP_NOWHERE</code> * * @param length is the length of each array. + * @See UBIDI_MAP_NOWHERE * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 @@ -1147,6 +1580,9 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length); * surround the run with LRMs if necessary; * this is part of the approximate "inverse BiDi" algorithm * + * <p>This option does not imply corresponding adjustment of the index + * mappings.</p> + * * @see ubidi_setInverse * @see ubidi_writeReordered * @stable ICU 2.0 @@ -1156,7 +1592,10 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length); /** * option bit for ubidi_writeReordered(): * remove BiDi control characters - * (this does not affect UBIDI_INSERT_LRM_FOR_NUMERIC) + * (this does not affect #UBIDI_INSERT_LRM_FOR_NUMERIC) + * + * <p>This option does not imply corresponding adjustment of the index + * mappings.</p> * * @see ubidi_writeReordered * @stable ICU 2.0 @@ -1180,10 +1619,181 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length); #define UBIDI_OUTPUT_REVERSE 16 /** + * Get the length of the source text processed by the last call to + * <code>ubidi_setPara()</code>. This length may be different from the length + * of the source text if option <code>#UBIDI_OPTION_STREAMING</code> + * has been set. + * <br> + * Note that whenever the length of the text affects the execution or the + * result of a function, it is the processed length which must be considered, + * except for <code>ubidi_setPara</code> (which receives unprocessed source + * text) and <code>ubidi_getLength</code> (which returns the original length + * of the source text).<br> + * In particular, the processed length is the one to consider in the following + * cases: + * <ul> + * <li>maximum value of the <code>limit</code> argument of + * <code>ubidi_setLine</code></li> + * <li>maximum value of the <code>charIndex</code> argument of + * <code>ubidi_getParagraph</code></li> + * <li>maximum value of the <code>charIndex</code> argument of + * <code>ubidi_getLevelAt</code></li> + * <li>number of elements in the array returned by <code>ubidi_getLevels</code></li> + * <li>maximum value of the <code>logicalStart</code> argument of + * <code>ubidi_getLogicalRun</code></li> + * <li>maximum value of the <code>logicalIndex</code> argument of + * <code>ubidi_getVisualIndex</code></li> + * <li>number of elements filled in the <code>*indexMap</code> argument of + * <code>ubidi_getLogicalMap</code></li> + * <li>length of text processed by <code>ubidi_writeReordered</code></li> + * </ul> + * + * @param pBiDi is the paragraph <code>UBiDi</code> object. + * + * @return The length of the part of the source text processed by + * the last call to <code>ubidi_setPara</code>. + * @see ubidi_setPara + * @see UBIDI_OPTION_STREAMING + * @draft ICU 3.6 + */ +U_DRAFT int32_t U_EXPORT2 +ubidi_getProcessedLength(const UBiDi *pBiDi); + +/** + * Get the length of the reordered text resulting from the last call to + * <code>ubidi_setPara()</code>. This length may be different from the length + * of the source text if option <code>#UBIDI_OPTION_INSERT_MARKS</code> + * or option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> has been set. + * <br> + * This resulting length is the one to consider in the following cases: + * <ul> + * <li>maximum value of the <code>visualIndex</code> argument of + * <code>ubidi_getLogicalIndex</code></li> + * <li>number of elements of the <code>*indexMap</code> argument of + * <code>ubidi_getVisualMap</code></li> + * </ul> + * Note that this length stays identical to the source text length if + * BiDi marks are inserted or removed using option bits of + * <code>ubidi_writeReordered</code>, or if option + * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> has been set. + * + * @param pBiDi is the paragraph <code>UBiDi</code> object. + * + * @return The length of the reordered text resulting from + * the last call to <code>ubidi_setPara</code>. + * @see ubidi_setPara + * @see UBIDI_OPTION_INSERT_MARKS + * @see UBIDI_OPTION_REMOVE_CONTROLS + * @draft ICU 3.6 + */ +U_DRAFT int32_t U_EXPORT2 +ubidi_getResultLength(const UBiDi *pBiDi); + +U_CDECL_BEGIN +/** + * value returned by <code>UBiDiClassCallback</code> callbacks when + * there is no need to override the standard BiDi class for a given code point. + * @see UBiDiClassCallback + * @draft ICU 3.6 + */ +#define U_BIDI_CLASS_DEFAULT U_CHAR_DIRECTION_COUNT + +/** + * Callback type declaration for overriding default BiDi class values with + * custom ones. + * <p>Usually, the function pointer will be propagated to a <code>UBiDi</code> + * object by calling the <code>ubidi_setClassCallback()</code> function; + * then the callback will be invoked by the UBA implementation any time the + * class of a character is to be determined.</p> + * + * @param context is a pointer to the callback private data. + * + * @param c is the code point to get a BiDi class for. + * + * @return The directional property / BiDi class for the given code point + * <code>c</code> if the default class has been overridden, or + * <code>#U_BIDI_CLASS_DEFAULT</code> if the standard BiDi class value + * for <code>c</code> is to be used. + * @see ubidi_setClassCallback + * @see ubidi_getClassCallback + * @draft ICU 3.6 + */ +typedef UCharDirection U_CALLCONV +UBiDiClassCallback(const void *context, UChar32 c); + +U_CDECL_END + +/** + * Retrieve the BiDi class for a given code point. + * <p>If a <code>#UBiDiClassCallback</code> callback is defined and returns a + * value other than <code>#U_BIDI_CLASS_DEFAULT</code>, that value is used; + * otherwise the default class determination mechanism is invoked.</p> + * + * @param pBiDi is the paragraph <code>UBiDi</code> object. + * + * @param c is the code point whose BiDi class must be retrieved. + * + * @return The BiDi class for character <code>c</code> based + * on the given <code>pBiDi</code> instance. + * @see UBiDiClassCallback + * @draft ICU 3.6 + */ +U_DRAFT UCharDirection U_EXPORT2 +ubidi_getCustomizedClass(UBiDi *pBiDi, UChar32 c); + +/** + * Set the callback function and callback data used by the UBA + * implementation for BiDi class determination. + * <p>This may be useful for assigning BiDi classes to PUA characters, or + * for special application needs. For instance, an application may want to + * handle all spaces like L or R characters (according to the base direction) + * when creating the visual ordering of logical lines which are part of a report + * organized in columns: there should not be interaction between adjacent + * cells.<p> + * + * @param pBiDi is the paragraph <code>UBiDi</code> object. + * + * @param newFn is the new callback function pointer. + * + * @param newContext is the new callback context pointer. This can be NULL. + * + * @param oldFn fillin: Returns the old callback function pointer. This can be + * NULL. + * + * @param oldContext fillin: Returns the old callback's context. This can be + * NULL. + * + * @param pErrorCode must be a valid pointer to an error code value. + * + * @see ubidi_getClassCallback + * @draft ICU 3.6 + */ +U_DRAFT void U_EXPORT2 +ubidi_setClassCallback(UBiDi *pBiDi, UBiDiClassCallback *newFn, + const void *newContext, UBiDiClassCallback **oldFn, + const void **oldContext, UErrorCode *pErrorCode); + +/** + * Get the current callback function used for BiDi class determination. + * + * @param pBiDi is the paragraph <code>UBiDi</code> object. + * + * @param fn fillin: Returns the callback function pointer. + * + * @param context fillin: Returns the callback's private context. + * + * @see ubidi_setClassCallback + * @draft ICU 3.6 + */ +U_DRAFT void U_EXPORT2 +ubidi_getClassCallback(UBiDi *pBiDi, UBiDiClassCallback **fn, const void **context); + +/** * Take a <code>UBiDi</code> object containing the reordering * information for a piece of text (one or more paragraphs) set by - * <code>ubidi_setPara()</code> or for a line of text set by <code>ubidi_setLine()</code> - * and write a reordered string to the destination buffer. + * <code>ubidi_setPara()</code> or for a line of text set by + * <code>ubidi_setLine()</code> and write a reordered string to the + * destination buffer. * * This function preserves the integrity of characters with multiple * code units and (optionally) modifier letters. @@ -1196,20 +1806,14 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length); * characters; see the description of the <code>destSize</code> * and <code>options</code> parameters and of the option bit flags. * - * @see UBIDI_DO_MIRRORING - * @see UBIDI_INSERT_LRM_FOR_NUMERIC - * @see UBIDI_KEEP_BASE_COMBINING - * @see UBIDI_OUTPUT_REVERSE - * @see UBIDI_REMOVE_BIDI_CONTROLS - * * @param pBiDi A pointer to a <code>UBiDi</code> object that * is set by <code>ubidi_setPara()</code> or * <code>ubidi_setLine()</code> and contains the reordering * information for the text that it was defined for, - * as well as a pointer to that text. - * <p>The text was aliased (only the pointer was stored + * as well as a pointer to that text.<br><br> + * The text was aliased (only the pointer was stored * without copying the contents) and must not have been modified - * since the <code>ubidi_setPara()</code> call.</p> + * since the <code>ubidi_setPara()</code> call. * * @param dest A pointer to where the reordered text is to be copied. * The source text and <code>dest[destSize]</code> @@ -1245,6 +1849,8 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length); * @param pErrorCode must be a valid pointer to an error code value. * * @return The length of the output string. + * + * @see ubidi_getProcessedLength * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 diff --git a/Build/source/libs/icu-xetex/common/unicode/ubrk.h b/Build/source/libs/icu-xetex/common/unicode/ubrk.h index f4e734aa5c4..39f25cf8833 100644 --- a/Build/source/libs/icu-xetex/common/unicode/ubrk.h +++ b/Build/source/libs/icu-xetex/common/unicode/ubrk.h @@ -1,6 +1,8 @@ /* -* Copyright (C) 1996-2005, International Business Machines Corporation and others. All Rights Reserved. -***************************************************************************************** +****************************************************************************** +* Copyright (C) 1996-2006, International Business Machines Corporation and others. +* All Rights Reserved. +****************************************************************************** */ #ifndef UBRK_H @@ -37,22 +39,22 @@ * of boundaries in text. Pointer to a UBreakIterator maintain a * current position and scan over text returning the index of characters * where boundaries occur. - * <P> + * <p> * Line boundary analysis determines where a text string can be broken * when line-wrapping. The mechanism correctly handles punctuation and * hyphenated words. - * <P> + * <p> * Sentence boundary analysis allows selection with correct * interpretation of periods within numbers and abbreviations, and * trailing punctuation marks such as quotation marks and parentheses. - * <P> + * <p> * Word boundary analysis is used by search and replace functions, as * well as within text editing applications that allow the user to * select words with a double click. Word selection provides correct * interpretation of punctuation marks within and following * words. Characters that are not part of a word, such as symbols or * punctuation marks, have word-breaks on both sides. - * <P> + * <p> * Character boundary analysis allows users to interact with * characters as they expect to, for example, when moving the cursor * through a text string. Character boundary analysis provides correct @@ -60,140 +62,37 @@ * character is stored. For example, an accented character might be * stored as a base character and a diacritical mark. What users * consider to be a character can differ between languages. - * <P> + * <p> * Title boundary analysis locates all positions, * typically starts of words, that should be set to Title Case * when title casing the text. - * <P> - * - * This is the interface for all text boundaries. - * <P> - * Examples: - * <P> - * Helper function to output text - * <pre> - * \code - * void printTextRange(UChar* str, int32_t start, int32_t end ) { - * UChar* result; - * UChar* temp; - * const char* res; - * temp=(UChar*)malloc(sizeof(UChar) * ((u_strlen(str)-start)+1)); - * result=(UChar*)malloc(sizeof(UChar) * ((end-start)+1)); - * u_strcpy(temp, &str[start]); - * u_strncpy(result, temp, end-start); - * res=(char*)malloc(sizeof(char) * (u_strlen(result)+1)); - * u_austrcpy(res, result); - * printf("%s\n", res); - * } - * \endcode - * </pre> - * Print each element in order: - * <pre> - * \code - * void printEachForward( UBreakIterator* boundary, UChar* str) { - * int32_t end; - * int32_t start = ubrk_first(boundary); - * for (end = ubrk_next(boundary)); end != UBRK_DONE; start = end, end = ubrk_next(boundary)) { - * printTextRange(str, start, end ); - * } - * } - * \endcode - * </pre> - * Print each element in reverse order: - * <pre> - * \code - * void printEachBackward( UBreakIterator* boundary, UChar* str) { - * int32_t start; - * int32_t end = ubrk_last(boundary); - * for (start = ubrk_previous(boundary); start != UBRK_DONE; end = start, start =ubrk_previous(boundary)) { - * printTextRange( str, start, end ); - * } - * } - * \endcode - * </pre> - * Print first element - * <pre> - * \code - * void printFirst(UBreakIterator* boundary, UChar* str) { - * int32_t end; - * int32_t start = ubrk_first(boundary); - * end = ubrk_next(boundary); - * printTextRange( str, start, end ); - * } - * \endcode - * </pre> - * Print last element - * <pre> - * \code - * void printLast(UBreakIterator* boundary, UChar* str) { - * int32_t start; - * int32_t end = ubrk_last(boundary); - * start = ubrk_previous(boundary); - * printTextRange(str, start, end ); - * } - * \endcode - * </pre> - * Print the element at a specified position - * <pre> - * \code - * void printAt(UBreakIterator* boundary, int32_t pos , UChar* str) { - * int32_t start; - * int32_t end = ubrk_following(boundary, pos); - * start = ubrk_previous(boundary); - * printTextRange(str, start, end ); - * } - * \endcode - * </pre> - * Creating and using text boundaries - * <pre> - * \code - * void BreakIterator_Example( void ) { - * UBreakIterator* boundary; - * UChar *stringToExamine; - * stringToExamine=(UChar*)malloc(sizeof(UChar) * (strlen("Aaa bbb ccc. Ddd eee fff.")+1) ); - * u_uastrcpy(stringToExamine, "Aaa bbb ccc. Ddd eee fff."); - * printf("Examining: "Aaa bbb ccc. Ddd eee fff."); - * - * //print each sentence in forward and reverse order - * boundary = ubrk_open(UBRK_SENTENCE, "en_us", stringToExamine, u_strlen(stringToExamine), &status); - * printf("----- forward: -----------\n"); - * printEachForward(boundary, stringToExamine); - * printf("----- backward: ----------\n"); - * printEachBackward(boundary, stringToExamine); - * ubrk_close(boundary); - * - * //print each word in order - * boundary = ubrk_open(UBRK_WORD, "en_us", stringToExamine, u_strlen(stringToExamine), &status); - * printf("----- forward: -----------\n"); - * printEachForward(boundary, stringToExamine); - * printf("----- backward: ----------\n"); - * printEachBackward(boundary, stringToExamine); - * //print first element - * printf("----- first: -------------\n"); - * printFirst(boundary, stringToExamine); - * //print last element - * printf("----- last: --------------\n"); - * printLast(boundary, stringToExamine); - * //print word at charpos 10 - * printf("----- at pos 10: ---------\n"); - * printAt(boundary, 10 , stringToExamine); - * - * ubrk_close(boundary); - * } - * \endcode - * </pre> + * <p> + * The text boundary positions are found according to the rules + * described in Unicode Standard Annex #29, Text Boundaries, and + * Unicode Standard Annex #14, Line Breaking Properties. These + * are available at http://www.unicode.org/reports/tr14/ and + * http://www.unicode.org/reports/tr29/. + * <p> + * In addition to the plain C API defined in this header file, an + * object oriented C++ API with equivalent functionality is defined in the + * file brkiter.h. + * <p> + * Code snippits illustrating the use of the Break Iterator APIs + * are available in the ICU User Guide, + * http://icu.sourceforge.net/userguide/boundaryAnalysis.html + * and in the sample program icu/source/samples/break/break.cpp" */ /** The possible types of text boundaries. @stable ICU 2.0 */ typedef enum UBreakIteratorType { /** Character breaks @stable ICU 2.0 */ - UBRK_CHARACTER, + UBRK_CHARACTER = 0, /** Word breaks @stable ICU 2.0 */ - UBRK_WORD, + UBRK_WORD = 1, /** Line breaks @stable ICU 2.0 */ - UBRK_LINE, + UBRK_LINE = 2, /** Sentence breaks @stable ICU 2.0 */ - UBRK_SENTENCE, + UBRK_SENTENCE = 3, #ifndef U_HIDE_DEPRECATED_API /** @@ -204,9 +103,9 @@ typedef enum UBreakIteratorType { * * @deprecated ICU 2.8 Use the word break iterator for titlecasing for Unicode 4 and later. */ - UBRK_TITLE + UBRK_TITLE = 4, #endif /* U_HIDE_DEPRECATED_API */ - + UBRK_COUNT = 5 } UBreakIteratorType; /** Value indicating all text boundaries have been returned. @@ -556,9 +455,9 @@ ubrk_getRuleStatus(UBreakIterator *bi); * @param status receives error codes. * @return The number of rule status values from rules that determined * the most recent boundary returned by the break iterator. - * @draft ICU 3.0 + * @stable ICU 3.0 */ -U_DRAFT int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 ubrk_getRuleStatusVec(UBreakIterator *bi, int32_t *fillInVec, int32_t capacity, UErrorCode *status); /** @@ -568,9 +467,9 @@ ubrk_getRuleStatusVec(UBreakIterator *bi, int32_t *fillInVec, int32_t capacity, * @param type locale type (valid or actual) * @param status error code * @return locale string - * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback + * @stable ICU 2.8 */ -U_DRAFT const char* U_EXPORT2 +U_STABLE const char* U_EXPORT2 ubrk_getLocaleByType(const UBreakIterator *bi, ULocDataLocaleType type, UErrorCode* status); diff --git a/Build/source/libs/icu-xetex/common/unicode/uchar.h b/Build/source/libs/icu-xetex/common/unicode/uchar.h index 0adb47f83c5..ce5fc4f4805 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uchar.h +++ b/Build/source/libs/icu-xetex/common/unicode/uchar.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -39,7 +39,7 @@ U_CDECL_BEGIN * @see u_getUnicodeVersion * @stable ICU 2.0 */ -#define U_UNICODE_VERSION "4.1" +#define U_UNICODE_VERSION "5.0" /** * \file @@ -187,137 +187,137 @@ typedef enum UProperty { /** First constant for binary Unicode properties. @stable ICU 2.1 */ UCHAR_BINARY_START=UCHAR_ALPHABETIC, /** Binary property ASCII_Hex_Digit. 0-9 A-F a-f @stable ICU 2.1 */ - UCHAR_ASCII_HEX_DIGIT, + UCHAR_ASCII_HEX_DIGIT=1, /** Binary property Bidi_Control. Format controls which have specific functions in the Bidi Algorithm. @stable ICU 2.1 */ - UCHAR_BIDI_CONTROL, + UCHAR_BIDI_CONTROL=2, /** Binary property Bidi_Mirrored. Characters that may change display in RTL text. Same as u_isMirrored. See Bidi Algorithm, UTR 9. @stable ICU 2.1 */ - UCHAR_BIDI_MIRRORED, + UCHAR_BIDI_MIRRORED=3, /** Binary property Dash. Variations of dashes. @stable ICU 2.1 */ - UCHAR_DASH, + UCHAR_DASH=4, /** Binary property Default_Ignorable_Code_Point (new in Unicode 3.2). Ignorable in most processing. <2060..206F, FFF0..FFFB, E0000..E0FFF>+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space) @stable ICU 2.1 */ - UCHAR_DEFAULT_IGNORABLE_CODE_POINT, + UCHAR_DEFAULT_IGNORABLE_CODE_POINT=5, /** Binary property Deprecated (new in Unicode 3.2). The usage of deprecated characters is strongly discouraged. @stable ICU 2.1 */ - UCHAR_DEPRECATED, + UCHAR_DEPRECATED=6, /** Binary property Diacritic. Characters that linguistically modify the meaning of another character to which they apply. @stable ICU 2.1 */ - UCHAR_DIACRITIC, + UCHAR_DIACRITIC=7, /** Binary property Extender. Extend the value or shape of a preceding alphabetic character, e.g., length and iteration marks. @stable ICU 2.1 */ - UCHAR_EXTENDER, + UCHAR_EXTENDER=8, /** Binary property Full_Composition_Exclusion. CompositionExclusions.txt+Singleton Decompositions+ Non-Starter Decompositions. @stable ICU 2.1 */ - UCHAR_FULL_COMPOSITION_EXCLUSION, + UCHAR_FULL_COMPOSITION_EXCLUSION=9, /** Binary property Grapheme_Base (new in Unicode 3.2). For programmatic determination of grapheme cluster boundaries. [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ @stable ICU 2.1 */ - UCHAR_GRAPHEME_BASE, + UCHAR_GRAPHEME_BASE=10, /** Binary property Grapheme_Extend (new in Unicode 3.2). For programmatic determination of grapheme cluster boundaries. Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ @stable ICU 2.1 */ - UCHAR_GRAPHEME_EXTEND, + UCHAR_GRAPHEME_EXTEND=11, /** Binary property Grapheme_Link (new in Unicode 3.2). For programmatic determination of grapheme cluster boundaries. @stable ICU 2.1 */ - UCHAR_GRAPHEME_LINK, + UCHAR_GRAPHEME_LINK=12, /** Binary property Hex_Digit. Characters commonly used for hexadecimal numbers. @stable ICU 2.1 */ - UCHAR_HEX_DIGIT, + UCHAR_HEX_DIGIT=13, /** Binary property Hyphen. Dashes used to mark connections between pieces of words, plus the Katakana middle dot. @stable ICU 2.1 */ - UCHAR_HYPHEN, + UCHAR_HYPHEN=14, /** Binary property ID_Continue. Characters that can continue an identifier. DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out." ID_Start+Mn+Mc+Nd+Pc @stable ICU 2.1 */ - UCHAR_ID_CONTINUE, + UCHAR_ID_CONTINUE=15, /** Binary property ID_Start. Characters that can start an identifier. Lu+Ll+Lt+Lm+Lo+Nl @stable ICU 2.1 */ - UCHAR_ID_START, + UCHAR_ID_START=16, /** Binary property Ideographic. CJKV ideographs. @stable ICU 2.1 */ - UCHAR_IDEOGRAPHIC, + UCHAR_IDEOGRAPHIC=17, /** Binary property IDS_Binary_Operator (new in Unicode 3.2). For programmatic determination of Ideographic Description Sequences. @stable ICU 2.1 */ - UCHAR_IDS_BINARY_OPERATOR, + UCHAR_IDS_BINARY_OPERATOR=18, /** Binary property IDS_Trinary_Operator (new in Unicode 3.2). For programmatic determination of Ideographic Description Sequences. @stable ICU 2.1 */ - UCHAR_IDS_TRINARY_OPERATOR, + UCHAR_IDS_TRINARY_OPERATOR=19, /** Binary property Join_Control. Format controls for cursive joining and ligation. @stable ICU 2.1 */ - UCHAR_JOIN_CONTROL, + UCHAR_JOIN_CONTROL=20, /** Binary property Logical_Order_Exception (new in Unicode 3.2). Characters that do not use logical order and require special handling in most processing. @stable ICU 2.1 */ - UCHAR_LOGICAL_ORDER_EXCEPTION, + UCHAR_LOGICAL_ORDER_EXCEPTION=21, /** Binary property Lowercase. Same as u_isULowercase, different from u_islower. Ll+Other_Lowercase @stable ICU 2.1 */ - UCHAR_LOWERCASE, + UCHAR_LOWERCASE=22, /** Binary property Math. Sm+Other_Math @stable ICU 2.1 */ - UCHAR_MATH, + UCHAR_MATH=23, /** Binary property Noncharacter_Code_Point. Code points that are explicitly defined as illegal for the encoding of characters. @stable ICU 2.1 */ - UCHAR_NONCHARACTER_CODE_POINT, + UCHAR_NONCHARACTER_CODE_POINT=24, /** Binary property Quotation_Mark. @stable ICU 2.1 */ - UCHAR_QUOTATION_MARK, + UCHAR_QUOTATION_MARK=25, /** Binary property Radical (new in Unicode 3.2). For programmatic determination of Ideographic Description Sequences. @stable ICU 2.1 */ - UCHAR_RADICAL, + UCHAR_RADICAL=26, /** Binary property Soft_Dotted (new in Unicode 3.2). Characters with a "soft dot", like i or j. An accent placed on these characters causes the dot to disappear. @stable ICU 2.1 */ - UCHAR_SOFT_DOTTED, + UCHAR_SOFT_DOTTED=27, /** Binary property Terminal_Punctuation. Punctuation characters that generally mark the end of textual units. @stable ICU 2.1 */ - UCHAR_TERMINAL_PUNCTUATION, + UCHAR_TERMINAL_PUNCTUATION=28, /** Binary property Unified_Ideograph (new in Unicode 3.2). For programmatic determination of Ideographic Description Sequences. @stable ICU 2.1 */ - UCHAR_UNIFIED_IDEOGRAPH, + UCHAR_UNIFIED_IDEOGRAPH=29, /** Binary property Uppercase. Same as u_isUUppercase, different from u_isupper. Lu+Other_Uppercase @stable ICU 2.1 */ - UCHAR_UPPERCASE, + UCHAR_UPPERCASE=30, /** Binary property White_Space. Same as u_isUWhiteSpace, different from u_isspace and u_isWhitespace. Space characters+TAB+CR+LF-ZWSP-ZWNBSP @stable ICU 2.1 */ - UCHAR_WHITE_SPACE, + UCHAR_WHITE_SPACE=31, /** Binary property XID_Continue. ID_Continue modified to allow closure under normalization forms NFKC and NFKD. @stable ICU 2.1 */ - UCHAR_XID_CONTINUE, + UCHAR_XID_CONTINUE=32, /** Binary property XID_Start. ID_Start modified to allow closure under normalization forms NFKC and NFKD. @stable ICU 2.1 */ - UCHAR_XID_START, + UCHAR_XID_START=33, /** Binary property Case_Sensitive. Either the source of a case mapping or _in_ the target of a case mapping. Not the same as the general category Cased_Letter. @stable ICU 2.6 */ - UCHAR_CASE_SENSITIVE, + UCHAR_CASE_SENSITIVE=34, /** Binary property STerm (new in Unicode 4.0.1). Sentence Terminal. Used in UAX #29: Text Boundaries (http://www.unicode.org/reports/tr29/) - @draft ICU 3.0 */ - UCHAR_S_TERM, + @stable ICU 3.0 */ + UCHAR_S_TERM=35, /** Binary property Variation_Selector (new in Unicode 4.0.1). Indicates all those characters that qualify as Variation Selectors. For details on the behavior of these characters, see StandardizedVariants.html and 15.6 Variation Selectors. - @draft ICU 3.0 */ - UCHAR_VARIATION_SELECTOR, + @stable ICU 3.0 */ + UCHAR_VARIATION_SELECTOR=36, /** Binary property NFD_Inert. ICU-specific property for characters that are inert under NFD, i.e., they do not interact with adjacent characters. @@ -339,8 +339,8 @@ typedef enum UProperty { See also com.ibm.text.UCD.NFSkippable in the ICU4J repository, and icu/source/common/unormimp.h . - @draft ICU 3.0 */ - UCHAR_NFD_INERT, + @stable ICU 3.0 */ + UCHAR_NFD_INERT=37, /** Binary property NFKD_Inert. ICU-specific property for characters that are inert under NFKD, i.e., they do not interact with adjacent characters. @@ -348,8 +348,8 @@ typedef enum UProperty { to find the boundary of safely normalizable text despite possible text additions. @see UCHAR_NFD_INERT - @draft ICU 3.0 */ - UCHAR_NFKD_INERT, + @stable ICU 3.0 */ + UCHAR_NFKD_INERT=38, /** Binary property NFC_Inert. ICU-specific property for characters that are inert under NFC, i.e., they do not interact with adjacent characters. @@ -357,8 +357,8 @@ typedef enum UProperty { to find the boundary of safely normalizable text despite possible text additions. @see UCHAR_NFD_INERT - @draft ICU 3.0 */ - UCHAR_NFC_INERT, + @stable ICU 3.0 */ + UCHAR_NFC_INERT=39, /** Binary property NFKC_Inert. ICU-specific property for characters that are inert under NFKC, i.e., they do not interact with adjacent characters. @@ -366,8 +366,8 @@ typedef enum UProperty { to find the boundary of safely normalizable text despite possible text additions. @see UCHAR_NFD_INERT - @draft ICU 3.0 */ - UCHAR_NFKC_INERT, + @stable ICU 3.0 */ + UCHAR_NFKC_INERT=40, /** Binary Property Segment_Starter. ICU-specific property for characters that are starters in terms of Unicode normalization and combining character sequences. @@ -377,45 +377,47 @@ typedef enum UProperty { ICU uses this property for segmenting a string for generating a set of canonically equivalent strings, e.g. for canonical closure while processing collation tailoring rules. - @draft ICU 3.0 */ - UCHAR_SEGMENT_STARTER, + @stable ICU 3.0 */ + UCHAR_SEGMENT_STARTER=41, +#ifndef U_HIDE_DRAFT_API /** Binary property Pattern_Syntax (new in Unicode 4.1). See UAX #31 Identifier and Pattern Syntax (http://www.unicode.org/reports/tr31/) @draft ICU 3.4 */ - UCHAR_PATTERN_SYNTAX, + UCHAR_PATTERN_SYNTAX=42, /** Binary property Pattern_White_Space (new in Unicode 4.1). See UAX #31 Identifier and Pattern Syntax (http://www.unicode.org/reports/tr31/) @draft ICU 3.4 */ - UCHAR_PATTERN_WHITE_SPACE, + UCHAR_PATTERN_WHITE_SPACE=43, /** Binary property alnum (a C/POSIX character class). Implemented according to the UTS #18 Annex C Standard Recommendation. See the uchar.h file documentation. @draft ICU 3.4 */ - UCHAR_POSIX_ALNUM, + UCHAR_POSIX_ALNUM=44, /** Binary property blank (a C/POSIX character class). Implemented according to the UTS #18 Annex C Standard Recommendation. See the uchar.h file documentation. @draft ICU 3.4 */ - UCHAR_POSIX_BLANK, + UCHAR_POSIX_BLANK=45, /** Binary property graph (a C/POSIX character class). Implemented according to the UTS #18 Annex C Standard Recommendation. See the uchar.h file documentation. @draft ICU 3.4 */ - UCHAR_POSIX_GRAPH, + UCHAR_POSIX_GRAPH=46, /** Binary property print (a C/POSIX character class). Implemented according to the UTS #18 Annex C Standard Recommendation. See the uchar.h file documentation. @draft ICU 3.4 */ - UCHAR_POSIX_PRINT, + UCHAR_POSIX_PRINT=47, /** Binary property xdigit (a C/POSIX character class). Implemented according to the UTS #18 Annex C Standard Recommendation. See the uchar.h file documentation. @draft ICU 3.4 */ - UCHAR_POSIX_XDIGIT, + UCHAR_POSIX_XDIGIT=48, +#endif /* U_HIDE_DRAFT_API */ /** One more than the last constant for binary Unicode properties. @stable ICU 2.1 */ - UCHAR_BINARY_LIMIT, + UCHAR_BINARY_LIMIT=49, /** Enumerated property Bidi_Class. Same as u_charDirection, returns UCharDirection values. @stable ICU 2.2 */ @@ -424,81 +426,83 @@ typedef enum UProperty { UCHAR_INT_START=UCHAR_BIDI_CLASS, /** Enumerated property Block. Same as ublock_getCode, returns UBlockCode values. @stable ICU 2.2 */ - UCHAR_BLOCK, + UCHAR_BLOCK=0x1001, /** Enumerated property Canonical_Combining_Class. Same as u_getCombiningClass, returns 8-bit numeric values. @stable ICU 2.2 */ - UCHAR_CANONICAL_COMBINING_CLASS, + UCHAR_CANONICAL_COMBINING_CLASS=0x1002, /** Enumerated property Decomposition_Type. Returns UDecompositionType values. @stable ICU 2.2 */ - UCHAR_DECOMPOSITION_TYPE, + UCHAR_DECOMPOSITION_TYPE=0x1003, /** Enumerated property East_Asian_Width. See http://www.unicode.org/reports/tr11/ Returns UEastAsianWidth values. @stable ICU 2.2 */ - UCHAR_EAST_ASIAN_WIDTH, + UCHAR_EAST_ASIAN_WIDTH=0x1004, /** Enumerated property General_Category. Same as u_charType, returns UCharCategory values. @stable ICU 2.2 */ - UCHAR_GENERAL_CATEGORY, + UCHAR_GENERAL_CATEGORY=0x1005, /** Enumerated property Joining_Group. Returns UJoiningGroup values. @stable ICU 2.2 */ - UCHAR_JOINING_GROUP, + UCHAR_JOINING_GROUP=0x1006, /** Enumerated property Joining_Type. Returns UJoiningType values. @stable ICU 2.2 */ - UCHAR_JOINING_TYPE, + UCHAR_JOINING_TYPE=0x1007, /** Enumerated property Line_Break. Returns ULineBreak values. @stable ICU 2.2 */ - UCHAR_LINE_BREAK, + UCHAR_LINE_BREAK=0x1008, /** Enumerated property Numeric_Type. Returns UNumericType values. @stable ICU 2.2 */ - UCHAR_NUMERIC_TYPE, + UCHAR_NUMERIC_TYPE=0x1009, /** Enumerated property Script. Same as uscript_getScript, returns UScriptCode values. @stable ICU 2.2 */ - UCHAR_SCRIPT, + UCHAR_SCRIPT=0x100A, /** Enumerated property Hangul_Syllable_Type, new in Unicode 4. Returns UHangulSyllableType values. @stable ICU 2.6 */ - UCHAR_HANGUL_SYLLABLE_TYPE, + UCHAR_HANGUL_SYLLABLE_TYPE=0x100B, /** Enumerated property NFD_Quick_Check. - Returns UNormalizationCheckResult values. @draft ICU 3.0 */ - UCHAR_NFD_QUICK_CHECK, + Returns UNormalizationCheckResult values. @stable ICU 3.0 */ + UCHAR_NFD_QUICK_CHECK=0x100C, /** Enumerated property NFKD_Quick_Check. - Returns UNormalizationCheckResult values. @draft ICU 3.0 */ - UCHAR_NFKD_QUICK_CHECK, + Returns UNormalizationCheckResult values. @stable ICU 3.0 */ + UCHAR_NFKD_QUICK_CHECK=0x100D, /** Enumerated property NFC_Quick_Check. - Returns UNormalizationCheckResult values. @draft ICU 3.0 */ - UCHAR_NFC_QUICK_CHECK, + Returns UNormalizationCheckResult values. @stable ICU 3.0 */ + UCHAR_NFC_QUICK_CHECK=0x100E, /** Enumerated property NFKC_Quick_Check. - Returns UNormalizationCheckResult values. @draft ICU 3.0 */ - UCHAR_NFKC_QUICK_CHECK, + Returns UNormalizationCheckResult values. @stable ICU 3.0 */ + UCHAR_NFKC_QUICK_CHECK=0x100F, /** Enumerated property Lead_Canonical_Combining_Class. ICU-specific property for the ccc of the first code point of the decomposition, or lccc(c)=ccc(NFD(c)[0]). Useful for checking for canonically ordered text; see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD . - Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */ - UCHAR_LEAD_CANONICAL_COMBINING_CLASS, + Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */ + UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010, /** Enumerated property Trail_Canonical_Combining_Class. ICU-specific property for the ccc of the last code point of the decomposition, or tccc(c)=ccc(NFD(c)[last]). Useful for checking for canonically ordered text; see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD . - Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */ - UCHAR_TRAIL_CANONICAL_COMBINING_CLASS, + Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */ + UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011, +#ifndef U_HIDE_DRAFT_API /** Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1). Used in UAX #29: Text Boundaries (http://www.unicode.org/reports/tr29/) Returns UGraphemeClusterBreak values. @draft ICU 3.4 */ - UCHAR_GRAPHEME_CLUSTER_BREAK, + UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012, /** Enumerated property Sentence_Break (new in Unicode 4.1). Used in UAX #29: Text Boundaries (http://www.unicode.org/reports/tr29/) Returns USentenceBreak values. @draft ICU 3.4 */ - UCHAR_SENTENCE_BREAK, + UCHAR_SENTENCE_BREAK=0x1013, /** Enumerated property Word_Break (new in Unicode 4.1). Used in UAX #29: Text Boundaries (http://www.unicode.org/reports/tr29/) Returns UWordBreakValues values. @draft ICU 3.4 */ - UCHAR_WORD_BREAK, + UCHAR_WORD_BREAK=0x1014, +#endif /*U_HIDE_DRAFT_API*/ /** One more than the last constant for enumerated/integer Unicode properties. @stable ICU 2.2 */ - UCHAR_INT_LIMIT, + UCHAR_INT_LIMIT=0x1015, /** Bitmask property General_Category_Mask. This is the General_Category property returned as a bit mask. @@ -512,7 +516,7 @@ typedef enum UProperty { /** First constant for bit-mask Unicode properties. @stable ICU 2.4 */ UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK, /** One more than the last constant for bit-mask Unicode properties. @stable ICU 2.4 */ - UCHAR_MASK_LIMIT, + UCHAR_MASK_LIMIT=0x2001, /** Double property Numeric_Value. Corresponds to u_getNumericValue. @stable ICU 2.4 */ @@ -520,7 +524,7 @@ typedef enum UProperty { /** First constant for double Unicode properties. @stable ICU 2.4 */ UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE, /** One more than the last constant for double Unicode properties. @stable ICU 2.4 */ - UCHAR_DOUBLE_LIMIT, + UCHAR_DOUBLE_LIMIT=0x3001, /** String property Age. Corresponds to u_charAge. @stable ICU 2.4 */ @@ -529,42 +533,42 @@ typedef enum UProperty { UCHAR_STRING_START=UCHAR_AGE, /** String property Bidi_Mirroring_Glyph. Corresponds to u_charMirror. @stable ICU 2.4 */ - UCHAR_BIDI_MIRRORING_GLYPH, + UCHAR_BIDI_MIRRORING_GLYPH=0x4001, /** String property Case_Folding. Corresponds to u_strFoldCase in ustring.h. @stable ICU 2.4 */ - UCHAR_CASE_FOLDING, + UCHAR_CASE_FOLDING=0x4002, /** String property ISO_Comment. Corresponds to u_getISOComment. @stable ICU 2.4 */ - UCHAR_ISO_COMMENT, + UCHAR_ISO_COMMENT=0x4003, /** String property Lowercase_Mapping. Corresponds to u_strToLower in ustring.h. @stable ICU 2.4 */ - UCHAR_LOWERCASE_MAPPING, + UCHAR_LOWERCASE_MAPPING=0x4004, /** String property Name. Corresponds to u_charName. @stable ICU 2.4 */ - UCHAR_NAME, + UCHAR_NAME=0x4005, /** String property Simple_Case_Folding. Corresponds to u_foldCase. @stable ICU 2.4 */ - UCHAR_SIMPLE_CASE_FOLDING, + UCHAR_SIMPLE_CASE_FOLDING=0x4006, /** String property Simple_Lowercase_Mapping. Corresponds to u_tolower. @stable ICU 2.4 */ - UCHAR_SIMPLE_LOWERCASE_MAPPING, + UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007, /** String property Simple_Titlecase_Mapping. Corresponds to u_totitle. @stable ICU 2.4 */ - UCHAR_SIMPLE_TITLECASE_MAPPING, + UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008, /** String property Simple_Uppercase_Mapping. Corresponds to u_toupper. @stable ICU 2.4 */ - UCHAR_SIMPLE_UPPERCASE_MAPPING, + UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009, /** String property Titlecase_Mapping. Corresponds to u_strToTitle in ustring.h. @stable ICU 2.4 */ - UCHAR_TITLECASE_MAPPING, + UCHAR_TITLECASE_MAPPING=0x400A, /** String property Unicode_1_Name. Corresponds to u_charName. @stable ICU 2.4 */ - UCHAR_UNICODE_1_NAME, + UCHAR_UNICODE_1_NAME=0x400B, /** String property Uppercase_Mapping. Corresponds to u_strToUpper in ustring.h. @stable ICU 2.4 */ - UCHAR_UPPERCASE_MAPPING, + UCHAR_UPPERCASE_MAPPING=0x400C, /** One more than the last constant for string Unicode properties. @stable ICU 2.4 */ - UCHAR_STRING_LIMIT, + UCHAR_STRING_LIMIT=0x400D, /** Represents a nonexistent or invalid property or property value. @stable ICU 2.4 */ UCHAR_INVALID_CODE = -1 @@ -1128,7 +1132,7 @@ enum UBlockCode { * @stable ICU 2.2 */ UBLOCK_CYRILLIC_SUPPLEMENTARY = 97, - /** @draft ICU 3.0 */ + /** @stable ICU 3.0 */ UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY, /*[0500]*/ /** @stable ICU 2.2 */ UBLOCK_TAGALOG = 98, /*[1700]*/ @@ -1190,6 +1194,7 @@ enum UBlockCode { /** @stable ICU 2.6 */ UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/ +#ifndef U_HIDE_DRAFT_API /* New blocks in Unicode 4.1 */ /** @draft ICU 3.4 */ @@ -1233,8 +1238,31 @@ enum UBlockCode { /** @draft ICU 3.4 */ UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/ - /** @stable ICU 2.0 */ - UBLOCK_COUNT, + /* New blocks in Unicode 5.0 */ + + /** @draft ICU 3.6 */ + UBLOCK_NKO = 146, /*[07C0]*/ + /** @draft ICU 3.6 */ + UBLOCK_BALINESE = 147, /*[1B00]*/ + /** @draft ICU 3.6 */ + UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/ + /** @draft ICU 3.6 */ + UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/ + /** @draft ICU 3.6 */ + UBLOCK_PHAGS_PA = 150, /*[A840]*/ + /** @draft ICU 3.6 */ + UBLOCK_PHOENICIAN = 151, /*[10900]*/ + /** @draft ICU 3.6 */ + UBLOCK_CUNEIFORM = 152, /*[12000]*/ + /** @draft ICU 3.6 */ + UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153, /*[12400]*/ + /** @draft ICU 3.6 */ + UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/ + +#endif /*U_HIDE_DRAFT_API*/ + + /** @stable ICU 2.0 */ + UBLOCK_COUNT = 155, /** @stable ICU 2.0 */ UBLOCK_INVALID_CODE=-1 @@ -1416,17 +1444,19 @@ typedef enum UJoiningGroup { * @draft ICU 3.4 */ typedef enum UGraphemeClusterBreak { - U_GCB_OTHER, /*[XX]*/ /*See note !!*/ - U_GCB_CONTROL, /*[CN]*/ - U_GCB_CR, /*[CR]*/ - U_GCB_EXTEND, /*[EX]*/ - U_GCB_L, /*[L]*/ - U_GCB_LF, /*[LF]*/ - U_GCB_LV, /*[LV]*/ - U_GCB_LVT, /*[LVT]*/ - U_GCB_T, /*[T]*/ - U_GCB_V, /*[V]*/ - U_GCB_COUNT +#ifndef U_HIDE_DRAFT_API + U_GCB_OTHER = 0, /*[XX]*/ /*See note !!*/ + U_GCB_CONTROL = 1, /*[CN]*/ + U_GCB_CR = 2, /*[CR]*/ + U_GCB_EXTEND = 3, /*[EX]*/ + U_GCB_L = 4, /*[L]*/ + U_GCB_LF = 5, /*[LF]*/ + U_GCB_LV = 6, /*[LV]*/ + U_GCB_LVT = 7, /*[LVT]*/ + U_GCB_T = 8, /*[T]*/ + U_GCB_V = 9, /*[V]*/ +#endif /*U_HIDE_DRAFT_API*/ + U_GCB_COUNT = 10 } UGraphemeClusterBreak; /** @@ -1437,15 +1467,17 @@ typedef enum UGraphemeClusterBreak { * @draft ICU 3.4 */ typedef enum UWordBreakValues { - U_WB_OTHER, /*[XX]*/ /*See note !!*/ - U_WB_ALETTER, /*[LE]*/ - U_WB_FORMAT, /*[FO]*/ - U_WB_KATAKANA, /*[KA]*/ - U_WB_MIDLETTER, /*[ML]*/ - U_WB_MIDNUM, /*[MN]*/ - U_WB_NUMERIC, /*[NU]*/ - U_WB_EXTENDNUMLET, /*[EX]*/ - U_WB_COUNT +#ifndef U_HIDE_DRAFT_API + U_WB_OTHER = 0, /*[XX]*/ /*See note !!*/ + U_WB_ALETTER = 1, /*[LE]*/ + U_WB_FORMAT = 2, /*[FO]*/ + U_WB_KATAKANA = 3, /*[KA]*/ + U_WB_MIDLETTER = 4, /*[ML]*/ + U_WB_MIDNUM = 5, /*[MN]*/ + U_WB_NUMERIC = 6, /*[NU]*/ + U_WB_EXTENDNUMLET = 7, /*[EX]*/ +#endif /*U_HIDE_DRAFT_API*/ + U_WB_COUNT = 8 } UWordBreakValues; /** @@ -1455,18 +1487,20 @@ typedef enum UWordBreakValues { * @draft ICU 3.4 */ typedef enum USentenceBreak { - U_SB_OTHER, /*[XX]*/ /*See note !!*/ - U_SB_ATERM, /*[AT]*/ - U_SB_CLOSE, /*[CL]*/ - U_SB_FORMAT, /*[FO]*/ - U_SB_LOWER, /*[LO]*/ - U_SB_NUMERIC, /*[NU]*/ - U_SB_OLETTER, /*[LE]*/ - U_SB_SEP, /*[SE]*/ - U_SB_SP, /*[SP]*/ - U_SB_STERM, /*[ST]*/ - U_SB_UPPER, /*[UP]*/ - U_SB_COUNT +#ifndef U_HIDE_DRAFT_API + U_SB_OTHER = 0, /*[XX]*/ /*See note !!*/ + U_SB_ATERM = 1, /*[AT]*/ + U_SB_CLOSE = 2, /*[CL]*/ + U_SB_FORMAT = 3, /*[FO]*/ + U_SB_LOWER = 4, /*[LO]*/ + U_SB_NUMERIC = 5, /*[NU]*/ + U_SB_OLETTER = 6, /*[LE]*/ + U_SB_SEP = 7, /*[SE]*/ + U_SB_SP = 8, /*[SP]*/ + U_SB_STERM = 9, /*[ST]*/ + U_SB_UPPER = 10, /*[UP]*/ +#endif /*U_HIDE_DRAFT_API*/ + U_SB_COUNT = 11 } USentenceBreak; /** @@ -1476,45 +1510,45 @@ typedef enum USentenceBreak { * @stable ICU 2.2 */ typedef enum ULineBreak { - U_LB_UNKNOWN, /*[XX]*/ /*See note !!*/ - U_LB_AMBIGUOUS, /*[AI]*/ - U_LB_ALPHABETIC, /*[AL]*/ - U_LB_BREAK_BOTH, /*[B2]*/ - U_LB_BREAK_AFTER, /*[BA]*/ - U_LB_BREAK_BEFORE, /*[BB]*/ - U_LB_MANDATORY_BREAK, /*[BK]*/ - U_LB_CONTINGENT_BREAK, /*[CB]*/ - U_LB_CLOSE_PUNCTUATION, /*[CL]*/ - U_LB_COMBINING_MARK, /*[CM]*/ - U_LB_CARRIAGE_RETURN, /*[CR]*/ - U_LB_EXCLAMATION, /*[EX]*/ - U_LB_GLUE, /*[GL]*/ - U_LB_HYPHEN, /*[HY]*/ - U_LB_IDEOGRAPHIC, /*[ID]*/ - U_LB_INSEPERABLE, - /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @draft ICU 3.0 */ + U_LB_UNKNOWN = 0, /*[XX]*/ /*See note !!*/ + U_LB_AMBIGUOUS = 1, /*[AI]*/ + U_LB_ALPHABETIC = 2, /*[AL]*/ + U_LB_BREAK_BOTH = 3, /*[B2]*/ + U_LB_BREAK_AFTER = 4, /*[BA]*/ + U_LB_BREAK_BEFORE = 5, /*[BB]*/ + U_LB_MANDATORY_BREAK = 6, /*[BK]*/ + U_LB_CONTINGENT_BREAK = 7, /*[CB]*/ + U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/ + U_LB_COMBINING_MARK = 9, /*[CM]*/ + U_LB_CARRIAGE_RETURN = 10, /*[CR]*/ + U_LB_EXCLAMATION = 11, /*[EX]*/ + U_LB_GLUE = 12, /*[GL]*/ + U_LB_HYPHEN = 13, /*[HY]*/ + U_LB_IDEOGRAPHIC = 14, /*[ID]*/ + U_LB_INSEPERABLE = 15, + /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @stable ICU 3.0 */ U_LB_INSEPARABLE=U_LB_INSEPERABLE,/*[IN]*/ - U_LB_INFIX_NUMERIC, /*[IS]*/ - U_LB_LINE_FEED, /*[LF]*/ - U_LB_NONSTARTER, /*[NS]*/ - U_LB_NUMERIC, /*[NU]*/ - U_LB_OPEN_PUNCTUATION, /*[OP]*/ - U_LB_POSTFIX_NUMERIC, /*[PO]*/ - U_LB_PREFIX_NUMERIC, /*[PR]*/ - U_LB_QUOTATION, /*[QU]*/ - U_LB_COMPLEX_CONTEXT, /*[SA]*/ - U_LB_SURROGATE, /*[SG]*/ - U_LB_SPACE, /*[SP]*/ - U_LB_BREAK_SYMBOLS, /*[SY]*/ - U_LB_ZWSPACE, /*[ZW]*/ - U_LB_NEXT_LINE, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */ - U_LB_WORD_JOINER, /*[WJ]*/ - U_LB_H2, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */ - U_LB_H3, /*[H3]*/ - U_LB_JL, /*[JL]*/ - U_LB_JT, /*[JT]*/ - U_LB_JV, /*[JV]*/ - U_LB_COUNT + U_LB_INFIX_NUMERIC = 16, /*[IS]*/ + U_LB_LINE_FEED = 17, /*[LF]*/ + U_LB_NONSTARTER = 18, /*[NS]*/ + U_LB_NUMERIC = 19, /*[NU]*/ + U_LB_OPEN_PUNCTUATION = 20, /*[OP]*/ + U_LB_POSTFIX_NUMERIC = 21, /*[PO]*/ + U_LB_PREFIX_NUMERIC = 22, /*[PR]*/ + U_LB_QUOTATION = 23, /*[QU]*/ + U_LB_COMPLEX_CONTEXT = 24, /*[SA]*/ + U_LB_SURROGATE = 25, /*[SG]*/ + U_LB_SPACE = 26, /*[SP]*/ + U_LB_BREAK_SYMBOLS = 27, /*[SY]*/ + U_LB_ZWSPACE = 28, /*[ZW]*/ + U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */ + U_LB_WORD_JOINER = 30, /*[WJ]*/ + U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */ + U_LB_H3 = 32, /*[H3]*/ + U_LB_JL = 33, /*[JL]*/ + U_LB_JT = 34, /*[JT]*/ + U_LB_JV = 35, /*[JV]*/ + U_LB_COUNT = 36 } ULineBreak; /** @@ -2451,7 +2485,7 @@ u_charFromName(UCharNameChoice nameChoice, * @see u_enumCharNames * @stable ICU 1.7 */ -typedef UBool UEnumCharNamesFn(void *context, +typedef UBool U_CALLCONV UEnumCharNamesFn(void *context, UChar32 code, UCharNameChoice nameChoice, const char *name, diff --git a/Build/source/libs/icu-xetex/common/unicode/ucnv.h b/Build/source/libs/icu-xetex/common/unicode/ucnv.h index 14ac8021adb..f8fce55bebd 100644 --- a/Build/source/libs/icu-xetex/common/unicode/ucnv.h +++ b/Build/source/libs/icu-xetex/common/unicode/ucnv.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1999-2005, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * ucnv.h: @@ -253,11 +253,13 @@ U_CDECL_END #define UCNV_SWAP_LFNL_OPTION_STRING ",swaplfnl" /** - * Do a fuzzy compare of a two converter/alias names. The comparison - * is case-insensitive. It also ignores the characters '-', '_', and - * ' ' (dash, underscore, and space). Thus the strings "UTF-8", - * "utf_8", and "Utf 8" are exactly equivalent. - * + * Do a fuzzy compare of two converter/alias names. + * The comparison is case-insensitive, ignores leading zeroes if they are not + * followed by further digits, and ignores all but letters and digits. + * Thus the strings "UTF-8", "utf_8", "u*T@f08" and "Utf 8" are exactly equivalent. + * See section 1.4, Charset Alias Matching in Unicode Technical Standard #22 + * at http://www.unicode.org/reports/tr22/ + * * @param name1 a converter name or alias, zero-terminated * @param name2 a converter name or alias, zero-terminated * @return 0 if the names match, or a negative value if the name1 @@ -270,11 +272,12 @@ ucnv_compareNames(const char *name1, const char *name2); /** - * Creates a UConverter object with the names specified as a C string. + * Creates a UConverter object with the name of a coded character set specified as a C string. * The actual name will be resolved with the alias file * using a case-insensitive string comparison that ignores - * the delimiters '-', '_', and ' ' (dash, underscore, and space). - * E.g., the names "UTF8", "utf-8", and "Utf 8" are all equivalent. + * leading zeroes and all non-alphanumeric characters. + * E.g., the names "UTF8", "utf-8", "u*T@f08" and "Utf 8" are all equivalent. + * (See also ucnv_compareNames().) * If <code>NULL</code> is passed for the converter name, it will create one with the * getDefaultName return value. * @@ -294,14 +297,26 @@ ucnv_compareNames(const char *name1, const char *name2); * <p>The conversion behavior and names can vary between platforms. ICU may * convert some characters differently from other platforms. Details on this topic * are in the <a href="http://icu.sourceforge.net/userguide/conversion.html">User's - * Guide</a>.</p> - * - * @param converterName Name of the uconv table, may have options appended + * Guide</a>. Aliases starting with a "cp" prefix have no specific meaning + * other than its an alias starting with the letters "cp". Please do not + * associate any meaning to these aliases.</p> + * + * @param converterName Name of the coded character set table. + * This may have options appended to the string. + * IANA alias character set names, IBM CCSIDs starting with "ibm-", + * Windows codepage numbers starting with "windows-" are frequently + * used for this parameter. See ucnv_getAvailableName and + * ucnv_getAlias for a complete list that is available. + * If this parameter is NULL, the default converter will be used. * @param err outgoing error status <TT>U_MEMORY_ALLOCATION_ERROR, U_FILE_ACCESS_ERROR</TT> * @return the created Unicode converter object, or <TT>NULL</TT> if an error occured * @see ucnv_openU * @see ucnv_openCCSID + * @see ucnv_getAvailableName + * @see ucnv_getAlias + * @see ucnv_getDefaultName * @see ucnv_close + * @ee ucnv_compareNames * @stable ICU 2.0 */ U_STABLE UConverter* U_EXPORT2 @@ -313,13 +328,16 @@ ucnv_open(const char *converterName, UErrorCode *err); * The name should be limited to the ASCII-7 alphanumerics range. * The actual name will be resolved with the alias file * using a case-insensitive string comparison that ignores - * the delimiters '-', '_', and ' ' (dash, underscore, and space). - * E.g., the names "UTF8", "utf-8", and "Utf 8" are all equivalent. + * leading zeroes and all non-alphanumeric characters. + * E.g., the names "UTF8", "utf-8", "u*T@f08" and "Utf 8" are all equivalent. + * (See also ucnv_compareNames().) * If <TT>NULL</TT> is passed for the converter name, it will create * one with the ucnv_getDefaultName() return value. * If the alias is ambiguous, then the preferred converter is used * and the status is set to U_AMBIGUOUS_ALIAS_WARNING. - * @param name : name of the uconv table in a zero terminated + * + * <p>See ucnv_open for the complete details</p> + * @param name Name of the UConverter table in a zero terminated * Unicode string * @param err outgoing error status <TT>U_MEMORY_ALLOCATION_ERROR, * U_FILE_ACCESS_ERROR</TT> @@ -328,7 +346,7 @@ ucnv_open(const char *converterName, UErrorCode *err); * @see ucnv_open * @see ucnv_openCCSID * @see ucnv_close - * @see ucnv_getDefaultName + * @ee ucnv_compareNames * @stable ICU 2.0 */ U_STABLE UConverter* U_EXPORT2 @@ -505,6 +523,8 @@ ucnv_close(UConverter * converter); /** * Fills in the output parameter, subChars, with the substitution characters * as multiple bytes. + * If ucnv_setSubstString() set a Unicode string because the converter is + * stateful, then subChars will be an empty string. * * @param converter the Unicode converter * @param subChars the subsitution characters @@ -513,6 +533,7 @@ ucnv_close(UConverter * converter); * @param err the outgoing error status code. * If the substitution character array is too small, an * <TT>U_INDEX_OUTOFBOUNDS_ERROR</TT> will be returned. + * @see ucnv_setSubstString * @see ucnv_setSubstChars * @stable ICU 2.0 */ @@ -525,12 +546,19 @@ ucnv_getSubstChars(const UConverter *converter, /** * Sets the substitution chars when converting from unicode to a codepage. The * substitution is specified as a string of 1-4 bytes, and may contain - * <TT>NULL</TT> byte. + * <TT>NULL</TT> bytes. + * The subChars must represent a single character. The caller needs to know the + * byte sequence of a valid character in the converter's charset. + * For some converters, for example some ISO 2022 variants, only single-byte + * substitution characters may be supported. + * The newer ucnv_setSubstString() function relaxes these limitations. + * * @param converter the Unicode converter * @param subChars the substitution character byte sequence we want set * @param len the number of bytes in subChars * @param err the error status code. <TT>U_INDEX_OUTOFBOUNDS_ERROR </TT> if * len is bigger than the maximum number of bytes allowed in subchars + * @see ucnv_setSubstString * @see ucnv_getSubstChars * @stable ICU 2.0 */ @@ -541,6 +569,39 @@ ucnv_setSubstChars(UConverter *converter, UErrorCode *err); /** + * Set a substitution string for converting from Unicode to a charset. + * The caller need not know the charset byte sequence for each charset. + * + * Unlike ucnv_setSubstChars() which is designed to set a charset byte sequence + * for a single character, this function takes a Unicode string with + * zero, one or more characters, and immediately verifies that the string can be + * converted to the charset. + * If not, or if the result is too long (more than 32 bytes as of ICU 3.6), + * then the function returns with an error accordingly. + * + * Also unlike ucnv_setSubstChars(), this function works for stateful charsets + * by converting on the fly at the point of substitution rather than setting + * a fixed byte sequence. + * + * @param cnv The UConverter object. + * @param s The Unicode string. + * @param length The number of UChars in s, or -1 for a NUL-terminated string. + * @param err Pointer to a standard ICU error code. Its input value must + * pass the U_SUCCESS() test, or else the function returns + * immediately. Check for U_FAILURE() on output or use with + * function chaining. (See User Guide for details.) + * + * @see ucnv_setSubstChars + * @see ucnv_getSubstChars + * @draft ICU 3.6 + */ +U_DRAFT void U_EXPORT2 +ucnv_setSubstString(UConverter *cnv, + const UChar *s, + int32_t length, + UErrorCode *err); + +/** * Fills in the output parameter, errBytes, with the error characters from the * last failing conversion. * @@ -661,8 +722,6 @@ ucnv_resetFromUnicode(UConverter *converter); U_STABLE int8_t U_EXPORT2 ucnv_getMaxCharSize(const UConverter *converter); -#ifndef U_HIDE_DRAFT_API - /** * Calculates the size of a buffer for conversion from Unicode to a charset. * The calculated size is guaranteed to be sufficient for this conversion. @@ -685,8 +744,6 @@ ucnv_getMaxCharSize(const UConverter *converter); #define UCNV_GET_MAX_BYTES_FOR_STRING(length, maxCharSize) \ (((int32_t)(length)+10)*(int32_t)(maxCharSize)) -#endif /*U_HIDE_DRAFT_API*/ - /** * Returns the minimum byte length for characters in this codepage. * This is usually either 1 or 2. @@ -1219,6 +1276,12 @@ ucnv_getNextUChar(UConverter * converter, * Internally, two conversions - ucnv_toUnicode() and ucnv_fromUnicode() - * are used, "pivoting" through 16-bit Unicode. * + * Important: For streaming conversion (multiple function calls for successive + * parts of a text stream), the caller must provide a pivot buffer explicitly, + * and must preserve the pivot buffer and associated pointers from one + * call to another. (The buffer may be moved if its contents and the relative + * pointer positions are preserved.) + * * There is a similar function, ucnv_convert(), * which has the following limitations: * - it takes charset names, not converter objects, so that @@ -1230,7 +1293,7 @@ ucnv_getNextUChar(UConverter * converter, * * By contrast, ucnv_convertEx() * - takes UConverter parameters instead of charset names - * - fully exposes the pivot buffer for complete error handling + * - fully exposes the pivot buffer for streaming conversion and complete error handling * * ucnv_convertEx() also provides further convenience: * - an option to reset the converters at the beginning @@ -1244,6 +1307,7 @@ ucnv_getNextUChar(UConverter * converter, * or set U_STRING_NOT_TERMINATED_WARNING if the output exactly fills * the target buffer * - the pivot buffer can be provided internally; + * possible only for whole-string conversion, not streaming conversion; * in this case, the caller will not be able to get details about where an * error occurred * (if pivotStart==NULL, see below) @@ -1715,11 +1779,14 @@ U_STABLE const char * U_EXPORT2 ucnv_getDefaultName(void); /** - * sets the current default converter name. Caller must own the storage for 'name' - * and preserve it indefinitely. + * This function sets the current default converter name. + * DO NOT call this function from multiple threads! This function is not + * thread safe. If this function needs to be called, it should be called + * during application initialization. Most of the time, the results from + * ucnv_getDefaultName() is sufficient for your application. * @param name the converter name to be the default (must exist). * @see ucnv_getDefaultName - * @system SYSTEM API + * @system * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 @@ -1796,7 +1863,7 @@ ucnv_usesFallback(const UConverter *cnv); * UErrorCode err = U_ZERO_ERROR; * char input[] = { '\xEF','\xBB', '\xBF','\x41','\x42','\x43' }; * int32_t signatureLength = 0; - * char *encoding = ucnv_detectUnicodeSignatures(input,sizeof(input),&signatureLength,&err); + * char *encoding = ucnv_detectUnicodeSignature(input,sizeof(input),&signatureLength,&err); * UConverter *conv = NULL; * UChar output[100]; * UChar *target = output, *out; diff --git a/Build/source/libs/icu-xetex/common/unicode/uconfig.h b/Build/source/libs/icu-xetex/common/unicode/uconfig.h index 8041cedaacf..8dea2ab8c4d 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uconfig.h +++ b/Build/source/libs/icu-xetex/common/unicode/uconfig.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 2002-2005, International Business Machines +* Copyright (C) 2002-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * file name: uconfig.h @@ -24,6 +24,13 @@ * The switches are fairly coarse, controlling large modules. * Basic services cannot be turned off. * + * Building with any of these options does not guarantee that the + * ICU build process will completely work. It is recommended that + * the ICU libraries and data be built using the normal build. + * At that time you should remove the data used by those services. + * After building the ICU data library, you should rebuild the ICU + * libraries with these switches customized to your needs. + * * @stable ICU 2.4 */ @@ -59,11 +66,33 @@ /* common library switches -------------------------------------------------- */ /** + * \def UCONFIG_NO_FILE_IO + * This switch turns off all file access in the common library + * where file access is only used for data loading. + * ICU data must then be provided in the form of a data DLL (or with an + * equivalent way to link to the data residing in an executable, + * as in building a combined library with both the common library's code and + * the data), or via udata_setCommonData(). + * Application data must be provided via udata_setAppData() or by using + * "open" functions that take pointers to data, for example ucol_openBinary(). + * + * File access is not used at all in the i18n library. + * + * File access cannot be turned off for the icuio library or for the ICU + * test suites and ICU tools. + * + * @draft ICU 3.6 + */ +#ifndef UCONFIG_NO_FILE_IO +# define UCONFIG_NO_FILE_IO 0 +#endif + +/** * \def UCONFIG_NO_CONVERSION * ICU will not completely build with this switch turned on. * This switch turns off all converters. * - * @draft ICU 3.2 + * @stable ICU 3.2 */ #ifndef UCONFIG_NO_CONVERSION # define UCONFIG_NO_CONVERSION 0 @@ -177,7 +206,7 @@ * \def UCONFIG_NO_SERVICE * This switch turns off service registration. * - * @draft ICU 3.2 + * @stable ICU 3.2 */ #ifndef UCONFIG_NO_SERVICE # define UCONFIG_NO_SERVICE 0 diff --git a/Build/source/libs/icu-xetex/common/unicode/udata.h b/Build/source/libs/icu-xetex/common/unicode/udata.h index 0881ef32453..2a12c11fcd8 100644 --- a/Build/source/libs/icu-xetex/common/unicode/udata.h +++ b/Build/source/libs/icu-xetex/common/unicode/udata.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 1999-2005, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -35,7 +35,8 @@ U_CDECL_BEGIN * * See the User Guide Data Management chapter. */ - + +#ifndef U_HIDE_INTERNAL_API /** * Character used to separate package names from tree names * @internal ICU 3.0 @@ -66,6 +67,8 @@ U_CDECL_BEGIN */ #define U_ICUDATA_ALIAS "ICUDATA" +#endif /* U_HIDE_INTERNAL_API */ + /** * UDataInfo contains the properties about the requested data. * This is meta data. diff --git a/Build/source/libs/icu-xetex/common/unicode/udeprctd.h b/Build/source/libs/icu-xetex/common/unicode/udeprctd.h index 60c423ed6e0..8369eb4ae13 100644 --- a/Build/source/libs/icu-xetex/common/unicode/udeprctd.h +++ b/Build/source/libs/icu-xetex/common/unicode/udeprctd.h @@ -1,15 +1,15 @@ /* ******************************************************************************* -* Copyright (C) 2005, International Business Machines +* Copyright (C) 2004-2006, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * -* file name: udeprctd.h +* file name: * encoding: US-ASCII * tab size: 8 (not used) * indentation:4 * -* Created by: gendraft.pl, a perl script written by Ram Viswanadha +* Created by: genheaders.pl, a perl script written by Ram Viswanadha * * Contains data for commenting out APIs. * Gets included by umachine.h @@ -23,27 +23,27 @@ #ifdef U_HIDE_DEPRECATED_API -#define LEUnicode_3_4 LEUnicode_DEPRECATED_API_DO_NOT_USE -#define UBRK_TITLE_3_4 UBRK_TITLE_DEPRECATED_API_DO_NOT_USE -#define ucol_getContractions_3_4 ucol_getContractions_DEPRECATED_API_DO_NOT_USE -#define ucol_getLocale_3_4 ucol_getLocale_DEPRECATED_API_DO_NOT_USE -#define ULOC_REQUESTED_LOCALE_3_4 ULOC_REQUESTED_LOCALE_DEPRECATED_API_DO_NOT_USE -#define RES_NONE_3_4 RES_NONE_DEPRECATED_API_DO_NOT_USE -#define RES_STRING_3_4 RES_STRING_DEPRECATED_API_DO_NOT_USE -#define RES_BINARY_3_4 RES_BINARY_DEPRECATED_API_DO_NOT_USE -#define RES_TABLE_3_4 RES_TABLE_DEPRECATED_API_DO_NOT_USE -#define RES_ALIAS_3_4 RES_ALIAS_DEPRECATED_API_DO_NOT_USE -#define RES_INT_3_4 RES_INT_DEPRECATED_API_DO_NOT_USE -#define RES_ARRAY_3_4 RES_ARRAY_DEPRECATED_API_DO_NOT_USE -#define RES_INT_VECTOR_3_4 RES_INT_VECTOR_DEPRECATED_API_DO_NOT_USE -#define RES_RESERVED_3_4 RES_RESERVED_DEPRECATED_API_DO_NOT_USE -#define ures_countArrayItems_3_4 ures_countArrayItems_DEPRECATED_API_DO_NOT_USE -#define ures_getVersionNumber_3_4 ures_getVersionNumber_DEPRECATED_API_DO_NOT_USE -#define ures_getLocale_3_4 ures_getLocale_DEPRECATED_API_DO_NOT_USE -#define utrans_open_3_4 utrans_open_DEPRECATED_API_DO_NOT_USE -#define utrans_getID_3_4 utrans_getID_DEPRECATED_API_DO_NOT_USE -#define utrans_unregister_3_4 utrans_unregister_DEPRECATED_API_DO_NOT_USE -#define utrans_getAvailableID_3_4 utrans_getAvailableID_DEPRECATED_API_DO_NOT_USE +# if U_DISABLE_RENAMING +# define ucol_getContractions ucol_getContractions_DEPRECATED_API_DO_NOT_USE +# define ucol_getLocale ucol_getLocale_DEPRECATED_API_DO_NOT_USE +# define ures_countArrayItems ures_countArrayItems_DEPRECATED_API_DO_NOT_USE +# define ures_getLocale ures_getLocale_DEPRECATED_API_DO_NOT_USE +# define ures_getVersionNumber ures_getVersionNumber_DEPRECATED_API_DO_NOT_USE +# define utrans_getAvailableID utrans_getAvailableID_DEPRECATED_API_DO_NOT_USE +# define utrans_getID utrans_getID_DEPRECATED_API_DO_NOT_USE +# define utrans_open utrans_open_DEPRECATED_API_DO_NOT_USE +# define utrans_unregister utrans_unregister_DEPRECATED_API_DO_NOT_USE +# else +# define ucol_getContractions_3_6 ucol_getContractions_DEPRECATED_API_DO_NOT_USE +# define ucol_getLocale_3_6 ucol_getLocale_DEPRECATED_API_DO_NOT_USE +# define ures_countArrayItems_3_6 ures_countArrayItems_DEPRECATED_API_DO_NOT_USE +# define ures_getLocale_3_6 ures_getLocale_DEPRECATED_API_DO_NOT_USE +# define ures_getVersionNumber_3_6 ures_getVersionNumber_DEPRECATED_API_DO_NOT_USE +# define utrans_getAvailableID_3_6 utrans_getAvailableID_DEPRECATED_API_DO_NOT_USE +# define utrans_getID_3_6 utrans_getID_DEPRECATED_API_DO_NOT_USE +# define utrans_open_3_6 utrans_open_DEPRECATED_API_DO_NOT_USE +# define utrans_unregister_3_6 utrans_unregister_DEPRECATED_API_DO_NOT_USE +# endif /* U_DISABLE_RENAMING */ #endif /* U_HIDE_DEPRECATED_API */ #endif /* UDEPRCTD_H */ diff --git a/Build/source/libs/icu-xetex/common/unicode/udraft.h b/Build/source/libs/icu-xetex/common/unicode/udraft.h index 180586289df..2c4150e108c 100644 --- a/Build/source/libs/icu-xetex/common/unicode/udraft.h +++ b/Build/source/libs/icu-xetex/common/unicode/udraft.h @@ -1,15 +1,15 @@ /* ******************************************************************************* -* Copyright (C) 2005, International Business Machines +* Copyright (C) 2004-2006, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * -* file name: udraft.h +* file name: * encoding: US-ASCII * tab size: 8 (not used) * indentation:4 * -* Created by: gendraft.pl, a perl script written by Ram Viswanadha +* Created by: genheaders.pl, a perl script written by Ram Viswanadha * * Contains data for commenting out APIs. * Gets included by umachine.h @@ -23,273 +23,239 @@ #ifdef U_HIDE_DRAFT_API -#define ubrk_setUText_3_4 ubrk_setUText_DRAFT_API_DO_NOT_USE -#define ubrk_getRuleStatusVec_3_4 ubrk_getRuleStatusVec_DRAFT_API_DO_NOT_USE -#define ubrk_getLocaleByType_3_4 ubrk_getLocaleByType_DRAFT_API_DO_NOT_USE -#define ucal_getLocaleByType_3_4 ucal_getLocaleByType_DRAFT_API_DO_NOT_USE -#define UCaseMap_3_4 UCaseMap_DRAFT_API_DO_NOT_USE -#define ucasemap_open_3_4 ucasemap_open_DRAFT_API_DO_NOT_USE -#define ucasemap_close_3_4 ucasemap_close_DRAFT_API_DO_NOT_USE -#define ucasemap_getLocale_3_4 ucasemap_getLocale_DRAFT_API_DO_NOT_USE -#define ucasemap_getOptions_3_4 ucasemap_getOptions_DRAFT_API_DO_NOT_USE -#define ucasemap_setLocale_3_4 ucasemap_setLocale_DRAFT_API_DO_NOT_USE -#define ucasemap_setOptions_3_4 ucasemap_setOptions_DRAFT_API_DO_NOT_USE -#define ucasemap_utf8ToLower_3_4 ucasemap_utf8ToLower_DRAFT_API_DO_NOT_USE -#define ucasemap_utf8ToUpper_3_4 ucasemap_utf8ToUpper_DRAFT_API_DO_NOT_USE -#define UCHAR_S_TERM_3_4 UCHAR_S_TERM_DRAFT_API_DO_NOT_USE -#define UCHAR_VARIATION_SELECTOR_3_4 UCHAR_VARIATION_SELECTOR_DRAFT_API_DO_NOT_USE -#define UCHAR_NFD_INERT_3_4 UCHAR_NFD_INERT_DRAFT_API_DO_NOT_USE -#define UCHAR_NFKD_INERT_3_4 UCHAR_NFKD_INERT_DRAFT_API_DO_NOT_USE -#define UCHAR_NFC_INERT_3_4 UCHAR_NFC_INERT_DRAFT_API_DO_NOT_USE -#define UCHAR_NFKC_INERT_3_4 UCHAR_NFKC_INERT_DRAFT_API_DO_NOT_USE -#define UCHAR_SEGMENT_STARTER_3_4 UCHAR_SEGMENT_STARTER_DRAFT_API_DO_NOT_USE -#define UCHAR_PATTERN_SYNTAX_3_4 UCHAR_PATTERN_SYNTAX_DRAFT_API_DO_NOT_USE -#define UCHAR_PATTERN_WHITE_SPACE_3_4 UCHAR_PATTERN_WHITE_SPACE_DRAFT_API_DO_NOT_USE -#define UCHAR_POSIX_ALNUM_3_4 UCHAR_POSIX_ALNUM_DRAFT_API_DO_NOT_USE -#define UCHAR_POSIX_BLANK_3_4 UCHAR_POSIX_BLANK_DRAFT_API_DO_NOT_USE -#define UCHAR_POSIX_GRAPH_3_4 UCHAR_POSIX_GRAPH_DRAFT_API_DO_NOT_USE -#define UCHAR_POSIX_PRINT_3_4 UCHAR_POSIX_PRINT_DRAFT_API_DO_NOT_USE -#define UCHAR_POSIX_XDIGIT_3_4 UCHAR_POSIX_XDIGIT_DRAFT_API_DO_NOT_USE -#define UCHAR_NFD_QUICK_CHECK_3_4 UCHAR_NFD_QUICK_CHECK_DRAFT_API_DO_NOT_USE -#define UCHAR_NFKD_QUICK_CHECK_3_4 UCHAR_NFKD_QUICK_CHECK_DRAFT_API_DO_NOT_USE -#define UCHAR_NFC_QUICK_CHECK_3_4 UCHAR_NFC_QUICK_CHECK_DRAFT_API_DO_NOT_USE -#define UCHAR_NFKC_QUICK_CHECK_3_4 UCHAR_NFKC_QUICK_CHECK_DRAFT_API_DO_NOT_USE -#define UCHAR_LEAD_CANONICAL_COMBINING_CLASS_3_4 UCHAR_LEAD_CANONICAL_COMBINING_CLASS_DRAFT_API_DO_NOT_USE -#define UCHAR_TRAIL_CANONICAL_COMBINING_CLASS_3_4 UCHAR_TRAIL_CANONICAL_COMBINING_CLASS_DRAFT_API_DO_NOT_USE -#define UCHAR_GRAPHEME_CLUSTER_BREAK_3_4 UCHAR_GRAPHEME_CLUSTER_BREAK_DRAFT_API_DO_NOT_USE -#define UCHAR_SENTENCE_BREAK_3_4 UCHAR_SENTENCE_BREAK_DRAFT_API_DO_NOT_USE -#define UCHAR_WORD_BREAK_3_4 UCHAR_WORD_BREAK_DRAFT_API_DO_NOT_USE -#define UGraphemeClusterBreak_3_4 UGraphemeClusterBreak_DRAFT_API_DO_NOT_USE -#define UWordBreakValues_3_4 UWordBreakValues_DRAFT_API_DO_NOT_USE -#define USentenceBreak_3_4 USentenceBreak_DRAFT_API_DO_NOT_USE -#define U_LB_INSEPARABLE_3_4 U_LB_INSEPARABLE_DRAFT_API_DO_NOT_USE -#define ucnv_fromUCountPending_3_4 ucnv_fromUCountPending_DRAFT_API_DO_NOT_USE -#define ucnv_toUCountPending_3_4 ucnv_toUCountPending_DRAFT_API_DO_NOT_USE -#define ucol_openFromShortString_3_4 ucol_openFromShortString_DRAFT_API_DO_NOT_USE -#define ucol_getContractionsAndExpansions_3_4 ucol_getContractionsAndExpansions_DRAFT_API_DO_NOT_USE -#define ucol_openAvailableLocales_3_4 ucol_openAvailableLocales_DRAFT_API_DO_NOT_USE -#define ucol_getKeywords_3_4 ucol_getKeywords_DRAFT_API_DO_NOT_USE -#define ucol_getKeywordValues_3_4 ucol_getKeywordValues_DRAFT_API_DO_NOT_USE -#define ucol_getFunctionalEquivalent_3_4 ucol_getFunctionalEquivalent_DRAFT_API_DO_NOT_USE -#define ucol_getShortDefinitionString_3_4 ucol_getShortDefinitionString_DRAFT_API_DO_NOT_USE -#define ucol_normalizeShortDefinitionString_3_4 ucol_normalizeShortDefinitionString_DRAFT_API_DO_NOT_USE -#define ucol_getLocaleByType_3_4 ucol_getLocaleByType_DRAFT_API_DO_NOT_USE -#define ucol_cloneBinary_3_4 ucol_cloneBinary_DRAFT_API_DO_NOT_USE -#define ucol_openBinary_3_4 ucol_openBinary_DRAFT_API_DO_NOT_USE -#define UCURR_ALL_3_4 UCURR_ALL_DRAFT_API_DO_NOT_USE -#define UCURR_COMMON_3_4 UCURR_COMMON_DRAFT_API_DO_NOT_USE -#define UCURR_UNCOMMON_3_4 UCURR_UNCOMMON_DRAFT_API_DO_NOT_USE -#define UCURR_DEPRECATED_3_4 UCURR_DEPRECATED_DRAFT_API_DO_NOT_USE -#define UCURR_NON_DEPRECATED_3_4 UCURR_NON_DEPRECATED_DRAFT_API_DO_NOT_USE -#define UCurrCurrencyType_3_4 UCurrCurrencyType_DRAFT_API_DO_NOT_USE -#define ucurr_getDefaultFractionDigits_3_4 ucurr_getDefaultFractionDigits_DRAFT_API_DO_NOT_USE -#define ucurr_getRoundingIncrement_3_4 ucurr_getRoundingIncrement_DRAFT_API_DO_NOT_USE -#define ucurr_openISOCurrencies_3_4 ucurr_openISOCurrencies_DRAFT_API_DO_NOT_USE -#define UDAT_ERA_FIELD_3_4 UDAT_ERA_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_YEAR_FIELD_3_4 UDAT_YEAR_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_MONTH_FIELD_3_4 UDAT_MONTH_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_DATE_FIELD_3_4 UDAT_DATE_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_HOUR_OF_DAY1_FIELD_3_4 UDAT_HOUR_OF_DAY1_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_HOUR_OF_DAY0_FIELD_3_4 UDAT_HOUR_OF_DAY0_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_MINUTE_FIELD_3_4 UDAT_MINUTE_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_SECOND_FIELD_3_4 UDAT_SECOND_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_FRACTIONAL_SECOND_FIELD_3_4 UDAT_FRACTIONAL_SECOND_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_DAY_OF_WEEK_FIELD_3_4 UDAT_DAY_OF_WEEK_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_DAY_OF_YEAR_FIELD_3_4 UDAT_DAY_OF_YEAR_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_DAY_OF_WEEK_IN_MONTH_FIELD_3_4 UDAT_DAY_OF_WEEK_IN_MONTH_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_WEEK_OF_YEAR_FIELD_3_4 UDAT_WEEK_OF_YEAR_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_WEEK_OF_MONTH_FIELD_3_4 UDAT_WEEK_OF_MONTH_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_AM_PM_FIELD_3_4 UDAT_AM_PM_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_HOUR1_FIELD_3_4 UDAT_HOUR1_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_HOUR0_FIELD_3_4 UDAT_HOUR0_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_TIMEZONE_FIELD_3_4 UDAT_TIMEZONE_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_YEAR_WOY_FIELD_3_4 UDAT_YEAR_WOY_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_DOW_LOCAL_FIELD_3_4 UDAT_DOW_LOCAL_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_EXTENDED_YEAR_FIELD_3_4 UDAT_EXTENDED_YEAR_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_JULIAN_DAY_FIELD_3_4 UDAT_JULIAN_DAY_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_MILLISECONDS_IN_DAY_FIELD_3_4 UDAT_MILLISECONDS_IN_DAY_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_TIMEZONE_RFC_FIELD_3_4 UDAT_TIMEZONE_RFC_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_TIMEZONE_GENERIC_FIELD_3_4 UDAT_TIMEZONE_GENERIC_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_STANDALONE_DAY_FIELD_3_4 UDAT_STANDALONE_DAY_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_STANDALONE_MONTH_FIELD_3_4 UDAT_STANDALONE_MONTH_FIELD_DRAFT_API_DO_NOT_USE -#define UDAT_FIELD_COUNT_3_4 UDAT_FIELD_COUNT_DRAFT_API_DO_NOT_USE -#define UDateFormatField_3_4 UDateFormatField_DRAFT_API_DO_NOT_USE -#define udat_getLocaleByType_3_4 udat_getLocaleByType_DRAFT_API_DO_NOT_USE -#define UDataFileAccess_3_4 UDataFileAccess_DRAFT_API_DO_NOT_USE -#define udata_setFileAccess_3_4 udata_setFileAccess_DRAFT_API_DO_NOT_USE -#define UAcceptResult_3_4 UAcceptResult_DRAFT_API_DO_NOT_USE -#define uloc_setKeywordValue_3_4 uloc_setKeywordValue_DRAFT_API_DO_NOT_USE -#define uloc_acceptLanguageFromHTTP_3_4 uloc_acceptLanguageFromHTTP_DRAFT_API_DO_NOT_USE -#define uloc_acceptLanguage_3_4 uloc_acceptLanguage_DRAFT_API_DO_NOT_USE -#define ULocaleData_3_4 ULocaleData_DRAFT_API_DO_NOT_USE -#define ULocaleDataExemplarSetType_3_4 ULocaleDataExemplarSetType_DRAFT_API_DO_NOT_USE -#define ULocaleDataDelimiterType_3_4 ULocaleDataDelimiterType_DRAFT_API_DO_NOT_USE -#define UMeasurementSystem_3_4 UMeasurementSystem_DRAFT_API_DO_NOT_USE -#define ulocdata_open_3_4 ulocdata_open_DRAFT_API_DO_NOT_USE -#define ulocdata_close_3_4 ulocdata_close_DRAFT_API_DO_NOT_USE -#define ulocdata_setNoSubstitute_3_4 ulocdata_setNoSubstitute_DRAFT_API_DO_NOT_USE -#define ulocdata_getNoSubstitute_3_4 ulocdata_getNoSubstitute_DRAFT_API_DO_NOT_USE -#define ulocdata_getExemplarSet_3_4 ulocdata_getExemplarSet_DRAFT_API_DO_NOT_USE -#define ulocdata_getDelimiter_3_4 ulocdata_getDelimiter_DRAFT_API_DO_NOT_USE -#define ulocdata_getMeasurementSystem_3_4 ulocdata_getMeasurementSystem_DRAFT_API_DO_NOT_USE -#define ulocdata_getPaperSize_3_4 ulocdata_getPaperSize_DRAFT_API_DO_NOT_USE -#define umsg_autoQuoteApostrophe_3_4 umsg_autoQuoteApostrophe_DRAFT_API_DO_NOT_USE -#define UNUM_PATTERN_DECIMAL_3_4 UNUM_PATTERN_DECIMAL_DRAFT_API_DO_NOT_USE -#define UNUM_ORDINAL_3_4 UNUM_ORDINAL_DRAFT_API_DO_NOT_USE -#define UNUM_DURATION_3_4 UNUM_DURATION_DRAFT_API_DO_NOT_USE -#define UNUM_PATTERN_RULEBASED_3_4 UNUM_PATTERN_RULEBASED_DRAFT_API_DO_NOT_USE -#define UNUM_SIGNIFICANT_DIGITS_USED_3_4 UNUM_SIGNIFICANT_DIGITS_USED_DRAFT_API_DO_NOT_USE -#define UNUM_MIN_SIGNIFICANT_DIGITS_3_4 UNUM_MIN_SIGNIFICANT_DIGITS_DRAFT_API_DO_NOT_USE -#define UNUM_MAX_SIGNIFICANT_DIGITS_3_4 UNUM_MAX_SIGNIFICANT_DIGITS_DRAFT_API_DO_NOT_USE -#define UNUM_LENIENT_PARSE_3_4 UNUM_LENIENT_PARSE_DRAFT_API_DO_NOT_USE -#define UNUM_DEFAULT_RULESET_3_4 UNUM_DEFAULT_RULESET_DRAFT_API_DO_NOT_USE -#define UNUM_PUBLIC_RULESETS_3_4 UNUM_PUBLIC_RULESETS_DRAFT_API_DO_NOT_USE -#define UNUM_SIGNIFICANT_DIGIT_SYMBOL_3_4 UNUM_SIGNIFICANT_DIGIT_SYMBOL_DRAFT_API_DO_NOT_USE -#define unum_formatDoubleCurrency_3_4 unum_formatDoubleCurrency_DRAFT_API_DO_NOT_USE -#define unum_parseDoubleCurrency_3_4 unum_parseDoubleCurrency_DRAFT_API_DO_NOT_USE -#define unum_getLocaleByType_3_4 unum_getLocaleByType_DRAFT_API_DO_NOT_USE -#define URegularExpression_3_4 URegularExpression_DRAFT_API_DO_NOT_USE -#define UREGEX_CANON_EQ_3_4 UREGEX_CANON_EQ_DRAFT_API_DO_NOT_USE -#define uregex_open_3_4 uregex_open_DRAFT_API_DO_NOT_USE -#define uregex_openC_3_4 uregex_openC_DRAFT_API_DO_NOT_USE -#define uregex_close_3_4 uregex_close_DRAFT_API_DO_NOT_USE -#define uregex_clone_3_4 uregex_clone_DRAFT_API_DO_NOT_USE -#define uregex_pattern_3_4 uregex_pattern_DRAFT_API_DO_NOT_USE -#define uregex_flags_3_4 uregex_flags_DRAFT_API_DO_NOT_USE -#define uregex_setText_3_4 uregex_setText_DRAFT_API_DO_NOT_USE -#define uregex_getText_3_4 uregex_getText_DRAFT_API_DO_NOT_USE -#define uregex_matches_3_4 uregex_matches_DRAFT_API_DO_NOT_USE -#define uregex_lookingAt_3_4 uregex_lookingAt_DRAFT_API_DO_NOT_USE -#define uregex_find_3_4 uregex_find_DRAFT_API_DO_NOT_USE -#define uregex_findNext_3_4 uregex_findNext_DRAFT_API_DO_NOT_USE -#define uregex_groupCount_3_4 uregex_groupCount_DRAFT_API_DO_NOT_USE -#define uregex_group_3_4 uregex_group_DRAFT_API_DO_NOT_USE -#define uregex_start_3_4 uregex_start_DRAFT_API_DO_NOT_USE -#define uregex_end_3_4 uregex_end_DRAFT_API_DO_NOT_USE -#define uregex_reset_3_4 uregex_reset_DRAFT_API_DO_NOT_USE -#define uregex_replaceAll_3_4 uregex_replaceAll_DRAFT_API_DO_NOT_USE -#define uregex_replaceFirst_3_4 uregex_replaceFirst_DRAFT_API_DO_NOT_USE -#define uregex_appendReplacement_3_4 uregex_appendReplacement_DRAFT_API_DO_NOT_USE -#define uregex_appendTail_3_4 uregex_appendTail_DRAFT_API_DO_NOT_USE -#define uregex_split_3_4 uregex_split_DRAFT_API_DO_NOT_USE -#define ures_getLocaleByType_3_4 ures_getLocaleByType_DRAFT_API_DO_NOT_USE -#define ures_openAvailableLocales_3_4 ures_openAvailableLocales_DRAFT_API_DO_NOT_USE -#define USCRIPT_KATAKANA_OR_HIRAGANA_3_4 USCRIPT_KATAKANA_OR_HIRAGANA_DRAFT_API_DO_NOT_USE -#define USET_ADD_CASE_MAPPINGS_3_4 USET_ADD_CASE_MAPPINGS_DRAFT_API_DO_NOT_USE -#define uset_set_3_4 uset_set_DRAFT_API_DO_NOT_USE -#define uset_applyIntPropertyValue_3_4 uset_applyIntPropertyValue_DRAFT_API_DO_NOT_USE -#define uset_applyPropertyAlias_3_4 uset_applyPropertyAlias_DRAFT_API_DO_NOT_USE -#define uset_resemblesPattern_3_4 uset_resemblesPattern_DRAFT_API_DO_NOT_USE -#define uset_addAllCodePoints_3_4 uset_addAllCodePoints_DRAFT_API_DO_NOT_USE -#define uset_removeAll_3_4 uset_removeAll_DRAFT_API_DO_NOT_USE -#define uset_retain_3_4 uset_retain_DRAFT_API_DO_NOT_USE -#define uset_retainAll_3_4 uset_retainAll_DRAFT_API_DO_NOT_USE -#define uset_compact_3_4 uset_compact_DRAFT_API_DO_NOT_USE -#define uset_complementAll_3_4 uset_complementAll_DRAFT_API_DO_NOT_USE -#define uset_indexOf_3_4 uset_indexOf_DRAFT_API_DO_NOT_USE -#define uset_charAt_3_4 uset_charAt_DRAFT_API_DO_NOT_USE -#define uset_containsAll_3_4 uset_containsAll_DRAFT_API_DO_NOT_USE -#define uset_containsAllCodePoints_3_4 uset_containsAllCodePoints_DRAFT_API_DO_NOT_USE -#define uset_containsNone_3_4 uset_containsNone_DRAFT_API_DO_NOT_USE -#define uset_containsSome_3_4 uset_containsSome_DRAFT_API_DO_NOT_USE -#define uset_equals_3_4 uset_equals_DRAFT_API_DO_NOT_USE -#define UFILE_3_4 UFILE_DRAFT_API_DO_NOT_USE -#define UFileDirection_3_4 UFileDirection_DRAFT_API_DO_NOT_USE -#define u_fopen_3_4 u_fopen_DRAFT_API_DO_NOT_USE -#define u_finit_3_4 u_finit_DRAFT_API_DO_NOT_USE -#define u_fstropen_3_4 u_fstropen_DRAFT_API_DO_NOT_USE -#define u_fclose_3_4 u_fclose_DRAFT_API_DO_NOT_USE -#define u_feof_3_4 u_feof_DRAFT_API_DO_NOT_USE -#define u_fflush_3_4 u_fflush_DRAFT_API_DO_NOT_USE -#define u_frewind_3_4 u_frewind_DRAFT_API_DO_NOT_USE -#define u_fgetfile_3_4 u_fgetfile_DRAFT_API_DO_NOT_USE -#define u_fgetlocale_3_4 u_fgetlocale_DRAFT_API_DO_NOT_USE -#define u_fsetlocale_3_4 u_fsetlocale_DRAFT_API_DO_NOT_USE -#define u_fgetcodepage_3_4 u_fgetcodepage_DRAFT_API_DO_NOT_USE -#define u_fsetcodepage_3_4 u_fsetcodepage_DRAFT_API_DO_NOT_USE -#define u_fgetConverter_3_4 u_fgetConverter_DRAFT_API_DO_NOT_USE -#define u_fprintf_3_4 u_fprintf_DRAFT_API_DO_NOT_USE -#define u_vfprintf_3_4 u_vfprintf_DRAFT_API_DO_NOT_USE -#define u_fprintf_u_3_4 u_fprintf_u_DRAFT_API_DO_NOT_USE -#define u_vfprintf_u_3_4 u_vfprintf_u_DRAFT_API_DO_NOT_USE -#define u_fputs_3_4 u_fputs_DRAFT_API_DO_NOT_USE -#define u_fputc_3_4 u_fputc_DRAFT_API_DO_NOT_USE -#define u_file_write_3_4 u_file_write_DRAFT_API_DO_NOT_USE -#define u_fscanf_3_4 u_fscanf_DRAFT_API_DO_NOT_USE -#define u_vfscanf_3_4 u_vfscanf_DRAFT_API_DO_NOT_USE -#define u_fscanf_u_3_4 u_fscanf_u_DRAFT_API_DO_NOT_USE -#define u_vfscanf_u_3_4 u_vfscanf_u_DRAFT_API_DO_NOT_USE -#define u_fgets_3_4 u_fgets_DRAFT_API_DO_NOT_USE -#define u_fgetc_3_4 u_fgetc_DRAFT_API_DO_NOT_USE -#define u_fgetcx_3_4 u_fgetcx_DRAFT_API_DO_NOT_USE -#define u_fungetc_3_4 u_fungetc_DRAFT_API_DO_NOT_USE -#define u_file_read_3_4 u_file_read_DRAFT_API_DO_NOT_USE -#define u_fsettransliterator_3_4 u_fsettransliterator_DRAFT_API_DO_NOT_USE -#define u_sprintf_3_4 u_sprintf_DRAFT_API_DO_NOT_USE -#define u_snprintf_3_4 u_snprintf_DRAFT_API_DO_NOT_USE -#define u_vsprintf_3_4 u_vsprintf_DRAFT_API_DO_NOT_USE -#define u_vsnprintf_3_4 u_vsnprintf_DRAFT_API_DO_NOT_USE -#define u_sprintf_u_3_4 u_sprintf_u_DRAFT_API_DO_NOT_USE -#define u_snprintf_u_3_4 u_snprintf_u_DRAFT_API_DO_NOT_USE -#define u_vsprintf_u_3_4 u_vsprintf_u_DRAFT_API_DO_NOT_USE -#define u_vsnprintf_u_3_4 u_vsnprintf_u_DRAFT_API_DO_NOT_USE -#define u_sscanf_3_4 u_sscanf_DRAFT_API_DO_NOT_USE -#define u_vsscanf_3_4 u_vsscanf_DRAFT_API_DO_NOT_USE -#define u_sscanf_u_3_4 u_sscanf_u_DRAFT_API_DO_NOT_USE -#define u_vsscanf_u_3_4 u_vsscanf_u_DRAFT_API_DO_NOT_USE -#define UText_3_4 UText_DRAFT_API_DO_NOT_USE -#define UTextChunk_3_4 UTextChunk_DRAFT_API_DO_NOT_USE -#define UTextClone_3_4 UTextClone_DRAFT_API_DO_NOT_USE -#define UTextNativeLength_3_4 UTextNativeLength_DRAFT_API_DO_NOT_USE -#define UTextAccess_3_4 UTextAccess_DRAFT_API_DO_NOT_USE -#define UTextExtract_3_4 UTextExtract_DRAFT_API_DO_NOT_USE -#define UTextReplace_3_4 UTextReplace_DRAFT_API_DO_NOT_USE -#define UTextCopy_3_4 UTextCopy_DRAFT_API_DO_NOT_USE -#define UTextMapOffsetToNative_3_4 UTextMapOffsetToNative_DRAFT_API_DO_NOT_USE -#define UTextMapNativeIndexToUTF16_3_4 UTextMapNativeIndexToUTF16_DRAFT_API_DO_NOT_USE -#define UTextClose_3_4 UTextClose_DRAFT_API_DO_NOT_USE -#define utext_close_3_4 utext_close_DRAFT_API_DO_NOT_USE -#define utext_openUTF8_3_4 utext_openUTF8_DRAFT_API_DO_NOT_USE -#define utext_openUChars_3_4 utext_openUChars_DRAFT_API_DO_NOT_USE -#define utext_clone_3_4 utext_clone_DRAFT_API_DO_NOT_USE -#define utext_nativeLength_3_4 utext_nativeLength_DRAFT_API_DO_NOT_USE -#define utext_isLengthExpensive_3_4 utext_isLengthExpensive_DRAFT_API_DO_NOT_USE -#define utext_char32At_3_4 utext_char32At_DRAFT_API_DO_NOT_USE -#define utext_current32_3_4 utext_current32_DRAFT_API_DO_NOT_USE -#define utext_next32From_3_4 utext_next32From_DRAFT_API_DO_NOT_USE -#define utext_previous32From_3_4 utext_previous32From_DRAFT_API_DO_NOT_USE -#define utext_getNativeIndex_3_4 utext_getNativeIndex_DRAFT_API_DO_NOT_USE -#define utext_setNativeIndex_3_4 utext_setNativeIndex_DRAFT_API_DO_NOT_USE -#define utext_moveIndex32_3_4 utext_moveIndex32_DRAFT_API_DO_NOT_USE -#define utext_extract_3_4 utext_extract_DRAFT_API_DO_NOT_USE -#define utext_isWritable_3_4 utext_isWritable_DRAFT_API_DO_NOT_USE -#define utext_hasMetaData_3_4 utext_hasMetaData_DRAFT_API_DO_NOT_USE -#define utext_replace_3_4 utext_replace_DRAFT_API_DO_NOT_USE -#define utext_copy_3_4 utext_copy_DRAFT_API_DO_NOT_USE -#define utext_setup_3_4 utext_setup_DRAFT_API_DO_NOT_USE -#define UDTS_JAVA_TIME_3_4 UDTS_JAVA_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_UNIX_TIME_3_4 UDTS_UNIX_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_ICU4C_TIME_3_4 UDTS_ICU4C_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_WINDOWS_FILE_TIME_3_4 UDTS_WINDOWS_FILE_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_DOTNET_DATE_TIME_3_4 UDTS_DOTNET_DATE_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_MAC_OLD_TIME_3_4 UDTS_MAC_OLD_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_MAC_TIME_3_4 UDTS_MAC_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_EXCEL_TIME_3_4 UDTS_EXCEL_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_DB2_TIME_3_4 UDTS_DB2_TIME_DRAFT_API_DO_NOT_USE -#define UDTS_MAX_SCALE_3_4 UDTS_MAX_SCALE_DRAFT_API_DO_NOT_USE -#define UDateTimeScale_3_4 UDateTimeScale_DRAFT_API_DO_NOT_USE -#define UTSV_UNITS_VALUE_3_4 UTSV_UNITS_VALUE_DRAFT_API_DO_NOT_USE -#define UTSV_EPOCH_OFFSET_VALUE_3_4 UTSV_EPOCH_OFFSET_VALUE_DRAFT_API_DO_NOT_USE -#define UTSV_FROM_MIN_VALUE_3_4 UTSV_FROM_MIN_VALUE_DRAFT_API_DO_NOT_USE -#define UTSV_FROM_MAX_VALUE_3_4 UTSV_FROM_MAX_VALUE_DRAFT_API_DO_NOT_USE -#define UTSV_TO_MIN_VALUE_3_4 UTSV_TO_MIN_VALUE_DRAFT_API_DO_NOT_USE -#define UTSV_TO_MAX_VALUE_3_4 UTSV_TO_MAX_VALUE_DRAFT_API_DO_NOT_USE -#define UTSV_EPOCH_OFFSET_PLUS_1_VALUE_3_4 UTSV_EPOCH_OFFSET_PLUS_1_VALUE_DRAFT_API_DO_NOT_USE -#define UTSV_EPOCH_OFFSET_MINUS_1_VALUE_3_4 UTSV_EPOCH_OFFSET_MINUS_1_VALUE_DRAFT_API_DO_NOT_USE -#define UTimeScaleValue_3_4 UTimeScaleValue_DRAFT_API_DO_NOT_USE -#define utmscale_getTimeScaleValue_3_4 utmscale_getTimeScaleValue_DRAFT_API_DO_NOT_USE -#define utmscale_fromInt64_3_4 utmscale_fromInt64_DRAFT_API_DO_NOT_USE -#define utmscale_toInt64_3_4 utmscale_toInt64_DRAFT_API_DO_NOT_USE +# if U_DISABLE_RENAMING +# define u_fclose u_fclose_DRAFT_API_DO_NOT_USE +# define u_feof u_feof_DRAFT_API_DO_NOT_USE +# define u_fflush u_fflush_DRAFT_API_DO_NOT_USE +# define u_fgetConverter u_fgetConverter_DRAFT_API_DO_NOT_USE +# define u_fgetc u_fgetc_DRAFT_API_DO_NOT_USE +# define u_fgetcodepage u_fgetcodepage_DRAFT_API_DO_NOT_USE +# define u_fgetcx u_fgetcx_DRAFT_API_DO_NOT_USE +# define u_fgetfile u_fgetfile_DRAFT_API_DO_NOT_USE +# define u_fgetlocale u_fgetlocale_DRAFT_API_DO_NOT_USE +# define u_fgets u_fgets_DRAFT_API_DO_NOT_USE +# define u_file_read u_file_read_DRAFT_API_DO_NOT_USE +# define u_file_write u_file_write_DRAFT_API_DO_NOT_USE +# define u_finit u_finit_DRAFT_API_DO_NOT_USE +# define u_fopen u_fopen_DRAFT_API_DO_NOT_USE +# define u_fprintf u_fprintf_DRAFT_API_DO_NOT_USE +# define u_fprintf_u u_fprintf_u_DRAFT_API_DO_NOT_USE +# define u_fputc u_fputc_DRAFT_API_DO_NOT_USE +# define u_fputs u_fputs_DRAFT_API_DO_NOT_USE +# define u_frewind u_frewind_DRAFT_API_DO_NOT_USE +# define u_fscanf u_fscanf_DRAFT_API_DO_NOT_USE +# define u_fscanf_u u_fscanf_u_DRAFT_API_DO_NOT_USE +# define u_fsetcodepage u_fsetcodepage_DRAFT_API_DO_NOT_USE +# define u_fsetlocale u_fsetlocale_DRAFT_API_DO_NOT_USE +# define u_fsettransliterator u_fsettransliterator_DRAFT_API_DO_NOT_USE +# define u_fstropen u_fstropen_DRAFT_API_DO_NOT_USE +# define u_fungetc u_fungetc_DRAFT_API_DO_NOT_USE +# define u_snprintf u_snprintf_DRAFT_API_DO_NOT_USE +# define u_snprintf_u u_snprintf_u_DRAFT_API_DO_NOT_USE +# define u_sprintf u_sprintf_DRAFT_API_DO_NOT_USE +# define u_sprintf_u u_sprintf_u_DRAFT_API_DO_NOT_USE +# define u_sscanf u_sscanf_DRAFT_API_DO_NOT_USE +# define u_sscanf_u u_sscanf_u_DRAFT_API_DO_NOT_USE +# define u_strFromUTF8Lenient u_strFromUTF8Lenient_DRAFT_API_DO_NOT_USE +# define u_strFromUTF8WithSub u_strFromUTF8WithSub_DRAFT_API_DO_NOT_USE +# define u_strToUTF8WithSub u_strToUTF8WithSub_DRAFT_API_DO_NOT_USE +# define u_vfprintf u_vfprintf_DRAFT_API_DO_NOT_USE +# define u_vfprintf_u u_vfprintf_u_DRAFT_API_DO_NOT_USE +# define u_vfscanf u_vfscanf_DRAFT_API_DO_NOT_USE +# define u_vfscanf_u u_vfscanf_u_DRAFT_API_DO_NOT_USE +# define u_vsnprintf u_vsnprintf_DRAFT_API_DO_NOT_USE +# define u_vsnprintf_u u_vsnprintf_u_DRAFT_API_DO_NOT_USE +# define u_vsprintf u_vsprintf_DRAFT_API_DO_NOT_USE +# define u_vsprintf_u u_vsprintf_u_DRAFT_API_DO_NOT_USE +# define u_vsscanf u_vsscanf_DRAFT_API_DO_NOT_USE +# define u_vsscanf_u u_vsscanf_u_DRAFT_API_DO_NOT_USE +# define ubidi_getProcessedLength ubidi_getProcessedLength_DRAFT_API_DO_NOT_USE +# define ubidi_getReorderingMode ubidi_getReorderingMode_DRAFT_API_DO_NOT_USE +# define ubidi_getReorderingOptions ubidi_getReorderingOptions_DRAFT_API_DO_NOT_USE +# define ubidi_getResultLength ubidi_getResultLength_DRAFT_API_DO_NOT_USE +# define ubidi_setReorderingMode ubidi_setReorderingMode_DRAFT_API_DO_NOT_USE +# define ubidi_setReorderingOptions ubidi_setReorderingOptions_DRAFT_API_DO_NOT_USE +# define ubrk_setUText ubrk_setUText_DRAFT_API_DO_NOT_USE +# define ucal_getGregorianChange ucal_getGregorianChange_DRAFT_API_DO_NOT_USE +# define ucal_setGregorianChange ucal_setGregorianChange_DRAFT_API_DO_NOT_USE +# define ucasemap_close ucasemap_close_DRAFT_API_DO_NOT_USE +# define ucasemap_getLocale ucasemap_getLocale_DRAFT_API_DO_NOT_USE +# define ucasemap_getOptions ucasemap_getOptions_DRAFT_API_DO_NOT_USE +# define ucasemap_open ucasemap_open_DRAFT_API_DO_NOT_USE +# define ucasemap_setLocale ucasemap_setLocale_DRAFT_API_DO_NOT_USE +# define ucasemap_setOptions ucasemap_setOptions_DRAFT_API_DO_NOT_USE +# define ucasemap_utf8ToLower ucasemap_utf8ToLower_DRAFT_API_DO_NOT_USE +# define ucasemap_utf8ToUpper ucasemap_utf8ToUpper_DRAFT_API_DO_NOT_USE +# define ucnv_fromUCountPending ucnv_fromUCountPending_DRAFT_API_DO_NOT_USE +# define ucnv_setSubstString ucnv_setSubstString_DRAFT_API_DO_NOT_USE +# define ucnv_toUCountPending ucnv_toUCountPending_DRAFT_API_DO_NOT_USE +# define ucol_getContractionsAndExpansions ucol_getContractionsAndExpansions_DRAFT_API_DO_NOT_USE +# define ucsdet_close ucsdet_close_DRAFT_API_DO_NOT_USE +# define ucsdet_detect ucsdet_detect_DRAFT_API_DO_NOT_USE +# define ucsdet_detectAll ucsdet_detectAll_DRAFT_API_DO_NOT_USE +# define ucsdet_enableInputFilter ucsdet_enableInputFilter_DRAFT_API_DO_NOT_USE +# define ucsdet_getAllDetectableCharsets ucsdet_getAllDetectableCharsets_DRAFT_API_DO_NOT_USE +# define ucsdet_getConfidence ucsdet_getConfidence_DRAFT_API_DO_NOT_USE +# define ucsdet_getLanguage ucsdet_getLanguage_DRAFT_API_DO_NOT_USE +# define ucsdet_getName ucsdet_getName_DRAFT_API_DO_NOT_USE +# define ucsdet_getUChars ucsdet_getUChars_DRAFT_API_DO_NOT_USE +# define ucsdet_isInputFilterEnabled ucsdet_isInputFilterEnabled_DRAFT_API_DO_NOT_USE +# define ucsdet_open ucsdet_open_DRAFT_API_DO_NOT_USE +# define ucsdet_setDeclaredEncoding ucsdet_setDeclaredEncoding_DRAFT_API_DO_NOT_USE +# define ucsdet_setText ucsdet_setText_DRAFT_API_DO_NOT_USE +# define udata_setFileAccess udata_setFileAccess_DRAFT_API_DO_NOT_USE +# define ulocdata_close ulocdata_close_DRAFT_API_DO_NOT_USE +# define ulocdata_getDelimiter ulocdata_getDelimiter_DRAFT_API_DO_NOT_USE +# define ulocdata_getExemplarSet ulocdata_getExemplarSet_DRAFT_API_DO_NOT_USE +# define ulocdata_getNoSubstitute ulocdata_getNoSubstitute_DRAFT_API_DO_NOT_USE +# define ulocdata_open ulocdata_open_DRAFT_API_DO_NOT_USE +# define ulocdata_setNoSubstitute ulocdata_setNoSubstitute_DRAFT_API_DO_NOT_USE +# define ures_getUTF8String ures_getUTF8String_DRAFT_API_DO_NOT_USE +# define ures_getUTF8StringByIndex ures_getUTF8StringByIndex_DRAFT_API_DO_NOT_USE +# define ures_getUTF8StringByKey ures_getUTF8StringByKey_DRAFT_API_DO_NOT_USE +# define uset_addAllCodePoints uset_addAllCodePoints_DRAFT_API_DO_NOT_USE +# define uset_containsAllCodePoints uset_containsAllCodePoints_DRAFT_API_DO_NOT_USE +# define utext_char32At utext_char32At_DRAFT_API_DO_NOT_USE +# define utext_clone utext_clone_DRAFT_API_DO_NOT_USE +# define utext_close utext_close_DRAFT_API_DO_NOT_USE +# define utext_copy utext_copy_DRAFT_API_DO_NOT_USE +# define utext_current32 utext_current32_DRAFT_API_DO_NOT_USE +# define utext_equals utext_equals_DRAFT_API_DO_NOT_USE +# define utext_extract utext_extract_DRAFT_API_DO_NOT_USE +# define utext_freeze utext_freeze_DRAFT_API_DO_NOT_USE +# define utext_getNativeIndex utext_getNativeIndex_DRAFT_API_DO_NOT_USE +# define utext_getPreviousNativeIndex utext_getPreviousNativeIndex_DRAFT_API_DO_NOT_USE +# define utext_hasMetaData utext_hasMetaData_DRAFT_API_DO_NOT_USE +# define utext_isLengthExpensive utext_isLengthExpensive_DRAFT_API_DO_NOT_USE +# define utext_isWritable utext_isWritable_DRAFT_API_DO_NOT_USE +# define utext_moveIndex32 utext_moveIndex32_DRAFT_API_DO_NOT_USE +# define utext_nativeLength utext_nativeLength_DRAFT_API_DO_NOT_USE +# define utext_next32 utext_next32_DRAFT_API_DO_NOT_USE +# define utext_next32From utext_next32From_DRAFT_API_DO_NOT_USE +# define utext_openUChars utext_openUChars_DRAFT_API_DO_NOT_USE +# define utext_openUTF8 utext_openUTF8_DRAFT_API_DO_NOT_USE +# define utext_previous32 utext_previous32_DRAFT_API_DO_NOT_USE +# define utext_previous32From utext_previous32From_DRAFT_API_DO_NOT_USE +# define utext_replace utext_replace_DRAFT_API_DO_NOT_USE +# define utext_setNativeIndex utext_setNativeIndex_DRAFT_API_DO_NOT_USE +# define utext_setup utext_setup_DRAFT_API_DO_NOT_USE +# else +# define u_fclose_3_6 u_fclose_DRAFT_API_DO_NOT_USE +# define u_feof_3_6 u_feof_DRAFT_API_DO_NOT_USE +# define u_fflush_3_6 u_fflush_DRAFT_API_DO_NOT_USE +# define u_fgetConverter_3_6 u_fgetConverter_DRAFT_API_DO_NOT_USE +# define u_fgetc_3_6 u_fgetc_DRAFT_API_DO_NOT_USE +# define u_fgetcodepage_3_6 u_fgetcodepage_DRAFT_API_DO_NOT_USE +# define u_fgetcx_3_6 u_fgetcx_DRAFT_API_DO_NOT_USE +# define u_fgetfile_3_6 u_fgetfile_DRAFT_API_DO_NOT_USE +# define u_fgetlocale_3_6 u_fgetlocale_DRAFT_API_DO_NOT_USE +# define u_fgets_3_6 u_fgets_DRAFT_API_DO_NOT_USE +# define u_file_read_3_6 u_file_read_DRAFT_API_DO_NOT_USE +# define u_file_write_3_6 u_file_write_DRAFT_API_DO_NOT_USE +# define u_finit_3_6 u_finit_DRAFT_API_DO_NOT_USE +# define u_fopen_3_6 u_fopen_DRAFT_API_DO_NOT_USE +# define u_fprintf_3_6 u_fprintf_DRAFT_API_DO_NOT_USE +# define u_fprintf_u_3_6 u_fprintf_u_DRAFT_API_DO_NOT_USE +# define u_fputc_3_6 u_fputc_DRAFT_API_DO_NOT_USE +# define u_fputs_3_6 u_fputs_DRAFT_API_DO_NOT_USE +# define u_frewind_3_6 u_frewind_DRAFT_API_DO_NOT_USE +# define u_fscanf_3_6 u_fscanf_DRAFT_API_DO_NOT_USE +# define u_fscanf_u_3_6 u_fscanf_u_DRAFT_API_DO_NOT_USE +# define u_fsetcodepage_3_6 u_fsetcodepage_DRAFT_API_DO_NOT_USE +# define u_fsetlocale_3_6 u_fsetlocale_DRAFT_API_DO_NOT_USE +# define u_fsettransliterator_3_6 u_fsettransliterator_DRAFT_API_DO_NOT_USE +# define u_fstropen_3_6 u_fstropen_DRAFT_API_DO_NOT_USE +# define u_fungetc_3_6 u_fungetc_DRAFT_API_DO_NOT_USE +# define u_snprintf_3_6 u_snprintf_DRAFT_API_DO_NOT_USE +# define u_snprintf_u_3_6 u_snprintf_u_DRAFT_API_DO_NOT_USE +# define u_sprintf_3_6 u_sprintf_DRAFT_API_DO_NOT_USE +# define u_sprintf_u_3_6 u_sprintf_u_DRAFT_API_DO_NOT_USE +# define u_sscanf_3_6 u_sscanf_DRAFT_API_DO_NOT_USE +# define u_sscanf_u_3_6 u_sscanf_u_DRAFT_API_DO_NOT_USE +# define u_strFromUTF8Lenient_3_6 u_strFromUTF8Lenient_DRAFT_API_DO_NOT_USE +# define u_strFromUTF8WithSub_3_6 u_strFromUTF8WithSub_DRAFT_API_DO_NOT_USE +# define u_strToUTF8WithSub_3_6 u_strToUTF8WithSub_DRAFT_API_DO_NOT_USE +# define u_vfprintf_3_6 u_vfprintf_DRAFT_API_DO_NOT_USE +# define u_vfprintf_u_3_6 u_vfprintf_u_DRAFT_API_DO_NOT_USE +# define u_vfscanf_3_6 u_vfscanf_DRAFT_API_DO_NOT_USE +# define u_vfscanf_u_3_6 u_vfscanf_u_DRAFT_API_DO_NOT_USE +# define u_vsnprintf_3_6 u_vsnprintf_DRAFT_API_DO_NOT_USE +# define u_vsnprintf_u_3_6 u_vsnprintf_u_DRAFT_API_DO_NOT_USE +# define u_vsprintf_3_6 u_vsprintf_DRAFT_API_DO_NOT_USE +# define u_vsprintf_u_3_6 u_vsprintf_u_DRAFT_API_DO_NOT_USE +# define u_vsscanf_3_6 u_vsscanf_DRAFT_API_DO_NOT_USE +# define u_vsscanf_u_3_6 u_vsscanf_u_DRAFT_API_DO_NOT_USE +# define ubidi_getProcessedLength_3_6 ubidi_getProcessedLength_DRAFT_API_DO_NOT_USE +# define ubidi_getReorderingMode_3_6 ubidi_getReorderingMode_DRAFT_API_DO_NOT_USE +# define ubidi_getReorderingOptions_3_6 ubidi_getReorderingOptions_DRAFT_API_DO_NOT_USE +# define ubidi_getResultLength_3_6 ubidi_getResultLength_DRAFT_API_DO_NOT_USE +# define ubidi_setReorderingMode_3_6 ubidi_setReorderingMode_DRAFT_API_DO_NOT_USE +# define ubidi_setReorderingOptions_3_6 ubidi_setReorderingOptions_DRAFT_API_DO_NOT_USE +# define ubrk_setUText_3_6 ubrk_setUText_DRAFT_API_DO_NOT_USE +# define ucal_getGregorianChange_3_6 ucal_getGregorianChange_DRAFT_API_DO_NOT_USE +# define ucal_setGregorianChange_3_6 ucal_setGregorianChange_DRAFT_API_DO_NOT_USE +# define ucasemap_close_3_6 ucasemap_close_DRAFT_API_DO_NOT_USE +# define ucasemap_getLocale_3_6 ucasemap_getLocale_DRAFT_API_DO_NOT_USE +# define ucasemap_getOptions_3_6 ucasemap_getOptions_DRAFT_API_DO_NOT_USE +# define ucasemap_open_3_6 ucasemap_open_DRAFT_API_DO_NOT_USE +# define ucasemap_setLocale_3_6 ucasemap_setLocale_DRAFT_API_DO_NOT_USE +# define ucasemap_setOptions_3_6 ucasemap_setOptions_DRAFT_API_DO_NOT_USE +# define ucasemap_utf8ToLower_3_6 ucasemap_utf8ToLower_DRAFT_API_DO_NOT_USE +# define ucasemap_utf8ToUpper_3_6 ucasemap_utf8ToUpper_DRAFT_API_DO_NOT_USE +# define ucnv_fromUCountPending_3_6 ucnv_fromUCountPending_DRAFT_API_DO_NOT_USE +# define ucnv_setSubstString_3_6 ucnv_setSubstString_DRAFT_API_DO_NOT_USE +# define ucnv_toUCountPending_3_6 ucnv_toUCountPending_DRAFT_API_DO_NOT_USE +# define ucol_getContractionsAndExpansions_3_6 ucol_getContractionsAndExpansions_DRAFT_API_DO_NOT_USE +# define ucsdet_close_3_6 ucsdet_close_DRAFT_API_DO_NOT_USE +# define ucsdet_detectAll_3_6 ucsdet_detectAll_DRAFT_API_DO_NOT_USE +# define ucsdet_detect_3_6 ucsdet_detect_DRAFT_API_DO_NOT_USE +# define ucsdet_enableInputFilter_3_6 ucsdet_enableInputFilter_DRAFT_API_DO_NOT_USE +# define ucsdet_getAllDetectableCharsets_3_6 ucsdet_getAllDetectableCharsets_DRAFT_API_DO_NOT_USE +# define ucsdet_getConfidence_3_6 ucsdet_getConfidence_DRAFT_API_DO_NOT_USE +# define ucsdet_getLanguage_3_6 ucsdet_getLanguage_DRAFT_API_DO_NOT_USE +# define ucsdet_getName_3_6 ucsdet_getName_DRAFT_API_DO_NOT_USE +# define ucsdet_getUChars_3_6 ucsdet_getUChars_DRAFT_API_DO_NOT_USE +# define ucsdet_isInputFilterEnabled_3_6 ucsdet_isInputFilterEnabled_DRAFT_API_DO_NOT_USE +# define ucsdet_open_3_6 ucsdet_open_DRAFT_API_DO_NOT_USE +# define ucsdet_setDeclaredEncoding_3_6 ucsdet_setDeclaredEncoding_DRAFT_API_DO_NOT_USE +# define ucsdet_setText_3_6 ucsdet_setText_DRAFT_API_DO_NOT_USE +# define udata_setFileAccess_3_6 udata_setFileAccess_DRAFT_API_DO_NOT_USE +# define ulocdata_close_3_6 ulocdata_close_DRAFT_API_DO_NOT_USE +# define ulocdata_getDelimiter_3_6 ulocdata_getDelimiter_DRAFT_API_DO_NOT_USE +# define ulocdata_getExemplarSet_3_6 ulocdata_getExemplarSet_DRAFT_API_DO_NOT_USE +# define ulocdata_getNoSubstitute_3_6 ulocdata_getNoSubstitute_DRAFT_API_DO_NOT_USE +# define ulocdata_open_3_6 ulocdata_open_DRAFT_API_DO_NOT_USE +# define ulocdata_setNoSubstitute_3_6 ulocdata_setNoSubstitute_DRAFT_API_DO_NOT_USE +# define ures_getUTF8StringByIndex_3_6 ures_getUTF8StringByIndex_DRAFT_API_DO_NOT_USE +# define ures_getUTF8StringByKey_3_6 ures_getUTF8StringByKey_DRAFT_API_DO_NOT_USE +# define ures_getUTF8String_3_6 ures_getUTF8String_DRAFT_API_DO_NOT_USE +# define uset_addAllCodePoints_3_6 uset_addAllCodePoints_DRAFT_API_DO_NOT_USE +# define uset_containsAllCodePoints_3_6 uset_containsAllCodePoints_DRAFT_API_DO_NOT_USE +# define utext_char32At_3_6 utext_char32At_DRAFT_API_DO_NOT_USE +# define utext_clone_3_6 utext_clone_DRAFT_API_DO_NOT_USE +# define utext_close_3_6 utext_close_DRAFT_API_DO_NOT_USE +# define utext_copy_3_6 utext_copy_DRAFT_API_DO_NOT_USE +# define utext_current32_3_6 utext_current32_DRAFT_API_DO_NOT_USE +# define utext_equals_3_6 utext_equals_DRAFT_API_DO_NOT_USE +# define utext_extract_3_6 utext_extract_DRAFT_API_DO_NOT_USE +# define utext_freeze_3_6 utext_freeze_DRAFT_API_DO_NOT_USE +# define utext_getNativeIndex_3_6 utext_getNativeIndex_DRAFT_API_DO_NOT_USE +# define utext_getPreviousNativeIndex_3_6 utext_getPreviousNativeIndex_DRAFT_API_DO_NOT_USE +# define utext_hasMetaData_3_6 utext_hasMetaData_DRAFT_API_DO_NOT_USE +# define utext_isLengthExpensive_3_6 utext_isLengthExpensive_DRAFT_API_DO_NOT_USE +# define utext_isWritable_3_6 utext_isWritable_DRAFT_API_DO_NOT_USE +# define utext_moveIndex32_3_6 utext_moveIndex32_DRAFT_API_DO_NOT_USE +# define utext_nativeLength_3_6 utext_nativeLength_DRAFT_API_DO_NOT_USE +# define utext_next32From_3_6 utext_next32From_DRAFT_API_DO_NOT_USE +# define utext_next32_3_6 utext_next32_DRAFT_API_DO_NOT_USE +# define utext_openUChars_3_6 utext_openUChars_DRAFT_API_DO_NOT_USE +# define utext_openUTF8_3_6 utext_openUTF8_DRAFT_API_DO_NOT_USE +# define utext_previous32From_3_6 utext_previous32From_DRAFT_API_DO_NOT_USE +# define utext_previous32_3_6 utext_previous32_DRAFT_API_DO_NOT_USE +# define utext_replace_3_6 utext_replace_DRAFT_API_DO_NOT_USE +# define utext_setNativeIndex_3_6 utext_setNativeIndex_DRAFT_API_DO_NOT_USE +# define utext_setup_3_6 utext_setup_DRAFT_API_DO_NOT_USE +# endif /* U_DISABLE_RENAMING */ #endif /* U_HIDE_DRAFT_API */ #endif /* UDRAFT_H */ diff --git a/Build/source/libs/icu-xetex/common/unicode/uidna.h b/Build/source/libs/icu-xetex/common/unicode/uidna.h index 00e2d3808b9..1371b9ed3cd 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uidna.h +++ b/Build/source/libs/icu-xetex/common/unicode/uidna.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * - * Copyright (C) 2003-2005, International Business Machines + * Copyright (C) 2003-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -49,8 +49,6 @@ * */ -#ifndef U_HIDE_DRAFT_API - /** * Option to prohibit processing of unassigned codepoints in the input and * do not check if the input conforms to STD-3 ASCII rules. @@ -74,8 +72,6 @@ */ #define UIDNA_USE_STD3_RULES 0x0002 -#endif /*U_HIDE_DRAFT_API*/ - /** * This function implements the ToASCII operation as defined in the IDNA RFC. * This operation is done on <b>single labels</b> before sending it to something that expects diff --git a/Build/source/libs/icu-xetex/common/unicode/uintrnal.h b/Build/source/libs/icu-xetex/common/unicode/uintrnal.h new file mode 100644 index 00000000000..79630d1d172 --- /dev/null +++ b/Build/source/libs/icu-xetex/common/unicode/uintrnal.h @@ -0,0 +1,68 @@ +/* +******************************************************************************* +* Copyright (C) 2004-2006, International Business Machines +* Corporation and others. All Rights Reserved. +******************************************************************************* +* +* file name: +* encoding: US-ASCII +* tab size: 8 (not used) +* indentation:4 +* +* Created by: genheaders.pl, a perl script written by Ram Viswanadha +* +* Contains data for commenting out APIs. +* Gets included by umachine.h +* +* THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW WHAT +* YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN! +*/ + +#ifndef UINTRNAL_H +#define UINTRNAL_H + +#ifdef U_HIDE_INTERNAL_API + +# if U_DISABLE_RENAMING +# define RegexPatternDump RegexPatternDump_INTERNAL_API_DO_NOT_USE +# define ucol_collatorToIdentifier ucol_collatorToIdentifier_INTERNAL_API_DO_NOT_USE +# define ucol_equals ucol_equals_INTERNAL_API_DO_NOT_USE +# define ucol_forgetUCA ucol_forgetUCA_INTERNAL_API_DO_NOT_USE +# define ucol_getAttributeOrDefault ucol_getAttributeOrDefault_INTERNAL_API_DO_NOT_USE +# define ucol_getUnsafeSet ucol_getUnsafeSet_INTERNAL_API_DO_NOT_USE +# define ucol_identifierToShortString ucol_identifierToShortString_INTERNAL_API_DO_NOT_USE +# define ucol_openFromIdentifier ucol_openFromIdentifier_INTERNAL_API_DO_NOT_USE +# define ucol_prepareShortStringOpen ucol_prepareShortStringOpen_INTERNAL_API_DO_NOT_USE +# define ucol_shortStringToIdentifier ucol_shortStringToIdentifier_INTERNAL_API_DO_NOT_USE +# define uprv_getDefaultCodepage uprv_getDefaultCodepage_INTERNAL_API_DO_NOT_USE +# define uprv_getDefaultLocaleID uprv_getDefaultLocaleID_INTERNAL_API_DO_NOT_USE +# define ures_openFillIn ures_openFillIn_INTERNAL_API_DO_NOT_USE +# define utf8_appendCharSafeBody utf8_appendCharSafeBody_INTERNAL_API_DO_NOT_USE +# define utf8_back1SafeBody utf8_back1SafeBody_INTERNAL_API_DO_NOT_USE +# define utf8_countTrailBytes utf8_countTrailBytes_INTERNAL_API_DO_NOT_USE +# define utf8_nextCharSafeBody utf8_nextCharSafeBody_INTERNAL_API_DO_NOT_USE +# define utf8_prevCharSafeBody utf8_prevCharSafeBody_INTERNAL_API_DO_NOT_USE +# else +# define RegexPatternDump_3_6 RegexPatternDump_INTERNAL_API_DO_NOT_USE +# define ucol_collatorToIdentifier_3_6 ucol_collatorToIdentifier_INTERNAL_API_DO_NOT_USE +# define ucol_equals_3_6 ucol_equals_INTERNAL_API_DO_NOT_USE +# define ucol_forgetUCA_3_6 ucol_forgetUCA_INTERNAL_API_DO_NOT_USE +# define ucol_getAttributeOrDefault_3_6 ucol_getAttributeOrDefault_INTERNAL_API_DO_NOT_USE +# define ucol_getUnsafeSet_3_6 ucol_getUnsafeSet_INTERNAL_API_DO_NOT_USE +# define ucol_identifierToShortString_3_6 ucol_identifierToShortString_INTERNAL_API_DO_NOT_USE +# define ucol_openFromIdentifier_3_6 ucol_openFromIdentifier_INTERNAL_API_DO_NOT_USE +# define ucol_prepareShortStringOpen_3_6 ucol_prepareShortStringOpen_INTERNAL_API_DO_NOT_USE +# define ucol_shortStringToIdentifier_3_6 ucol_shortStringToIdentifier_INTERNAL_API_DO_NOT_USE +# define uprv_getDefaultCodepage_3_6 uprv_getDefaultCodepage_INTERNAL_API_DO_NOT_USE +# define uprv_getDefaultLocaleID_3_6 uprv_getDefaultLocaleID_INTERNAL_API_DO_NOT_USE +# define ures_openFillIn_3_6 ures_openFillIn_INTERNAL_API_DO_NOT_USE +# define utf8_appendCharSafeBody_3_6 utf8_appendCharSafeBody_INTERNAL_API_DO_NOT_USE +# define utf8_back1SafeBody_3_6 utf8_back1SafeBody_INTERNAL_API_DO_NOT_USE +# define utf8_countTrailBytes_3_6 utf8_countTrailBytes_INTERNAL_API_DO_NOT_USE +# define utf8_nextCharSafeBody_3_6 utf8_nextCharSafeBody_INTERNAL_API_DO_NOT_USE +# define utf8_prevCharSafeBody_3_6 utf8_prevCharSafeBody_INTERNAL_API_DO_NOT_USE +# endif /* U_DISABLE_RENAMING */ + +#endif /* U_HIDE_INTERNAL_API */ +#endif /* UINTRNAL_H */ + diff --git a/Build/source/libs/icu-xetex/common/unicode/uloc.h b/Build/source/libs/icu-xetex/common/unicode/uloc.h index c16fcc8e2a9..61b70607866 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uloc.h +++ b/Build/source/libs/icu-xetex/common/unicode/uloc.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -261,25 +261,22 @@ */ #define ULOC_FULLNAME_CAPACITY 56 - -#ifndef U_HIDE_DRAFT_API - /** * Useful constant for the maximum size of the script part of a locale ID * (including the terminating NULL). - * @internal ICU 2.8 + * @stable ICU 2.8 */ #define ULOC_SCRIPT_CAPACITY 6 /** * Useful constant for the maximum size of keywords in a locale - * @internal ICU 2.8 + * @stable ICU 2.8 */ #define ULOC_KEYWORDS_CAPACITY 50 /** - * Useful constant for the maximum size of keywords in a locale - * @internal ICU 2.8 + * Useful constant for the maximum SIZE of keywords in a locale + * @stable ICU 2.8 */ #define ULOC_KEYWORD_AND_VALUES_CAPACITY 100 @@ -300,8 +297,6 @@ */ #define ULOC_KEYWORD_ITEM_SEPARATOR ';' -#endif /*U_HIDE_DRAFT_API*/ - /** * Constants for *_getLocale() * Allow user to select whether she wants information on @@ -333,7 +328,7 @@ typedef enum { ULOC_REQUESTED_LOCALE = 2, #endif /* U_HIDE_DEPRECATED_API */ - ULOC_DATA_LOCALE_TYPE_LIMIT + ULOC_DATA_LOCALE_TYPE_LIMIT = 3 } ULocDataLocaleType ; @@ -420,7 +415,7 @@ uloc_getScript(const char* localeID, * than countryCapacity, the returned country code will be truncated. * @stable ICU 2.0 */ -U_DRAFT int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 uloc_getCountry(const char* localeID, char* country, int32_t countryCapacity, @@ -852,9 +847,9 @@ uloc_getKeywordValue(const char* localeID, * @param status containing error code - buffer not big enough. * @return the length needed for the buffer * @see uloc_getKeywordValue - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 uloc_setKeywordValue(const char* keywordName, const char* keywordValue, char* buffer, int32_t bufferCapacity, @@ -864,7 +859,7 @@ uloc_setKeywordValue(const char* keywordName, * enums for the 'outResult' parameter return value * @see uloc_acceptLanguageFromHTTP * @see uloc_acceptLanguage - * @draft ICU 3.2 + * @stable ICU 3.2 */ typedef enum { ULOC_ACCEPT_FAILED = 0, /* No exact match was found. */ @@ -885,9 +880,9 @@ typedef enum { * @param availableLocales - list of available locales to match * @param status Error status, may be BUFFER_OVERFLOW_ERROR * @return length needed for the locale. - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult *outResult, const char *httpAcceptLanguage, @@ -905,9 +900,9 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, * @param availableLocales - list of available locales to match * @param status Error status, may be BUFFER_OVERFLOW_ERROR * @return length needed for the locale. - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 uloc_acceptLanguage(char *result, int32_t resultAvailable, UAcceptResult *outResult, const char **acceptList, int32_t acceptListCount, diff --git a/Build/source/libs/icu-xetex/common/unicode/umachine.h b/Build/source/libs/icu-xetex/common/unicode/umachine.h index a38e3f04dac..60419cda808 100644 --- a/Build/source/libs/icu-xetex/common/unicode/umachine.h +++ b/Build/source/libs/icu-xetex/common/unicode/umachine.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 1999-2005, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -354,6 +354,8 @@ typedef int32_t UChar32; /* the OS in use. */ /*==========================================================================*/ +#ifndef U_HIDE_INTERNAL_API + /** * \def U_ALIGN_CODE * This is used to align code fragments to a specific byte boundary. @@ -364,6 +366,8 @@ typedef int32_t UChar32; # define U_ALIGN_CODE(n) #endif +#endif /* U_HIDE_INTERNAL_API */ + #ifndef U_INLINE # ifdef XP_CPLUSPLUS # define U_INLINE inline diff --git a/Build/source/libs/icu-xetex/common/unicode/umisc.h b/Build/source/libs/icu-xetex/common/unicode/umisc.h index d47fa3837d2..d85451fc767 100644 --- a/Build/source/libs/icu-xetex/common/unicode/umisc.h +++ b/Build/source/libs/icu-xetex/common/unicode/umisc.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1999-2003, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * file name: umisc.h @@ -23,7 +23,9 @@ * * This file contains miscellaneous definitions for the C APIs. */ - + +U_CDECL_BEGIN + /** A struct representing a range of text containing a specific field * @stable ICU 2.0 */ @@ -45,4 +47,14 @@ typedef struct UFieldPosition { int32_t endIndex; } UFieldPosition; +#if !UCONFIG_NO_SERVICE +/** + * Opaque type returned by registerInstance, registerFactory and unregister for service registration. + * @stable ICU 2.6 + */ +typedef const void* URegistryKey; +#endif + +U_CDECL_END + #endif diff --git a/Build/source/libs/icu-xetex/common/unicode/unifilt.h b/Build/source/libs/icu-xetex/common/unicode/unifilt.h index 7ab46657dc1..5bf1ba4e4fd 100644 --- a/Build/source/libs/icu-xetex/common/unicode/unifilt.h +++ b/Build/source/libs/icu-xetex/common/unicode/unifilt.h @@ -1,5 +1,6 @@ /* -* Copyright (C) 1999-2005, International Business Machines Corporation and others. +********************************************************************** +* Copyright (C) 1999-2006, International Business Machines Corporation and others. * All Rights Reserved. ********************************************************************** * Date Name Description @@ -25,7 +26,7 @@ U_NAMESPACE_BEGIN * characters outside the range contextStart..contextLimit-1. This * allows explicit matching by rules and UnicodeSets of text outside a * defined range. - * @draft ICU 3.0 + * @stable ICU 3.0 */ #define U_ETHER ((UChar)0xFFFF) diff --git a/Build/source/libs/icu-xetex/common/unicode/uniset.h b/Build/source/libs/icu-xetex/common/unicode/uniset.h index d44725f14bd..1e48aa8365e 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uniset.h +++ b/Build/source/libs/icu-xetex/common/unicode/uniset.h @@ -1,6 +1,6 @@ /* *************************************************************************** -* Copyright (C) 1999-2005, International Business Machines Corporation +* Copyright (C) 1999-2006, International Business Machines Corporation * and others. All Rights Reserved. *************************************************************************** * Date Name Description @@ -363,16 +363,6 @@ public: const SymbolTable* symbols, UErrorCode& status); -#ifdef U_USE_UNICODESET_DEPRECATES - /** - * Obsolete: Constructs a set from the given Unicode character category. - * @param category an integer indicating the character category as - * defined in uchar.h. - * @obsolete ICU 2.6. Use a pattern with the category instead since this API will be removed in that release. - */ - UnicodeSet(int8_t category, UErrorCode& status); -#endif - /** * Constructs a set that is identical to the given UnicodeSet. * @stable ICU 2.0 diff --git a/Build/source/libs/icu-xetex/common/unicode/unistr.h b/Build/source/libs/icu-xetex/common/unicode/unistr.h index cce66c8ae69..fe1722bdc97 100644 --- a/Build/source/libs/icu-xetex/common/unicode/unistr.h +++ b/Build/source/libs/icu-xetex/common/unicode/unistr.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1998-2005, International Business Machines +* Copyright (C) 1998-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -42,7 +42,9 @@ class StringThreadTest; #endif #ifndef USTRING_H -/* see ustring.h */ +/** + * \ingroup ustring_ustrlen + */ U_STABLE int32_t U_EXPORT2 u_strlen(const UChar *s); #endif @@ -63,7 +65,7 @@ class BreakIterator; // unicode/brkiter.h * therefore recommended over ones taking a charset name string * (where the empty string "" indicates invariant-character conversion). * - * @draft ICU 3.2 + * @stable ICU 3.2 */ #define US_INV UnicodeString::kInvariant @@ -192,12 +194,12 @@ public: * Use the macro US_INV instead of the full qualification for this value. * * @see US_INV - * @draft ICU 3.2 + * @stable ICU 3.2 */ enum EInvariant { /** * @see EInvariant - * @draft ICU 3.2 + * @stable ICU 3.2 */ kInvariant }; @@ -1438,7 +1440,7 @@ public: * @param targetCapacity the length of the target buffer * @param inv Signature-distinguishing paramater, use US_INV. * @return the output string length, not including the terminating NUL - * @draft ICU 3.2 + * @stable ICU 3.2 */ int32_t extract(int32_t start, int32_t startLength, @@ -2817,7 +2819,7 @@ public: * @param inv Signature-distinguishing paramater, use US_INV. * * @see US_INV - * @draft ICU 3.2 + * @stable ICU 3.2 */ UnicodeString(const char *src, int32_t length, enum EInvariant inv); @@ -3201,32 +3203,6 @@ private: U_COMMON_API UnicodeString U_EXPORT2 operator+ (const UnicodeString &s1, const UnicodeString &s2); -U_NAMESPACE_END - -// inline implementations -------------------------------------------------- *** - -//======================================== -// Array copying -//======================================== -/** - * Copy an array of UnicodeString OBJECTS (not pointers). - * @internal - */ -inline void -uprv_arrayCopy(const U_NAMESPACE_QUALIFIER UnicodeString *src, U_NAMESPACE_QUALIFIER UnicodeString *dst, int32_t count) -{ while(count-- > 0) *dst++ = *src++; } - -/** - * Copy an array of UnicodeString OBJECTS (not pointers). - * @internal - */ -inline void -uprv_arrayCopy(const U_NAMESPACE_QUALIFIER UnicodeString *src, int32_t srcStart, - U_NAMESPACE_QUALIFIER UnicodeString *dst, int32_t dstStart, int32_t count) -{ uprv_arrayCopy(src+srcStart, dst+dstStart, count); } - -U_NAMESPACE_BEGIN - //======================================== // Inline members //======================================== @@ -4005,23 +3981,6 @@ UnicodeString::setTo(UChar32 srcChar) } inline UnicodeString& -UnicodeString::operator+= (UChar ch) -{ return doReplace(fLength, 0, &ch, 0, 1); } - -inline UnicodeString& -UnicodeString::operator+= (UChar32 ch) { - UChar buffer[U16_MAX_LENGTH]; - int32_t _length = 0; - UBool isError = FALSE; - U16_APPEND(buffer, _length, U16_MAX_LENGTH, ch, isError); - return doReplace(fLength, 0, buffer, 0, _length); -} - -inline UnicodeString& -UnicodeString::operator+= (const UnicodeString& srcText) -{ return doReplace(fLength, 0, srcText, 0, srcText.fLength); } - -inline UnicodeString& UnicodeString::append(const UnicodeString& srcText, int32_t srcStart, int32_t srcLength) @@ -4056,6 +4015,19 @@ UnicodeString::append(UChar32 srcChar) { } inline UnicodeString& +UnicodeString::operator+= (UChar ch) +{ return doReplace(fLength, 0, &ch, 0, 1); } + +inline UnicodeString& +UnicodeString::operator+= (UChar32 ch) { + return append(ch); +} + +inline UnicodeString& +UnicodeString::operator+= (const UnicodeString& srcText) +{ return doReplace(fLength, 0, srcText, 0, srcText.fLength); } + +inline UnicodeString& UnicodeString::insert(int32_t start, const UnicodeString& srcText, int32_t srcStart, @@ -4107,12 +4079,11 @@ inline UnicodeString& UnicodeString::remove(int32_t start, int32_t _length) { - if(start <= 0 && _length == INT32_MAX) { - // remove(guaranteed everything) of a bogus string makes the string empty and non-bogus - return remove(); - } else { + if(start <= 0 && _length == INT32_MAX) { + // remove(guaranteed everything) of a bogus string makes the string empty and non-bogus + return remove(); + } return doReplace(start, _length, NULL, 0, 0); - } } inline UnicodeString& diff --git a/Build/source/libs/icu-xetex/common/unicode/uobject.h b/Build/source/libs/icu-xetex/common/unicode/uobject.h index 4dfc247bdd6..877359942de 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uobject.h +++ b/Build/source/libs/icu-xetex/common/unicode/uobject.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * -* Copyright (C) 2002-2005, International Business Machines +* Copyright (C) 2002-2006, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** @@ -49,6 +49,8 @@ U_NAMESPACE_BEGIN #define U_HAVE_PLACEMENT_NEW 1 #endif + +#ifndef U_HIDE_DRAFT_API /** U_HAVE_DEBUG_LOCATION_NEW - Define this to define the MFC debug * version of the operator new. * @@ -57,7 +59,7 @@ U_NAMESPACE_BEGIN #ifndef U_HAVE_DEBUG_LOCATION_NEW #define U_HAVE_DEBUG_LOCATION_NEW 0 #endif - +#endif /*U_HIDE_DRAFT_API*/ /** * UMemory is the common ICU base class. diff --git a/Build/source/libs/icu-xetex/common/unicode/uobslete.h b/Build/source/libs/icu-xetex/common/unicode/uobslete.h index c898f7f1790..e4f160f4fb9 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uobslete.h +++ b/Build/source/libs/icu-xetex/common/unicode/uobslete.h @@ -1,15 +1,15 @@ /* ******************************************************************************* -* Copyright (C) 2005, International Business Machines +* Copyright (C) 2004-2006, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * -* file name: uobslete.h +* file name: * encoding: US-ASCII * tab size: 8 (not used) * indentation:4 * -* Created by: gendraft.pl, a perl script written by Ram Viswanadha +* Created by: genheaders.pl, a perl script written by Ram Viswanadha * * Contains data for commenting out APIs. * Gets included by umachine.h @@ -23,6 +23,9 @@ #ifdef U_HIDE_OBSOLETE_API +# if U_DISABLE_RENAMING +# else +# endif /* U_DISABLE_RENAMING */ #endif /* U_HIDE_OBSOLETE_API */ #endif /* UOBSLETE_H */ diff --git a/Build/source/libs/icu-xetex/common/unicode/urename.h b/Build/source/libs/icu-xetex/common/unicode/urename.h index 0d9b7a37ad7..b95800200bd 100644 --- a/Build/source/libs/icu-xetex/common/unicode/urename.h +++ b/Build/source/libs/icu-xetex/common/unicode/urename.h @@ -1,6 +1,6 @@ /* ******************************************************************************* -* Copyright (C) 2002-2005, International Business Machines +* Copyright (C) 2002-2006, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * @@ -29,1501 +29,1572 @@ /* C exports renaming data */ -#define T_CString_int64ToString T_CString_int64ToString_3_4 -#define T_CString_integerToString T_CString_integerToString_3_4 -#define T_CString_stricmp T_CString_stricmp_3_4 -#define T_CString_stringToInteger T_CString_stringToInteger_3_4 -#define T_CString_strnicmp T_CString_strnicmp_3_4 -#define T_CString_toLowerCase T_CString_toLowerCase_3_4 -#define T_CString_toUpperCase T_CString_toUpperCase_3_4 -#define T_FileStream_close T_FileStream_close_3_4 -#define T_FileStream_eof T_FileStream_eof_3_4 -#define T_FileStream_error T_FileStream_error_3_4 -#define T_FileStream_file_exists T_FileStream_file_exists_3_4 -#define T_FileStream_getc T_FileStream_getc_3_4 -#define T_FileStream_open T_FileStream_open_3_4 -#define T_FileStream_peek T_FileStream_peek_3_4 -#define T_FileStream_putc T_FileStream_putc_3_4 -#define T_FileStream_read T_FileStream_read_3_4 -#define T_FileStream_readLine T_FileStream_readLine_3_4 -#define T_FileStream_remove T_FileStream_remove_3_4 -#define T_FileStream_rewind T_FileStream_rewind_3_4 -#define T_FileStream_size T_FileStream_size_3_4 -#define T_FileStream_stderr T_FileStream_stderr_3_4 -#define T_FileStream_stdin T_FileStream_stdin_3_4 -#define T_FileStream_stdout T_FileStream_stdout_3_4 -#define T_FileStream_ungetc T_FileStream_ungetc_3_4 -#define T_FileStream_write T_FileStream_write_3_4 -#define T_FileStream_writeLine T_FileStream_writeLine_3_4 -#define UCNV_FROM_U_CALLBACK_ESCAPE UCNV_FROM_U_CALLBACK_ESCAPE_3_4 -#define UCNV_FROM_U_CALLBACK_SKIP UCNV_FROM_U_CALLBACK_SKIP_3_4 -#define UCNV_FROM_U_CALLBACK_STOP UCNV_FROM_U_CALLBACK_STOP_3_4 -#define UCNV_FROM_U_CALLBACK_SUBSTITUTE UCNV_FROM_U_CALLBACK_SUBSTITUTE_3_4 -#define UCNV_TO_U_CALLBACK_ESCAPE UCNV_TO_U_CALLBACK_ESCAPE_3_4 -#define UCNV_TO_U_CALLBACK_SKIP UCNV_TO_U_CALLBACK_SKIP_3_4 -#define UCNV_TO_U_CALLBACK_STOP UCNV_TO_U_CALLBACK_STOP_3_4 -#define UCNV_TO_U_CALLBACK_SUBSTITUTE UCNV_TO_U_CALLBACK_SUBSTITUTE_3_4 -#define UDataMemory_createNewInstance UDataMemory_createNewInstance_3_4 -#define UDataMemory_init UDataMemory_init_3_4 -#define UDataMemory_isLoaded UDataMemory_isLoaded_3_4 -#define UDataMemory_normalizeDataPointer UDataMemory_normalizeDataPointer_3_4 -#define UDataMemory_setData UDataMemory_setData_3_4 -#define UDatamemory_assign UDatamemory_assign_3_4 -#define _ASCIIData _ASCIIData_3_4 -#define _Bocu1Data _Bocu1Data_3_4 -#define _CESU8Data _CESU8Data_3_4 -#define _HZData _HZData_3_4 -#define _IMAPData _IMAPData_3_4 -#define _ISCIIData _ISCIIData_3_4 -#define _ISO2022Data _ISO2022Data_3_4 -#define _LMBCSData1 _LMBCSData1_3_4 -#define _LMBCSData11 _LMBCSData11_3_4 -#define _LMBCSData16 _LMBCSData16_3_4 -#define _LMBCSData17 _LMBCSData17_3_4 -#define _LMBCSData18 _LMBCSData18_3_4 -#define _LMBCSData19 _LMBCSData19_3_4 -#define _LMBCSData2 _LMBCSData2_3_4 -#define _LMBCSData3 _LMBCSData3_3_4 -#define _LMBCSData4 _LMBCSData4_3_4 -#define _LMBCSData5 _LMBCSData5_3_4 -#define _LMBCSData6 _LMBCSData6_3_4 -#define _LMBCSData8 _LMBCSData8_3_4 -#define _Latin1Data _Latin1Data_3_4 -#define _MBCSData _MBCSData_3_4 -#define _SCSUData _SCSUData_3_4 -#define _UTF16BEData _UTF16BEData_3_4 -#define _UTF16Data _UTF16Data_3_4 -#define _UTF16LEData _UTF16LEData_3_4 -#define _UTF32BEData _UTF32BEData_3_4 -#define _UTF32Data _UTF32Data_3_4 -#define _UTF32LEData _UTF32LEData_3_4 -#define _UTF7Data _UTF7Data_3_4 -#define _UTF8Data _UTF8Data_3_4 -#define cmemory_cleanup cmemory_cleanup_3_4 -#define cmemory_inUse cmemory_inUse_3_4 -#define locale_getKeywords locale_getKeywords_3_4 -#define locale_get_default locale_get_default_3_4 -#define locale_set_default locale_set_default_3_4 -#define res_countArrayItems res_countArrayItems_3_4 -#define res_findResource res_findResource_3_4 -#define res_getAlias res_getAlias_3_4 -#define res_getArrayItem res_getArrayItem_3_4 -#define res_getBinary res_getBinary_3_4 -#define res_getIntVector res_getIntVector_3_4 -#define res_getResource res_getResource_3_4 -#define res_getString res_getString_3_4 -#define res_getTableItemByIndex res_getTableItemByIndex_3_4 -#define res_getTableItemByKey res_getTableItemByKey_3_4 -#define res_load res_load_3_4 -#define res_unload res_unload_3_4 -#define transliterator_cleanup transliterator_cleanup_3_4 -#define u_UCharsToChars u_UCharsToChars_3_4 -#define u_austrcpy u_austrcpy_3_4 -#define u_austrncpy u_austrncpy_3_4 -#define u_catclose u_catclose_3_4 -#define u_catgets u_catgets_3_4 -#define u_catopen u_catopen_3_4 -#define u_charAge u_charAge_3_4 -#define u_charDigitValue u_charDigitValue_3_4 -#define u_charDirection u_charDirection_3_4 -#define u_charFromName u_charFromName_3_4 -#define u_charMirror u_charMirror_3_4 -#define u_charName u_charName_3_4 -#define u_charType u_charType_3_4 -#define u_charsToUChars u_charsToUChars_3_4 -#define u_cleanup u_cleanup_3_4 -#define u_countChar32 u_countChar32_3_4 -#define u_digit u_digit_3_4 -#define u_enumCharNames u_enumCharNames_3_4 -#define u_enumCharTypes u_enumCharTypes_3_4 -#define u_errorName u_errorName_3_4 -#define u_fclose u_fclose_3_4 -#define u_feof u_feof_3_4 -#define u_fflush u_fflush_3_4 -#define u_fgetConverter u_fgetConverter_3_4 -#define u_fgetc u_fgetc_3_4 -#define u_fgetcodepage u_fgetcodepage_3_4 -#define u_fgetcx u_fgetcx_3_4 -#define u_fgetfile u_fgetfile_3_4 -#define u_fgetlocale u_fgetlocale_3_4 -#define u_fgets u_fgets_3_4 -#define u_file_read u_file_read_3_4 -#define u_file_write u_file_write_3_4 -#define u_file_write_flush u_file_write_flush_3_4 -#define u_finit u_finit_3_4 -#define u_foldCase u_foldCase_3_4 -#define u_fopen u_fopen_3_4 -#define u_forDigit u_forDigit_3_4 -#define u_formatMessage u_formatMessage_3_4 -#define u_formatMessageWithError u_formatMessageWithError_3_4 -#define u_fprintf u_fprintf_3_4 -#define u_fprintf_u u_fprintf_u_3_4 -#define u_fputc u_fputc_3_4 -#define u_fputs u_fputs_3_4 -#define u_frewind u_frewind_3_4 -#define u_fscanf u_fscanf_3_4 -#define u_fscanf_u u_fscanf_u_3_4 -#define u_fsetcodepage u_fsetcodepage_3_4 -#define u_fsetlocale u_fsetlocale_3_4 -#define u_fsettransliterator u_fsettransliterator_3_4 -#define u_fstropen u_fstropen_3_4 -#define u_fungetc u_fungetc_3_4 -#define u_getCombiningClass u_getCombiningClass_3_4 -#define u_getDataDirectory u_getDataDirectory_3_4 -#define u_getDefaultConverter u_getDefaultConverter_3_4 -#define u_getFC_NFKC_Closure u_getFC_NFKC_Closure_3_4 -#define u_getISOComment u_getISOComment_3_4 -#define u_getIntPropertyMaxValue u_getIntPropertyMaxValue_3_4 -#define u_getIntPropertyMinValue u_getIntPropertyMinValue_3_4 -#define u_getIntPropertyValue u_getIntPropertyValue_3_4 -#define u_getNumericValue u_getNumericValue_3_4 -#define u_getPropertyEnum u_getPropertyEnum_3_4 -#define u_getPropertyName u_getPropertyName_3_4 -#define u_getPropertyValueEnum u_getPropertyValueEnum_3_4 -#define u_getPropertyValueName u_getPropertyValueName_3_4 -#define u_getUnicodeProperties u_getUnicodeProperties_3_4 -#define u_getUnicodeVersion u_getUnicodeVersion_3_4 -#define u_getVersion u_getVersion_3_4 -#define u_growBufferFromStatic u_growBufferFromStatic_3_4 -#define u_hasBinaryProperty u_hasBinaryProperty_3_4 -#define u_init u_init_3_4 -#define u_isIDIgnorable u_isIDIgnorable_3_4 -#define u_isIDPart u_isIDPart_3_4 -#define u_isIDStart u_isIDStart_3_4 -#define u_isISOControl u_isISOControl_3_4 -#define u_isJavaIDPart u_isJavaIDPart_3_4 -#define u_isJavaIDStart u_isJavaIDStart_3_4 -#define u_isJavaSpaceChar u_isJavaSpaceChar_3_4 -#define u_isMirrored u_isMirrored_3_4 -#define u_isUAlphabetic u_isUAlphabetic_3_4 -#define u_isULowercase u_isULowercase_3_4 -#define u_isUUppercase u_isUUppercase_3_4 -#define u_isUWhiteSpace u_isUWhiteSpace_3_4 -#define u_isWhitespace u_isWhitespace_3_4 -#define u_isalnum u_isalnum_3_4 -#define u_isalnumPOSIX u_isalnumPOSIX_3_4 -#define u_isalpha u_isalpha_3_4 -#define u_isbase u_isbase_3_4 -#define u_isblank u_isblank_3_4 -#define u_iscntrl u_iscntrl_3_4 -#define u_isdefined u_isdefined_3_4 -#define u_isdigit u_isdigit_3_4 -#define u_isgraph u_isgraph_3_4 -#define u_isgraphPOSIX u_isgraphPOSIX_3_4 -#define u_islower u_islower_3_4 -#define u_isprint u_isprint_3_4 -#define u_isprintPOSIX u_isprintPOSIX_3_4 -#define u_ispunct u_ispunct_3_4 -#define u_isspace u_isspace_3_4 -#define u_istitle u_istitle_3_4 -#define u_isupper u_isupper_3_4 -#define u_isxdigit u_isxdigit_3_4 -#define u_lengthOfIdenticalLevelRun u_lengthOfIdenticalLevelRun_3_4 -#define u_locbund_close u_locbund_close_3_4 -#define u_locbund_getNumberFormat u_locbund_getNumberFormat_3_4 -#define u_locbund_init u_locbund_init_3_4 -#define u_memcasecmp u_memcasecmp_3_4 -#define u_memchr u_memchr_3_4 -#define u_memchr32 u_memchr32_3_4 -#define u_memcmp u_memcmp_3_4 -#define u_memcmpCodePointOrder u_memcmpCodePointOrder_3_4 -#define u_memcpy u_memcpy_3_4 -#define u_memmove u_memmove_3_4 -#define u_memrchr u_memrchr_3_4 -#define u_memrchr32 u_memrchr32_3_4 -#define u_memset u_memset_3_4 -#define u_parseMessage u_parseMessage_3_4 -#define u_parseMessageWithError u_parseMessageWithError_3_4 -#define u_printf_parse u_printf_parse_3_4 -#define u_releaseDefaultConverter u_releaseDefaultConverter_3_4 -#define u_scanf_parse u_scanf_parse_3_4 -#define u_setAtomicIncDecFunctions u_setAtomicIncDecFunctions_3_4 -#define u_setDataDirectory u_setDataDirectory_3_4 -#define u_setMemoryFunctions u_setMemoryFunctions_3_4 -#define u_setMutexFunctions u_setMutexFunctions_3_4 -#define u_shapeArabic u_shapeArabic_3_4 -#define u_snprintf u_snprintf_3_4 -#define u_snprintf_u u_snprintf_u_3_4 -#define u_sprintf u_sprintf_3_4 -#define u_sprintf_u u_sprintf_u_3_4 -#define u_sscanf u_sscanf_3_4 -#define u_sscanf_u u_sscanf_u_3_4 -#define u_strCaseCompare u_strCaseCompare_3_4 -#define u_strCompare u_strCompare_3_4 -#define u_strCompareIter u_strCompareIter_3_4 -#define u_strFindFirst u_strFindFirst_3_4 -#define u_strFindLast u_strFindLast_3_4 -#define u_strFoldCase u_strFoldCase_3_4 -#define u_strFromPunycode u_strFromPunycode_3_4 -#define u_strFromUTF32 u_strFromUTF32_3_4 -#define u_strFromUTF8 u_strFromUTF8_3_4 -#define u_strFromWCS u_strFromWCS_3_4 -#define u_strHasMoreChar32Than u_strHasMoreChar32Than_3_4 -#define u_strToLower u_strToLower_3_4 -#define u_strToPunycode u_strToPunycode_3_4 -#define u_strToTitle u_strToTitle_3_4 -#define u_strToUTF32 u_strToUTF32_3_4 -#define u_strToUTF8 u_strToUTF8_3_4 -#define u_strToUpper u_strToUpper_3_4 -#define u_strToWCS u_strToWCS_3_4 -#define u_strcasecmp u_strcasecmp_3_4 -#define u_strcat u_strcat_3_4 -#define u_strchr u_strchr_3_4 -#define u_strchr32 u_strchr32_3_4 -#define u_strcmp u_strcmp_3_4 -#define u_strcmpCodePointOrder u_strcmpCodePointOrder_3_4 -#define u_strcmpFold u_strcmpFold_3_4 -#define u_strcpy u_strcpy_3_4 -#define u_strcspn u_strcspn_3_4 -#define u_strlen u_strlen_3_4 -#define u_strncasecmp u_strncasecmp_3_4 -#define u_strncat u_strncat_3_4 -#define u_strncmp u_strncmp_3_4 -#define u_strncmpCodePointOrder u_strncmpCodePointOrder_3_4 -#define u_strncpy u_strncpy_3_4 -#define u_strpbrk u_strpbrk_3_4 -#define u_strrchr u_strrchr_3_4 -#define u_strrchr32 u_strrchr32_3_4 -#define u_strrstr u_strrstr_3_4 -#define u_strspn u_strspn_3_4 -#define u_strstr u_strstr_3_4 -#define u_strtok_r u_strtok_r_3_4 -#define u_terminateChars u_terminateChars_3_4 -#define u_terminateUChar32s u_terminateUChar32s_3_4 -#define u_terminateUChars u_terminateUChars_3_4 -#define u_terminateWChars u_terminateWChars_3_4 -#define u_tolower u_tolower_3_4 -#define u_totitle u_totitle_3_4 -#define u_toupper u_toupper_3_4 -#define u_uastrcpy u_uastrcpy_3_4 -#define u_uastrncpy u_uastrncpy_3_4 -#define u_unescape u_unescape_3_4 -#define u_unescapeAt u_unescapeAt_3_4 -#define u_versionFromString u_versionFromString_3_4 -#define u_versionToString u_versionToString_3_4 -#define u_vformatMessage u_vformatMessage_3_4 -#define u_vformatMessageWithError u_vformatMessageWithError_3_4 -#define u_vfprintf u_vfprintf_3_4 -#define u_vfprintf_u u_vfprintf_u_3_4 -#define u_vfscanf u_vfscanf_3_4 -#define u_vfscanf_u u_vfscanf_u_3_4 -#define u_vparseMessage u_vparseMessage_3_4 -#define u_vparseMessageWithError u_vparseMessageWithError_3_4 -#define u_vsnprintf u_vsnprintf_3_4 -#define u_vsnprintf_u u_vsnprintf_u_3_4 -#define u_vsprintf u_vsprintf_3_4 -#define u_vsprintf_u u_vsprintf_u_3_4 -#define u_vsscanf u_vsscanf_3_4 -#define u_vsscanf_u u_vsscanf_u_3_4 -#define u_writeDiff u_writeDiff_3_4 -#define u_writeIdenticalLevelRun u_writeIdenticalLevelRun_3_4 -#define u_writeIdenticalLevelRunTwoChars u_writeIdenticalLevelRunTwoChars_3_4 -#define ubidi_addPropertyStarts ubidi_addPropertyStarts_3_4 -#define ubidi_close ubidi_close_3_4 -#define ubidi_closeProps ubidi_closeProps_3_4 -#define ubidi_countParagraphs ubidi_countParagraphs_3_4 -#define ubidi_countRuns ubidi_countRuns_3_4 -#define ubidi_getClass ubidi_getClass_3_4 -#define ubidi_getDirection ubidi_getDirection_3_4 -#define ubidi_getDummy ubidi_getDummy_3_4 -#define ubidi_getJoiningGroup ubidi_getJoiningGroup_3_4 -#define ubidi_getJoiningType ubidi_getJoiningType_3_4 -#define ubidi_getLength ubidi_getLength_3_4 -#define ubidi_getLevelAt ubidi_getLevelAt_3_4 -#define ubidi_getLevels ubidi_getLevels_3_4 -#define ubidi_getLogicalIndex ubidi_getLogicalIndex_3_4 -#define ubidi_getLogicalMap ubidi_getLogicalMap_3_4 -#define ubidi_getLogicalRun ubidi_getLogicalRun_3_4 -#define ubidi_getMaxValue ubidi_getMaxValue_3_4 -#define ubidi_getMemory ubidi_getMemory_3_4 -#define ubidi_getMirror ubidi_getMirror_3_4 -#define ubidi_getParaLevel ubidi_getParaLevel_3_4 -#define ubidi_getParagraph ubidi_getParagraph_3_4 -#define ubidi_getParagraphByIndex ubidi_getParagraphByIndex_3_4 -#define ubidi_getRuns ubidi_getRuns_3_4 -#define ubidi_getSingleton ubidi_getSingleton_3_4 -#define ubidi_getText ubidi_getText_3_4 -#define ubidi_getVisualIndex ubidi_getVisualIndex_3_4 -#define ubidi_getVisualMap ubidi_getVisualMap_3_4 -#define ubidi_getVisualRun ubidi_getVisualRun_3_4 -#define ubidi_invertMap ubidi_invertMap_3_4 -#define ubidi_isBidiControl ubidi_isBidiControl_3_4 -#define ubidi_isInverse ubidi_isInverse_3_4 -#define ubidi_isJoinControl ubidi_isJoinControl_3_4 -#define ubidi_isMirrored ubidi_isMirrored_3_4 -#define ubidi_isOrderParagraphsLTR ubidi_isOrderParagraphsLTR_3_4 -#define ubidi_open ubidi_open_3_4 -#define ubidi_openSized ubidi_openSized_3_4 -#define ubidi_orderParagraphsLTR ubidi_orderParagraphsLTR_3_4 -#define ubidi_reorderLogical ubidi_reorderLogical_3_4 -#define ubidi_reorderVisual ubidi_reorderVisual_3_4 -#define ubidi_setInverse ubidi_setInverse_3_4 -#define ubidi_setLine ubidi_setLine_3_4 -#define ubidi_setPara ubidi_setPara_3_4 -#define ubidi_writeReordered ubidi_writeReordered_3_4 -#define ubidi_writeReverse ubidi_writeReverse_3_4 -#define ublock_getCode ublock_getCode_3_4 -#define ubrk_close ubrk_close_3_4 -#define ubrk_countAvailable ubrk_countAvailable_3_4 -#define ubrk_current ubrk_current_3_4 -#define ubrk_first ubrk_first_3_4 -#define ubrk_following ubrk_following_3_4 -#define ubrk_getAvailable ubrk_getAvailable_3_4 -#define ubrk_getLocaleByType ubrk_getLocaleByType_3_4 -#define ubrk_getRuleStatus ubrk_getRuleStatus_3_4 -#define ubrk_getRuleStatusVec ubrk_getRuleStatusVec_3_4 -#define ubrk_isBoundary ubrk_isBoundary_3_4 -#define ubrk_last ubrk_last_3_4 -#define ubrk_next ubrk_next_3_4 -#define ubrk_open ubrk_open_3_4 -#define ubrk_openRules ubrk_openRules_3_4 -#define ubrk_preceding ubrk_preceding_3_4 -#define ubrk_previous ubrk_previous_3_4 -#define ubrk_safeClone ubrk_safeClone_3_4 -#define ubrk_setText ubrk_setText_3_4 -#define ubrk_setUText ubrk_setUText_3_4 -#define ubrk_swap ubrk_swap_3_4 -#define ucal_add ucal_add_3_4 -#define ucal_clear ucal_clear_3_4 -#define ucal_clearField ucal_clearField_3_4 -#define ucal_close ucal_close_3_4 -#define ucal_countAvailable ucal_countAvailable_3_4 -#define ucal_equivalentTo ucal_equivalentTo_3_4 -#define ucal_get ucal_get_3_4 -#define ucal_getAttribute ucal_getAttribute_3_4 -#define ucal_getAvailable ucal_getAvailable_3_4 -#define ucal_getDSTSavings ucal_getDSTSavings_3_4 -#define ucal_getDefaultTimeZone ucal_getDefaultTimeZone_3_4 -#define ucal_getLimit ucal_getLimit_3_4 -#define ucal_getLocaleByType ucal_getLocaleByType_3_4 -#define ucal_getMillis ucal_getMillis_3_4 -#define ucal_getNow ucal_getNow_3_4 -#define ucal_getTimeZoneDisplayName ucal_getTimeZoneDisplayName_3_4 -#define ucal_inDaylightTime ucal_inDaylightTime_3_4 -#define ucal_isSet ucal_isSet_3_4 -#define ucal_open ucal_open_3_4 -#define ucal_openCountryTimeZones ucal_openCountryTimeZones_3_4 -#define ucal_openTimeZones ucal_openTimeZones_3_4 -#define ucal_roll ucal_roll_3_4 -#define ucal_set ucal_set_3_4 -#define ucal_setAttribute ucal_setAttribute_3_4 -#define ucal_setDate ucal_setDate_3_4 -#define ucal_setDateTime ucal_setDateTime_3_4 -#define ucal_setDefaultTimeZone ucal_setDefaultTimeZone_3_4 -#define ucal_setMillis ucal_setMillis_3_4 -#define ucal_setTimeZone ucal_setTimeZone_3_4 -#define ucase_addCaseClosure ucase_addCaseClosure_3_4 -#define ucase_addPropertyStarts ucase_addPropertyStarts_3_4 -#define ucase_addStringCaseClosure ucase_addStringCaseClosure_3_4 -#define ucase_close ucase_close_3_4 -#define ucase_fold ucase_fold_3_4 -#define ucase_getCaseLocale ucase_getCaseLocale_3_4 -#define ucase_getDummy ucase_getDummy_3_4 -#define ucase_getSingleton ucase_getSingleton_3_4 -#define ucase_getType ucase_getType_3_4 -#define ucase_getTypeOrIgnorable ucase_getTypeOrIgnorable_3_4 -#define ucase_isCaseSensitive ucase_isCaseSensitive_3_4 -#define ucase_isSoftDotted ucase_isSoftDotted_3_4 -#define ucase_toFullFolding ucase_toFullFolding_3_4 -#define ucase_toFullLower ucase_toFullLower_3_4 -#define ucase_toFullTitle ucase_toFullTitle_3_4 -#define ucase_toFullUpper ucase_toFullUpper_3_4 -#define ucase_tolower ucase_tolower_3_4 -#define ucase_totitle ucase_totitle_3_4 -#define ucase_toupper ucase_toupper_3_4 -#define ucasemap_close ucasemap_close_3_4 -#define ucasemap_getLocale ucasemap_getLocale_3_4 -#define ucasemap_getOptions ucasemap_getOptions_3_4 -#define ucasemap_open ucasemap_open_3_4 -#define ucasemap_setLocale ucasemap_setLocale_3_4 -#define ucasemap_setOptions ucasemap_setOptions_3_4 -#define ucasemap_utf8ToLower ucasemap_utf8ToLower_3_4 -#define ucasemap_utf8ToUpper ucasemap_utf8ToUpper_3_4 -#define uchar_addPropertyStarts uchar_addPropertyStarts_3_4 -#define uchar_getHST uchar_getHST_3_4 -#define uchar_swapNames uchar_swapNames_3_4 -#define ucln_common_lib_cleanup ucln_common_lib_cleanup_3_4 -#define ucln_common_registerCleanup ucln_common_registerCleanup_3_4 -#define ucln_i18n_registerCleanup ucln_i18n_registerCleanup_3_4 -#define ucln_registerCleanup ucln_registerCleanup_3_4 -#define ucmp8_close ucmp8_close_3_4 -#define ucmp8_compact ucmp8_compact_3_4 -#define ucmp8_expand ucmp8_expand_3_4 -#define ucmp8_flattenMem ucmp8_flattenMem_3_4 -#define ucmp8_getArray ucmp8_getArray_3_4 -#define ucmp8_getCount ucmp8_getCount_3_4 -#define ucmp8_getIndex ucmp8_getIndex_3_4 -#define ucmp8_getkBlockCount ucmp8_getkBlockCount_3_4 -#define ucmp8_getkUnicodeCount ucmp8_getkUnicodeCount_3_4 -#define ucmp8_init ucmp8_init_3_4 -#define ucmp8_initAdopt ucmp8_initAdopt_3_4 -#define ucmp8_initAlias ucmp8_initAlias_3_4 -#define ucmp8_initBogus ucmp8_initBogus_3_4 -#define ucmp8_initFromData ucmp8_initFromData_3_4 -#define ucmp8_isBogus ucmp8_isBogus_3_4 -#define ucmp8_open ucmp8_open_3_4 -#define ucmp8_openAdopt ucmp8_openAdopt_3_4 -#define ucmp8_openAlias ucmp8_openAlias_3_4 -#define ucmp8_set ucmp8_set_3_4 -#define ucmp8_setRange ucmp8_setRange_3_4 -#define ucnv_MBCSFromUChar32 ucnv_MBCSFromUChar32_3_4 -#define ucnv_MBCSFromUnicodeWithOffsets ucnv_MBCSFromUnicodeWithOffsets_3_4 -#define ucnv_MBCSGetType ucnv_MBCSGetType_3_4 -#define ucnv_MBCSGetUnicodeSetForBytes ucnv_MBCSGetUnicodeSetForBytes_3_4 -#define ucnv_MBCSGetUnicodeSetForUnicode ucnv_MBCSGetUnicodeSetForUnicode_3_4 -#define ucnv_MBCSIsLeadByte ucnv_MBCSIsLeadByte_3_4 -#define ucnv_MBCSSimpleGetNextUChar ucnv_MBCSSimpleGetNextUChar_3_4 -#define ucnv_MBCSToUnicodeWithOffsets ucnv_MBCSToUnicodeWithOffsets_3_4 -#define ucnv_bld_countAvailableConverters ucnv_bld_countAvailableConverters_3_4 -#define ucnv_bld_getAvailableConverter ucnv_bld_getAvailableConverter_3_4 -#define ucnv_cbFromUWriteBytes ucnv_cbFromUWriteBytes_3_4 -#define ucnv_cbFromUWriteSub ucnv_cbFromUWriteSub_3_4 -#define ucnv_cbFromUWriteUChars ucnv_cbFromUWriteUChars_3_4 -#define ucnv_cbToUWriteSub ucnv_cbToUWriteSub_3_4 -#define ucnv_cbToUWriteUChars ucnv_cbToUWriteUChars_3_4 -#define ucnv_close ucnv_close_3_4 -#define ucnv_compareNames ucnv_compareNames_3_4 -#define ucnv_convert ucnv_convert_3_4 -#define ucnv_convertEx ucnv_convertEx_3_4 -#define ucnv_countAliases ucnv_countAliases_3_4 -#define ucnv_countAvailable ucnv_countAvailable_3_4 -#define ucnv_countStandards ucnv_countStandards_3_4 -#define ucnv_createAlgorithmicConverter ucnv_createAlgorithmicConverter_3_4 -#define ucnv_createConverter ucnv_createConverter_3_4 -#define ucnv_createConverterFromPackage ucnv_createConverterFromPackage_3_4 -#define ucnv_createConverterFromSharedData ucnv_createConverterFromSharedData_3_4 -#define ucnv_detectUnicodeSignature ucnv_detectUnicodeSignature_3_4 -#define ucnv_extContinueMatchFromU ucnv_extContinueMatchFromU_3_4 -#define ucnv_extContinueMatchToU ucnv_extContinueMatchToU_3_4 -#define ucnv_extGetUnicodeSet ucnv_extGetUnicodeSet_3_4 -#define ucnv_extInitialMatchFromU ucnv_extInitialMatchFromU_3_4 -#define ucnv_extInitialMatchToU ucnv_extInitialMatchToU_3_4 -#define ucnv_extSimpleMatchFromU ucnv_extSimpleMatchFromU_3_4 -#define ucnv_extSimpleMatchToU ucnv_extSimpleMatchToU_3_4 -#define ucnv_fixFileSeparator ucnv_fixFileSeparator_3_4 -#define ucnv_flushCache ucnv_flushCache_3_4 -#define ucnv_fromAlgorithmic ucnv_fromAlgorithmic_3_4 -#define ucnv_fromUChars ucnv_fromUChars_3_4 -#define ucnv_fromUCountPending ucnv_fromUCountPending_3_4 -#define ucnv_fromUWriteBytes ucnv_fromUWriteBytes_3_4 -#define ucnv_fromUnicode ucnv_fromUnicode_3_4 -#define ucnv_fromUnicode_UTF8 ucnv_fromUnicode_UTF8_3_4 -#define ucnv_fromUnicode_UTF8_OFFSETS_LOGIC ucnv_fromUnicode_UTF8_OFFSETS_LOGIC_3_4 -#define ucnv_getAlias ucnv_getAlias_3_4 -#define ucnv_getAliases ucnv_getAliases_3_4 -#define ucnv_getAvailableName ucnv_getAvailableName_3_4 -#define ucnv_getCCSID ucnv_getCCSID_3_4 -#define ucnv_getCanonicalName ucnv_getCanonicalName_3_4 -#define ucnv_getCompleteUnicodeSet ucnv_getCompleteUnicodeSet_3_4 -#define ucnv_getDefaultName ucnv_getDefaultName_3_4 -#define ucnv_getDisplayName ucnv_getDisplayName_3_4 -#define ucnv_getFromUCallBack ucnv_getFromUCallBack_3_4 -#define ucnv_getInvalidChars ucnv_getInvalidChars_3_4 -#define ucnv_getInvalidUChars ucnv_getInvalidUChars_3_4 -#define ucnv_getMaxCharSize ucnv_getMaxCharSize_3_4 -#define ucnv_getMinCharSize ucnv_getMinCharSize_3_4 -#define ucnv_getName ucnv_getName_3_4 -#define ucnv_getNextUChar ucnv_getNextUChar_3_4 -#define ucnv_getNonSurrogateUnicodeSet ucnv_getNonSurrogateUnicodeSet_3_4 -#define ucnv_getPlatform ucnv_getPlatform_3_4 -#define ucnv_getStandard ucnv_getStandard_3_4 -#define ucnv_getStandardName ucnv_getStandardName_3_4 -#define ucnv_getStarters ucnv_getStarters_3_4 -#define ucnv_getSubstChars ucnv_getSubstChars_3_4 -#define ucnv_getToUCallBack ucnv_getToUCallBack_3_4 -#define ucnv_getType ucnv_getType_3_4 -#define ucnv_getUnicodeSet ucnv_getUnicodeSet_3_4 -#define ucnv_incrementRefCount ucnv_incrementRefCount_3_4 -#define ucnv_io_countAliases ucnv_io_countAliases_3_4 -#define ucnv_io_countStandards ucnv_io_countStandards_3_4 -#define ucnv_io_countTotalAliases ucnv_io_countTotalAliases_3_4 -#define ucnv_io_getAlias ucnv_io_getAlias_3_4 -#define ucnv_io_getAliases ucnv_io_getAliases_3_4 -#define ucnv_io_getConverterName ucnv_io_getConverterName_3_4 -#define ucnv_io_stripASCIIForCompare ucnv_io_stripASCIIForCompare_3_4 -#define ucnv_io_stripEBCDICForCompare ucnv_io_stripEBCDICForCompare_3_4 -#define ucnv_isAmbiguous ucnv_isAmbiguous_3_4 -#define ucnv_load ucnv_load_3_4 -#define ucnv_loadSharedData ucnv_loadSharedData_3_4 -#define ucnv_open ucnv_open_3_4 -#define ucnv_openAllNames ucnv_openAllNames_3_4 -#define ucnv_openCCSID ucnv_openCCSID_3_4 -#define ucnv_openPackage ucnv_openPackage_3_4 -#define ucnv_openStandardNames ucnv_openStandardNames_3_4 -#define ucnv_openU ucnv_openU_3_4 -#define ucnv_reset ucnv_reset_3_4 -#define ucnv_resetFromUnicode ucnv_resetFromUnicode_3_4 -#define ucnv_resetToUnicode ucnv_resetToUnicode_3_4 -#define ucnv_safeClone ucnv_safeClone_3_4 -#define ucnv_setDefaultName ucnv_setDefaultName_3_4 -#define ucnv_setFallback ucnv_setFallback_3_4 -#define ucnv_setFromUCallBack ucnv_setFromUCallBack_3_4 -#define ucnv_setSubstChars ucnv_setSubstChars_3_4 -#define ucnv_setToUCallBack ucnv_setToUCallBack_3_4 -#define ucnv_swap ucnv_swap_3_4 -#define ucnv_swapAliases ucnv_swapAliases_3_4 -#define ucnv_toAlgorithmic ucnv_toAlgorithmic_3_4 -#define ucnv_toUChars ucnv_toUChars_3_4 -#define ucnv_toUCountPending ucnv_toUCountPending_3_4 -#define ucnv_toUWriteCodePoint ucnv_toUWriteCodePoint_3_4 -#define ucnv_toUWriteUChars ucnv_toUWriteUChars_3_4 -#define ucnv_toUnicode ucnv_toUnicode_3_4 -#define ucnv_unload ucnv_unload_3_4 -#define ucnv_unloadSharedDataIfReady ucnv_unloadSharedDataIfReady_3_4 -#define ucnv_usesFallback ucnv_usesFallback_3_4 -#define ucol_allocWeights ucol_allocWeights_3_4 -#define ucol_assembleTailoringTable ucol_assembleTailoringTable_3_4 -#define ucol_calcSortKey ucol_calcSortKey_3_4 -#define ucol_calcSortKeySimpleTertiary ucol_calcSortKeySimpleTertiary_3_4 -#define ucol_cloneBinary ucol_cloneBinary_3_4 -#define ucol_cloneRuleData ucol_cloneRuleData_3_4 -#define ucol_close ucol_close_3_4 -#define ucol_closeElements ucol_closeElements_3_4 -#define ucol_collatorToIdentifier ucol_collatorToIdentifier_3_4 -#define ucol_countAvailable ucol_countAvailable_3_4 -#define ucol_createElements ucol_createElements_3_4 -#define ucol_doCE ucol_doCE_3_4 -#define ucol_equal ucol_equal_3_4 -#define ucol_equals ucol_equals_3_4 -#define ucol_forgetUCA ucol_forgetUCA_3_4 -#define ucol_getAttribute ucol_getAttribute_3_4 -#define ucol_getAttributeOrDefault ucol_getAttributeOrDefault_3_4 -#define ucol_getAvailable ucol_getAvailable_3_4 -#define ucol_getBound ucol_getBound_3_4 -#define ucol_getCEGenerator ucol_getCEGenerator_3_4 -#define ucol_getCEStrengthDifference ucol_getCEStrengthDifference_3_4 -#define ucol_getContractions ucol_getContractions_3_4 -#define ucol_getContractionsAndExpansions ucol_getContractionsAndExpansions_3_4 -#define ucol_getDisplayName ucol_getDisplayName_3_4 -#define ucol_getFirstCE ucol_getFirstCE_3_4 -#define ucol_getFunctionalEquivalent ucol_getFunctionalEquivalent_3_4 -#define ucol_getKeywordValues ucol_getKeywordValues_3_4 -#define ucol_getKeywords ucol_getKeywords_3_4 -#define ucol_getLocale ucol_getLocale_3_4 -#define ucol_getLocaleByType ucol_getLocaleByType_3_4 -#define ucol_getMaxExpansion ucol_getMaxExpansion_3_4 -#define ucol_getNextCE ucol_getNextCE_3_4 -#define ucol_getNextGenerated ucol_getNextGenerated_3_4 -#define ucol_getOffset ucol_getOffset_3_4 -#define ucol_getPrevCE ucol_getPrevCE_3_4 -#define ucol_getRules ucol_getRules_3_4 -#define ucol_getRulesEx ucol_getRulesEx_3_4 -#define ucol_getShortDefinitionString ucol_getShortDefinitionString_3_4 -#define ucol_getSimpleCEGenerator ucol_getSimpleCEGenerator_3_4 -#define ucol_getSortKey ucol_getSortKey_3_4 -#define ucol_getSortKeySize ucol_getSortKeySize_3_4 -#define ucol_getSortKeyWithAllocation ucol_getSortKeyWithAllocation_3_4 -#define ucol_getStrength ucol_getStrength_3_4 -#define ucol_getTailoredSet ucol_getTailoredSet_3_4 -#define ucol_getUCAVersion ucol_getUCAVersion_3_4 -#define ucol_getUnsafeSet ucol_getUnsafeSet_3_4 -#define ucol_getVariableTop ucol_getVariableTop_3_4 -#define ucol_getVersion ucol_getVersion_3_4 -#define ucol_greater ucol_greater_3_4 -#define ucol_greaterOrEqual ucol_greaterOrEqual_3_4 -#define ucol_identifierToShortString ucol_identifierToShortString_3_4 -#define ucol_initBuffers ucol_initBuffers_3_4 -#define ucol_initCollator ucol_initCollator_3_4 -#define ucol_initInverseUCA ucol_initInverseUCA_3_4 -#define ucol_initUCA ucol_initUCA_3_4 -#define ucol_inv_getGapPositions ucol_inv_getGapPositions_3_4 -#define ucol_inv_getNextCE ucol_inv_getNextCE_3_4 -#define ucol_inv_getPrevCE ucol_inv_getPrevCE_3_4 -#define ucol_isTailored ucol_isTailored_3_4 -#define ucol_keyHashCode ucol_keyHashCode_3_4 -#define ucol_mergeSortkeys ucol_mergeSortkeys_3_4 -#define ucol_next ucol_next_3_4 -#define ucol_nextSortKeyPart ucol_nextSortKeyPart_3_4 -#define ucol_nextWeight ucol_nextWeight_3_4 -#define ucol_normalizeShortDefinitionString ucol_normalizeShortDefinitionString_3_4 -#define ucol_open ucol_open_3_4 -#define ucol_openAvailableLocales ucol_openAvailableLocales_3_4 -#define ucol_openBinary ucol_openBinary_3_4 -#define ucol_openElements ucol_openElements_3_4 -#define ucol_openFromIdentifier ucol_openFromIdentifier_3_4 -#define ucol_openFromShortString ucol_openFromShortString_3_4 -#define ucol_openRules ucol_openRules_3_4 -#define ucol_open_internal ucol_open_internal_3_4 -#define ucol_prepareShortStringOpen ucol_prepareShortStringOpen_3_4 -#define ucol_previous ucol_previous_3_4 -#define ucol_primaryOrder ucol_primaryOrder_3_4 -#define ucol_prv_getSpecialCE ucol_prv_getSpecialCE_3_4 -#define ucol_prv_getSpecialPrevCE ucol_prv_getSpecialPrevCE_3_4 -#define ucol_reset ucol_reset_3_4 -#define ucol_restoreVariableTop ucol_restoreVariableTop_3_4 -#define ucol_safeClone ucol_safeClone_3_4 -#define ucol_secondaryOrder ucol_secondaryOrder_3_4 -#define ucol_setAttribute ucol_setAttribute_3_4 -#define ucol_setOffset ucol_setOffset_3_4 -#define ucol_setOptionsFromHeader ucol_setOptionsFromHeader_3_4 -#define ucol_setReqValidLocales ucol_setReqValidLocales_3_4 -#define ucol_setStrength ucol_setStrength_3_4 -#define ucol_setText ucol_setText_3_4 -#define ucol_setVariableTop ucol_setVariableTop_3_4 -#define ucol_shortStringToIdentifier ucol_shortStringToIdentifier_3_4 -#define ucol_strcoll ucol_strcoll_3_4 -#define ucol_strcollIter ucol_strcollIter_3_4 -#define ucol_swap ucol_swap_3_4 -#define ucol_swapBinary ucol_swapBinary_3_4 -#define ucol_swapInverseUCA ucol_swapInverseUCA_3_4 -#define ucol_tertiaryOrder ucol_tertiaryOrder_3_4 -#define ucol_tok_assembleTokenList ucol_tok_assembleTokenList_3_4 -#define ucol_tok_closeTokenList ucol_tok_closeTokenList_3_4 -#define ucol_tok_getNextArgument ucol_tok_getNextArgument_3_4 -#define ucol_tok_initTokenList ucol_tok_initTokenList_3_4 -#define ucol_tok_parseNextToken ucol_tok_parseNextToken_3_4 -#define ucol_updateInternalState ucol_updateInternalState_3_4 -#define ucurr_forLocale ucurr_forLocale_3_4 -#define ucurr_getDefaultFractionDigits ucurr_getDefaultFractionDigits_3_4 -#define ucurr_getName ucurr_getName_3_4 -#define ucurr_getRoundingIncrement ucurr_getRoundingIncrement_3_4 -#define ucurr_openISOCurrencies ucurr_openISOCurrencies_3_4 -#define ucurr_register ucurr_register_3_4 -#define ucurr_unregister ucurr_unregister_3_4 -#define udat_applyPattern udat_applyPattern_3_4 -#define udat_clone udat_clone_3_4 -#define udat_close udat_close_3_4 -#define udat_countAvailable udat_countAvailable_3_4 -#define udat_countSymbols udat_countSymbols_3_4 -#define udat_format udat_format_3_4 -#define udat_get2DigitYearStart udat_get2DigitYearStart_3_4 -#define udat_getAvailable udat_getAvailable_3_4 -#define udat_getCalendar udat_getCalendar_3_4 -#define udat_getLocaleByType udat_getLocaleByType_3_4 -#define udat_getNumberFormat udat_getNumberFormat_3_4 -#define udat_getSymbols udat_getSymbols_3_4 -#define udat_isLenient udat_isLenient_3_4 -#define udat_open udat_open_3_4 -#define udat_parse udat_parse_3_4 -#define udat_parseCalendar udat_parseCalendar_3_4 -#define udat_set2DigitYearStart udat_set2DigitYearStart_3_4 -#define udat_setCalendar udat_setCalendar_3_4 -#define udat_setLenient udat_setLenient_3_4 -#define udat_setNumberFormat udat_setNumberFormat_3_4 -#define udat_setSymbols udat_setSymbols_3_4 -#define udat_toPattern udat_toPattern_3_4 -#define udata_checkCommonData udata_checkCommonData_3_4 -#define udata_close udata_close_3_4 -#define udata_closeSwapper udata_closeSwapper_3_4 -#define udata_getHeaderSize udata_getHeaderSize_3_4 -#define udata_getInfo udata_getInfo_3_4 -#define udata_getInfoSize udata_getInfoSize_3_4 -#define udata_getLength udata_getLength_3_4 -#define udata_getMemory udata_getMemory_3_4 -#define udata_getRawMemory udata_getRawMemory_3_4 -#define udata_open udata_open_3_4 -#define udata_openChoice udata_openChoice_3_4 -#define udata_openSwapper udata_openSwapper_3_4 -#define udata_openSwapperForInputData udata_openSwapperForInputData_3_4 -#define udata_printError udata_printError_3_4 -#define udata_readInt16 udata_readInt16_3_4 -#define udata_readInt32 udata_readInt32_3_4 -#define udata_setAppData udata_setAppData_3_4 -#define udata_setCommonData udata_setCommonData_3_4 -#define udata_setFileAccess udata_setFileAccess_3_4 -#define udata_swapDataHeader udata_swapDataHeader_3_4 -#define udata_swapInvStringBlock udata_swapInvStringBlock_3_4 -#define uenum_close uenum_close_3_4 -#define uenum_count uenum_count_3_4 -#define uenum_next uenum_next_3_4 -#define uenum_nextDefault uenum_nextDefault_3_4 -#define uenum_openCharStringsEnumeration uenum_openCharStringsEnumeration_3_4 -#define uenum_openStringEnumeration uenum_openStringEnumeration_3_4 -#define uenum_reset uenum_reset_3_4 -#define uenum_unext uenum_unext_3_4 -#define uenum_unextDefault uenum_unextDefault_3_4 -#define ufile_close_translit ufile_close_translit_3_4 -#define ufile_fill_uchar_buffer ufile_fill_uchar_buffer_3_4 -#define ufile_flush_translit ufile_flush_translit_3_4 -#define ufile_getch ufile_getch_3_4 -#define ufile_getch32 ufile_getch32_3_4 -#define ufmt_64tou ufmt_64tou_3_4 -#define ufmt_defaultCPToUnicode ufmt_defaultCPToUnicode_3_4 -#define ufmt_digitvalue ufmt_digitvalue_3_4 -#define ufmt_isdigit ufmt_isdigit_3_4 -#define ufmt_ptou ufmt_ptou_3_4 -#define ufmt_uto64 ufmt_uto64_3_4 -#define ufmt_utop ufmt_utop_3_4 -#define uhash_close uhash_close_3_4 -#define uhash_compareCaselessUnicodeString uhash_compareCaselessUnicodeString_3_4 -#define uhash_compareChars uhash_compareChars_3_4 -#define uhash_compareIChars uhash_compareIChars_3_4 -#define uhash_compareLong uhash_compareLong_3_4 -#define uhash_compareUChars uhash_compareUChars_3_4 -#define uhash_compareUnicodeString uhash_compareUnicodeString_3_4 -#define uhash_count uhash_count_3_4 -#define uhash_deleteHashtable uhash_deleteHashtable_3_4 -#define uhash_deleteUVector uhash_deleteUVector_3_4 -#define uhash_deleteUnicodeString uhash_deleteUnicodeString_3_4 -#define uhash_find uhash_find_3_4 -#define uhash_freeBlock uhash_freeBlock_3_4 -#define uhash_get uhash_get_3_4 -#define uhash_geti uhash_geti_3_4 -#define uhash_hashCaselessUnicodeString uhash_hashCaselessUnicodeString_3_4 -#define uhash_hashChars uhash_hashChars_3_4 -#define uhash_hashIChars uhash_hashIChars_3_4 -#define uhash_hashLong uhash_hashLong_3_4 -#define uhash_hashUChars uhash_hashUChars_3_4 -#define uhash_hashUCharsN uhash_hashUCharsN_3_4 -#define uhash_hashUnicodeString uhash_hashUnicodeString_3_4 -#define uhash_iget uhash_iget_3_4 -#define uhash_igeti uhash_igeti_3_4 -#define uhash_iput uhash_iput_3_4 -#define uhash_iputi uhash_iputi_3_4 -#define uhash_iremove uhash_iremove_3_4 -#define uhash_iremovei uhash_iremovei_3_4 -#define uhash_nextElement uhash_nextElement_3_4 -#define uhash_open uhash_open_3_4 -#define uhash_openSize uhash_openSize_3_4 -#define uhash_put uhash_put_3_4 -#define uhash_puti uhash_puti_3_4 -#define uhash_remove uhash_remove_3_4 -#define uhash_removeAll uhash_removeAll_3_4 -#define uhash_removeElement uhash_removeElement_3_4 -#define uhash_removei uhash_removei_3_4 -#define uhash_setKeyComparator uhash_setKeyComparator_3_4 -#define uhash_setKeyDeleter uhash_setKeyDeleter_3_4 -#define uhash_setKeyHasher uhash_setKeyHasher_3_4 -#define uhash_setResizePolicy uhash_setResizePolicy_3_4 -#define uhash_setValueDeleter uhash_setValueDeleter_3_4 -#define uhst_addPropertyStarts uhst_addPropertyStarts_3_4 -#define uidna_IDNToASCII uidna_IDNToASCII_3_4 -#define uidna_IDNToUnicode uidna_IDNToUnicode_3_4 -#define uidna_compare uidna_compare_3_4 -#define uidna_toASCII uidna_toASCII_3_4 -#define uidna_toUnicode uidna_toUnicode_3_4 -#define uiter_current32 uiter_current32_3_4 -#define uiter_getState uiter_getState_3_4 -#define uiter_next32 uiter_next32_3_4 -#define uiter_previous32 uiter_previous32_3_4 -#define uiter_setCharacterIterator uiter_setCharacterIterator_3_4 -#define uiter_setReplaceable uiter_setReplaceable_3_4 -#define uiter_setState uiter_setState_3_4 -#define uiter_setString uiter_setString_3_4 -#define uiter_setUTF16BE uiter_setUTF16BE_3_4 -#define uiter_setUTF8 uiter_setUTF8_3_4 -#define uloc_acceptLanguage uloc_acceptLanguage_3_4 -#define uloc_acceptLanguageFromHTTP uloc_acceptLanguageFromHTTP_3_4 -#define uloc_canonicalize uloc_canonicalize_3_4 -#define uloc_countAvailable uloc_countAvailable_3_4 -#define uloc_getAvailable uloc_getAvailable_3_4 -#define uloc_getBaseName uloc_getBaseName_3_4 -#define uloc_getCountry uloc_getCountry_3_4 -#define uloc_getDefault uloc_getDefault_3_4 -#define uloc_getDisplayCountry uloc_getDisplayCountry_3_4 -#define uloc_getDisplayKeyword uloc_getDisplayKeyword_3_4 -#define uloc_getDisplayKeywordValue uloc_getDisplayKeywordValue_3_4 -#define uloc_getDisplayLanguage uloc_getDisplayLanguage_3_4 -#define uloc_getDisplayName uloc_getDisplayName_3_4 -#define uloc_getDisplayScript uloc_getDisplayScript_3_4 -#define uloc_getDisplayVariant uloc_getDisplayVariant_3_4 -#define uloc_getISO3Country uloc_getISO3Country_3_4 -#define uloc_getISO3Language uloc_getISO3Language_3_4 -#define uloc_getISOCountries uloc_getISOCountries_3_4 -#define uloc_getISOLanguages uloc_getISOLanguages_3_4 -#define uloc_getKeywordValue uloc_getKeywordValue_3_4 -#define uloc_getLCID uloc_getLCID_3_4 -#define uloc_getLanguage uloc_getLanguage_3_4 -#define uloc_getName uloc_getName_3_4 -#define uloc_getParent uloc_getParent_3_4 -#define uloc_getScript uloc_getScript_3_4 -#define uloc_getVariant uloc_getVariant_3_4 -#define uloc_openKeywordList uloc_openKeywordList_3_4 -#define uloc_openKeywords uloc_openKeywords_3_4 -#define uloc_setDefault uloc_setDefault_3_4 -#define uloc_setKeywordValue uloc_setKeywordValue_3_4 -#define ulocdata_close ulocdata_close_3_4 -#define ulocdata_getDelimiter ulocdata_getDelimiter_3_4 -#define ulocdata_getExemplarSet ulocdata_getExemplarSet_3_4 -#define ulocdata_getMeasurementSystem ulocdata_getMeasurementSystem_3_4 -#define ulocdata_getPaperSize ulocdata_getPaperSize_3_4 -#define ulocdata_open ulocdata_open_3_4 -#define umsg_applyPattern umsg_applyPattern_3_4 -#define umsg_autoQuoteApostrophe umsg_autoQuoteApostrophe_3_4 -#define umsg_clone umsg_clone_3_4 -#define umsg_close umsg_close_3_4 -#define umsg_format umsg_format_3_4 -#define umsg_getLocale umsg_getLocale_3_4 -#define umsg_open umsg_open_3_4 -#define umsg_parse umsg_parse_3_4 -#define umsg_setLocale umsg_setLocale_3_4 -#define umsg_toPattern umsg_toPattern_3_4 -#define umsg_vformat umsg_vformat_3_4 -#define umsg_vparse umsg_vparse_3_4 -#define umtx_atomic_dec umtx_atomic_dec_3_4 -#define umtx_atomic_inc umtx_atomic_inc_3_4 -#define umtx_cleanup umtx_cleanup_3_4 -#define umtx_destroy umtx_destroy_3_4 -#define umtx_init umtx_init_3_4 -#define umtx_lock umtx_lock_3_4 -#define umtx_unlock umtx_unlock_3_4 -#define unorm_addPropertyStarts unorm_addPropertyStarts_3_4 -#define unorm_closeIter unorm_closeIter_3_4 -#define unorm_compare unorm_compare_3_4 -#define unorm_compose unorm_compose_3_4 -#define unorm_concatenate unorm_concatenate_3_4 -#define unorm_decompose unorm_decompose_3_4 -#define unorm_getCanonStartSet unorm_getCanonStartSet_3_4 -#define unorm_getCanonicalDecomposition unorm_getCanonicalDecomposition_3_4 -#define unorm_getDecomposition unorm_getDecomposition_3_4 -#define unorm_getFCD16FromCodePoint unorm_getFCD16FromCodePoint_3_4 -#define unorm_getFCDTrie unorm_getFCDTrie_3_4 -#define unorm_getNX unorm_getNX_3_4 -#define unorm_getQuickCheck unorm_getQuickCheck_3_4 -#define unorm_getUnicodeVersion unorm_getUnicodeVersion_3_4 -#define unorm_haveData unorm_haveData_3_4 -#define unorm_internalIsFullCompositionExclusion unorm_internalIsFullCompositionExclusion_3_4 -#define unorm_internalNormalize unorm_internalNormalize_3_4 -#define unorm_internalNormalizeWithNX unorm_internalNormalizeWithNX_3_4 -#define unorm_internalQuickCheck unorm_internalQuickCheck_3_4 -#define unorm_isCanonSafeStart unorm_isCanonSafeStart_3_4 -#define unorm_isNFSkippable unorm_isNFSkippable_3_4 -#define unorm_isNormalized unorm_isNormalized_3_4 -#define unorm_isNormalizedWithOptions unorm_isNormalizedWithOptions_3_4 -#define unorm_next unorm_next_3_4 -#define unorm_normalize unorm_normalize_3_4 -#define unorm_openIter unorm_openIter_3_4 -#define unorm_previous unorm_previous_3_4 -#define unorm_quickCheck unorm_quickCheck_3_4 -#define unorm_quickCheckWithOptions unorm_quickCheckWithOptions_3_4 -#define unorm_setIter unorm_setIter_3_4 -#define unum_applyPattern unum_applyPattern_3_4 -#define unum_clone unum_clone_3_4 -#define unum_close unum_close_3_4 -#define unum_countAvailable unum_countAvailable_3_4 -#define unum_format unum_format_3_4 -#define unum_formatDouble unum_formatDouble_3_4 -#define unum_formatDoubleCurrency unum_formatDoubleCurrency_3_4 -#define unum_formatInt64 unum_formatInt64_3_4 -#define unum_getAttribute unum_getAttribute_3_4 -#define unum_getAvailable unum_getAvailable_3_4 -#define unum_getDoubleAttribute unum_getDoubleAttribute_3_4 -#define unum_getLocaleByType unum_getLocaleByType_3_4 -#define unum_getSymbol unum_getSymbol_3_4 -#define unum_getTextAttribute unum_getTextAttribute_3_4 -#define unum_open unum_open_3_4 -#define unum_parse unum_parse_3_4 -#define unum_parseDouble unum_parseDouble_3_4 -#define unum_parseDoubleCurrency unum_parseDoubleCurrency_3_4 -#define unum_parseInt64 unum_parseInt64_3_4 -#define unum_setAttribute unum_setAttribute_3_4 -#define unum_setDoubleAttribute unum_setDoubleAttribute_3_4 -#define unum_setSymbol unum_setSymbol_3_4 -#define unum_setTextAttribute unum_setTextAttribute_3_4 -#define unum_toPattern unum_toPattern_3_4 -#define upname_swap upname_swap_3_4 -#define uprops_getSource uprops_getSource_3_4 -#define upropsvec_addPropertyStarts upropsvec_addPropertyStarts_3_4 -#define uprv_asciiFromEbcdic uprv_asciiFromEbcdic_3_4 -#define uprv_asciitolower uprv_asciitolower_3_4 -#define uprv_ceil uprv_ceil_3_4 -#define uprv_cnttab_addContraction uprv_cnttab_addContraction_3_4 -#define uprv_cnttab_changeContraction uprv_cnttab_changeContraction_3_4 -#define uprv_cnttab_changeLastCE uprv_cnttab_changeLastCE_3_4 -#define uprv_cnttab_clone uprv_cnttab_clone_3_4 -#define uprv_cnttab_close uprv_cnttab_close_3_4 -#define uprv_cnttab_constructTable uprv_cnttab_constructTable_3_4 -#define uprv_cnttab_findCE uprv_cnttab_findCE_3_4 -#define uprv_cnttab_findCP uprv_cnttab_findCP_3_4 -#define uprv_cnttab_getCE uprv_cnttab_getCE_3_4 -#define uprv_cnttab_insertContraction uprv_cnttab_insertContraction_3_4 -#define uprv_cnttab_isTailored uprv_cnttab_isTailored_3_4 -#define uprv_cnttab_open uprv_cnttab_open_3_4 -#define uprv_cnttab_setContraction uprv_cnttab_setContraction_3_4 -#define uprv_compareASCIIPropertyNames uprv_compareASCIIPropertyNames_3_4 -#define uprv_compareEBCDICPropertyNames uprv_compareEBCDICPropertyNames_3_4 -#define uprv_compareInvAscii uprv_compareInvAscii_3_4 -#define uprv_compareInvEbcdic uprv_compareInvEbcdic_3_4 -#define uprv_convertToLCID uprv_convertToLCID_3_4 -#define uprv_convertToPosix uprv_convertToPosix_3_4 -#define uprv_copyAscii uprv_copyAscii_3_4 -#define uprv_copyEbcdic uprv_copyEbcdic_3_4 -#define uprv_dtostr uprv_dtostr_3_4 -#define uprv_ebcdicFromAscii uprv_ebcdicFromAscii_3_4 -#define uprv_ebcdictolower uprv_ebcdictolower_3_4 -#define uprv_fabs uprv_fabs_3_4 -#define uprv_floor uprv_floor_3_4 -#define uprv_fmax uprv_fmax_3_4 -#define uprv_fmin uprv_fmin_3_4 -#define uprv_fmod uprv_fmod_3_4 -#define uprv_free uprv_free_3_4 -#define uprv_getCharNameCharacters uprv_getCharNameCharacters_3_4 -#define uprv_getDefaultCodepage uprv_getDefaultCodepage_3_4 -#define uprv_getDefaultLocaleID uprv_getDefaultLocaleID_3_4 -#define uprv_getInfinity uprv_getInfinity_3_4 -#define uprv_getMaxCharNameLength uprv_getMaxCharNameLength_3_4 -#define uprv_getMaxValues uprv_getMaxValues_3_4 -#define uprv_getNaN uprv_getNaN_3_4 -#define uprv_getStaticCurrencyName uprv_getStaticCurrencyName_3_4 -#define uprv_getUTCtime uprv_getUTCtime_3_4 -#define uprv_haveProperties uprv_haveProperties_3_4 -#define uprv_init_collIterate uprv_init_collIterate_3_4 -#define uprv_int32Comparator uprv_int32Comparator_3_4 -#define uprv_isInfinite uprv_isInfinite_3_4 -#define uprv_isInvariantString uprv_isInvariantString_3_4 -#define uprv_isInvariantUString uprv_isInvariantUString_3_4 -#define uprv_isNaN uprv_isNaN_3_4 -#define uprv_isNegativeInfinity uprv_isNegativeInfinity_3_4 -#define uprv_isPositiveInfinity uprv_isPositiveInfinity_3_4 -#define uprv_isRuleWhiteSpace uprv_isRuleWhiteSpace_3_4 -#define uprv_itou uprv_itou_3_4 -#define uprv_loadPropsData uprv_loadPropsData_3_4 -#define uprv_log uprv_log_3_4 -#define uprv_log10 uprv_log10_3_4 -#define uprv_malloc uprv_malloc_3_4 -#define uprv_mapFile uprv_mapFile_3_4 -#define uprv_max uprv_max_3_4 -#define uprv_maxMantissa uprv_maxMantissa_3_4 -#define uprv_min uprv_min_3_4 -#define uprv_modf uprv_modf_3_4 -#define uprv_openRuleWhiteSpaceSet uprv_openRuleWhiteSpaceSet_3_4 -#define uprv_pathIsAbsolute uprv_pathIsAbsolute_3_4 -#define uprv_pow uprv_pow_3_4 -#define uprv_pow10 uprv_pow10_3_4 -#define uprv_realloc uprv_realloc_3_4 -#define uprv_round uprv_round_3_4 -#define uprv_sortArray uprv_sortArray_3_4 -#define uprv_strCompare uprv_strCompare_3_4 -#define uprv_strdup uprv_strdup_3_4 -#define uprv_strndup uprv_strndup_3_4 -#define uprv_syntaxError uprv_syntaxError_3_4 -#define uprv_timezone uprv_timezone_3_4 -#define uprv_toupper uprv_toupper_3_4 -#define uprv_trunc uprv_trunc_3_4 -#define uprv_tzname uprv_tzname_3_4 -#define uprv_tzset uprv_tzset_3_4 -#define uprv_uca_addAnElement uprv_uca_addAnElement_3_4 -#define uprv_uca_assembleTable uprv_uca_assembleTable_3_4 -#define uprv_uca_canonicalClosure uprv_uca_canonicalClosure_3_4 -#define uprv_uca_cloneTempTable uprv_uca_cloneTempTable_3_4 -#define uprv_uca_closeTempTable uprv_uca_closeTempTable_3_4 -#define uprv_uca_getCodePointFromRaw uprv_uca_getCodePointFromRaw_3_4 -#define uprv_uca_getImplicitFromRaw uprv_uca_getImplicitFromRaw_3_4 -#define uprv_uca_getImplicitPrimary uprv_uca_getImplicitPrimary_3_4 -#define uprv_uca_getRawFromCodePoint uprv_uca_getRawFromCodePoint_3_4 -#define uprv_uca_getRawFromImplicit uprv_uca_getRawFromImplicit_3_4 -#define uprv_uca_initImplicitConstants uprv_uca_initImplicitConstants_3_4 -#define uprv_uca_initTempTable uprv_uca_initTempTable_3_4 -#define uprv_uint16Comparator uprv_uint16Comparator_3_4 -#define uprv_uint32Comparator uprv_uint32Comparator_3_4 -#define uprv_unmapFile uprv_unmapFile_3_4 -#define uregex_appendReplacement uregex_appendReplacement_3_4 -#define uregex_appendTail uregex_appendTail_3_4 -#define uregex_clone uregex_clone_3_4 -#define uregex_close uregex_close_3_4 -#define uregex_end uregex_end_3_4 -#define uregex_find uregex_find_3_4 -#define uregex_findNext uregex_findNext_3_4 -#define uregex_flags uregex_flags_3_4 -#define uregex_getText uregex_getText_3_4 -#define uregex_group uregex_group_3_4 -#define uregex_groupCount uregex_groupCount_3_4 -#define uregex_lookingAt uregex_lookingAt_3_4 -#define uregex_matches uregex_matches_3_4 -#define uregex_open uregex_open_3_4 -#define uregex_openC uregex_openC_3_4 -#define uregex_pattern uregex_pattern_3_4 -#define uregex_replaceAll uregex_replaceAll_3_4 -#define uregex_replaceFirst uregex_replaceFirst_3_4 -#define uregex_reset uregex_reset_3_4 -#define uregex_setText uregex_setText_3_4 -#define uregex_split uregex_split_3_4 -#define uregex_start uregex_start_3_4 -#define ures_appendResPath ures_appendResPath_3_4 -#define ures_close ures_close_3_4 -#define ures_copyResb ures_copyResb_3_4 -#define ures_countArrayItems ures_countArrayItems_3_4 -#define ures_findResource ures_findResource_3_4 -#define ures_findSubResource ures_findSubResource_3_4 -#define ures_freeResPath ures_freeResPath_3_4 -#define ures_getBinary ures_getBinary_3_4 -#define ures_getByIndex ures_getByIndex_3_4 -#define ures_getByKey ures_getByKey_3_4 -#define ures_getByKeyWithFallback ures_getByKeyWithFallback_3_4 -#define ures_getFunctionalEquivalent ures_getFunctionalEquivalent_3_4 -#define ures_getInt ures_getInt_3_4 -#define ures_getIntVector ures_getIntVector_3_4 -#define ures_getKey ures_getKey_3_4 -#define ures_getKeywordValues ures_getKeywordValues_3_4 -#define ures_getLocale ures_getLocale_3_4 -#define ures_getLocaleByType ures_getLocaleByType_3_4 -#define ures_getName ures_getName_3_4 -#define ures_getNextResource ures_getNextResource_3_4 -#define ures_getNextString ures_getNextString_3_4 -#define ures_getPath ures_getPath_3_4 -#define ures_getSize ures_getSize_3_4 -#define ures_getString ures_getString_3_4 -#define ures_getStringByIndex ures_getStringByIndex_3_4 -#define ures_getStringByKey ures_getStringByKey_3_4 -#define ures_getType ures_getType_3_4 -#define ures_getUInt ures_getUInt_3_4 -#define ures_getVersion ures_getVersion_3_4 -#define ures_getVersionNumber ures_getVersionNumber_3_4 -#define ures_hasNext ures_hasNext_3_4 -#define ures_initStackObject ures_initStackObject_3_4 -#define ures_open ures_open_3_4 -#define ures_openAvailableLocales ures_openAvailableLocales_3_4 -#define ures_openDirect ures_openDirect_3_4 -#define ures_openFillIn ures_openFillIn_3_4 -#define ures_openU ures_openU_3_4 -#define ures_resetIterator ures_resetIterator_3_4 -#define ures_swap ures_swap_3_4 -#define uscript_closeRun uscript_closeRun_3_4 -#define uscript_getCode uscript_getCode_3_4 -#define uscript_getName uscript_getName_3_4 -#define uscript_getScript uscript_getScript_3_4 -#define uscript_getShortName uscript_getShortName_3_4 -#define uscript_nextRun uscript_nextRun_3_4 -#define uscript_openRun uscript_openRun_3_4 -#define uscript_resetRun uscript_resetRun_3_4 -#define uscript_setRunText uscript_setRunText_3_4 -#define usearch_close usearch_close_3_4 -#define usearch_first usearch_first_3_4 -#define usearch_following usearch_following_3_4 -#define usearch_getAttribute usearch_getAttribute_3_4 -#define usearch_getBreakIterator usearch_getBreakIterator_3_4 -#define usearch_getCollator usearch_getCollator_3_4 -#define usearch_getMatchedLength usearch_getMatchedLength_3_4 -#define usearch_getMatchedStart usearch_getMatchedStart_3_4 -#define usearch_getMatchedText usearch_getMatchedText_3_4 -#define usearch_getOffset usearch_getOffset_3_4 -#define usearch_getPattern usearch_getPattern_3_4 -#define usearch_getText usearch_getText_3_4 -#define usearch_handleNextCanonical usearch_handleNextCanonical_3_4 -#define usearch_handleNextExact usearch_handleNextExact_3_4 -#define usearch_handlePreviousCanonical usearch_handlePreviousCanonical_3_4 -#define usearch_handlePreviousExact usearch_handlePreviousExact_3_4 -#define usearch_last usearch_last_3_4 -#define usearch_next usearch_next_3_4 -#define usearch_open usearch_open_3_4 -#define usearch_openFromCollator usearch_openFromCollator_3_4 -#define usearch_preceding usearch_preceding_3_4 -#define usearch_previous usearch_previous_3_4 -#define usearch_reset usearch_reset_3_4 -#define usearch_setAttribute usearch_setAttribute_3_4 -#define usearch_setBreakIterator usearch_setBreakIterator_3_4 -#define usearch_setCollator usearch_setCollator_3_4 -#define usearch_setOffset usearch_setOffset_3_4 -#define usearch_setPattern usearch_setPattern_3_4 -#define usearch_setText usearch_setText_3_4 -#define userv_deleteStringPair userv_deleteStringPair_3_4 -#define uset_add uset_add_3_4 -#define uset_addAll uset_addAll_3_4 -#define uset_addAllCodePoints uset_addAllCodePoints_3_4 -#define uset_addRange uset_addRange_3_4 -#define uset_addString uset_addString_3_4 -#define uset_applyIntPropertyValue uset_applyIntPropertyValue_3_4 -#define uset_applyPattern uset_applyPattern_3_4 -#define uset_applyPropertyAlias uset_applyPropertyAlias_3_4 -#define uset_charAt uset_charAt_3_4 -#define uset_clear uset_clear_3_4 -#define uset_close uset_close_3_4 -#define uset_compact uset_compact_3_4 -#define uset_complement uset_complement_3_4 -#define uset_complementAll uset_complementAll_3_4 -#define uset_contains uset_contains_3_4 -#define uset_containsAll uset_containsAll_3_4 -#define uset_containsAllCodePoints uset_containsAllCodePoints_3_4 -#define uset_containsNone uset_containsNone_3_4 -#define uset_containsRange uset_containsRange_3_4 -#define uset_containsSome uset_containsSome_3_4 -#define uset_containsString uset_containsString_3_4 -#define uset_equals uset_equals_3_4 -#define uset_getItem uset_getItem_3_4 -#define uset_getItemCount uset_getItemCount_3_4 -#define uset_getSerializedRange uset_getSerializedRange_3_4 -#define uset_getSerializedRangeCount uset_getSerializedRangeCount_3_4 -#define uset_getSerializedSet uset_getSerializedSet_3_4 -#define uset_indexOf uset_indexOf_3_4 -#define uset_isEmpty uset_isEmpty_3_4 -#define uset_open uset_open_3_4 -#define uset_openPattern uset_openPattern_3_4 -#define uset_openPatternOptions uset_openPatternOptions_3_4 -#define uset_remove uset_remove_3_4 -#define uset_removeAll uset_removeAll_3_4 -#define uset_removeRange uset_removeRange_3_4 -#define uset_removeString uset_removeString_3_4 -#define uset_resemblesPattern uset_resemblesPattern_3_4 -#define uset_retain uset_retain_3_4 -#define uset_retainAll uset_retainAll_3_4 -#define uset_serialize uset_serialize_3_4 -#define uset_serializedContains uset_serializedContains_3_4 -#define uset_set uset_set_3_4 -#define uset_setSerializedToOne uset_setSerializedToOne_3_4 -#define uset_size uset_size_3_4 -#define uset_toPattern uset_toPattern_3_4 -#define usprep_close usprep_close_3_4 -#define usprep_open usprep_open_3_4 -#define usprep_prepare usprep_prepare_3_4 -#define usprep_swap usprep_swap_3_4 -#define ustr_foldCase ustr_foldCase_3_4 -#define ustr_toLower ustr_toLower_3_4 -#define ustr_toTitle ustr_toTitle_3_4 -#define ustr_toUpper ustr_toUpper_3_4 -#define utext_char32At utext_char32At_3_4 -#define utext_clone utext_clone_3_4 -#define utext_close utext_close_3_4 -#define utext_compare utext_compare_3_4 -#define utext_copy utext_copy_3_4 -#define utext_current32 utext_current32_3_4 -#define utext_extract utext_extract_3_4 -#define utext_getNativeIndex utext_getNativeIndex_3_4 -#define utext_hasMetaData utext_hasMetaData_3_4 -#define utext_isLengthExpensive utext_isLengthExpensive_3_4 -#define utext_isWritable utext_isWritable_3_4 -#define utext_moveIndex32 utext_moveIndex32_3_4 -#define utext_nativeLength utext_nativeLength_3_4 -#define utext_next32 utext_next32_3_4 -#define utext_next32From utext_next32From_3_4 -#define utext_openReplaceable utext_openReplaceable_3_4 -#define utext_openUChars utext_openUChars_3_4 -#define utext_openUTF8 utext_openUTF8_3_4 -#define utext_openUnicodeString utext_openUnicodeString_3_4 -#define utext_previous32 utext_previous32_3_4 -#define utext_previous32From utext_previous32From_3_4 -#define utext_replace utext_replace_3_4 -#define utext_setNativeIndex utext_setNativeIndex_3_4 -#define utext_setup utext_setup_3_4 -#define utf8_appendCharSafeBody utf8_appendCharSafeBody_3_4 -#define utf8_back1SafeBody utf8_back1SafeBody_3_4 -#define utf8_countTrailBytes utf8_countTrailBytes_3_4 -#define utf8_nextCharSafeBody utf8_nextCharSafeBody_3_4 -#define utf8_prevCharSafeBody utf8_prevCharSafeBody_3_4 -#define utmscale_fromInt64 utmscale_fromInt64_3_4 -#define utmscale_getTimeScaleValue utmscale_getTimeScaleValue_3_4 -#define utmscale_toInt64 utmscale_toInt64_3_4 -#define utrace_cleanup utrace_cleanup_3_4 -#define utrace_data utrace_data_3_4 -#define utrace_entry utrace_entry_3_4 -#define utrace_exit utrace_exit_3_4 -#define utrace_format utrace_format_3_4 -#define utrace_functionName utrace_functionName_3_4 -#define utrace_getFunctions utrace_getFunctions_3_4 -#define utrace_getLevel utrace_getLevel_3_4 -#define utrace_level utrace_level_3_4 -#define utrace_setFunctions utrace_setFunctions_3_4 -#define utrace_setLevel utrace_setLevel_3_4 -#define utrace_vformat utrace_vformat_3_4 -#define utrans_clone utrans_clone_3_4 -#define utrans_close utrans_close_3_4 -#define utrans_countAvailableIDs utrans_countAvailableIDs_3_4 -#define utrans_getAvailableID utrans_getAvailableID_3_4 -#define utrans_getID utrans_getID_3_4 -#define utrans_getUnicodeID utrans_getUnicodeID_3_4 -#define utrans_open utrans_open_3_4 -#define utrans_openIDs utrans_openIDs_3_4 -#define utrans_openInverse utrans_openInverse_3_4 -#define utrans_openU utrans_openU_3_4 -#define utrans_register utrans_register_3_4 -#define utrans_rep_caseContextIterator utrans_rep_caseContextIterator_3_4 -#define utrans_setFilter utrans_setFilter_3_4 -#define utrans_stripRules utrans_stripRules_3_4 -#define utrans_trans utrans_trans_3_4 -#define utrans_transIncremental utrans_transIncremental_3_4 -#define utrans_transIncrementalUChars utrans_transIncrementalUChars_3_4 -#define utrans_transUChars utrans_transUChars_3_4 -#define utrans_unregister utrans_unregister_3_4 -#define utrans_unregisterID utrans_unregisterID_3_4 -#define utrie_clone utrie_clone_3_4 -#define utrie_close utrie_close_3_4 -#define utrie_defaultGetFoldingOffset utrie_defaultGetFoldingOffset_3_4 -#define utrie_enum utrie_enum_3_4 -#define utrie_get32 utrie_get32_3_4 -#define utrie_getData utrie_getData_3_4 -#define utrie_open utrie_open_3_4 -#define utrie_serialize utrie_serialize_3_4 -#define utrie_set32 utrie_set32_3_4 -#define utrie_setRange32 utrie_setRange32_3_4 -#define utrie_swap utrie_swap_3_4 -#define utrie_unserialize utrie_unserialize_3_4 -#define utrie_unserializeDummy utrie_unserializeDummy_3_4 +#define T_CString_int64ToString T_CString_int64ToString_3_6 +#define T_CString_integerToString T_CString_integerToString_3_6 +#define T_CString_stricmp T_CString_stricmp_3_6 +#define T_CString_stringToInteger T_CString_stringToInteger_3_6 +#define T_CString_strnicmp T_CString_strnicmp_3_6 +#define T_CString_toLowerCase T_CString_toLowerCase_3_6 +#define T_CString_toUpperCase T_CString_toUpperCase_3_6 +#define UCNV_FROM_U_CALLBACK_ESCAPE UCNV_FROM_U_CALLBACK_ESCAPE_3_6 +#define UCNV_FROM_U_CALLBACK_SKIP UCNV_FROM_U_CALLBACK_SKIP_3_6 +#define UCNV_FROM_U_CALLBACK_STOP UCNV_FROM_U_CALLBACK_STOP_3_6 +#define UCNV_FROM_U_CALLBACK_SUBSTITUTE UCNV_FROM_U_CALLBACK_SUBSTITUTE_3_6 +#define UCNV_TO_U_CALLBACK_ESCAPE UCNV_TO_U_CALLBACK_ESCAPE_3_6 +#define UCNV_TO_U_CALLBACK_SKIP UCNV_TO_U_CALLBACK_SKIP_3_6 +#define UCNV_TO_U_CALLBACK_STOP UCNV_TO_U_CALLBACK_STOP_3_6 +#define UCNV_TO_U_CALLBACK_SUBSTITUTE UCNV_TO_U_CALLBACK_SUBSTITUTE_3_6 +#define UDataMemory_createNewInstance UDataMemory_createNewInstance_3_6 +#define UDataMemory_init UDataMemory_init_3_6 +#define UDataMemory_isLoaded UDataMemory_isLoaded_3_6 +#define UDataMemory_normalizeDataPointer UDataMemory_normalizeDataPointer_3_6 +#define UDataMemory_setData UDataMemory_setData_3_6 +#define UDatamemory_assign UDatamemory_assign_3_6 +#define _ASCIIData _ASCIIData_3_6 +#define _Bocu1Data _Bocu1Data_3_6 +#define _CESU8Data _CESU8Data_3_6 +#define _HZData _HZData_3_6 +#define _IMAPData _IMAPData_3_6 +#define _ISCIIData _ISCIIData_3_6 +#define _ISO2022Data _ISO2022Data_3_6 +#define _LMBCSData1 _LMBCSData1_3_6 +#define _LMBCSData11 _LMBCSData11_3_6 +#define _LMBCSData16 _LMBCSData16_3_6 +#define _LMBCSData17 _LMBCSData17_3_6 +#define _LMBCSData18 _LMBCSData18_3_6 +#define _LMBCSData19 _LMBCSData19_3_6 +#define _LMBCSData2 _LMBCSData2_3_6 +#define _LMBCSData3 _LMBCSData3_3_6 +#define _LMBCSData4 _LMBCSData4_3_6 +#define _LMBCSData5 _LMBCSData5_3_6 +#define _LMBCSData6 _LMBCSData6_3_6 +#define _LMBCSData8 _LMBCSData8_3_6 +#define _Latin1Data _Latin1Data_3_6 +#define _MBCSData _MBCSData_3_6 +#define _SCSUData _SCSUData_3_6 +#define _UTF16BEData _UTF16BEData_3_6 +#define _UTF16Data _UTF16Data_3_6 +#define _UTF16LEData _UTF16LEData_3_6 +#define _UTF32BEData _UTF32BEData_3_6 +#define _UTF32Data _UTF32Data_3_6 +#define _UTF32LEData _UTF32LEData_3_6 +#define _UTF7Data _UTF7Data_3_6 +#define _UTF8Data _UTF8Data_3_6 +#define cmemory_cleanup cmemory_cleanup_3_6 +#define cmemory_inUse cmemory_inUse_3_6 +#define locale_getKeywords locale_getKeywords_3_6 +#define locale_get_default locale_get_default_3_6 +#define locale_set_default locale_set_default_3_6 +#define res_countArrayItems res_countArrayItems_3_6 +#define res_findResource res_findResource_3_6 +#define res_getAlias res_getAlias_3_6 +#define res_getArrayItem res_getArrayItem_3_6 +#define res_getBinary res_getBinary_3_6 +#define res_getIntVector res_getIntVector_3_6 +#define res_getResource res_getResource_3_6 +#define res_getString res_getString_3_6 +#define res_getTableItemByIndex res_getTableItemByIndex_3_6 +#define res_getTableItemByKey res_getTableItemByKey_3_6 +#define res_load res_load_3_6 +#define res_unload res_unload_3_6 +#define transliterator_cleanup transliterator_cleanup_3_6 +#define triedict_swap triedict_swap_3_6 +#define u_UCharsToChars u_UCharsToChars_3_6 +#define u_austrcpy u_austrcpy_3_6 +#define u_austrncpy u_austrncpy_3_6 +#define u_catclose u_catclose_3_6 +#define u_catgets u_catgets_3_6 +#define u_catopen u_catopen_3_6 +#define u_charAge u_charAge_3_6 +#define u_charDigitValue u_charDigitValue_3_6 +#define u_charDirection u_charDirection_3_6 +#define u_charFromName u_charFromName_3_6 +#define u_charMirror u_charMirror_3_6 +#define u_charName u_charName_3_6 +#define u_charType u_charType_3_6 +#define u_charsToUChars u_charsToUChars_3_6 +#define u_cleanup u_cleanup_3_6 +#define u_countChar32 u_countChar32_3_6 +#define u_digit u_digit_3_6 +#define u_enumCharNames u_enumCharNames_3_6 +#define u_enumCharTypes u_enumCharTypes_3_6 +#define u_errorName u_errorName_3_6 +#define u_fclose u_fclose_3_6 +#define u_feof u_feof_3_6 +#define u_fflush u_fflush_3_6 +#define u_fgetConverter u_fgetConverter_3_6 +#define u_fgetc u_fgetc_3_6 +#define u_fgetcodepage u_fgetcodepage_3_6 +#define u_fgetcx u_fgetcx_3_6 +#define u_fgetfile u_fgetfile_3_6 +#define u_fgetlocale u_fgetlocale_3_6 +#define u_fgets u_fgets_3_6 +#define u_file_read u_file_read_3_6 +#define u_file_write u_file_write_3_6 +#define u_file_write_flush u_file_write_flush_3_6 +#define u_finit u_finit_3_6 +#define u_foldCase u_foldCase_3_6 +#define u_fopen u_fopen_3_6 +#define u_forDigit u_forDigit_3_6 +#define u_formatMessage u_formatMessage_3_6 +#define u_formatMessageWithError u_formatMessageWithError_3_6 +#define u_fprintf u_fprintf_3_6 +#define u_fprintf_u u_fprintf_u_3_6 +#define u_fputc u_fputc_3_6 +#define u_fputs u_fputs_3_6 +#define u_frewind u_frewind_3_6 +#define u_fscanf u_fscanf_3_6 +#define u_fscanf_u u_fscanf_u_3_6 +#define u_fsetcodepage u_fsetcodepage_3_6 +#define u_fsetlocale u_fsetlocale_3_6 +#define u_fsettransliterator u_fsettransliterator_3_6 +#define u_fstropen u_fstropen_3_6 +#define u_fungetc u_fungetc_3_6 +#define u_getCombiningClass u_getCombiningClass_3_6 +#define u_getDataDirectory u_getDataDirectory_3_6 +#define u_getDefaultConverter u_getDefaultConverter_3_6 +#define u_getFC_NFKC_Closure u_getFC_NFKC_Closure_3_6 +#define u_getISOComment u_getISOComment_3_6 +#define u_getIntPropertyMaxValue u_getIntPropertyMaxValue_3_6 +#define u_getIntPropertyMinValue u_getIntPropertyMinValue_3_6 +#define u_getIntPropertyValue u_getIntPropertyValue_3_6 +#define u_getNumericValue u_getNumericValue_3_6 +#define u_getPropertyEnum u_getPropertyEnum_3_6 +#define u_getPropertyName u_getPropertyName_3_6 +#define u_getPropertyValueEnum u_getPropertyValueEnum_3_6 +#define u_getPropertyValueName u_getPropertyValueName_3_6 +#define u_getUnicodeProperties u_getUnicodeProperties_3_6 +#define u_getUnicodeVersion u_getUnicodeVersion_3_6 +#define u_getVersion u_getVersion_3_6 +#define u_growBufferFromStatic u_growBufferFromStatic_3_6 +#define u_hasBinaryProperty u_hasBinaryProperty_3_6 +#define u_init u_init_3_6 +#define u_isIDIgnorable u_isIDIgnorable_3_6 +#define u_isIDPart u_isIDPart_3_6 +#define u_isIDStart u_isIDStart_3_6 +#define u_isISOControl u_isISOControl_3_6 +#define u_isJavaIDPart u_isJavaIDPart_3_6 +#define u_isJavaIDStart u_isJavaIDStart_3_6 +#define u_isJavaSpaceChar u_isJavaSpaceChar_3_6 +#define u_isMirrored u_isMirrored_3_6 +#define u_isUAlphabetic u_isUAlphabetic_3_6 +#define u_isULowercase u_isULowercase_3_6 +#define u_isUUppercase u_isUUppercase_3_6 +#define u_isUWhiteSpace u_isUWhiteSpace_3_6 +#define u_isWhitespace u_isWhitespace_3_6 +#define u_isalnum u_isalnum_3_6 +#define u_isalnumPOSIX u_isalnumPOSIX_3_6 +#define u_isalpha u_isalpha_3_6 +#define u_isbase u_isbase_3_6 +#define u_isblank u_isblank_3_6 +#define u_iscntrl u_iscntrl_3_6 +#define u_isdefined u_isdefined_3_6 +#define u_isdigit u_isdigit_3_6 +#define u_isgraph u_isgraph_3_6 +#define u_isgraphPOSIX u_isgraphPOSIX_3_6 +#define u_islower u_islower_3_6 +#define u_isprint u_isprint_3_6 +#define u_isprintPOSIX u_isprintPOSIX_3_6 +#define u_ispunct u_ispunct_3_6 +#define u_isspace u_isspace_3_6 +#define u_istitle u_istitle_3_6 +#define u_isupper u_isupper_3_6 +#define u_isxdigit u_isxdigit_3_6 +#define u_lengthOfIdenticalLevelRun u_lengthOfIdenticalLevelRun_3_6 +#define u_locbund_close u_locbund_close_3_6 +#define u_locbund_getNumberFormat u_locbund_getNumberFormat_3_6 +#define u_locbund_init u_locbund_init_3_6 +#define u_memcasecmp u_memcasecmp_3_6 +#define u_memchr u_memchr_3_6 +#define u_memchr32 u_memchr32_3_6 +#define u_memcmp u_memcmp_3_6 +#define u_memcmpCodePointOrder u_memcmpCodePointOrder_3_6 +#define u_memcpy u_memcpy_3_6 +#define u_memmove u_memmove_3_6 +#define u_memrchr u_memrchr_3_6 +#define u_memrchr32 u_memrchr32_3_6 +#define u_memset u_memset_3_6 +#define u_parseMessage u_parseMessage_3_6 +#define u_parseMessageWithError u_parseMessageWithError_3_6 +#define u_printf_parse u_printf_parse_3_6 +#define u_releaseDefaultConverter u_releaseDefaultConverter_3_6 +#define u_scanf_parse u_scanf_parse_3_6 +#define u_setAtomicIncDecFunctions u_setAtomicIncDecFunctions_3_6 +#define u_setDataDirectory u_setDataDirectory_3_6 +#define u_setMemoryFunctions u_setMemoryFunctions_3_6 +#define u_setMutexFunctions u_setMutexFunctions_3_6 +#define u_shapeArabic u_shapeArabic_3_6 +#define u_snprintf u_snprintf_3_6 +#define u_snprintf_u u_snprintf_u_3_6 +#define u_sprintf u_sprintf_3_6 +#define u_sprintf_u u_sprintf_u_3_6 +#define u_sscanf u_sscanf_3_6 +#define u_sscanf_u u_sscanf_u_3_6 +#define u_strCaseCompare u_strCaseCompare_3_6 +#define u_strCompare u_strCompare_3_6 +#define u_strCompareIter u_strCompareIter_3_6 +#define u_strFindFirst u_strFindFirst_3_6 +#define u_strFindLast u_strFindLast_3_6 +#define u_strFoldCase u_strFoldCase_3_6 +#define u_strFromPunycode u_strFromPunycode_3_6 +#define u_strFromUTF32 u_strFromUTF32_3_6 +#define u_strFromUTF8 u_strFromUTF8_3_6 +#define u_strFromUTF8Lenient u_strFromUTF8Lenient_3_6 +#define u_strFromUTF8WithSub u_strFromUTF8WithSub_3_6 +#define u_strFromWCS u_strFromWCS_3_6 +#define u_strHasMoreChar32Than u_strHasMoreChar32Than_3_6 +#define u_strToLower u_strToLower_3_6 +#define u_strToPunycode u_strToPunycode_3_6 +#define u_strToTitle u_strToTitle_3_6 +#define u_strToUTF32 u_strToUTF32_3_6 +#define u_strToUTF8 u_strToUTF8_3_6 +#define u_strToUTF8WithSub u_strToUTF8WithSub_3_6 +#define u_strToUpper u_strToUpper_3_6 +#define u_strToWCS u_strToWCS_3_6 +#define u_strcasecmp u_strcasecmp_3_6 +#define u_strcat u_strcat_3_6 +#define u_strchr u_strchr_3_6 +#define u_strchr32 u_strchr32_3_6 +#define u_strcmp u_strcmp_3_6 +#define u_strcmpCodePointOrder u_strcmpCodePointOrder_3_6 +#define u_strcmpFold u_strcmpFold_3_6 +#define u_strcpy u_strcpy_3_6 +#define u_strcspn u_strcspn_3_6 +#define u_strlen u_strlen_3_6 +#define u_strncasecmp u_strncasecmp_3_6 +#define u_strncat u_strncat_3_6 +#define u_strncmp u_strncmp_3_6 +#define u_strncmpCodePointOrder u_strncmpCodePointOrder_3_6 +#define u_strncpy u_strncpy_3_6 +#define u_strpbrk u_strpbrk_3_6 +#define u_strrchr u_strrchr_3_6 +#define u_strrchr32 u_strrchr32_3_6 +#define u_strrstr u_strrstr_3_6 +#define u_strspn u_strspn_3_6 +#define u_strstr u_strstr_3_6 +#define u_strtok_r u_strtok_r_3_6 +#define u_terminateChars u_terminateChars_3_6 +#define u_terminateUChar32s u_terminateUChar32s_3_6 +#define u_terminateUChars u_terminateUChars_3_6 +#define u_terminateWChars u_terminateWChars_3_6 +#define u_tolower u_tolower_3_6 +#define u_totitle u_totitle_3_6 +#define u_toupper u_toupper_3_6 +#define u_uastrcpy u_uastrcpy_3_6 +#define u_uastrncpy u_uastrncpy_3_6 +#define u_unescape u_unescape_3_6 +#define u_unescapeAt u_unescapeAt_3_6 +#define u_versionFromString u_versionFromString_3_6 +#define u_versionToString u_versionToString_3_6 +#define u_vformatMessage u_vformatMessage_3_6 +#define u_vformatMessageWithError u_vformatMessageWithError_3_6 +#define u_vfprintf u_vfprintf_3_6 +#define u_vfprintf_u u_vfprintf_u_3_6 +#define u_vfscanf u_vfscanf_3_6 +#define u_vfscanf_u u_vfscanf_u_3_6 +#define u_vparseMessage u_vparseMessage_3_6 +#define u_vparseMessageWithError u_vparseMessageWithError_3_6 +#define u_vsnprintf u_vsnprintf_3_6 +#define u_vsnprintf_u u_vsnprintf_u_3_6 +#define u_vsprintf u_vsprintf_3_6 +#define u_vsprintf_u u_vsprintf_u_3_6 +#define u_vsscanf u_vsscanf_3_6 +#define u_vsscanf_u u_vsscanf_u_3_6 +#define u_writeDiff u_writeDiff_3_6 +#define u_writeIdenticalLevelRun u_writeIdenticalLevelRun_3_6 +#define u_writeIdenticalLevelRunTwoChars u_writeIdenticalLevelRunTwoChars_3_6 +#define ubidi_addPropertyStarts ubidi_addPropertyStarts_3_6 +#define ubidi_close ubidi_close_3_6 +#define ubidi_closeProps ubidi_closeProps_3_6 +#define ubidi_countParagraphs ubidi_countParagraphs_3_6 +#define ubidi_countRuns ubidi_countRuns_3_6 +#define ubidi_getClass ubidi_getClass_3_6 +#define ubidi_getClassCallback ubidi_getClassCallback_3_6 +#define ubidi_getCustomizedClass ubidi_getCustomizedClass_3_6 +#define ubidi_getDirection ubidi_getDirection_3_6 +#define ubidi_getDummy ubidi_getDummy_3_6 +#define ubidi_getJoiningGroup ubidi_getJoiningGroup_3_6 +#define ubidi_getJoiningType ubidi_getJoiningType_3_6 +#define ubidi_getLength ubidi_getLength_3_6 +#define ubidi_getLevelAt ubidi_getLevelAt_3_6 +#define ubidi_getLevels ubidi_getLevels_3_6 +#define ubidi_getLogicalIndex ubidi_getLogicalIndex_3_6 +#define ubidi_getLogicalMap ubidi_getLogicalMap_3_6 +#define ubidi_getLogicalRun ubidi_getLogicalRun_3_6 +#define ubidi_getMaxValue ubidi_getMaxValue_3_6 +#define ubidi_getMemory ubidi_getMemory_3_6 +#define ubidi_getMirror ubidi_getMirror_3_6 +#define ubidi_getParaLevel ubidi_getParaLevel_3_6 +#define ubidi_getParagraph ubidi_getParagraph_3_6 +#define ubidi_getParagraphByIndex ubidi_getParagraphByIndex_3_6 +#define ubidi_getProcessedLength ubidi_getProcessedLength_3_6 +#define ubidi_getReorderingMode ubidi_getReorderingMode_3_6 +#define ubidi_getReorderingOptions ubidi_getReorderingOptions_3_6 +#define ubidi_getResultLength ubidi_getResultLength_3_6 +#define ubidi_getRuns ubidi_getRuns_3_6 +#define ubidi_getSingleton ubidi_getSingleton_3_6 +#define ubidi_getText ubidi_getText_3_6 +#define ubidi_getVisualIndex ubidi_getVisualIndex_3_6 +#define ubidi_getVisualMap ubidi_getVisualMap_3_6 +#define ubidi_getVisualRun ubidi_getVisualRun_3_6 +#define ubidi_invertMap ubidi_invertMap_3_6 +#define ubidi_isBidiControl ubidi_isBidiControl_3_6 +#define ubidi_isInverse ubidi_isInverse_3_6 +#define ubidi_isJoinControl ubidi_isJoinControl_3_6 +#define ubidi_isMirrored ubidi_isMirrored_3_6 +#define ubidi_isOrderParagraphsLTR ubidi_isOrderParagraphsLTR_3_6 +#define ubidi_open ubidi_open_3_6 +#define ubidi_openSized ubidi_openSized_3_6 +#define ubidi_orderParagraphsLTR ubidi_orderParagraphsLTR_3_6 +#define ubidi_reorderLogical ubidi_reorderLogical_3_6 +#define ubidi_reorderVisual ubidi_reorderVisual_3_6 +#define ubidi_setClassCallback ubidi_setClassCallback_3_6 +#define ubidi_setInverse ubidi_setInverse_3_6 +#define ubidi_setLine ubidi_setLine_3_6 +#define ubidi_setPara ubidi_setPara_3_6 +#define ubidi_setReorderingMode ubidi_setReorderingMode_3_6 +#define ubidi_setReorderingOptions ubidi_setReorderingOptions_3_6 +#define ubidi_writeReordered ubidi_writeReordered_3_6 +#define ubidi_writeReverse ubidi_writeReverse_3_6 +#define ublock_getCode ublock_getCode_3_6 +#define ubrk_close ubrk_close_3_6 +#define ubrk_countAvailable ubrk_countAvailable_3_6 +#define ubrk_current ubrk_current_3_6 +#define ubrk_first ubrk_first_3_6 +#define ubrk_following ubrk_following_3_6 +#define ubrk_getAvailable ubrk_getAvailable_3_6 +#define ubrk_getLocaleByType ubrk_getLocaleByType_3_6 +#define ubrk_getRuleStatus ubrk_getRuleStatus_3_6 +#define ubrk_getRuleStatusVec ubrk_getRuleStatusVec_3_6 +#define ubrk_isBoundary ubrk_isBoundary_3_6 +#define ubrk_last ubrk_last_3_6 +#define ubrk_next ubrk_next_3_6 +#define ubrk_open ubrk_open_3_6 +#define ubrk_openRules ubrk_openRules_3_6 +#define ubrk_preceding ubrk_preceding_3_6 +#define ubrk_previous ubrk_previous_3_6 +#define ubrk_safeClone ubrk_safeClone_3_6 +#define ubrk_setText ubrk_setText_3_6 +#define ubrk_setUText ubrk_setUText_3_6 +#define ubrk_swap ubrk_swap_3_6 +#define ucal_add ucal_add_3_6 +#define ucal_clear ucal_clear_3_6 +#define ucal_clearField ucal_clearField_3_6 +#define ucal_close ucal_close_3_6 +#define ucal_countAvailable ucal_countAvailable_3_6 +#define ucal_equivalentTo ucal_equivalentTo_3_6 +#define ucal_get ucal_get_3_6 +#define ucal_getAttribute ucal_getAttribute_3_6 +#define ucal_getAvailable ucal_getAvailable_3_6 +#define ucal_getDSTSavings ucal_getDSTSavings_3_6 +#define ucal_getDefaultTimeZone ucal_getDefaultTimeZone_3_6 +#define ucal_getGregorianChange ucal_getGregorianChange_3_6 +#define ucal_getLimit ucal_getLimit_3_6 +#define ucal_getLocaleByType ucal_getLocaleByType_3_6 +#define ucal_getMillis ucal_getMillis_3_6 +#define ucal_getNow ucal_getNow_3_6 +#define ucal_getTimeZoneDisplayName ucal_getTimeZoneDisplayName_3_6 +#define ucal_inDaylightTime ucal_inDaylightTime_3_6 +#define ucal_isSet ucal_isSet_3_6 +#define ucal_open ucal_open_3_6 +#define ucal_openCountryTimeZones ucal_openCountryTimeZones_3_6 +#define ucal_openTimeZones ucal_openTimeZones_3_6 +#define ucal_roll ucal_roll_3_6 +#define ucal_set ucal_set_3_6 +#define ucal_setAttribute ucal_setAttribute_3_6 +#define ucal_setDate ucal_setDate_3_6 +#define ucal_setDateTime ucal_setDateTime_3_6 +#define ucal_setDefaultTimeZone ucal_setDefaultTimeZone_3_6 +#define ucal_setGregorianChange ucal_setGregorianChange_3_6 +#define ucal_setMillis ucal_setMillis_3_6 +#define ucal_setTimeZone ucal_setTimeZone_3_6 +#define ucase_addCaseClosure ucase_addCaseClosure_3_6 +#define ucase_addPropertyStarts ucase_addPropertyStarts_3_6 +#define ucase_addStringCaseClosure ucase_addStringCaseClosure_3_6 +#define ucase_close ucase_close_3_6 +#define ucase_fold ucase_fold_3_6 +#define ucase_getCaseLocale ucase_getCaseLocale_3_6 +#define ucase_getDummy ucase_getDummy_3_6 +#define ucase_getSingleton ucase_getSingleton_3_6 +#define ucase_getType ucase_getType_3_6 +#define ucase_getTypeOrIgnorable ucase_getTypeOrIgnorable_3_6 +#define ucase_hasBinaryProperty ucase_hasBinaryProperty_3_6 +#define ucase_isCaseSensitive ucase_isCaseSensitive_3_6 +#define ucase_isSoftDotted ucase_isSoftDotted_3_6 +#define ucase_toFullFolding ucase_toFullFolding_3_6 +#define ucase_toFullLower ucase_toFullLower_3_6 +#define ucase_toFullTitle ucase_toFullTitle_3_6 +#define ucase_toFullUpper ucase_toFullUpper_3_6 +#define ucase_tolower ucase_tolower_3_6 +#define ucase_totitle ucase_totitle_3_6 +#define ucase_toupper ucase_toupper_3_6 +#define ucasemap_close ucasemap_close_3_6 +#define ucasemap_getLocale ucasemap_getLocale_3_6 +#define ucasemap_getOptions ucasemap_getOptions_3_6 +#define ucasemap_open ucasemap_open_3_6 +#define ucasemap_setLocale ucasemap_setLocale_3_6 +#define ucasemap_setOptions ucasemap_setOptions_3_6 +#define ucasemap_utf8ToLower ucasemap_utf8ToLower_3_6 +#define ucasemap_utf8ToUpper ucasemap_utf8ToUpper_3_6 +#define uchar_addPropertyStarts uchar_addPropertyStarts_3_6 +#define uchar_getHST uchar_getHST_3_6 +#define uchar_swapNames uchar_swapNames_3_6 +#define ucln_common_registerCleanup ucln_common_registerCleanup_3_6 +#define ucln_i18n_registerCleanup ucln_i18n_registerCleanup_3_6 +#define ucln_io_registerCleanup ucln_io_registerCleanup_3_6 +#define ucln_lib_cleanup ucln_lib_cleanup_3_6 +#define ucln_registerCleanup ucln_registerCleanup_3_6 +#define ucnv_MBCSFromUChar32 ucnv_MBCSFromUChar32_3_6 +#define ucnv_MBCSFromUnicodeWithOffsets ucnv_MBCSFromUnicodeWithOffsets_3_6 +#define ucnv_MBCSGetType ucnv_MBCSGetType_3_6 +#define ucnv_MBCSGetUnicodeSetForBytes ucnv_MBCSGetUnicodeSetForBytes_3_6 +#define ucnv_MBCSGetUnicodeSetForUnicode ucnv_MBCSGetUnicodeSetForUnicode_3_6 +#define ucnv_MBCSIsLeadByte ucnv_MBCSIsLeadByte_3_6 +#define ucnv_MBCSSimpleGetNextUChar ucnv_MBCSSimpleGetNextUChar_3_6 +#define ucnv_MBCSToUnicodeWithOffsets ucnv_MBCSToUnicodeWithOffsets_3_6 +#define ucnv_bld_countAvailableConverters ucnv_bld_countAvailableConverters_3_6 +#define ucnv_bld_getAvailableConverter ucnv_bld_getAvailableConverter_3_6 +#define ucnv_cbFromUWriteBytes ucnv_cbFromUWriteBytes_3_6 +#define ucnv_cbFromUWriteSub ucnv_cbFromUWriteSub_3_6 +#define ucnv_cbFromUWriteUChars ucnv_cbFromUWriteUChars_3_6 +#define ucnv_cbToUWriteSub ucnv_cbToUWriteSub_3_6 +#define ucnv_cbToUWriteUChars ucnv_cbToUWriteUChars_3_6 +#define ucnv_close ucnv_close_3_6 +#define ucnv_compareNames ucnv_compareNames_3_6 +#define ucnv_convert ucnv_convert_3_6 +#define ucnv_convertEx ucnv_convertEx_3_6 +#define ucnv_countAliases ucnv_countAliases_3_6 +#define ucnv_countAvailable ucnv_countAvailable_3_6 +#define ucnv_countStandards ucnv_countStandards_3_6 +#define ucnv_createAlgorithmicConverter ucnv_createAlgorithmicConverter_3_6 +#define ucnv_createConverter ucnv_createConverter_3_6 +#define ucnv_createConverterFromPackage ucnv_createConverterFromPackage_3_6 +#define ucnv_createConverterFromSharedData ucnv_createConverterFromSharedData_3_6 +#define ucnv_detectUnicodeSignature ucnv_detectUnicodeSignature_3_6 +#define ucnv_extContinueMatchFromU ucnv_extContinueMatchFromU_3_6 +#define ucnv_extContinueMatchToU ucnv_extContinueMatchToU_3_6 +#define ucnv_extGetUnicodeSet ucnv_extGetUnicodeSet_3_6 +#define ucnv_extInitialMatchFromU ucnv_extInitialMatchFromU_3_6 +#define ucnv_extInitialMatchToU ucnv_extInitialMatchToU_3_6 +#define ucnv_extSimpleMatchFromU ucnv_extSimpleMatchFromU_3_6 +#define ucnv_extSimpleMatchToU ucnv_extSimpleMatchToU_3_6 +#define ucnv_fixFileSeparator ucnv_fixFileSeparator_3_6 +#define ucnv_flushCache ucnv_flushCache_3_6 +#define ucnv_fromAlgorithmic ucnv_fromAlgorithmic_3_6 +#define ucnv_fromUChars ucnv_fromUChars_3_6 +#define ucnv_fromUCountPending ucnv_fromUCountPending_3_6 +#define ucnv_fromUWriteBytes ucnv_fromUWriteBytes_3_6 +#define ucnv_fromUnicode ucnv_fromUnicode_3_6 +#define ucnv_fromUnicode_UTF8 ucnv_fromUnicode_UTF8_3_6 +#define ucnv_fromUnicode_UTF8_OFFSETS_LOGIC ucnv_fromUnicode_UTF8_OFFSETS_LOGIC_3_6 +#define ucnv_getAlias ucnv_getAlias_3_6 +#define ucnv_getAliases ucnv_getAliases_3_6 +#define ucnv_getAvailableName ucnv_getAvailableName_3_6 +#define ucnv_getCCSID ucnv_getCCSID_3_6 +#define ucnv_getCanonicalName ucnv_getCanonicalName_3_6 +#define ucnv_getCompleteUnicodeSet ucnv_getCompleteUnicodeSet_3_6 +#define ucnv_getDefaultName ucnv_getDefaultName_3_6 +#define ucnv_getDisplayName ucnv_getDisplayName_3_6 +#define ucnv_getFromUCallBack ucnv_getFromUCallBack_3_6 +#define ucnv_getInvalidChars ucnv_getInvalidChars_3_6 +#define ucnv_getInvalidUChars ucnv_getInvalidUChars_3_6 +#define ucnv_getMaxCharSize ucnv_getMaxCharSize_3_6 +#define ucnv_getMinCharSize ucnv_getMinCharSize_3_6 +#define ucnv_getName ucnv_getName_3_6 +#define ucnv_getNextUChar ucnv_getNextUChar_3_6 +#define ucnv_getNonSurrogateUnicodeSet ucnv_getNonSurrogateUnicodeSet_3_6 +#define ucnv_getPlatform ucnv_getPlatform_3_6 +#define ucnv_getStandard ucnv_getStandard_3_6 +#define ucnv_getStandardName ucnv_getStandardName_3_6 +#define ucnv_getStarters ucnv_getStarters_3_6 +#define ucnv_getSubstChars ucnv_getSubstChars_3_6 +#define ucnv_getToUCallBack ucnv_getToUCallBack_3_6 +#define ucnv_getType ucnv_getType_3_6 +#define ucnv_getUnicodeSet ucnv_getUnicodeSet_3_6 +#define ucnv_incrementRefCount ucnv_incrementRefCount_3_6 +#define ucnv_io_countTotalAliases ucnv_io_countTotalAliases_3_6 +#define ucnv_io_getConverterName ucnv_io_getConverterName_3_6 +#define ucnv_io_stripASCIIForCompare ucnv_io_stripASCIIForCompare_3_6 +#define ucnv_io_stripEBCDICForCompare ucnv_io_stripEBCDICForCompare_3_6 +#define ucnv_isAmbiguous ucnv_isAmbiguous_3_6 +#define ucnv_load ucnv_load_3_6 +#define ucnv_loadSharedData ucnv_loadSharedData_3_6 +#define ucnv_open ucnv_open_3_6 +#define ucnv_openAllNames ucnv_openAllNames_3_6 +#define ucnv_openCCSID ucnv_openCCSID_3_6 +#define ucnv_openPackage ucnv_openPackage_3_6 +#define ucnv_openStandardNames ucnv_openStandardNames_3_6 +#define ucnv_openU ucnv_openU_3_6 +#define ucnv_reset ucnv_reset_3_6 +#define ucnv_resetFromUnicode ucnv_resetFromUnicode_3_6 +#define ucnv_resetToUnicode ucnv_resetToUnicode_3_6 +#define ucnv_safeClone ucnv_safeClone_3_6 +#define ucnv_setDefaultName ucnv_setDefaultName_3_6 +#define ucnv_setFallback ucnv_setFallback_3_6 +#define ucnv_setFromUCallBack ucnv_setFromUCallBack_3_6 +#define ucnv_setSubstChars ucnv_setSubstChars_3_6 +#define ucnv_setSubstString ucnv_setSubstString_3_6 +#define ucnv_setToUCallBack ucnv_setToUCallBack_3_6 +#define ucnv_swap ucnv_swap_3_6 +#define ucnv_swapAliases ucnv_swapAliases_3_6 +#define ucnv_toAlgorithmic ucnv_toAlgorithmic_3_6 +#define ucnv_toUChars ucnv_toUChars_3_6 +#define ucnv_toUCountPending ucnv_toUCountPending_3_6 +#define ucnv_toUWriteCodePoint ucnv_toUWriteCodePoint_3_6 +#define ucnv_toUWriteUChars ucnv_toUWriteUChars_3_6 +#define ucnv_toUnicode ucnv_toUnicode_3_6 +#define ucnv_unload ucnv_unload_3_6 +#define ucnv_unloadSharedDataIfReady ucnv_unloadSharedDataIfReady_3_6 +#define ucnv_usesFallback ucnv_usesFallback_3_6 +#define ucol_allocWeights ucol_allocWeights_3_6 +#define ucol_assembleTailoringTable ucol_assembleTailoringTable_3_6 +#define ucol_calcSortKey ucol_calcSortKey_3_6 +#define ucol_calcSortKeySimpleTertiary ucol_calcSortKeySimpleTertiary_3_6 +#define ucol_cloneBinary ucol_cloneBinary_3_6 +#define ucol_cloneRuleData ucol_cloneRuleData_3_6 +#define ucol_close ucol_close_3_6 +#define ucol_closeElements ucol_closeElements_3_6 +#define ucol_collatorToIdentifier ucol_collatorToIdentifier_3_6 +#define ucol_countAvailable ucol_countAvailable_3_6 +#define ucol_createElements ucol_createElements_3_6 +#define ucol_doCE ucol_doCE_3_6 +#define ucol_equal ucol_equal_3_6 +#define ucol_equals ucol_equals_3_6 +#define ucol_forgetUCA ucol_forgetUCA_3_6 +#define ucol_getAttribute ucol_getAttribute_3_6 +#define ucol_getAttributeOrDefault ucol_getAttributeOrDefault_3_6 +#define ucol_getAvailable ucol_getAvailable_3_6 +#define ucol_getBound ucol_getBound_3_6 +#define ucol_getCEGenerator ucol_getCEGenerator_3_6 +#define ucol_getCEStrengthDifference ucol_getCEStrengthDifference_3_6 +#define ucol_getContractions ucol_getContractions_3_6 +#define ucol_getContractionsAndExpansions ucol_getContractionsAndExpansions_3_6 +#define ucol_getDisplayName ucol_getDisplayName_3_6 +#define ucol_getFirstCE ucol_getFirstCE_3_6 +#define ucol_getFunctionalEquivalent ucol_getFunctionalEquivalent_3_6 +#define ucol_getKeywordValues ucol_getKeywordValues_3_6 +#define ucol_getKeywords ucol_getKeywords_3_6 +#define ucol_getLocale ucol_getLocale_3_6 +#define ucol_getLocaleByType ucol_getLocaleByType_3_6 +#define ucol_getMaxExpansion ucol_getMaxExpansion_3_6 +#define ucol_getNextCE ucol_getNextCE_3_6 +#define ucol_getNextGenerated ucol_getNextGenerated_3_6 +#define ucol_getOffset ucol_getOffset_3_6 +#define ucol_getPrevCE ucol_getPrevCE_3_6 +#define ucol_getRules ucol_getRules_3_6 +#define ucol_getRulesEx ucol_getRulesEx_3_6 +#define ucol_getShortDefinitionString ucol_getShortDefinitionString_3_6 +#define ucol_getSimpleCEGenerator ucol_getSimpleCEGenerator_3_6 +#define ucol_getSortKey ucol_getSortKey_3_6 +#define ucol_getSortKeySize ucol_getSortKeySize_3_6 +#define ucol_getSortKeyWithAllocation ucol_getSortKeyWithAllocation_3_6 +#define ucol_getStrength ucol_getStrength_3_6 +#define ucol_getTailoredSet ucol_getTailoredSet_3_6 +#define ucol_getUCAVersion ucol_getUCAVersion_3_6 +#define ucol_getUnsafeSet ucol_getUnsafeSet_3_6 +#define ucol_getVariableTop ucol_getVariableTop_3_6 +#define ucol_getVersion ucol_getVersion_3_6 +#define ucol_greater ucol_greater_3_6 +#define ucol_greaterOrEqual ucol_greaterOrEqual_3_6 +#define ucol_identifierToShortString ucol_identifierToShortString_3_6 +#define ucol_initBuffers ucol_initBuffers_3_6 +#define ucol_initCollator ucol_initCollator_3_6 +#define ucol_initInverseUCA ucol_initInverseUCA_3_6 +#define ucol_initUCA ucol_initUCA_3_6 +#define ucol_inv_getGapPositions ucol_inv_getGapPositions_3_6 +#define ucol_inv_getNextCE ucol_inv_getNextCE_3_6 +#define ucol_inv_getPrevCE ucol_inv_getPrevCE_3_6 +#define ucol_isTailored ucol_isTailored_3_6 +#define ucol_keyHashCode ucol_keyHashCode_3_6 +#define ucol_mergeSortkeys ucol_mergeSortkeys_3_6 +#define ucol_next ucol_next_3_6 +#define ucol_nextSortKeyPart ucol_nextSortKeyPart_3_6 +#define ucol_nextWeight ucol_nextWeight_3_6 +#define ucol_normalizeShortDefinitionString ucol_normalizeShortDefinitionString_3_6 +#define ucol_open ucol_open_3_6 +#define ucol_openAvailableLocales ucol_openAvailableLocales_3_6 +#define ucol_openBinary ucol_openBinary_3_6 +#define ucol_openElements ucol_openElements_3_6 +#define ucol_openFromIdentifier ucol_openFromIdentifier_3_6 +#define ucol_openFromShortString ucol_openFromShortString_3_6 +#define ucol_openRules ucol_openRules_3_6 +#define ucol_open_internal ucol_open_internal_3_6 +#define ucol_prepareShortStringOpen ucol_prepareShortStringOpen_3_6 +#define ucol_previous ucol_previous_3_6 +#define ucol_primaryOrder ucol_primaryOrder_3_6 +#define ucol_prv_getSpecialCE ucol_prv_getSpecialCE_3_6 +#define ucol_prv_getSpecialPrevCE ucol_prv_getSpecialPrevCE_3_6 +#define ucol_reset ucol_reset_3_6 +#define ucol_restoreVariableTop ucol_restoreVariableTop_3_6 +#define ucol_safeClone ucol_safeClone_3_6 +#define ucol_secondaryOrder ucol_secondaryOrder_3_6 +#define ucol_setAttribute ucol_setAttribute_3_6 +#define ucol_setOffset ucol_setOffset_3_6 +#define ucol_setOptionsFromHeader ucol_setOptionsFromHeader_3_6 +#define ucol_setReqValidLocales ucol_setReqValidLocales_3_6 +#define ucol_setStrength ucol_setStrength_3_6 +#define ucol_setText ucol_setText_3_6 +#define ucol_setVariableTop ucol_setVariableTop_3_6 +#define ucol_shortStringToIdentifier ucol_shortStringToIdentifier_3_6 +#define ucol_strcoll ucol_strcoll_3_6 +#define ucol_strcollIter ucol_strcollIter_3_6 +#define ucol_swap ucol_swap_3_6 +#define ucol_swapBinary ucol_swapBinary_3_6 +#define ucol_swapInverseUCA ucol_swapInverseUCA_3_6 +#define ucol_tertiaryOrder ucol_tertiaryOrder_3_6 +#define ucol_tok_assembleTokenList ucol_tok_assembleTokenList_3_6 +#define ucol_tok_closeTokenList ucol_tok_closeTokenList_3_6 +#define ucol_tok_getNextArgument ucol_tok_getNextArgument_3_6 +#define ucol_tok_initTokenList ucol_tok_initTokenList_3_6 +#define ucol_tok_parseNextToken ucol_tok_parseNextToken_3_6 +#define ucol_updateInternalState ucol_updateInternalState_3_6 +#define ucsdet_close ucsdet_close_3_6 +#define ucsdet_detect ucsdet_detect_3_6 +#define ucsdet_detectAll ucsdet_detectAll_3_6 +#define ucsdet_enableInputFilter ucsdet_enableInputFilter_3_6 +#define ucsdet_getAllDetectableCharsets ucsdet_getAllDetectableCharsets_3_6 +#define ucsdet_getConfidence ucsdet_getConfidence_3_6 +#define ucsdet_getLanguage ucsdet_getLanguage_3_6 +#define ucsdet_getName ucsdet_getName_3_6 +#define ucsdet_getUChars ucsdet_getUChars_3_6 +#define ucsdet_isInputFilterEnabled ucsdet_isInputFilterEnabled_3_6 +#define ucsdet_open ucsdet_open_3_6 +#define ucsdet_setDeclaredEncoding ucsdet_setDeclaredEncoding_3_6 +#define ucsdet_setText ucsdet_setText_3_6 +#define ucurr_forLocale ucurr_forLocale_3_6 +#define ucurr_getDefaultFractionDigits ucurr_getDefaultFractionDigits_3_6 +#define ucurr_getName ucurr_getName_3_6 +#define ucurr_getRoundingIncrement ucurr_getRoundingIncrement_3_6 +#define ucurr_openISOCurrencies ucurr_openISOCurrencies_3_6 +#define ucurr_register ucurr_register_3_6 +#define ucurr_unregister ucurr_unregister_3_6 +#define udat_applyPattern udat_applyPattern_3_6 +#define udat_clone udat_clone_3_6 +#define udat_close udat_close_3_6 +#define udat_countAvailable udat_countAvailable_3_6 +#define udat_countSymbols udat_countSymbols_3_6 +#define udat_format udat_format_3_6 +#define udat_get2DigitYearStart udat_get2DigitYearStart_3_6 +#define udat_getAvailable udat_getAvailable_3_6 +#define udat_getCalendar udat_getCalendar_3_6 +#define udat_getLocaleByType udat_getLocaleByType_3_6 +#define udat_getNumberFormat udat_getNumberFormat_3_6 +#define udat_getSymbols udat_getSymbols_3_6 +#define udat_isLenient udat_isLenient_3_6 +#define udat_open udat_open_3_6 +#define udat_parse udat_parse_3_6 +#define udat_parseCalendar udat_parseCalendar_3_6 +#define udat_set2DigitYearStart udat_set2DigitYearStart_3_6 +#define udat_setCalendar udat_setCalendar_3_6 +#define udat_setLenient udat_setLenient_3_6 +#define udat_setNumberFormat udat_setNumberFormat_3_6 +#define udat_setSymbols udat_setSymbols_3_6 +#define udat_toPattern udat_toPattern_3_6 +#define udata_checkCommonData udata_checkCommonData_3_6 +#define udata_close udata_close_3_6 +#define udata_closeSwapper udata_closeSwapper_3_6 +#define udata_getHeaderSize udata_getHeaderSize_3_6 +#define udata_getInfo udata_getInfo_3_6 +#define udata_getInfoSize udata_getInfoSize_3_6 +#define udata_getLength udata_getLength_3_6 +#define udata_getMemory udata_getMemory_3_6 +#define udata_getRawMemory udata_getRawMemory_3_6 +#define udata_open udata_open_3_6 +#define udata_openChoice udata_openChoice_3_6 +#define udata_openSwapper udata_openSwapper_3_6 +#define udata_openSwapperForInputData udata_openSwapperForInputData_3_6 +#define udata_printError udata_printError_3_6 +#define udata_readInt16 udata_readInt16_3_6 +#define udata_readInt32 udata_readInt32_3_6 +#define udata_setAppData udata_setAppData_3_6 +#define udata_setCommonData udata_setCommonData_3_6 +#define udata_setFileAccess udata_setFileAccess_3_6 +#define udata_swapDataHeader udata_swapDataHeader_3_6 +#define udata_swapInvStringBlock udata_swapInvStringBlock_3_6 +#define uenum_close uenum_close_3_6 +#define uenum_count uenum_count_3_6 +#define uenum_next uenum_next_3_6 +#define uenum_nextDefault uenum_nextDefault_3_6 +#define uenum_openCharStringsEnumeration uenum_openCharStringsEnumeration_3_6 +#define uenum_openStringEnumeration uenum_openStringEnumeration_3_6 +#define uenum_reset uenum_reset_3_6 +#define uenum_unext uenum_unext_3_6 +#define uenum_unextDefault uenum_unextDefault_3_6 +#define ufile_close_translit ufile_close_translit_3_6 +#define ufile_fill_uchar_buffer ufile_fill_uchar_buffer_3_6 +#define ufile_flush_translit ufile_flush_translit_3_6 +#define ufile_getch ufile_getch_3_6 +#define ufile_getch32 ufile_getch32_3_6 +#define ufmt_64tou ufmt_64tou_3_6 +#define ufmt_defaultCPToUnicode ufmt_defaultCPToUnicode_3_6 +#define ufmt_digitvalue ufmt_digitvalue_3_6 +#define ufmt_isdigit ufmt_isdigit_3_6 +#define ufmt_ptou ufmt_ptou_3_6 +#define ufmt_uto64 ufmt_uto64_3_6 +#define ufmt_utop ufmt_utop_3_6 +#define uhash_close uhash_close_3_6 +#define uhash_compareCaselessUnicodeString uhash_compareCaselessUnicodeString_3_6 +#define uhash_compareChars uhash_compareChars_3_6 +#define uhash_compareIChars uhash_compareIChars_3_6 +#define uhash_compareLong uhash_compareLong_3_6 +#define uhash_compareUChars uhash_compareUChars_3_6 +#define uhash_compareUnicodeString uhash_compareUnicodeString_3_6 +#define uhash_count uhash_count_3_6 +#define uhash_deleteHashtable uhash_deleteHashtable_3_6 +#define uhash_deleteUVector uhash_deleteUVector_3_6 +#define uhash_deleteUnicodeString uhash_deleteUnicodeString_3_6 +#define uhash_equals uhash_equals_3_6 +#define uhash_find uhash_find_3_6 +#define uhash_freeBlock uhash_freeBlock_3_6 +#define uhash_get uhash_get_3_6 +#define uhash_geti uhash_geti_3_6 +#define uhash_hashCaselessUnicodeString uhash_hashCaselessUnicodeString_3_6 +#define uhash_hashChars uhash_hashChars_3_6 +#define uhash_hashIChars uhash_hashIChars_3_6 +#define uhash_hashLong uhash_hashLong_3_6 +#define uhash_hashUChars uhash_hashUChars_3_6 +#define uhash_hashUCharsN uhash_hashUCharsN_3_6 +#define uhash_hashUnicodeString uhash_hashUnicodeString_3_6 +#define uhash_iget uhash_iget_3_6 +#define uhash_igeti uhash_igeti_3_6 +#define uhash_init uhash_init_3_6 +#define uhash_iput uhash_iput_3_6 +#define uhash_iputi uhash_iputi_3_6 +#define uhash_iremove uhash_iremove_3_6 +#define uhash_iremovei uhash_iremovei_3_6 +#define uhash_nextElement uhash_nextElement_3_6 +#define uhash_open uhash_open_3_6 +#define uhash_openSize uhash_openSize_3_6 +#define uhash_put uhash_put_3_6 +#define uhash_puti uhash_puti_3_6 +#define uhash_remove uhash_remove_3_6 +#define uhash_removeAll uhash_removeAll_3_6 +#define uhash_removeElement uhash_removeElement_3_6 +#define uhash_removei uhash_removei_3_6 +#define uhash_setKeyComparator uhash_setKeyComparator_3_6 +#define uhash_setKeyDeleter uhash_setKeyDeleter_3_6 +#define uhash_setKeyHasher uhash_setKeyHasher_3_6 +#define uhash_setResizePolicy uhash_setResizePolicy_3_6 +#define uhash_setValueComparator uhash_setValueComparator_3_6 +#define uhash_setValueDeleter uhash_setValueDeleter_3_6 +#define uhst_addPropertyStarts uhst_addPropertyStarts_3_6 +#define uidna_IDNToASCII uidna_IDNToASCII_3_6 +#define uidna_IDNToUnicode uidna_IDNToUnicode_3_6 +#define uidna_compare uidna_compare_3_6 +#define uidna_toASCII uidna_toASCII_3_6 +#define uidna_toUnicode uidna_toUnicode_3_6 +#define uiter_current32 uiter_current32_3_6 +#define uiter_getState uiter_getState_3_6 +#define uiter_next32 uiter_next32_3_6 +#define uiter_previous32 uiter_previous32_3_6 +#define uiter_setCharacterIterator uiter_setCharacterIterator_3_6 +#define uiter_setReplaceable uiter_setReplaceable_3_6 +#define uiter_setState uiter_setState_3_6 +#define uiter_setString uiter_setString_3_6 +#define uiter_setUTF16BE uiter_setUTF16BE_3_6 +#define uiter_setUTF8 uiter_setUTF8_3_6 +#define uloc_acceptLanguage uloc_acceptLanguage_3_6 +#define uloc_acceptLanguageFromHTTP uloc_acceptLanguageFromHTTP_3_6 +#define uloc_canonicalize uloc_canonicalize_3_6 +#define uloc_countAvailable uloc_countAvailable_3_6 +#define uloc_getAvailable uloc_getAvailable_3_6 +#define uloc_getBaseName uloc_getBaseName_3_6 +#define uloc_getCountry uloc_getCountry_3_6 +#define uloc_getDefault uloc_getDefault_3_6 +#define uloc_getDisplayCountry uloc_getDisplayCountry_3_6 +#define uloc_getDisplayKeyword uloc_getDisplayKeyword_3_6 +#define uloc_getDisplayKeywordValue uloc_getDisplayKeywordValue_3_6 +#define uloc_getDisplayLanguage uloc_getDisplayLanguage_3_6 +#define uloc_getDisplayName uloc_getDisplayName_3_6 +#define uloc_getDisplayScript uloc_getDisplayScript_3_6 +#define uloc_getDisplayVariant uloc_getDisplayVariant_3_6 +#define uloc_getISO3Country uloc_getISO3Country_3_6 +#define uloc_getISO3Language uloc_getISO3Language_3_6 +#define uloc_getISOCountries uloc_getISOCountries_3_6 +#define uloc_getISOLanguages uloc_getISOLanguages_3_6 +#define uloc_getKeywordValue uloc_getKeywordValue_3_6 +#define uloc_getLCID uloc_getLCID_3_6 +#define uloc_getLanguage uloc_getLanguage_3_6 +#define uloc_getName uloc_getName_3_6 +#define uloc_getParent uloc_getParent_3_6 +#define uloc_getScript uloc_getScript_3_6 +#define uloc_getVariant uloc_getVariant_3_6 +#define uloc_openKeywordList uloc_openKeywordList_3_6 +#define uloc_openKeywords uloc_openKeywords_3_6 +#define uloc_setDefault uloc_setDefault_3_6 +#define uloc_setKeywordValue uloc_setKeywordValue_3_6 +#define ulocdata_close ulocdata_close_3_6 +#define ulocdata_getDelimiter ulocdata_getDelimiter_3_6 +#define ulocdata_getExemplarSet ulocdata_getExemplarSet_3_6 +#define ulocdata_getMeasurementSystem ulocdata_getMeasurementSystem_3_6 +#define ulocdata_getNoSubstitute ulocdata_getNoSubstitute_3_6 +#define ulocdata_getPaperSize ulocdata_getPaperSize_3_6 +#define ulocdata_open ulocdata_open_3_6 +#define ulocdata_setNoSubstitute ulocdata_setNoSubstitute_3_6 +#define umsg_applyPattern umsg_applyPattern_3_6 +#define umsg_autoQuoteApostrophe umsg_autoQuoteApostrophe_3_6 +#define umsg_clone umsg_clone_3_6 +#define umsg_close umsg_close_3_6 +#define umsg_format umsg_format_3_6 +#define umsg_getLocale umsg_getLocale_3_6 +#define umsg_open umsg_open_3_6 +#define umsg_parse umsg_parse_3_6 +#define umsg_setLocale umsg_setLocale_3_6 +#define umsg_toPattern umsg_toPattern_3_6 +#define umsg_vformat umsg_vformat_3_6 +#define umsg_vparse umsg_vparse_3_6 +#define umtx_atomic_dec umtx_atomic_dec_3_6 +#define umtx_atomic_inc umtx_atomic_inc_3_6 +#define umtx_cleanup umtx_cleanup_3_6 +#define umtx_destroy umtx_destroy_3_6 +#define umtx_init umtx_init_3_6 +#define umtx_lock umtx_lock_3_6 +#define umtx_unlock umtx_unlock_3_6 +#define unorm_addPropertyStarts unorm_addPropertyStarts_3_6 +#define unorm_closeIter unorm_closeIter_3_6 +#define unorm_compare unorm_compare_3_6 +#define unorm_compose unorm_compose_3_6 +#define unorm_concatenate unorm_concatenate_3_6 +#define unorm_decompose unorm_decompose_3_6 +#define unorm_getCanonStartSet unorm_getCanonStartSet_3_6 +#define unorm_getCanonicalDecomposition unorm_getCanonicalDecomposition_3_6 +#define unorm_getDecomposition unorm_getDecomposition_3_6 +#define unorm_getFCD16FromCodePoint unorm_getFCD16FromCodePoint_3_6 +#define unorm_getFCDTrie unorm_getFCDTrie_3_6 +#define unorm_getNX unorm_getNX_3_6 +#define unorm_getQuickCheck unorm_getQuickCheck_3_6 +#define unorm_getUnicodeVersion unorm_getUnicodeVersion_3_6 +#define unorm_haveData unorm_haveData_3_6 +#define unorm_internalIsFullCompositionExclusion unorm_internalIsFullCompositionExclusion_3_6 +#define unorm_internalNormalize unorm_internalNormalize_3_6 +#define unorm_internalNormalizeWithNX unorm_internalNormalizeWithNX_3_6 +#define unorm_internalQuickCheck unorm_internalQuickCheck_3_6 +#define unorm_isCanonSafeStart unorm_isCanonSafeStart_3_6 +#define unorm_isNFSkippable unorm_isNFSkippable_3_6 +#define unorm_isNormalized unorm_isNormalized_3_6 +#define unorm_isNormalizedWithOptions unorm_isNormalizedWithOptions_3_6 +#define unorm_next unorm_next_3_6 +#define unorm_normalize unorm_normalize_3_6 +#define unorm_openIter unorm_openIter_3_6 +#define unorm_previous unorm_previous_3_6 +#define unorm_quickCheck unorm_quickCheck_3_6 +#define unorm_quickCheckWithOptions unorm_quickCheckWithOptions_3_6 +#define unorm_setIter unorm_setIter_3_6 +#define unum_applyPattern unum_applyPattern_3_6 +#define unum_clone unum_clone_3_6 +#define unum_close unum_close_3_6 +#define unum_countAvailable unum_countAvailable_3_6 +#define unum_format unum_format_3_6 +#define unum_formatDouble unum_formatDouble_3_6 +#define unum_formatDoubleCurrency unum_formatDoubleCurrency_3_6 +#define unum_formatInt64 unum_formatInt64_3_6 +#define unum_getAttribute unum_getAttribute_3_6 +#define unum_getAvailable unum_getAvailable_3_6 +#define unum_getDoubleAttribute unum_getDoubleAttribute_3_6 +#define unum_getLocaleByType unum_getLocaleByType_3_6 +#define unum_getSymbol unum_getSymbol_3_6 +#define unum_getTextAttribute unum_getTextAttribute_3_6 +#define unum_open unum_open_3_6 +#define unum_parse unum_parse_3_6 +#define unum_parseDouble unum_parseDouble_3_6 +#define unum_parseDoubleCurrency unum_parseDoubleCurrency_3_6 +#define unum_parseInt64 unum_parseInt64_3_6 +#define unum_setAttribute unum_setAttribute_3_6 +#define unum_setDoubleAttribute unum_setDoubleAttribute_3_6 +#define unum_setSymbol unum_setSymbol_3_6 +#define unum_setTextAttribute unum_setTextAttribute_3_6 +#define unum_toPattern unum_toPattern_3_6 +#define upname_swap upname_swap_3_6 +#define uprops_getSource uprops_getSource_3_6 +#define upropsvec_addPropertyStarts upropsvec_addPropertyStarts_3_6 +#define uprv_asciiFromEbcdic uprv_asciiFromEbcdic_3_6 +#define uprv_asciitolower uprv_asciitolower_3_6 +#define uprv_ceil uprv_ceil_3_6 +#define uprv_cnttab_addContraction uprv_cnttab_addContraction_3_6 +#define uprv_cnttab_changeContraction uprv_cnttab_changeContraction_3_6 +#define uprv_cnttab_changeLastCE uprv_cnttab_changeLastCE_3_6 +#define uprv_cnttab_clone uprv_cnttab_clone_3_6 +#define uprv_cnttab_close uprv_cnttab_close_3_6 +#define uprv_cnttab_constructTable uprv_cnttab_constructTable_3_6 +#define uprv_cnttab_findCE uprv_cnttab_findCE_3_6 +#define uprv_cnttab_findCP uprv_cnttab_findCP_3_6 +#define uprv_cnttab_getCE uprv_cnttab_getCE_3_6 +#define uprv_cnttab_insertContraction uprv_cnttab_insertContraction_3_6 +#define uprv_cnttab_isTailored uprv_cnttab_isTailored_3_6 +#define uprv_cnttab_open uprv_cnttab_open_3_6 +#define uprv_cnttab_setContraction uprv_cnttab_setContraction_3_6 +#define uprv_compareASCIIPropertyNames uprv_compareASCIIPropertyNames_3_6 +#define uprv_compareEBCDICPropertyNames uprv_compareEBCDICPropertyNames_3_6 +#define uprv_compareInvAscii uprv_compareInvAscii_3_6 +#define uprv_compareInvEbcdic uprv_compareInvEbcdic_3_6 +#define uprv_convertToLCID uprv_convertToLCID_3_6 +#define uprv_convertToPosix uprv_convertToPosix_3_6 +#define uprv_copyAscii uprv_copyAscii_3_6 +#define uprv_copyEbcdic uprv_copyEbcdic_3_6 +#define uprv_ebcdicFromAscii uprv_ebcdicFromAscii_3_6 +#define uprv_ebcdictolower uprv_ebcdictolower_3_6 +#define uprv_fabs uprv_fabs_3_6 +#define uprv_floor uprv_floor_3_6 +#define uprv_fmax uprv_fmax_3_6 +#define uprv_fmin uprv_fmin_3_6 +#define uprv_fmod uprv_fmod_3_6 +#define uprv_free uprv_free_3_6 +#define uprv_getCharNameCharacters uprv_getCharNameCharacters_3_6 +#define uprv_getDefaultCodepage uprv_getDefaultCodepage_3_6 +#define uprv_getDefaultLocaleID uprv_getDefaultLocaleID_3_6 +#define uprv_getInfinity uprv_getInfinity_3_6 +#define uprv_getMaxCharNameLength uprv_getMaxCharNameLength_3_6 +#define uprv_getMaxValues uprv_getMaxValues_3_6 +#define uprv_getNaN uprv_getNaN_3_6 +#define uprv_getStaticCurrencyName uprv_getStaticCurrencyName_3_6 +#define uprv_getUTCtime uprv_getUTCtime_3_6 +#define uprv_haveProperties uprv_haveProperties_3_6 +#define uprv_init_collIterate uprv_init_collIterate_3_6 +#define uprv_int32Comparator uprv_int32Comparator_3_6 +#define uprv_isInfinite uprv_isInfinite_3_6 +#define uprv_isInvariantString uprv_isInvariantString_3_6 +#define uprv_isInvariantUString uprv_isInvariantUString_3_6 +#define uprv_isNaN uprv_isNaN_3_6 +#define uprv_isNegativeInfinity uprv_isNegativeInfinity_3_6 +#define uprv_isPositiveInfinity uprv_isPositiveInfinity_3_6 +#define uprv_isRuleWhiteSpace uprv_isRuleWhiteSpace_3_6 +#define uprv_itou uprv_itou_3_6 +#define uprv_log uprv_log_3_6 +#define uprv_malloc uprv_malloc_3_6 +#define uprv_mapFile uprv_mapFile_3_6 +#define uprv_max uprv_max_3_6 +#define uprv_maxMantissa uprv_maxMantissa_3_6 +#define uprv_min uprv_min_3_6 +#define uprv_modf uprv_modf_3_6 +#define uprv_openRuleWhiteSpaceSet uprv_openRuleWhiteSpaceSet_3_6 +#define uprv_parseCurrency uprv_parseCurrency_3_6 +#define uprv_pathIsAbsolute uprv_pathIsAbsolute_3_6 +#define uprv_pow uprv_pow_3_6 +#define uprv_pow10 uprv_pow10_3_6 +#define uprv_realloc uprv_realloc_3_6 +#define uprv_round uprv_round_3_6 +#define uprv_sortArray uprv_sortArray_3_6 +#define uprv_strCompare uprv_strCompare_3_6 +#define uprv_strdup uprv_strdup_3_6 +#define uprv_strndup uprv_strndup_3_6 +#define uprv_syntaxError uprv_syntaxError_3_6 +#define uprv_timezone uprv_timezone_3_6 +#define uprv_toupper uprv_toupper_3_6 +#define uprv_trunc uprv_trunc_3_6 +#define uprv_tzname uprv_tzname_3_6 +#define uprv_tzset uprv_tzset_3_6 +#define uprv_uca_addAnElement uprv_uca_addAnElement_3_6 +#define uprv_uca_assembleTable uprv_uca_assembleTable_3_6 +#define uprv_uca_canonicalClosure uprv_uca_canonicalClosure_3_6 +#define uprv_uca_cloneTempTable uprv_uca_cloneTempTable_3_6 +#define uprv_uca_closeTempTable uprv_uca_closeTempTable_3_6 +#define uprv_uca_getCodePointFromRaw uprv_uca_getCodePointFromRaw_3_6 +#define uprv_uca_getImplicitFromRaw uprv_uca_getImplicitFromRaw_3_6 +#define uprv_uca_getImplicitPrimary uprv_uca_getImplicitPrimary_3_6 +#define uprv_uca_getRawFromCodePoint uprv_uca_getRawFromCodePoint_3_6 +#define uprv_uca_getRawFromImplicit uprv_uca_getRawFromImplicit_3_6 +#define uprv_uca_initImplicitConstants uprv_uca_initImplicitConstants_3_6 +#define uprv_uca_initTempTable uprv_uca_initTempTable_3_6 +#define uprv_uint16Comparator uprv_uint16Comparator_3_6 +#define uprv_uint32Comparator uprv_uint32Comparator_3_6 +#define uprv_unmapFile uprv_unmapFile_3_6 +#define uregex_appendReplacement uregex_appendReplacement_3_6 +#define uregex_appendTail uregex_appendTail_3_6 +#define uregex_clone uregex_clone_3_6 +#define uregex_close uregex_close_3_6 +#define uregex_end uregex_end_3_6 +#define uregex_find uregex_find_3_6 +#define uregex_findNext uregex_findNext_3_6 +#define uregex_flags uregex_flags_3_6 +#define uregex_getText uregex_getText_3_6 +#define uregex_group uregex_group_3_6 +#define uregex_groupCount uregex_groupCount_3_6 +#define uregex_lookingAt uregex_lookingAt_3_6 +#define uregex_matches uregex_matches_3_6 +#define uregex_open uregex_open_3_6 +#define uregex_openC uregex_openC_3_6 +#define uregex_pattern uregex_pattern_3_6 +#define uregex_replaceAll uregex_replaceAll_3_6 +#define uregex_replaceFirst uregex_replaceFirst_3_6 +#define uregex_reset uregex_reset_3_6 +#define uregex_setText uregex_setText_3_6 +#define uregex_split uregex_split_3_6 +#define uregex_start uregex_start_3_6 +#define ures_clone ures_clone_3_6 +#define ures_close ures_close_3_6 +#define ures_copyResb ures_copyResb_3_6 +#define ures_countArrayItems ures_countArrayItems_3_6 +#define ures_equal ures_equal_3_6 +#define ures_findResource ures_findResource_3_6 +#define ures_findSubResource ures_findSubResource_3_6 +#define ures_getBinary ures_getBinary_3_6 +#define ures_getByIndex ures_getByIndex_3_6 +#define ures_getByKey ures_getByKey_3_6 +#define ures_getByKeyWithFallback ures_getByKeyWithFallback_3_6 +#define ures_getFunctionalEquivalent ures_getFunctionalEquivalent_3_6 +#define ures_getInt ures_getInt_3_6 +#define ures_getIntVector ures_getIntVector_3_6 +#define ures_getKey ures_getKey_3_6 +#define ures_getKeywordValues ures_getKeywordValues_3_6 +#define ures_getLocale ures_getLocale_3_6 +#define ures_getLocaleByType ures_getLocaleByType_3_6 +#define ures_getName ures_getName_3_6 +#define ures_getNextResource ures_getNextResource_3_6 +#define ures_getNextString ures_getNextString_3_6 +#define ures_getParentBundle ures_getParentBundle_3_6 +#define ures_getPath ures_getPath_3_6 +#define ures_getSize ures_getSize_3_6 +#define ures_getString ures_getString_3_6 +#define ures_getStringByIndex ures_getStringByIndex_3_6 +#define ures_getStringByKey ures_getStringByKey_3_6 +#define ures_getStringByKeyWithFallback ures_getStringByKeyWithFallback_3_6 +#define ures_getType ures_getType_3_6 +#define ures_getUInt ures_getUInt_3_6 +#define ures_getUTF8String ures_getUTF8String_3_6 +#define ures_getUTF8StringByIndex ures_getUTF8StringByIndex_3_6 +#define ures_getUTF8StringByKey ures_getUTF8StringByKey_3_6 +#define ures_getVersion ures_getVersion_3_6 +#define ures_getVersionNumber ures_getVersionNumber_3_6 +#define ures_hasNext ures_hasNext_3_6 +#define ures_initStackObject ures_initStackObject_3_6 +#define ures_open ures_open_3_6 +#define ures_openAvailableLocales ures_openAvailableLocales_3_6 +#define ures_openDirect ures_openDirect_3_6 +#define ures_openFillIn ures_openFillIn_3_6 +#define ures_openU ures_openU_3_6 +#define ures_resetIterator ures_resetIterator_3_6 +#define ures_swap ures_swap_3_6 +#define uscript_closeRun uscript_closeRun_3_6 +#define uscript_getCode uscript_getCode_3_6 +#define uscript_getName uscript_getName_3_6 +#define uscript_getScript uscript_getScript_3_6 +#define uscript_getShortName uscript_getShortName_3_6 +#define uscript_nextRun uscript_nextRun_3_6 +#define uscript_openRun uscript_openRun_3_6 +#define uscript_resetRun uscript_resetRun_3_6 +#define uscript_setRunText uscript_setRunText_3_6 +#define usearch_close usearch_close_3_6 +#define usearch_first usearch_first_3_6 +#define usearch_following usearch_following_3_6 +#define usearch_getAttribute usearch_getAttribute_3_6 +#define usearch_getBreakIterator usearch_getBreakIterator_3_6 +#define usearch_getCollator usearch_getCollator_3_6 +#define usearch_getMatchedLength usearch_getMatchedLength_3_6 +#define usearch_getMatchedStart usearch_getMatchedStart_3_6 +#define usearch_getMatchedText usearch_getMatchedText_3_6 +#define usearch_getOffset usearch_getOffset_3_6 +#define usearch_getPattern usearch_getPattern_3_6 +#define usearch_getText usearch_getText_3_6 +#define usearch_handleNextCanonical usearch_handleNextCanonical_3_6 +#define usearch_handleNextExact usearch_handleNextExact_3_6 +#define usearch_handlePreviousCanonical usearch_handlePreviousCanonical_3_6 +#define usearch_handlePreviousExact usearch_handlePreviousExact_3_6 +#define usearch_last usearch_last_3_6 +#define usearch_next usearch_next_3_6 +#define usearch_open usearch_open_3_6 +#define usearch_openFromCollator usearch_openFromCollator_3_6 +#define usearch_preceding usearch_preceding_3_6 +#define usearch_previous usearch_previous_3_6 +#define usearch_reset usearch_reset_3_6 +#define usearch_setAttribute usearch_setAttribute_3_6 +#define usearch_setBreakIterator usearch_setBreakIterator_3_6 +#define usearch_setCollator usearch_setCollator_3_6 +#define usearch_setOffset usearch_setOffset_3_6 +#define usearch_setPattern usearch_setPattern_3_6 +#define usearch_setText usearch_setText_3_6 +#define userv_deleteStringPair userv_deleteStringPair_3_6 +#define uset_add uset_add_3_6 +#define uset_addAll uset_addAll_3_6 +#define uset_addAllCodePoints uset_addAllCodePoints_3_6 +#define uset_addRange uset_addRange_3_6 +#define uset_addString uset_addString_3_6 +#define uset_applyIntPropertyValue uset_applyIntPropertyValue_3_6 +#define uset_applyPattern uset_applyPattern_3_6 +#define uset_applyPropertyAlias uset_applyPropertyAlias_3_6 +#define uset_charAt uset_charAt_3_6 +#define uset_clear uset_clear_3_6 +#define uset_close uset_close_3_6 +#define uset_compact uset_compact_3_6 +#define uset_complement uset_complement_3_6 +#define uset_complementAll uset_complementAll_3_6 +#define uset_contains uset_contains_3_6 +#define uset_containsAll uset_containsAll_3_6 +#define uset_containsAllCodePoints uset_containsAllCodePoints_3_6 +#define uset_containsNone uset_containsNone_3_6 +#define uset_containsRange uset_containsRange_3_6 +#define uset_containsSome uset_containsSome_3_6 +#define uset_containsString uset_containsString_3_6 +#define uset_equals uset_equals_3_6 +#define uset_getItem uset_getItem_3_6 +#define uset_getItemCount uset_getItemCount_3_6 +#define uset_getSerializedRange uset_getSerializedRange_3_6 +#define uset_getSerializedRangeCount uset_getSerializedRangeCount_3_6 +#define uset_getSerializedSet uset_getSerializedSet_3_6 +#define uset_indexOf uset_indexOf_3_6 +#define uset_isEmpty uset_isEmpty_3_6 +#define uset_open uset_open_3_6 +#define uset_openPattern uset_openPattern_3_6 +#define uset_openPatternOptions uset_openPatternOptions_3_6 +#define uset_remove uset_remove_3_6 +#define uset_removeAll uset_removeAll_3_6 +#define uset_removeRange uset_removeRange_3_6 +#define uset_removeString uset_removeString_3_6 +#define uset_resemblesPattern uset_resemblesPattern_3_6 +#define uset_retain uset_retain_3_6 +#define uset_retainAll uset_retainAll_3_6 +#define uset_serialize uset_serialize_3_6 +#define uset_serializedContains uset_serializedContains_3_6 +#define uset_set uset_set_3_6 +#define uset_setSerializedToOne uset_setSerializedToOne_3_6 +#define uset_size uset_size_3_6 +#define uset_toPattern uset_toPattern_3_6 +#define usprep_close usprep_close_3_6 +#define usprep_open usprep_open_3_6 +#define usprep_prepare usprep_prepare_3_6 +#define usprep_swap usprep_swap_3_6 +#define ustr_foldCase ustr_foldCase_3_6 +#define ustr_toLower ustr_toLower_3_6 +#define ustr_toTitle ustr_toTitle_3_6 +#define ustr_toUpper ustr_toUpper_3_6 +#define utext_char32At utext_char32At_3_6 +#define utext_clone utext_clone_3_6 +#define utext_close utext_close_3_6 +#define utext_copy utext_copy_3_6 +#define utext_current32 utext_current32_3_6 +#define utext_equals utext_equals_3_6 +#define utext_extract utext_extract_3_6 +#define utext_freeze utext_freeze_3_6 +#define utext_getNativeIndex utext_getNativeIndex_3_6 +#define utext_getPreviousNativeIndex utext_getPreviousNativeIndex_3_6 +#define utext_hasMetaData utext_hasMetaData_3_6 +#define utext_isLengthExpensive utext_isLengthExpensive_3_6 +#define utext_isWritable utext_isWritable_3_6 +#define utext_moveIndex32 utext_moveIndex32_3_6 +#define utext_nativeLength utext_nativeLength_3_6 +#define utext_next32 utext_next32_3_6 +#define utext_next32From utext_next32From_3_6 +#define utext_openCharacterIterator utext_openCharacterIterator_3_6 +#define utext_openConstUnicodeString utext_openConstUnicodeString_3_6 +#define utext_openReplaceable utext_openReplaceable_3_6 +#define utext_openUChars utext_openUChars_3_6 +#define utext_openUTF8 utext_openUTF8_3_6 +#define utext_openUnicodeString utext_openUnicodeString_3_6 +#define utext_previous32 utext_previous32_3_6 +#define utext_previous32From utext_previous32From_3_6 +#define utext_replace utext_replace_3_6 +#define utext_setNativeIndex utext_setNativeIndex_3_6 +#define utext_setup utext_setup_3_6 +#define utf8_appendCharSafeBody utf8_appendCharSafeBody_3_6 +#define utf8_back1SafeBody utf8_back1SafeBody_3_6 +#define utf8_countTrailBytes utf8_countTrailBytes_3_6 +#define utf8_nextCharSafeBody utf8_nextCharSafeBody_3_6 +#define utf8_prevCharSafeBody utf8_prevCharSafeBody_3_6 +#define utmscale_fromInt64 utmscale_fromInt64_3_6 +#define utmscale_getTimeScaleValue utmscale_getTimeScaleValue_3_6 +#define utmscale_toInt64 utmscale_toInt64_3_6 +#define utrace_cleanup utrace_cleanup_3_6 +#define utrace_data utrace_data_3_6 +#define utrace_entry utrace_entry_3_6 +#define utrace_exit utrace_exit_3_6 +#define utrace_format utrace_format_3_6 +#define utrace_functionName utrace_functionName_3_6 +#define utrace_getFunctions utrace_getFunctions_3_6 +#define utrace_getLevel utrace_getLevel_3_6 +#define utrace_level utrace_level_3_6 +#define utrace_setFunctions utrace_setFunctions_3_6 +#define utrace_setLevel utrace_setLevel_3_6 +#define utrace_vformat utrace_vformat_3_6 +#define utrans_clone utrans_clone_3_6 +#define utrans_close utrans_close_3_6 +#define utrans_countAvailableIDs utrans_countAvailableIDs_3_6 +#define utrans_getAvailableID utrans_getAvailableID_3_6 +#define utrans_getID utrans_getID_3_6 +#define utrans_getUnicodeID utrans_getUnicodeID_3_6 +#define utrans_open utrans_open_3_6 +#define utrans_openIDs utrans_openIDs_3_6 +#define utrans_openInverse utrans_openInverse_3_6 +#define utrans_openU utrans_openU_3_6 +#define utrans_register utrans_register_3_6 +#define utrans_rep_caseContextIterator utrans_rep_caseContextIterator_3_6 +#define utrans_setFilter utrans_setFilter_3_6 +#define utrans_stripRules utrans_stripRules_3_6 +#define utrans_trans utrans_trans_3_6 +#define utrans_transIncremental utrans_transIncremental_3_6 +#define utrans_transIncrementalUChars utrans_transIncrementalUChars_3_6 +#define utrans_transUChars utrans_transUChars_3_6 +#define utrans_unregister utrans_unregister_3_6 +#define utrans_unregisterID utrans_unregisterID_3_6 +#define utrie_clone utrie_clone_3_6 +#define utrie_close utrie_close_3_6 +#define utrie_defaultGetFoldingOffset utrie_defaultGetFoldingOffset_3_6 +#define utrie_enum utrie_enum_3_6 +#define utrie_get32 utrie_get32_3_6 +#define utrie_getData utrie_getData_3_6 +#define utrie_open utrie_open_3_6 +#define utrie_serialize utrie_serialize_3_6 +#define utrie_set32 utrie_set32_3_6 +#define utrie_setRange32 utrie_setRange32_3_6 +#define utrie_swap utrie_swap_3_6 +#define utrie_unserialize utrie_unserialize_3_6 +#define utrie_unserializeDummy utrie_unserializeDummy_3_6 /* C++ class names renaming defines */ #ifdef XP_CPLUSPLUS #if !U_HAVE_NAMESPACE -#define AbsoluteValueSubstitution AbsoluteValueSubstitution_3_4 -#define AlternateSubstitutionSubtable AlternateSubstitutionSubtable_3_4 -#define AnchorTable AnchorTable_3_4 -#define AnyTransliterator AnyTransliterator_3_4 -#define ArabicOpenTypeLayoutEngine ArabicOpenTypeLayoutEngine_3_4 -#define ArabicShaping ArabicShaping_3_4 -#define BasicCalendarFactory BasicCalendarFactory_3_4 -#define BinarySearchLookupTable BinarySearchLookupTable_3_4 -#define BreakDictionary BreakDictionary_3_4 -#define BreakIterator BreakIterator_3_4 -#define BuddhistCalendar BuddhistCalendar_3_4 -#define CFactory CFactory_3_4 -#define Calendar Calendar_3_4 -#define CalendarAstronomer CalendarAstronomer_3_4 -#define CalendarCache CalendarCache_3_4 -#define CalendarData CalendarData_3_4 -#define CalendarService CalendarService_3_4 -#define CanonShaping CanonShaping_3_4 -#define CanonicalIterator CanonicalIterator_3_4 -#define CaseMapTransliterator CaseMapTransliterator_3_4 -#define ChainingContextualSubstitutionFormat1Subtable ChainingContextualSubstitutionFormat1Subtable_3_4 -#define ChainingContextualSubstitutionFormat2Subtable ChainingContextualSubstitutionFormat2Subtable_3_4 -#define ChainingContextualSubstitutionFormat3Subtable ChainingContextualSubstitutionFormat3Subtable_3_4 -#define ChainingContextualSubstitutionSubtable ChainingContextualSubstitutionSubtable_3_4 -#define CharSubstitutionFilter CharSubstitutionFilter_3_4 -#define CharacterIterator CharacterIterator_3_4 -#define ChoiceFormat ChoiceFormat_3_4 -#define ClassDefFormat1Table ClassDefFormat1Table_3_4 -#define ClassDefFormat2Table ClassDefFormat2Table_3_4 -#define ClassDefinitionTable ClassDefinitionTable_3_4 -#define CollationElementIterator CollationElementIterator_3_4 -#define CollationKey CollationKey_3_4 -#define Collator Collator_3_4 -#define CollatorFactory CollatorFactory_3_4 -#define CompoundTransliterator CompoundTransliterator_3_4 -#define ContextualGlyphSubstitutionProcessor ContextualGlyphSubstitutionProcessor_3_4 -#define ContextualSubstitutionBase ContextualSubstitutionBase_3_4 -#define ContextualSubstitutionFormat1Subtable ContextualSubstitutionFormat1Subtable_3_4 -#define ContextualSubstitutionFormat2Subtable ContextualSubstitutionFormat2Subtable_3_4 -#define ContextualSubstitutionFormat3Subtable ContextualSubstitutionFormat3Subtable_3_4 -#define ContextualSubstitutionSubtable ContextualSubstitutionSubtable_3_4 -#define CoverageFormat1Table CoverageFormat1Table_3_4 -#define CoverageFormat2Table CoverageFormat2Table_3_4 -#define CoverageTable CoverageTable_3_4 -#define CurrencyAmount CurrencyAmount_3_4 -#define CurrencyFormat CurrencyFormat_3_4 -#define CurrencyUnit CurrencyUnit_3_4 -#define CursiveAttachmentSubtable CursiveAttachmentSubtable_3_4 -#define DateFormat DateFormat_3_4 -#define DateFormatSymbols DateFormatSymbols_3_4 -#define DecimalFormat DecimalFormat_3_4 -#define DecimalFormatSymbols DecimalFormatSymbols_3_4 -#define DefaultCalendarFactory DefaultCalendarFactory_3_4 -#define DefaultCharMapper DefaultCharMapper_3_4 -#define DeviceTable DeviceTable_3_4 -#define DictionaryBasedBreakIterator DictionaryBasedBreakIterator_3_4 -#define DictionaryBasedBreakIteratorTables DictionaryBasedBreakIteratorTables_3_4 -#define DigitList DigitList_3_4 -#define Entry Entry_3_4 -#define EnumToOffset EnumToOffset_3_4 -#define EscapeTransliterator EscapeTransliterator_3_4 -#define EventListener EventListener_3_4 -#define ExtensionSubtable ExtensionSubtable_3_4 -#define FeatureListTable FeatureListTable_3_4 -#define FieldPosition FieldPosition_3_4 -#define FontRuns FontRuns_3_4 -#define Format Format_3_4 -#define Format1AnchorTable Format1AnchorTable_3_4 -#define Format2AnchorTable Format2AnchorTable_3_4 -#define Format3AnchorTable Format3AnchorTable_3_4 -#define Formattable Formattable_3_4 -#define ForwardCharacterIterator ForwardCharacterIterator_3_4 -#define FractionalPartSubstitution FractionalPartSubstitution_3_4 -#define FunctionReplacer FunctionReplacer_3_4 -#define GDEFMarkFilter GDEFMarkFilter_3_4 -#define GXLayoutEngine GXLayoutEngine_3_4 -#define GlyphDefinitionTableHeader GlyphDefinitionTableHeader_3_4 -#define GlyphIterator GlyphIterator_3_4 -#define GlyphLookupTableHeader GlyphLookupTableHeader_3_4 -#define GlyphPositionAdjustments GlyphPositionAdjustments_3_4 -#define GlyphPositioningLookupProcessor GlyphPositioningLookupProcessor_3_4 -#define GlyphPositioningTableHeader GlyphPositioningTableHeader_3_4 -#define GlyphSubstitutionLookupProcessor GlyphSubstitutionLookupProcessor_3_4 -#define GlyphSubstitutionTableHeader GlyphSubstitutionTableHeader_3_4 -#define Grego Grego_3_4 -#define GregorianCalendar GregorianCalendar_3_4 -#define HanOpenTypeLayoutEngine HanOpenTypeLayoutEngine_3_4 -#define HebrewCalendar HebrewCalendar_3_4 -#define ICUBreakIteratorFactory ICUBreakIteratorFactory_3_4 -#define ICUBreakIteratorService ICUBreakIteratorService_3_4 -#define ICUCollatorFactory ICUCollatorFactory_3_4 -#define ICUCollatorService ICUCollatorService_3_4 -#define ICULocaleService ICULocaleService_3_4 -#define ICUNotifier ICUNotifier_3_4 -#define ICUNumberFormatFactory ICUNumberFormatFactory_3_4 -#define ICUNumberFormatService ICUNumberFormatService_3_4 -#define ICUResourceBundleFactory ICUResourceBundleFactory_3_4 -#define ICUService ICUService_3_4 -#define ICUServiceFactory ICUServiceFactory_3_4 -#define ICUServiceKey ICUServiceKey_3_4 -#define ICU_Utility ICU_Utility_3_4 -#define IndicClassTable IndicClassTable_3_4 -#define IndicOpenTypeLayoutEngine IndicOpenTypeLayoutEngine_3_4 -#define IndicRearrangementProcessor IndicRearrangementProcessor_3_4 -#define IndicReordering IndicReordering_3_4 -#define IntegralPartSubstitution IntegralPartSubstitution_3_4 -#define IslamicCalendar IslamicCalendar_3_4 -#define JapaneseCalendar JapaneseCalendar_3_4 -#define KernTable KernTable_3_4 -#define KeywordEnumeration KeywordEnumeration_3_4 -#define KhmerClassTable KhmerClassTable_3_4 -#define KhmerOpenTypeLayoutEngine KhmerOpenTypeLayoutEngine_3_4 -#define KhmerReordering KhmerReordering_3_4 -#define LECharMapper LECharMapper_3_4 -#define LEFontInstance LEFontInstance_3_4 -#define LEGlyphFilter LEGlyphFilter_3_4 -#define LEGlyphStorage LEGlyphStorage_3_4 -#define LEInsertionCallback LEInsertionCallback_3_4 -#define LEInsertionList LEInsertionList_3_4 -#define LXUtilities LXUtilities_3_4 -#define LayoutEngine LayoutEngine_3_4 -#define LigatureSubstitutionProcessor LigatureSubstitutionProcessor_3_4 -#define LigatureSubstitutionSubtable LigatureSubstitutionSubtable_3_4 -#define LocDataParser LocDataParser_3_4 -#define Locale Locale_3_4 -#define LocaleBased LocaleBased_3_4 -#define LocaleKey LocaleKey_3_4 -#define LocaleKeyFactory LocaleKeyFactory_3_4 -#define LocaleRuns LocaleRuns_3_4 -#define LocaleUtility LocaleUtility_3_4 -#define LocalizationInfo LocalizationInfo_3_4 -#define LookupListTable LookupListTable_3_4 -#define LookupProcessor LookupProcessor_3_4 -#define LookupSubtable LookupSubtable_3_4 -#define LookupTable LookupTable_3_4 -#define LowercaseTransliterator LowercaseTransliterator_3_4 -#define MPreFixups MPreFixups_3_4 -#define MarkArray MarkArray_3_4 -#define MarkToBasePositioningSubtable MarkToBasePositioningSubtable_3_4 -#define MarkToLigaturePositioningSubtable MarkToLigaturePositioningSubtable_3_4 -#define MarkToMarkPositioningSubtable MarkToMarkPositioningSubtable_3_4 -#define Math Math_3_4 -#define Measure Measure_3_4 -#define MeasureFormat MeasureFormat_3_4 -#define MeasureUnit MeasureUnit_3_4 -#define MessageFormat MessageFormat_3_4 -#define MessageFormatAdapter MessageFormatAdapter_3_4 -#define ModulusSubstitution ModulusSubstitution_3_4 -#define MoonRiseSetCoordFunc MoonRiseSetCoordFunc_3_4 -#define MoonTimeAngleFunc MoonTimeAngleFunc_3_4 -#define MorphSubtableHeader MorphSubtableHeader_3_4 -#define MorphTableHeader MorphTableHeader_3_4 -#define MultipleSubstitutionSubtable MultipleSubstitutionSubtable_3_4 -#define MultiplierSubstitution MultiplierSubstitution_3_4 -#define NFFactory NFFactory_3_4 -#define NFRule NFRule_3_4 -#define NFRuleSet NFRuleSet_3_4 -#define NFSubstitution NFSubstitution_3_4 -#define NameToEnum NameToEnum_3_4 -#define NameUnicodeTransliterator NameUnicodeTransliterator_3_4 -#define NonContextualGlyphSubstitutionProcessor NonContextualGlyphSubstitutionProcessor_3_4 -#define NonContiguousEnumToOffset NonContiguousEnumToOffset_3_4 -#define NormalizationTransliterator NormalizationTransliterator_3_4 -#define Normalizer Normalizer_3_4 -#define NullSubstitution NullSubstitution_3_4 -#define NullTransliterator NullTransliterator_3_4 -#define NumberFormat NumberFormat_3_4 -#define NumberFormatFactory NumberFormatFactory_3_4 -#define NumeratorSubstitution NumeratorSubstitution_3_4 -#define OlsonTimeZone OlsonTimeZone_3_4 -#define OpenTypeLayoutEngine OpenTypeLayoutEngine_3_4 -#define OpenTypeUtilities OpenTypeUtilities_3_4 -#define PairPositioningFormat1Subtable PairPositioningFormat1Subtable_3_4 -#define PairPositioningFormat2Subtable PairPositioningFormat2Subtable_3_4 -#define PairPositioningSubtable PairPositioningSubtable_3_4 -#define ParagraphLayout ParagraphLayout_3_4 -#define ParseData ParseData_3_4 -#define ParsePosition ParsePosition_3_4 -#define PropertyAliases PropertyAliases_3_4 -#define Quantifier Quantifier_3_4 -#define RBBIDataWrapper RBBIDataWrapper_3_4 -#define RBBINode RBBINode_3_4 -#define RBBIRuleBuilder RBBIRuleBuilder_3_4 -#define RBBIRuleScanner RBBIRuleScanner_3_4 -#define RBBISetBuilder RBBISetBuilder_3_4 -#define RBBIStateDescriptor RBBIStateDescriptor_3_4 -#define RBBISymbolTable RBBISymbolTable_3_4 -#define RBBISymbolTableEntry RBBISymbolTableEntry_3_4 -#define RBBITableBuilder RBBITableBuilder_3_4 -#define RangeDescriptor RangeDescriptor_3_4 -#define RegexCompile RegexCompile_3_4 -#define RegexMatcher RegexMatcher_3_4 -#define RegexPattern RegexPattern_3_4 -#define RegexStaticSets RegexStaticSets_3_4 -#define RemoveTransliterator RemoveTransliterator_3_4 -#define Replaceable Replaceable_3_4 -#define ReplaceableGlue ReplaceableGlue_3_4 -#define ResourceBundle ResourceBundle_3_4 -#define RiseSetCoordFunc RiseSetCoordFunc_3_4 -#define RuleBasedBreakIterator RuleBasedBreakIterator_3_4 -#define RuleBasedCollator RuleBasedCollator_3_4 -#define RuleBasedNumberFormat RuleBasedNumberFormat_3_4 -#define RuleBasedTransliterator RuleBasedTransliterator_3_4 -#define RuleCharacterIterator RuleCharacterIterator_3_4 -#define RuleHalf RuleHalf_3_4 -#define RunArray RunArray_3_4 -#define SameValueSubstitution SameValueSubstitution_3_4 -#define ScriptListTable ScriptListTable_3_4 -#define ScriptRunIterator ScriptRunIterator_3_4 -#define ScriptTable ScriptTable_3_4 -#define SearchIterator SearchIterator_3_4 -#define SegmentArrayProcessor SegmentArrayProcessor_3_4 -#define SegmentSingleProcessor SegmentSingleProcessor_3_4 -#define ServiceEnumeration ServiceEnumeration_3_4 -#define ServiceListener ServiceListener_3_4 -#define SimpleArrayProcessor SimpleArrayProcessor_3_4 -#define SimpleDateFormat SimpleDateFormat_3_4 -#define SimpleFactory SimpleFactory_3_4 -#define SimpleLocaleKeyFactory SimpleLocaleKeyFactory_3_4 -#define SimpleNumberFormatFactory SimpleNumberFormatFactory_3_4 -#define SimpleTimeZone SimpleTimeZone_3_4 -#define SinglePositioningFormat1Subtable SinglePositioningFormat1Subtable_3_4 -#define SinglePositioningFormat2Subtable SinglePositioningFormat2Subtable_3_4 -#define SinglePositioningSubtable SinglePositioningSubtable_3_4 -#define SingleSubstitutionFormat1Subtable SingleSubstitutionFormat1Subtable_3_4 -#define SingleSubstitutionFormat2Subtable SingleSubstitutionFormat2Subtable_3_4 -#define SingleSubstitutionSubtable SingleSubstitutionSubtable_3_4 -#define SingleTableProcessor SingleTableProcessor_3_4 -#define Spec Spec_3_4 -#define StateTableProcessor StateTableProcessor_3_4 -#define StringCharacterIterator StringCharacterIterator_3_4 -#define StringEnumeration StringEnumeration_3_4 -#define StringLocalizationInfo StringLocalizationInfo_3_4 -#define StringMatcher StringMatcher_3_4 -#define StringPair StringPair_3_4 -#define StringReplacer StringReplacer_3_4 -#define StringSearch StringSearch_3_4 -#define StyleRuns StyleRuns_3_4 -#define SubstitutionLookup SubstitutionLookup_3_4 -#define SubtableProcessor SubtableProcessor_3_4 -#define SunTimeAngleFunc SunTimeAngleFunc_3_4 -#define SymbolTable SymbolTable_3_4 -#define TZEnumeration TZEnumeration_3_4 -#define ThaiLayoutEngine ThaiLayoutEngine_3_4 -#define ThaiShaping ThaiShaping_3_4 -#define TimeZone TimeZone_3_4 -#define TitlecaseTransliterator TitlecaseTransliterator_3_4 -#define TransliterationRule TransliterationRule_3_4 -#define TransliterationRuleData TransliterationRuleData_3_4 -#define TransliterationRuleSet TransliterationRuleSet_3_4 -#define Transliterator Transliterator_3_4 -#define TransliteratorAlias TransliteratorAlias_3_4 -#define TransliteratorIDParser TransliteratorIDParser_3_4 -#define TransliteratorParser TransliteratorParser_3_4 -#define TransliteratorRegistry TransliteratorRegistry_3_4 -#define TrimmedArrayProcessor TrimmedArrayProcessor_3_4 -#define UCharCharacterIterator UCharCharacterIterator_3_4 -#define UMemory UMemory_3_4 -#define UObject UObject_3_4 -#define URegularExpression URegularExpression_3_4 -#define UStack UStack_3_4 -#define UStringEnumeration UStringEnumeration_3_4 -#define UVector UVector_3_4 -#define UVector32 UVector32_3_4 -#define UnescapeTransliterator UnescapeTransliterator_3_4 -#define UnicodeArabicOpenTypeLayoutEngine UnicodeArabicOpenTypeLayoutEngine_3_4 -#define UnicodeFilter UnicodeFilter_3_4 -#define UnicodeFunctor UnicodeFunctor_3_4 -#define UnicodeMatcher UnicodeMatcher_3_4 -#define UnicodeNameTransliterator UnicodeNameTransliterator_3_4 -#define UnicodeReplacer UnicodeReplacer_3_4 -#define UnicodeSet UnicodeSet_3_4 -#define UnicodeSetIterator UnicodeSetIterator_3_4 -#define UnicodeString UnicodeString_3_4 -#define UppercaseTransliterator UppercaseTransliterator_3_4 -#define ValueRecord ValueRecord_3_4 -#define ValueRuns ValueRuns_3_4 -#define locale_set_default_internal locale_set_default_internal_3_4 -#define uprv_parseCurrency uprv_parseCurrency_3_4 -#define util64_fromDouble util64_fromDouble_3_4 -#define util64_pow util64_pow_3_4 -#define util64_tou util64_tou_3_4 +#define AbsoluteValueSubstitution AbsoluteValueSubstitution_3_6 +#define AlternateSubstitutionSubtable AlternateSubstitutionSubtable_3_6 +#define AnchorTable AnchorTable_3_6 +#define AnyTransliterator AnyTransliterator_3_6 +#define ArabicOpenTypeLayoutEngine ArabicOpenTypeLayoutEngine_3_6 +#define ArabicShaping ArabicShaping_3_6 +#define BasicCalendarFactory BasicCalendarFactory_3_6 +#define BinarySearchLookupTable BinarySearchLookupTable_3_6 +#define BreakIterator BreakIterator_3_6 +#define BuddhistCalendar BuddhistCalendar_3_6 +#define BuildCompactTrieHorizontalNode BuildCompactTrieHorizontalNode_3_6 +#define BuildCompactTrieNode BuildCompactTrieNode_3_6 +#define BuildCompactTrieVerticalNode BuildCompactTrieVerticalNode_3_6 +#define CFactory CFactory_3_6 +#define Calendar Calendar_3_6 +#define CalendarAstronomer CalendarAstronomer_3_6 +#define CalendarCache CalendarCache_3_6 +#define CalendarData CalendarData_3_6 +#define CalendarService CalendarService_3_6 +#define CanonShaping CanonShaping_3_6 +#define CanonicalIterator CanonicalIterator_3_6 +#define CaseMapTransliterator CaseMapTransliterator_3_6 +#define ChainingContextualSubstitutionFormat1Subtable ChainingContextualSubstitutionFormat1Subtable_3_6 +#define ChainingContextualSubstitutionFormat2Subtable ChainingContextualSubstitutionFormat2Subtable_3_6 +#define ChainingContextualSubstitutionFormat3Subtable ChainingContextualSubstitutionFormat3Subtable_3_6 +#define ChainingContextualSubstitutionSubtable ChainingContextualSubstitutionSubtable_3_6 +#define CharSubstitutionFilter CharSubstitutionFilter_3_6 +#define CharacterIterator CharacterIterator_3_6 +#define CharsetDetector CharsetDetector_3_6 +#define CharsetMatch CharsetMatch_3_6 +#define CharsetRecog_2022 CharsetRecog_2022_3_6 +#define CharsetRecog_2022CN CharsetRecog_2022CN_3_6 +#define CharsetRecog_2022JP CharsetRecog_2022JP_3_6 +#define CharsetRecog_2022KR CharsetRecog_2022KR_3_6 +#define CharsetRecog_8859_1 CharsetRecog_8859_1_3_6 +#define CharsetRecog_8859_1_da CharsetRecog_8859_1_da_3_6 +#define CharsetRecog_8859_1_de CharsetRecog_8859_1_de_3_6 +#define CharsetRecog_8859_1_en CharsetRecog_8859_1_en_3_6 +#define CharsetRecog_8859_1_es CharsetRecog_8859_1_es_3_6 +#define CharsetRecog_8859_1_fr CharsetRecog_8859_1_fr_3_6 +#define CharsetRecog_8859_1_it CharsetRecog_8859_1_it_3_6 +#define CharsetRecog_8859_1_nl CharsetRecog_8859_1_nl_3_6 +#define CharsetRecog_8859_1_no CharsetRecog_8859_1_no_3_6 +#define CharsetRecog_8859_1_pt CharsetRecog_8859_1_pt_3_6 +#define CharsetRecog_8859_1_sv CharsetRecog_8859_1_sv_3_6 +#define CharsetRecog_8859_2 CharsetRecog_8859_2_3_6 +#define CharsetRecog_8859_2_cs CharsetRecog_8859_2_cs_3_6 +#define CharsetRecog_8859_2_hu CharsetRecog_8859_2_hu_3_6 +#define CharsetRecog_8859_2_pl CharsetRecog_8859_2_pl_3_6 +#define CharsetRecog_8859_2_ro CharsetRecog_8859_2_ro_3_6 +#define CharsetRecog_8859_5 CharsetRecog_8859_5_3_6 +#define CharsetRecog_8859_5_ru CharsetRecog_8859_5_ru_3_6 +#define CharsetRecog_8859_6 CharsetRecog_8859_6_3_6 +#define CharsetRecog_8859_6_ar CharsetRecog_8859_6_ar_3_6 +#define CharsetRecog_8859_7 CharsetRecog_8859_7_3_6 +#define CharsetRecog_8859_7_el CharsetRecog_8859_7_el_3_6 +#define CharsetRecog_8859_8 CharsetRecog_8859_8_3_6 +#define CharsetRecog_8859_8_I_he CharsetRecog_8859_8_I_he_3_6 +#define CharsetRecog_8859_8_he CharsetRecog_8859_8_he_3_6 +#define CharsetRecog_8859_9 CharsetRecog_8859_9_3_6 +#define CharsetRecog_8859_9_tr CharsetRecog_8859_9_tr_3_6 +#define CharsetRecog_KOI8_R CharsetRecog_KOI8_R_3_6 +#define CharsetRecog_UTF8 CharsetRecog_UTF8_3_6 +#define CharsetRecog_UTF_16_BE CharsetRecog_UTF_16_BE_3_6 +#define CharsetRecog_UTF_16_LE CharsetRecog_UTF_16_LE_3_6 +#define CharsetRecog_UTF_32 CharsetRecog_UTF_32_3_6 +#define CharsetRecog_UTF_32_BE CharsetRecog_UTF_32_BE_3_6 +#define CharsetRecog_UTF_32_LE CharsetRecog_UTF_32_LE_3_6 +#define CharsetRecog_Unicode CharsetRecog_Unicode_3_6 +#define CharsetRecog_big5 CharsetRecog_big5_3_6 +#define CharsetRecog_euc CharsetRecog_euc_3_6 +#define CharsetRecog_euc_jp CharsetRecog_euc_jp_3_6 +#define CharsetRecog_euc_kr CharsetRecog_euc_kr_3_6 +#define CharsetRecog_gb_18030 CharsetRecog_gb_18030_3_6 +#define CharsetRecog_mbcs CharsetRecog_mbcs_3_6 +#define CharsetRecog_sbcs CharsetRecog_sbcs_3_6 +#define CharsetRecog_sjis CharsetRecog_sjis_3_6 +#define CharsetRecog_windows_1251 CharsetRecog_windows_1251_3_6 +#define CharsetRecog_windows_1256 CharsetRecog_windows_1256_3_6 +#define CharsetRecognizer CharsetRecognizer_3_6 +#define ChoiceFormat ChoiceFormat_3_6 +#define ClassDefFormat1Table ClassDefFormat1Table_3_6 +#define ClassDefFormat2Table ClassDefFormat2Table_3_6 +#define ClassDefinitionTable ClassDefinitionTable_3_6 +#define CollationElementIterator CollationElementIterator_3_6 +#define CollationKey CollationKey_3_6 +#define Collator Collator_3_6 +#define CollatorFactory CollatorFactory_3_6 +#define CompactTrieDictionary CompactTrieDictionary_3_6 +#define CompactTrieEnumeration CompactTrieEnumeration_3_6 +#define CompoundTransliterator CompoundTransliterator_3_6 +#define ContextualGlyphSubstitutionProcessor ContextualGlyphSubstitutionProcessor_3_6 +#define ContextualSubstitutionBase ContextualSubstitutionBase_3_6 +#define ContextualSubstitutionFormat1Subtable ContextualSubstitutionFormat1Subtable_3_6 +#define ContextualSubstitutionFormat2Subtable ContextualSubstitutionFormat2Subtable_3_6 +#define ContextualSubstitutionFormat3Subtable ContextualSubstitutionFormat3Subtable_3_6 +#define ContextualSubstitutionSubtable ContextualSubstitutionSubtable_3_6 +#define CoverageFormat1Table CoverageFormat1Table_3_6 +#define CoverageFormat2Table CoverageFormat2Table_3_6 +#define CoverageTable CoverageTable_3_6 +#define CurrencyAmount CurrencyAmount_3_6 +#define CurrencyFormat CurrencyFormat_3_6 +#define CurrencyUnit CurrencyUnit_3_6 +#define CursiveAttachmentSubtable CursiveAttachmentSubtable_3_6 +#define DateFormat DateFormat_3_6 +#define DateFormatSymbols DateFormatSymbols_3_6 +#define DecimalFormat DecimalFormat_3_6 +#define DecimalFormatSymbols DecimalFormatSymbols_3_6 +#define DefaultCalendarFactory DefaultCalendarFactory_3_6 +#define DefaultCharMapper DefaultCharMapper_3_6 +#define DeviceTable DeviceTable_3_6 +#define DictionaryBreakEngine DictionaryBreakEngine_3_6 +#define DigitList DigitList_3_6 +#define Entry Entry_3_6 +#define EnumToOffset EnumToOffset_3_6 +#define EscapeTransliterator EscapeTransliterator_3_6 +#define EventListener EventListener_3_6 +#define ExtensionSubtable ExtensionSubtable_3_6 +#define FeatureListTable FeatureListTable_3_6 +#define FieldPosition FieldPosition_3_6 +#define FontRuns FontRuns_3_6 +#define Format Format_3_6 +#define Format1AnchorTable Format1AnchorTable_3_6 +#define Format2AnchorTable Format2AnchorTable_3_6 +#define Format3AnchorTable Format3AnchorTable_3_6 +#define Formattable Formattable_3_6 +#define ForwardCharacterIterator ForwardCharacterIterator_3_6 +#define FractionalPartSubstitution FractionalPartSubstitution_3_6 +#define FunctionReplacer FunctionReplacer_3_6 +#define GDEFMarkFilter GDEFMarkFilter_3_6 +#define GXLayoutEngine GXLayoutEngine_3_6 +#define GlyphDefinitionTableHeader GlyphDefinitionTableHeader_3_6 +#define GlyphIterator GlyphIterator_3_6 +#define GlyphLookupTableHeader GlyphLookupTableHeader_3_6 +#define GlyphPositionAdjustments GlyphPositionAdjustments_3_6 +#define GlyphPositioningLookupProcessor GlyphPositioningLookupProcessor_3_6 +#define GlyphPositioningTableHeader GlyphPositioningTableHeader_3_6 +#define GlyphSubstitutionLookupProcessor GlyphSubstitutionLookupProcessor_3_6 +#define GlyphSubstitutionTableHeader GlyphSubstitutionTableHeader_3_6 +#define Grego Grego_3_6 +#define GregorianCalendar GregorianCalendar_3_6 +#define HanOpenTypeLayoutEngine HanOpenTypeLayoutEngine_3_6 +#define HangulOpenTypeLayoutEngine HangulOpenTypeLayoutEngine_3_6 +#define HebrewCalendar HebrewCalendar_3_6 +#define ICUBreakIteratorFactory ICUBreakIteratorFactory_3_6 +#define ICUBreakIteratorService ICUBreakIteratorService_3_6 +#define ICUCollatorFactory ICUCollatorFactory_3_6 +#define ICUCollatorService ICUCollatorService_3_6 +#define ICULanguageBreakFactory ICULanguageBreakFactory_3_6 +#define ICULocaleService ICULocaleService_3_6 +#define ICUNotifier ICUNotifier_3_6 +#define ICUNumberFormatFactory ICUNumberFormatFactory_3_6 +#define ICUNumberFormatService ICUNumberFormatService_3_6 +#define ICUResourceBundleFactory ICUResourceBundleFactory_3_6 +#define ICUService ICUService_3_6 +#define ICUServiceFactory ICUServiceFactory_3_6 +#define ICUServiceKey ICUServiceKey_3_6 +#define ICU_Utility ICU_Utility_3_6 +#define IndicClassTable IndicClassTable_3_6 +#define IndicOpenTypeLayoutEngine IndicOpenTypeLayoutEngine_3_6 +#define IndicRearrangementProcessor IndicRearrangementProcessor_3_6 +#define IndicReordering IndicReordering_3_6 +#define InputText InputText_3_6 +#define IntegralPartSubstitution IntegralPartSubstitution_3_6 +#define IslamicCalendar IslamicCalendar_3_6 +#define IteratedChar IteratedChar_3_6 +#define JapaneseCalendar JapaneseCalendar_3_6 +#define KernTable KernTable_3_6 +#define KeywordEnumeration KeywordEnumeration_3_6 +#define KhmerClassTable KhmerClassTable_3_6 +#define KhmerOpenTypeLayoutEngine KhmerOpenTypeLayoutEngine_3_6 +#define KhmerReordering KhmerReordering_3_6 +#define LECharMapper LECharMapper_3_6 +#define LEFontInstance LEFontInstance_3_6 +#define LEGlyphFilter LEGlyphFilter_3_6 +#define LEGlyphStorage LEGlyphStorage_3_6 +#define LEInsertionCallback LEInsertionCallback_3_6 +#define LEInsertionList LEInsertionList_3_6 +#define LXUtilities LXUtilities_3_6 +#define LanguageBreakEngine LanguageBreakEngine_3_6 +#define LanguageBreakFactory LanguageBreakFactory_3_6 +#define LayoutEngine LayoutEngine_3_6 +#define LigatureSubstitutionProcessor LigatureSubstitutionProcessor_3_6 +#define LigatureSubstitutionSubtable LigatureSubstitutionSubtable_3_6 +#define LocDataParser LocDataParser_3_6 +#define Locale Locale_3_6 +#define LocaleBased LocaleBased_3_6 +#define LocaleKey LocaleKey_3_6 +#define LocaleKeyFactory LocaleKeyFactory_3_6 +#define LocaleRuns LocaleRuns_3_6 +#define LocaleUtility LocaleUtility_3_6 +#define LocalizationInfo LocalizationInfo_3_6 +#define LookupListTable LookupListTable_3_6 +#define LookupProcessor LookupProcessor_3_6 +#define LookupSubtable LookupSubtable_3_6 +#define LookupTable LookupTable_3_6 +#define LowercaseTransliterator LowercaseTransliterator_3_6 +#define MPreFixups MPreFixups_3_6 +#define MarkArray MarkArray_3_6 +#define MarkToBasePositioningSubtable MarkToBasePositioningSubtable_3_6 +#define MarkToLigaturePositioningSubtable MarkToLigaturePositioningSubtable_3_6 +#define MarkToMarkPositioningSubtable MarkToMarkPositioningSubtable_3_6 +#define Math Math_3_6 +#define Measure Measure_3_6 +#define MeasureFormat MeasureFormat_3_6 +#define MeasureUnit MeasureUnit_3_6 +#define MessageFormat MessageFormat_3_6 +#define MessageFormatAdapter MessageFormatAdapter_3_6 +#define ModulusSubstitution ModulusSubstitution_3_6 +#define MoonRiseSetCoordFunc MoonRiseSetCoordFunc_3_6 +#define MoonTimeAngleFunc MoonTimeAngleFunc_3_6 +#define MorphSubtableHeader MorphSubtableHeader_3_6 +#define MorphTableHeader MorphTableHeader_3_6 +#define MultipleSubstitutionSubtable MultipleSubstitutionSubtable_3_6 +#define MultiplierSubstitution MultiplierSubstitution_3_6 +#define MutableTrieDictionary MutableTrieDictionary_3_6 +#define MutableTrieEnumeration MutableTrieEnumeration_3_6 +#define NFFactory NFFactory_3_6 +#define NFRule NFRule_3_6 +#define NFRuleSet NFRuleSet_3_6 +#define NFSubstitution NFSubstitution_3_6 +#define NGramParser NGramParser_3_6 +#define NameToEnum NameToEnum_3_6 +#define NameUnicodeTransliterator NameUnicodeTransliterator_3_6 +#define NonContextualGlyphSubstitutionProcessor NonContextualGlyphSubstitutionProcessor_3_6 +#define NonContiguousEnumToOffset NonContiguousEnumToOffset_3_6 +#define NormalizationTransliterator NormalizationTransliterator_3_6 +#define Normalizer Normalizer_3_6 +#define NullSubstitution NullSubstitution_3_6 +#define NullTransliterator NullTransliterator_3_6 +#define NumberFormat NumberFormat_3_6 +#define NumberFormatFactory NumberFormatFactory_3_6 +#define NumeratorSubstitution NumeratorSubstitution_3_6 +#define OlsonTimeZone OlsonTimeZone_3_6 +#define OpenTypeLayoutEngine OpenTypeLayoutEngine_3_6 +#define OpenTypeUtilities OpenTypeUtilities_3_6 +#define PairPositioningFormat1Subtable PairPositioningFormat1Subtable_3_6 +#define PairPositioningFormat2Subtable PairPositioningFormat2Subtable_3_6 +#define PairPositioningSubtable PairPositioningSubtable_3_6 +#define ParagraphLayout ParagraphLayout_3_6 +#define ParseData ParseData_3_6 +#define ParsePosition ParsePosition_3_6 +#define PropertyAliases PropertyAliases_3_6 +#define Quantifier Quantifier_3_6 +#define RBBIDataWrapper RBBIDataWrapper_3_6 +#define RBBINode RBBINode_3_6 +#define RBBIRuleBuilder RBBIRuleBuilder_3_6 +#define RBBIRuleScanner RBBIRuleScanner_3_6 +#define RBBISetBuilder RBBISetBuilder_3_6 +#define RBBIStateDescriptor RBBIStateDescriptor_3_6 +#define RBBISymbolTable RBBISymbolTable_3_6 +#define RBBISymbolTableEntry RBBISymbolTableEntry_3_6 +#define RBBITableBuilder RBBITableBuilder_3_6 +#define RangeDescriptor RangeDescriptor_3_6 +#define RegexCompile RegexCompile_3_6 +#define RegexMatcher RegexMatcher_3_6 +#define RegexPattern RegexPattern_3_6 +#define RegexStaticSets RegexStaticSets_3_6 +#define RemoveTransliterator RemoveTransliterator_3_6 +#define Replaceable Replaceable_3_6 +#define ReplaceableGlue ReplaceableGlue_3_6 +#define ResourceBundle ResourceBundle_3_6 +#define RiseSetCoordFunc RiseSetCoordFunc_3_6 +#define RuleBasedBreakIterator RuleBasedBreakIterator_3_6 +#define RuleBasedCollator RuleBasedCollator_3_6 +#define RuleBasedNumberFormat RuleBasedNumberFormat_3_6 +#define RuleBasedTransliterator RuleBasedTransliterator_3_6 +#define RuleCharacterIterator RuleCharacterIterator_3_6 +#define RuleHalf RuleHalf_3_6 +#define RunArray RunArray_3_6 +#define SameValueSubstitution SameValueSubstitution_3_6 +#define ScriptListTable ScriptListTable_3_6 +#define ScriptRunIterator ScriptRunIterator_3_6 +#define ScriptTable ScriptTable_3_6 +#define SearchIterator SearchIterator_3_6 +#define SegmentArrayProcessor SegmentArrayProcessor_3_6 +#define SegmentSingleProcessor SegmentSingleProcessor_3_6 +#define ServiceEnumeration ServiceEnumeration_3_6 +#define ServiceListener ServiceListener_3_6 +#define SimpleArrayProcessor SimpleArrayProcessor_3_6 +#define SimpleDateFormat SimpleDateFormat_3_6 +#define SimpleFactory SimpleFactory_3_6 +#define SimpleLocaleKeyFactory SimpleLocaleKeyFactory_3_6 +#define SimpleNumberFormatFactory SimpleNumberFormatFactory_3_6 +#define SimpleTimeZone SimpleTimeZone_3_6 +#define SinglePositioningFormat1Subtable SinglePositioningFormat1Subtable_3_6 +#define SinglePositioningFormat2Subtable SinglePositioningFormat2Subtable_3_6 +#define SinglePositioningSubtable SinglePositioningSubtable_3_6 +#define SingleSubstitutionFormat1Subtable SingleSubstitutionFormat1Subtable_3_6 +#define SingleSubstitutionFormat2Subtable SingleSubstitutionFormat2Subtable_3_6 +#define SingleSubstitutionSubtable SingleSubstitutionSubtable_3_6 +#define SingleTableProcessor SingleTableProcessor_3_6 +#define Spec Spec_3_6 +#define StateTableProcessor StateTableProcessor_3_6 +#define StringCharacterIterator StringCharacterIterator_3_6 +#define StringEnumeration StringEnumeration_3_6 +#define StringLocalizationInfo StringLocalizationInfo_3_6 +#define StringMatcher StringMatcher_3_6 +#define StringPair StringPair_3_6 +#define StringReplacer StringReplacer_3_6 +#define StringSearch StringSearch_3_6 +#define StyleRuns StyleRuns_3_6 +#define SubstitutionLookup SubstitutionLookup_3_6 +#define SubtableProcessor SubtableProcessor_3_6 +#define SunTimeAngleFunc SunTimeAngleFunc_3_6 +#define SymbolTable SymbolTable_3_6 +#define TZEnumeration TZEnumeration_3_6 +#define TernaryNode TernaryNode_3_6 +#define ThaiBreakEngine ThaiBreakEngine_3_6 +#define ThaiLayoutEngine ThaiLayoutEngine_3_6 +#define ThaiShaping ThaiShaping_3_6 +#define TibetanClassTable TibetanClassTable_3_6 +#define TibetanOpenTypeLayoutEngine TibetanOpenTypeLayoutEngine_3_6 +#define TibetanReordering TibetanReordering_3_6 +#define TimeZone TimeZone_3_6 +#define TimeZoneKeysEnumeration TimeZoneKeysEnumeration_3_6 +#define TitlecaseTransliterator TitlecaseTransliterator_3_6 +#define TransliterationRule TransliterationRule_3_6 +#define TransliterationRuleData TransliterationRuleData_3_6 +#define TransliterationRuleSet TransliterationRuleSet_3_6 +#define Transliterator Transliterator_3_6 +#define TransliteratorAlias TransliteratorAlias_3_6 +#define TransliteratorIDParser TransliteratorIDParser_3_6 +#define TransliteratorParser TransliteratorParser_3_6 +#define TransliteratorRegistry TransliteratorRegistry_3_6 +#define TrieWordDictionary TrieWordDictionary_3_6 +#define TrimmedArrayProcessor TrimmedArrayProcessor_3_6 +#define UCharCharacterIterator UCharCharacterIterator_3_6 +#define UMemory UMemory_3_6 +#define UObject UObject_3_6 +#define URegularExpression URegularExpression_3_6 +#define UStack UStack_3_6 +#define UStringEnumeration UStringEnumeration_3_6 +#define UVector UVector_3_6 +#define UVector32 UVector32_3_6 +#define UnescapeTransliterator UnescapeTransliterator_3_6 +#define UnhandledEngine UnhandledEngine_3_6 +#define UnicodeArabicOpenTypeLayoutEngine UnicodeArabicOpenTypeLayoutEngine_3_6 +#define UnicodeFilter UnicodeFilter_3_6 +#define UnicodeFunctor UnicodeFunctor_3_6 +#define UnicodeMatcher UnicodeMatcher_3_6 +#define UnicodeNameTransliterator UnicodeNameTransliterator_3_6 +#define UnicodeReplacer UnicodeReplacer_3_6 +#define UnicodeSet UnicodeSet_3_6 +#define UnicodeSetIterator UnicodeSetIterator_3_6 +#define UnicodeString UnicodeString_3_6 +#define UppercaseTransliterator UppercaseTransliterator_3_6 +#define ValueRecord ValueRecord_3_6 +#define ValueRuns ValueRuns_3_6 +#define locale_set_default_internal locale_set_default_internal_3_6 +#define util64_fromDouble util64_fromDouble_3_6 +#define util64_pow util64_pow_3_6 +#define util64_tou util64_tou_3_6 #endif #endif diff --git a/Build/source/libs/icu-xetex/common/unicode/ures.h b/Build/source/libs/icu-xetex/common/unicode/ures.h index 2bf97d77dee..f6e3b347b13 100644 --- a/Build/source/libs/icu-xetex/common/unicode/ures.h +++ b/Build/source/libs/icu-xetex/common/unicode/ures.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -82,6 +82,8 @@ typedef enum { */ URES_ALIAS=3, +#ifndef U_HIDE_INTERNAL_API + /** * Internal use only. * Alternative resource type constant for tables of key-value pairs. @@ -90,6 +92,8 @@ typedef enum { */ URES_TABLE32=4, +#endif /* U_HIDE_INTERNAL_API */ + /** * Resource type constant for a single 28-bit integer, interpreted as * signed or unsigned by the ures_getInt() or ures_getUInt() function. @@ -107,8 +111,7 @@ typedef enum { * @see ures_getIntVector * @stable ICU 2.6 */ - URES_INT_VECTOR=14, - + URES_INT_VECTOR = 14, #ifndef U_HIDE_DEPRECATED_API /** @deprecated ICU 2.6 Use the URES_ constant instead. */ RES_NONE=URES_NONE, @@ -126,10 +129,11 @@ typedef enum { RES_ARRAY=URES_ARRAY, /** @deprecated ICU 2.6 Use the URES_ constant instead. */ RES_INT_VECTOR=URES_INT_VECTOR, + /** @deprecated ICU 2.6 Not used. */ + RES_RESERVED=15, #endif /* U_HIDE_DEPRECATED_API */ - /** @deprecated ICU 2.6 Not used. */ - RES_RESERVED=15 + URES_LIMIT = 16 } UResType; /* @@ -299,9 +303,9 @@ ures_getLocale(const UResourceBundle* resourceBundle, * ULocDataLocaleType in uloc.h * @param status just for catching illegal arguments * @return A Locale name - * @draft ICU 2.8 likely to change in the future + * @stable ICU 2.8 */ -U_DRAFT const char* U_EXPORT2 +U_STABLE const char* U_EXPORT2 ures_getLocaleByType(const UResourceBundle* resourceBundle, ULocDataLocaleType type, UErrorCode* status); @@ -352,6 +356,59 @@ ures_getString(const UResourceBundle* resourceBundle, UErrorCode* status); /** + * Returns a UTF-8 string from a string resource. + * The UTF-8 string may be returnable directly as a pointer, or + * it may need to be copied, or transformed from UTF-16 using u_strToUTF8() + * or equivalent. + * + * If forceCopy==TRUE, then the string is always written to the dest buffer + * and dest is returned. + * + * If forceCopy==FALSE, then the string is returned as a pointer if possible, + * without needing a dest buffer (it can be NULL). If the string needs to be + * copied or transformed, then it may be placed into dest at an arbitrary offset. + * + * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and + * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual. + * + * If the string is transformed from UTF-16, then a conversion error may occur + * if an unpaired surrogate is encountered. If the function is successful, then + * the output UTF-8 string is always well-formed. + * + * @param resB Resource bundle. + * @param dest Destination buffer. Can be NULL only if capacity=*length==0. + * @param length Input: Capacity of destination buffer. + * Output: Actual length of the UTF-8 string, not counting the + * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR. + * Can be NULL, meaning capacity=0 and the string length is not + * returned to the caller. + * @param forceCopy If TRUE, then the output string will always be written to + * dest, with U_BUFFER_OVERFLOW_ERROR and + * U_STRING_NOT_TERMINATED_WARNING set if appropriate. + * If FALSE, then the dest buffer may or may not contain a + * copy of the string. dest may or may not be modified. + * If a copy needs to be written, then the UErrorCode parameter + * indicates overflow etc. as usual. + * @param status Pointer to a standard ICU error code. Its input value must + * pass the U_SUCCESS() test, or else the function returns + * immediately. Check for U_FAILURE() on output or use with + * function chaining. (See User Guide for details.) + * @return The pointer to the UTF-8 string. It may be dest, or at some offset + * from dest (only if !forceCopy), or in unrelated memory. + * Always NUL-terminated unless the string was written to dest and + * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set). + * + * @see ures_getString + * @see u_strToUTF8 + * @draft ICU 3.6 + */ +U_DRAFT const char * U_EXPORT2 +ures_getUTF8String(const UResourceBundle *resB, + char *dest, int32_t *length, + UBool forceCopy, + UErrorCode *status); + +/** * Returns a binary data from a binary resource. * * @param resourceBundle a string resource @@ -498,11 +555,11 @@ ures_hasNext(const UResourceBundle *resourceBundle); * to iterate over. Features a fill-in parameter. * * @param resourceBundle a resource - * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller. + * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller. * Alternatively, you can supply a struct to be filled by this function. * @param status fills in the outgoing error code. You may still get a non NULL result even if an * error occured. Check status instead. - * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it + * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it * @stable ICU 2.0 */ U_STABLE UResourceBundle* U_EXPORT2 @@ -533,11 +590,11 @@ ures_getNextString(UResourceBundle *resourceBundle, * * @param resourceBundle the resource bundle from which to get a sub-resource * @param indexR an index to the wanted resource. - * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller. + * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller. * Alternatively, you can supply a struct to be filled by this function. * @param status fills in the outgoing error code. Don't count on NULL being returned if an error has * occured. Check status instead. - * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it + * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it * @stable ICU 2.0 */ U_STABLE UResourceBundle* U_EXPORT2 @@ -564,15 +621,70 @@ ures_getStringByIndex(const UResourceBundle *resourceBundle, UErrorCode *status); /** + * Returns a UTF-8 string from a resource at the specified index. + * The UTF-8 string may be returnable directly as a pointer, or + * it may need to be copied, or transformed from UTF-16 using u_strToUTF8() + * or equivalent. + * + * If forceCopy==TRUE, then the string is always written to the dest buffer + * and dest is returned. + * + * If forceCopy==FALSE, then the string is returned as a pointer if possible, + * without needing a dest buffer (it can be NULL). If the string needs to be + * copied or transformed, then it may be placed into dest at an arbitrary offset. + * + * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and + * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual. + * + * If the string is transformed from UTF-16, then a conversion error may occur + * if an unpaired surrogate is encountered. If the function is successful, then + * the output UTF-8 string is always well-formed. + * + * @param resB Resource bundle. + * @param index An index to the wanted string. + * @param dest Destination buffer. Can be NULL only if capacity=*length==0. + * @param pLength Input: Capacity of destination buffer. + * Output: Actual length of the UTF-8 string, not counting the + * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR. + * Can be NULL, meaning capacity=0 and the string length is not + * returned to the caller. + * @param forceCopy If TRUE, then the output string will always be written to + * dest, with U_BUFFER_OVERFLOW_ERROR and + * U_STRING_NOT_TERMINATED_WARNING set if appropriate. + * If FALSE, then the dest buffer may or may not contain a + * copy of the string. dest may or may not be modified. + * If a copy needs to be written, then the UErrorCode parameter + * indicates overflow etc. as usual. + * @param status Pointer to a standard ICU error code. Its input value must + * pass the U_SUCCESS() test, or else the function returns + * immediately. Check for U_FAILURE() on output or use with + * function chaining. (See User Guide for details.) + * @return The pointer to the UTF-8 string. It may be dest, or at some offset + * from dest (only if !forceCopy), or in unrelated memory. + * Always NUL-terminated unless the string was written to dest and + * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set). + * + * @see ures_getStringByIndex + * @see u_strToUTF8 + * @draft ICU 3.6 + */ +U_DRAFT const char * U_EXPORT2 +ures_getUTF8StringByIndex(const UResourceBundle *resB, + int32_t index, + char *dest, int32_t *pLength, + UBool forceCopy, + UErrorCode *status); + +/** * Returns a resource in a given resource that has a given key. This procedure works only with table * resources. Features a fill-in parameter. * * @param resourceBundle a resource * @param key a key associated with the wanted resource - * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller. + * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller. * Alternatively, you can supply a struct to be filled by this function. * @param status fills in the outgoing error code. - * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it + * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it * @stable ICU 2.0 */ U_STABLE UResourceBundle* U_EXPORT2 @@ -599,6 +711,63 @@ ures_getStringByKey(const UResourceBundle *resB, int32_t* len, UErrorCode *status); +/** + * Returns a UTF-8 string from a resource and a key. + * This function works only with table resources. + * + * The UTF-8 string may be returnable directly as a pointer, or + * it may need to be copied, or transformed from UTF-16 using u_strToUTF8() + * or equivalent. + * + * If forceCopy==TRUE, then the string is always written to the dest buffer + * and dest is returned. + * + * If forceCopy==FALSE, then the string is returned as a pointer if possible, + * without needing a dest buffer (it can be NULL). If the string needs to be + * copied or transformed, then it may be placed into dest at an arbitrary offset. + * + * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and + * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual. + * + * If the string is transformed from UTF-16, then a conversion error may occur + * if an unpaired surrogate is encountered. If the function is successful, then + * the output UTF-8 string is always well-formed. + * + * @param resB Resource bundle. + * @param key A key associated with the wanted resource + * @param dest Destination buffer. Can be NULL only if capacity=*length==0. + * @param pLength Input: Capacity of destination buffer. + * Output: Actual length of the UTF-8 string, not counting the + * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR. + * Can be NULL, meaning capacity=0 and the string length is not + * returned to the caller. + * @param forceCopy If TRUE, then the output string will always be written to + * dest, with U_BUFFER_OVERFLOW_ERROR and + * U_STRING_NOT_TERMINATED_WARNING set if appropriate. + * If FALSE, then the dest buffer may or may not contain a + * copy of the string. dest may or may not be modified. + * If a copy needs to be written, then the UErrorCode parameter + * indicates overflow etc. as usual. + * @param status Pointer to a standard ICU error code. Its input value must + * pass the U_SUCCESS() test, or else the function returns + * immediately. Check for U_FAILURE() on output or use with + * function chaining. (See User Guide for details.) + * @return The pointer to the UTF-8 string. It may be dest, or at some offset + * from dest (only if !forceCopy), or in unrelated memory. + * Always NUL-terminated unless the string was written to dest and + * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set). + * + * @see ures_getStringByKey + * @see u_strToUTF8 + * @draft ICU 3.6 + */ +U_DRAFT const char * U_EXPORT2 +ures_getUTF8StringByKey(const UResourceBundle *resB, + const char *key, + char *dest, int32_t *pLength, + UBool forceCopy, + UErrorCode *status); + #ifdef XP_CPLUSPLUS #include "unicode/unistr.h" @@ -606,12 +775,12 @@ U_NAMESPACE_BEGIN /** * returns a string from a string resource type * - * @param resB a resource + * @param resB a resource * @param status: fills in the outgoing error code * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found * could be a non-failing error * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> - * @return an UnicodeString object. If there is an error, string is bogus + * @return a UnicodeString object. If there is an error, string is bogus * @stable ICU 2.0 */ inline UnicodeString @@ -686,40 +855,15 @@ U_NAMESPACE_END #endif - -/** - * Get a resource with multi-level fallback. Normally only the top level resources will - * fallback to its parent. This performs fallback on subresources. For example, when a table - * is defined in a resource bundle and a parent resource bundle, normally no fallback occurs - * on the sub-resources because the table is defined in the current resource bundle, but this - * function can perform fallback on the sub-resources of the table. - * @param resB a resource - * @param inKey a key associated with the requested resource - * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller. - * Alternatively, you can supply a struct to be filled by this function. - * @param status: fills in the outgoing error code - * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found - * could be a non-failing error - * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> - * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it - * @internal ICU 3.0 - */ -U_INTERNAL UResourceBundle* U_EXPORT2 -ures_getByKeyWithFallback(const UResourceBundle *resB, - const char* inKey, - UResourceBundle *fillIn, - UErrorCode *status); - - /** * Create a string enumerator, owned by the caller, of all locales located within * the specified resource tree. * @param packageName name of the tree, such as (NULL) or U_ICUDATA_ALIAS or or "ICUDATA-coll" * This call is similar to uloc_getAvailable(). * @param status error code - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT UEnumeration* U_EXPORT2 +U_STABLE UEnumeration* U_EXPORT2 ures_openAvailableLocales(const char *packageName, UErrorCode *status); diff --git a/Build/source/libs/icu-xetex/common/unicode/uscript.h b/Build/source/libs/icu-xetex/common/unicode/uscript.h index 3420299a023..d7cbc38eb38 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uscript.h +++ b/Build/source/libs/icu-xetex/common/unicode/uscript.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1997-2005, International Business Machines +* Copyright (C) 1997-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -22,7 +22,23 @@ */ /** - * Constants for Unicode script values from ScriptNames.txt. + * Constants for ISO 15924 script codes. + * + * Many of these script codes - those from Unicode's ScriptNames.txt - + * are character property values for Unicode's Script property. + * See UAX #24 Script Names (http://www.unicode.org/reports/tr24/). + * + * Starting with ICU 3.6, constants for most ISO 15924 script codes + * are included (currently excluding private-use codes Qaaa..Qabx). + * For scripts for which there are codes in ISO 15924 but which are not + * used in the Unicode Character Database (UCD), there are no Unicode characters + * associated with those scripts. + * + * For example, there are no characters that have a UCD script code of + * Hans or Hant. All Han ideographs have the Hani script code. + * The Hans and Hant script codes are used with CLDR data. + * + * ISO 15924 script codes are included for use with CLDR and similar. * * @stable ICU 2.2 */ @@ -36,11 +52,11 @@ typedef enum UScriptCode { USCRIPT_BOPOMOFO = 5, /* Bopo */ USCRIPT_CHEROKEE = 6, /* Cher */ USCRIPT_COPTIC = 7, /* Copt */ - USCRIPT_CYRILLIC = 8, /* Cyrl (Cyrs) */ + USCRIPT_CYRILLIC = 8, /* Cyrl */ USCRIPT_DESERET = 9, /* Dsrt */ USCRIPT_DEVANAGARI = 10, /* Deva */ USCRIPT_ETHIOPIC = 11, /* Ethi */ - USCRIPT_GEORGIAN = 12, /* Geor (Geon, Geoa) */ + USCRIPT_GEORGIAN = 12, /* Geor */ USCRIPT_GOTHIC = 13, /* Goth */ USCRIPT_GREEK = 14, /* Grek */ USCRIPT_GUJARATI = 15, /* Gujr */ @@ -53,7 +69,7 @@ typedef enum UScriptCode { USCRIPT_KATAKANA = 22, /* Kana */ USCRIPT_KHMER = 23, /* Khmr */ USCRIPT_LAO = 24, /* Laoo */ - USCRIPT_LATIN = 25, /* Latn (Latf, Latg) */ + USCRIPT_LATIN = 25, /* Latn */ USCRIPT_MALAYALAM = 26, /* Mlym */ USCRIPT_MONGOLIAN = 27, /* Mong */ USCRIPT_MYANMAR = 28, /* Mymr */ @@ -62,7 +78,7 @@ typedef enum UScriptCode { USCRIPT_ORIYA = 31, /* Orya */ USCRIPT_RUNIC = 32, /* Runr */ USCRIPT_SINHALA = 33, /* Sinh */ - USCRIPT_SYRIAC = 34, /* Syrc (Syrj, Syrn, Syre) */ + USCRIPT_SYRIAC = 34, /* Syrc */ USCRIPT_TAMIL = 35, /* Taml */ USCRIPT_TELUGU = 36, /* Telu */ USCRIPT_THAANA = 37, /* Thaa */ @@ -79,28 +95,74 @@ typedef enum UScriptCode { USCRIPT_TAGBANWA = 45, /* Tagb */ /* New scripts in Unicode 4 @stable ICU 2.6 */ - USCRIPT_BRAILLE, /* Brai */ - USCRIPT_CYPRIOT, /* Cprt */ - USCRIPT_LIMBU, /* Limb */ - USCRIPT_LINEAR_B, /* Linb */ - USCRIPT_OSMANYA, /* Osma */ - USCRIPT_SHAVIAN, /* Shaw */ - USCRIPT_TAI_LE, /* Tale */ - USCRIPT_UGARITIC, /* Ugar */ - - /** New script code in Unicode 4.0.1 @draft ICU 3.0 */ - USCRIPT_KATAKANA_OR_HIRAGANA,/*Hrkt */ + USCRIPT_BRAILLE = 46, /* Brai */ + USCRIPT_CYPRIOT = 47, /* Cprt */ + USCRIPT_LIMBU = 48, /* Limb */ + USCRIPT_LINEAR_B = 49, /* Linb */ + USCRIPT_OSMANYA = 50, /* Osma */ + USCRIPT_SHAVIAN = 51, /* Shaw */ + USCRIPT_TAI_LE = 52, /* Tale */ + USCRIPT_UGARITIC = 53, /* Ugar */ + /** New script code in Unicode 4.0.1 @stable ICU 3.0 */ + USCRIPT_KATAKANA_OR_HIRAGANA = 54,/*Hrkt */ + +#ifndef U_HIDE_DRAFT_API /* New scripts in Unicode 4.1 @draft ICU 3.4 */ - USCRIPT_BUGINESE, /* Bugi */ - USCRIPT_GLAGOLITIC, /* Glag */ - USCRIPT_KHAROSHTHI, /* Khar */ - USCRIPT_SYLOTI_NAGRI, /* Sylo */ - USCRIPT_NEW_TAI_LUE, /* Talu */ - USCRIPT_TIFINAGH, /* Tfng */ - USCRIPT_OLD_PERSIAN, /* Xpeo */ + USCRIPT_BUGINESE = 55, /* Bugi */ + USCRIPT_GLAGOLITIC = 56, /* Glag */ + USCRIPT_KHAROSHTHI = 57, /* Khar */ + USCRIPT_SYLOTI_NAGRI = 58, /* Sylo */ + USCRIPT_NEW_TAI_LUE = 59, /* Talu */ + USCRIPT_TIFINAGH = 60, /* Tfng */ + USCRIPT_OLD_PERSIAN = 61, /* Xpeo */ - USCRIPT_CODE_LIMIT + /* New script codes from ISO 15924 @draft ICU 3.6 */ + USCRIPT_BALINESE = 62, /* Bali */ + USCRIPT_BATAK = 63, /* Batk */ + USCRIPT_BLISSYMBOLS = 64, /* Blis */ + USCRIPT_BRAHMI = 65, /* Brah */ + USCRIPT_CHAM = 66, /* Cham */ + USCRIPT_CIRTH = 67, /* Cirt */ + USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC = 68, /* Cyrs */ + USCRIPT_DEMOTIC_EGYPTIAN = 69, /* Egyd */ + USCRIPT_HIERATIC_EGYPTIAN = 70, /* Egyh */ + USCRIPT_EGYPTIAN_HIEROGLYPHS = 71, /* Egyp */ + USCRIPT_KHUTSURI = 72, /* Geok */ + USCRIPT_SIMPLIFIED_HAN = 73, /* Hans */ + USCRIPT_TRADITIONAL_HAN = 74, /* Hant */ + USCRIPT_PAHAWH_HMONG = 75, /* Hmng */ + USCRIPT_OLD_HUNGARIAN = 76, /* Hung */ + USCRIPT_HARAPPAN_INDUS = 77, /* Inds */ + USCRIPT_JAVANESE = 78, /* Java */ + USCRIPT_KAYAH_LI = 79, /* Kali */ + USCRIPT_LATIN_FRAKTUR = 80, /* Latf */ + USCRIPT_LATIN_GAELIC = 81, /* Latg */ + USCRIPT_LEPCHA = 82, /* Lepc */ + USCRIPT_LINEAR_A = 83, /* Lina */ + USCRIPT_MANDAEAN = 84, /* Mand */ + USCRIPT_MAYAN_HIEROGLYPHS = 85, /* Maya */ + USCRIPT_MEROITIC = 86, /* Mero */ + USCRIPT_NKO = 87, /* Nkoo */ + USCRIPT_ORKHON = 88, /* Orkh */ + USCRIPT_OLD_PERMIC = 89, /* Perm */ + USCRIPT_PHAGS_PA = 90, /* Phag */ + USCRIPT_PHOENICIAN = 91, /* Phnx */ + USCRIPT_PHONETIC_POLLARD = 92, /* Plrd */ + USCRIPT_RONGORONGO = 93, /* Roro */ + USCRIPT_SARATI = 94, /* Sara */ + USCRIPT_ESTRANGELO_SYRIAC = 95, /* Syre */ + USCRIPT_WESTERN_SYRIAC = 96, /* Syrj */ + USCRIPT_EASTERN_SYRIAC = 97, /* Syrn */ + USCRIPT_TENGWAR = 98, /* Teng */ + USCRIPT_VAI = 99, /* Vaii */ + USCRIPT_VISIBLE_SPEECH = 100, /* Visp */ + USCRIPT_CUNEIFORM = 101,/* Xsux */ + USCRIPT_UNWRITTEN_LANGUAGES = 102,/* Zxxx */ + USCRIPT_UNKNOWN = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */ + /* Private use codes from Qaaa - Qabx are not supported*/ +#endif /* U_HIDE_DRAFT_API */ + USCRIPT_CODE_LIMIT = 104 } UScriptCode; /** diff --git a/Build/source/libs/icu-xetex/common/unicode/uset.h b/Build/source/libs/icu-xetex/common/unicode/uset.h index 050a9070e6e..e6c7d3ecc12 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uset.h +++ b/Build/source/libs/icu-xetex/common/unicode/uset.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 2002-2005, International Business Machines +* Copyright (C) 2002-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -81,22 +81,15 @@ enum { USET_CASE_INSENSITIVE = 2, /** - * Bitmask for UnicodeSet::closeOver() indicating letter case. - * This may be ORed together with other selectors. - * @internal - */ - USET_CASE = 2, - - /** * Enable case insensitive matching. E.g., "[ab]" with this flag * will match 'a', 'A', 'b', and 'B'. "[^ab]" with this flag will * match all except 'a', 'A', 'b', and 'B'. This adds the lower-, * title-, and uppercase mappings as well as the case folding * of each existing element in the set. - * @draft ICU 3.2 + * @stable ICU 3.2 */ USET_ADD_CASE_MAPPINGS = 4, - + /** * Enough for any single-code point set * @internal @@ -192,9 +185,9 @@ uset_close(USet* set); * @param set the object to set to the given range * @param start first character in the set, inclusive * @param end last character in the set, inclusive - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_set(USet* set, UChar32 start, UChar32 end); @@ -243,9 +236,9 @@ uset_applyPattern(USet *set, * * @param ec error code input/output parameter * - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_applyIntPropertyValue(USet* set, UProperty prop, int32_t value, UErrorCode* ec); @@ -281,9 +274,9 @@ uset_applyIntPropertyValue(USet* set, * * @param ec error code input/output parameter * - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_applyPropertyAlias(USet* set, const UChar *prop, int32_t propLength, const UChar *value, int32_t valueLength, @@ -296,9 +289,9 @@ uset_applyPropertyAlias(USet* set, * @param pattern a string specifying the pattern * @param patternLength the length of the pattern, or -1 if NULL * @param pos the given position - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT UBool U_EXPORT2 +U_STABLE UBool U_EXPORT2 uset_resemblesPattern(const UChar *pattern, int32_t patternLength, int32_t pos); @@ -420,9 +413,9 @@ uset_removeString(USet* set, const UChar* str, int32_t strLen); * @param set the object from which the elements are to be removed * @param removeSet the object that defines which elements will be * removed from this set - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_removeAll(USet* set, const USet* removeSet); /** @@ -436,9 +429,9 @@ uset_removeAll(USet* set, const USet* removeSet); * to this set. * @param end last character, inclusive, of range to be retained * to this set. - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_retain(USet* set, UChar32 start, UChar32 end); /** @@ -450,9 +443,9 @@ uset_retain(USet* set, UChar32 start, UChar32 end); * * @param set the object on which to perform the retain * @param retain set that defines which elements this set will retain - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_retainAll(USet* set, const USet* retain); /** @@ -460,9 +453,9 @@ uset_retainAll(USet* set, const USet* retain); * possible space, without changing this object's value. * * @param set the object on which to perfrom the compact - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_compact(USet* set); /** @@ -483,9 +476,9 @@ uset_complement(USet* set); * @param set the set with which to complement * @param complement set that defines which elements will be xor'ed * from this set. - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 uset_complementAll(USet* set, const USet* complement); /** @@ -548,9 +541,9 @@ uset_containsString(const USet* set, const UChar* str, int32_t strLen); * @param set the set * @param c the character to obtain the index for * @return an index from 0..size()-1, or -1 - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 uset_indexOf(const USet* set, UChar32 c); /** @@ -561,9 +554,9 @@ uset_indexOf(const USet* set, UChar32 c); * @param set the set * @param index an index from 0..size()-1 to obtain the char for * @return the character at the given index, or (UChar32)-1. - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT UChar32 U_EXPORT2 +U_STABLE UChar32 U_EXPORT2 uset_charAt(const USet* set, int32_t index); /** @@ -614,13 +607,13 @@ uset_getItem(const USet* set, int32_t itemIndex, /** * Returns true if set1 contains all the characters and strings - * of set2. It answers the question, 'Is set1 a subset of set2?' + * of set2. It answers the question, 'Is set1 a superset of set2?' * @param set1 set to be checked for containment * @param set2 set to be checked for containment * @return true if the test condition is met - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT UBool U_EXPORT2 +U_STABLE UBool U_EXPORT2 uset_containsAll(const USet* set1, const USet* set2); /** @@ -642,9 +635,9 @@ uset_containsAllCodePoints(const USet* set, const UChar *str, int32_t strLen); * @param set1 set to be checked for containment * @param set2 set to be checked for containment * @return true if the test condition is met - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT UBool U_EXPORT2 +U_STABLE UBool U_EXPORT2 uset_containsNone(const USet* set1, const USet* set2); /** @@ -653,9 +646,9 @@ uset_containsNone(const USet* set1, const USet* set2); * @param set1 set to be checked for containment * @param set2 set to be checked for containment * @return true if the test condition is met - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT UBool U_EXPORT2 +U_STABLE UBool U_EXPORT2 uset_containsSome(const USet* set1, const USet* set2); /** @@ -664,9 +657,9 @@ uset_containsSome(const USet* set1, const USet* set2); * @param set1 set to be checked for containment * @param set2 set to be checked for containment * @return true if the test condition is met - * @draft ICU 3.2 + * @stable ICU 3.2 */ -U_DRAFT UBool U_EXPORT2 +U_STABLE UBool U_EXPORT2 uset_equals(const USet* set1, const USet* set2); /********************************************************************* diff --git a/Build/source/libs/icu-xetex/common/unicode/usetiter.h b/Build/source/libs/icu-xetex/common/unicode/usetiter.h index 3e77ddde046..defa75cd7ed 100644 --- a/Build/source/libs/icu-xetex/common/unicode/usetiter.h +++ b/Build/source/libs/icu-xetex/common/unicode/usetiter.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (c) 2002-2005, International Business Machines +* Copyright (c) 2002-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** */ @@ -28,19 +28,23 @@ class UnicodeString; * code points or ranges have been returned, it returns the * multicharacter strings of the UnicodSet, if any. * - * <p>To iterate over code points, use a loop like this: + * This class is not intended to be subclassed. Consider any fields + * or methods declared as "protected" to be private. The use of + * protected in this class is an artifact of history. + * + * <p>To iterate over code points and strings, use a loop like this: * <pre> * UnicodeSetIterator it(set); * while (set.next()) { - * if (set.isString()) { - * processString(set.getString()); - * } else { - * processCodepoint(set.getCodepoint()); - * } + * processItem(set.getString()); * } * </pre> + * <p>Each item in the set is accessed as a string. Set elements + * consisting of single code points are returned as strings containing + * just the one code point. * - * <p>To iterate over code point ranges, use a loop like this: + * <p>To iterate over code point ranges, instead of individual code points, + * use a loop like this: * <pre> * UnicodeSetIterator it(set); * while (it.nextRange()) { @@ -121,9 +125,14 @@ class U_COMMON_API UnicodeSetIterator : public UObject { * caller can retrieve it with <tt>getString()</tt>. If this * method returns false, the current element is a code point or * code point range, depending on whether <tt>next()</tt> or - * <tt>nextRange()</tt> was called, and the caller can retrieve it - * with <tt>getCodepoint()</tt> and, for a range, - * <tt>getCodepointEnd()</tt>. + * <tt>nextRange()</tt> was called. + * Elements of types string and codepoint can both be retrieved + * with the function <tt>getString()</tt>. + * Elements of type codepoint can also be retrieved with + * <tt>getCodepoint()</tt>. + * For ranges, <tt>getCodepoint()</tt> returns the starting codepoint + * of the range, and <tt>getCodepointEnd()</tt> returns the end + * of the range. * @stable ICU 2.4 */ inline UBool isString() const; @@ -145,28 +154,37 @@ class U_COMMON_API UnicodeSetIterator : public UObject { /** * Returns the current string, if <tt>isString()</tt> returned - * true. Otherwise returns an undefined result. + * true. If the current iteration item is a code point, a UnicodeString + * containing that single code point is returned. + * + * Ownership of the returned string remains with the iterator. + * The string is guaranteed to remain valid only until the iterator is + * advanced to the next item, or until the iterator is deleted. + * * @stable ICU 2.4 */ - inline const UnicodeString& getString() const; + const UnicodeString& getString(); /** - * Returns the next element in the set, either a single code point - * or a string. If there are no more elements in the set, return - * false. If <tt>codepoint == IS_STRING</tt>, the value is a - * string in the <tt>string</tt> field. Otherwise the value is a - * single code point in the <tt>codepoint</tt> field. + * Advances the iteration position to the next element in the set, + * which can be either a single code point or a string. + * If there are no more elements in the set, return false. + * + * <p> + * If <tt>isString() == TRUE</tt>, the value is a + * string, otherwise the value is a + * single code point. Elements of either type can be retrieved + * with the function <tt>getString()</tt>, while elements of + * consisting of a single code point can be retrieved with + * <tt>getCodepoint()</tt> * * <p>The order of iteration is all code points in sorted order, - * followed by all strings sorted order. <tt>codepointEnd</tt> is - * undefined after calling this method. <tt>string</tt> is - * undefined unless <tt>codepoint == IS_STRING</tt>. Do not mix + * followed by all strings sorted order. Do not mix * calls to <tt>next()</tt> and <tt>nextRange()</tt> without * calling <tt>reset()</tt> between them. The results of doing so * are undefined. * - * @return true if there was another element in the set and this - * object contains the element. + * @return true if there was another element in the set. * @stable ICU 2.4 */ UBool next(); @@ -174,21 +192,20 @@ class U_COMMON_API UnicodeSetIterator : public UObject { /** * Returns the next element in the set, either a code point range * or a string. If there are no more elements in the set, return - * false. If <tt>codepoint == IS_STRING</tt>, the value is a - * string in the <tt>string</tt> field. Otherwise the value is a - * range of one or more code points from <tt>codepoint</tt> to - * <tt>codepointeEnd</tt> inclusive. + * false. If <tt>isString() == TRUE</tt>, the value is a + * string and can be accessed with <tt>getString()</tt>. Otherwise the value is a + * range of one or more code points from <tt>getCodepoint()</tt> to + * <tt>getCodepointeEnd()</tt> inclusive. * * <p>The order of iteration is all code points ranges in sorted * order, followed by all strings sorted order. Ranges are - * disjoint and non-contiguous. <tt>string</tt> is undefined - * unless <tt>codepoint == IS_STRING</tt>. Do not mix calls to + * disjoint and non-contiguous. The value returned from <tt>getString()</tt> + * is undefined unless <tt>isString() == TRUE</tt>. Do not mix calls to * <tt>next()</tt> and <tt>nextRange()</tt> without calling * <tt>reset()</tt> between them. The results of doing so are * undefined. * - * @return true if there was another element in the set and this - * object contains the element. + * @return true if there was another element in the set. * @stable ICU 2.4 */ UBool nextRange(); @@ -259,6 +276,13 @@ class U_COMMON_API UnicodeSetIterator : public UObject { */ int32_t stringCount; + /** + * Points to the string to use when the caller asks for a + * string and the current iteration item is a code point, not a string. + * @internal + */ + UnicodeString *cpString; + /** Copy constructor. Disallowed. * @stable ICU 2.4 */ @@ -288,9 +312,6 @@ inline UChar32 UnicodeSetIterator::getCodepointEnd() const { return codepointEnd; } -inline const UnicodeString& UnicodeSetIterator::getString() const { - return *string; -} U_NAMESPACE_END diff --git a/Build/source/libs/icu-xetex/common/unicode/usprep.h b/Build/source/libs/icu-xetex/common/unicode/usprep.h index 33bfff25b64..c7e75a53fab 100644 --- a/Build/source/libs/icu-xetex/common/unicode/usprep.h +++ b/Build/source/libs/icu-xetex/common/unicode/usprep.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * - * Copyright (C) 2003-2005, International Business Machines + * Copyright (C) 2003-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -59,8 +59,6 @@ #include "unicode/parseerr.h" -#ifndef U_HIDE_DRAFT_API - /** * The StringPrep profile * @stable ICU 2.8 @@ -85,8 +83,6 @@ typedef struct UStringPrepProfile UStringPrepProfile; #define USPREP_ALLOW_UNASSIGNED 0x0001 -#endif /*U_HIDE_DRAFT_API*/ - /** * Creates a StringPrep profile from the data file. * diff --git a/Build/source/libs/icu-xetex/common/unicode/ustring.h b/Build/source/libs/icu-xetex/common/unicode/ustring.h index 485388058b6..4777c269f57 100644 --- a/Build/source/libs/icu-xetex/common/unicode/ustring.h +++ b/Build/source/libs/icu-xetex/common/unicode/ustring.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1998-2005, International Business Machines +* Copyright (C) 1998-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -71,6 +71,10 @@ */ /** +* \defgroup ustring_ustrlen + */ +/*@{*/ +/** * Determine the length of an array of UChar. * * @param s The array of UChars, NULL (U+0000) terminated. @@ -79,6 +83,7 @@ */ U_STABLE int32_t U_EXPORT2 u_strlen(const UChar *s); +/*@}*/ /** * Count Unicode code points in the length UChar code units of the string. @@ -1157,6 +1162,7 @@ u_strFoldCase(UChar *dest, int32_t destCapacity, uint32_t options, UErrorCode *pErrorCode); +#if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION /** * Converts a sequence of UChars to wchar_t units. * @@ -1209,6 +1215,8 @@ u_strFromWCS(UChar *dest, const wchar_t *src, int32_t srcLength, UErrorCode *pErrorCode); +#endif /* defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION */ + /** * Converts a sequence of UChars (UTF-16) to UTF-8 bytes * @@ -1227,6 +1235,8 @@ u_strFromWCS(UChar *dest, * which must not indicate a failure before the function call. * @return The pointer to destination buffer. * @stable ICU 2.0 + * @see u_strToUTF8WithSub + * @see u_strFromUTF8 */ U_STABLE char* U_EXPORT2 u_strToUTF8(char *dest, @@ -1254,6 +1264,8 @@ u_strToUTF8(char *dest, * which must not indicate a failure before the function call. * @return The pointer to destination buffer. * @stable ICU 2.0 + * @see u_strFromUTF8WithSub + * @see u_strFromUTF8Lenient */ U_STABLE UChar* U_EXPORT2 u_strFromUTF8(UChar *dest, @@ -1264,6 +1276,148 @@ u_strFromUTF8(UChar *dest, UErrorCode *pErrorCode); /** + * Converts a sequence of UChars (UTF-16) to UTF-8 bytes. + * Same as u_strToUTF8() except for the additional subchar which is output for + * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code. + * With subchar==U_SENTINEL, this function behaves exactly like u_strToUTF8(). + * + * @param dest A buffer for the result string. The result will be zero-terminated if + * the buffer is large enough. + * @param destCapacity The size of the buffer (number of chars). If it is 0, then + * dest may be NULL and the function will only return the length of the + * result without writing any of the result string (pre-flighting). + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of + * all the input units, even in case of a buffer overflow. + * @param src The original source string + * @param srcLength The length of the original string. If -1, then src must be zero-terminated. + * @param subchar The substitution character to use in place of an illegal input sequence, + * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead. + * A substitution character can be any valid Unicode code point (up to U+10FFFF) + * except for surrogate code points (U+D800..U+DFFF). + * The recommended value is U+FFFD "REPLACEMENT CHARACTER". + * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0. + * Set to 0 if no substitutions occur or subchar<0. + * pNumSubstitutions can be NULL. + * @param pErrorCode Pointer to a standard ICU error code. Its input value must + * pass the U_SUCCESS() test, or else the function returns + * immediately. Check for U_FAILURE() on output or use with + * function chaining. (See User Guide for details.) + * @return The pointer to destination buffer. + * @see u_strToUTF8 + * @see u_strFromUTF8WithSub + * @draft ICU 3.6 + */ +U_DRAFT char* U_EXPORT2 +u_strToUTF8WithSub(char *dest, + int32_t destCapacity, + int32_t *pDestLength, + const UChar *src, + int32_t srcLength, + UChar32 subchar, int32_t *pNumSubstitutions, + UErrorCode *pErrorCode); + +/** + * Converts a sequence of UTF-8 bytes to UChars (UTF-16). + * Same as u_strFromUTF8() except for the additional subchar which is output for + * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code. + * With subchar==U_SENTINEL, this function behaves exactly like u_strFromUTF8(). + * + * @param dest A buffer for the result string. The result will be zero-terminated if + * the buffer is large enough. + * @param destCapacity The size of the buffer (number of UChars). If it is 0, then + * dest may be NULL and the function will only return the length of the + * result without writing any of the result string (pre-flighting). + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of + * all the input units, even in case of a buffer overflow. + * @param src The original source string + * @param srcLength The length of the original string. If -1, then src must be zero-terminated. + * @param subchar The substitution character to use in place of an illegal input sequence, + * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead. + * A substitution character can be any valid Unicode code point (up to U+10FFFF) + * except for surrogate code points (U+D800..U+DFFF). + * The recommended value is U+FFFD "REPLACEMENT CHARACTER". + * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0. + * Set to 0 if no substitutions occur or subchar<0. + * pNumSubstitutions can be NULL. + * @param pErrorCode Pointer to a standard ICU error code. Its input value must + * pass the U_SUCCESS() test, or else the function returns + * immediately. Check for U_FAILURE() on output or use with + * function chaining. (See User Guide for details.) + * @return The pointer to destination buffer. + * @see u_strFromUTF8 + * @see u_strFromUTF8Lenient + * @see u_strToUTF8WithSub + * @draft ICU 3.6 + */ +U_DRAFT UChar* U_EXPORT2 +u_strFromUTF8WithSub(UChar *dest, + int32_t destCapacity, + int32_t *pDestLength, + const char *src, + int32_t srcLength, + UChar32 subchar, int32_t *pNumSubstitutions, + UErrorCode *pErrorCode); + +/** + * Converts a sequence of UTF-8 bytes to UChars (UTF-16). + * Same as u_strFromUTF8() except that this function is designed to be very fast, + * which it achieves by being lenient about malformed UTF-8 sequences. + * This function is intended for use in environments where UTF-8 text is + * expected to be well-formed. + * + * Its semantics are: + * - Well-formed UTF-8 text is correctly converted to well-formed UTF-16 text. + * - The function will not read beyond the input string, nor write beyond + * the destCapacity. + * - Malformed UTF-8 results in "garbage" 16-bit Unicode strings which may not + * be well-formed UTF-16. + * The function will resynchronize to valid code point boundaries + * within a small number of code points after an illegal sequence. + * - Non-shortest forms are not detected and will result in "spoofing" output. + * + * For further performance improvement, if srcLength is given (>=0), + * then it must be destCapacity>=srcLength. + * + * @param dest A buffer for the result string. The result will be zero-terminated if + * the buffer is large enough. + * @param destCapacity The size of the buffer (number of UChars). If it is 0, then + * dest may be NULL and the function will only return the length of the + * result without writing any of the result string (pre-flighting). + * Unlike for other ICU functions, if srcLength>=0 then it + * must be destCapacity>=srcLength. + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of + * all the input units, even in case of a buffer overflow. + * Unlike for other ICU functions, if srcLength>=0 but + * destCapacity<srcLength, then *pDestLength will be set to srcLength + * (and U_BUFFER_OVERFLOW_ERROR will be set) + * regardless of the actual result length. + * @param src The original source string + * @param srcLength The length of the original string. If -1, then src must be zero-terminated. + * @param pErrorCode Pointer to a standard ICU error code. Its input value must + * pass the U_SUCCESS() test, or else the function returns + * immediately. Check for U_FAILURE() on output or use with + * function chaining. (See User Guide for details.) + * @return The pointer to destination buffer. + * @see u_strFromUTF8 + * @see u_strFromUTF8WithSub + * @see u_strToUTF8WithSub + * @draft ICU 3.6 + */ +U_CAPI UChar * U_EXPORT2 +u_strFromUTF8Lenient(UChar *dest, + int32_t destCapacity, + int32_t *pDestLength, + const char *src, + int32_t srcLength, + UErrorCode *pErrorCode); + +/** * Converts a sequence of UChars (UTF-16) to UTF32 units. * * @param dest A buffer for the result string. The result will be zero-terminated if diff --git a/Build/source/libs/icu-xetex/common/unicode/usystem.h b/Build/source/libs/icu-xetex/common/unicode/usystem.h new file mode 100644 index 00000000000..b42e1023fe0 --- /dev/null +++ b/Build/source/libs/icu-xetex/common/unicode/usystem.h @@ -0,0 +1,46 @@ +/* +******************************************************************************* +* Copyright (C) 2004-2006, International Business Machines +* Corporation and others. All Rights Reserved. +******************************************************************************* +* +* file name: +* encoding: US-ASCII +* tab size: 8 (not used) +* indentation:4 +* +* Created by: genheaders.pl, a perl script written by Ram Viswanadha +* +* Contains data for commenting out APIs. +* Gets included by umachine.h +* +* THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW WHAT +* YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN! +*/ + +#ifndef USYSTEM_H +#define USYSTEM_H + +#ifdef U_HIDE_SYSTEM_API + +# if U_DISABLE_RENAMING +# define u_cleanup u_cleanup_SYSTEM_API_DO_NOT_USE +# define u_setAtomicIncDecFunctions u_setAtomicIncDecFunctions_SYSTEM_API_DO_NOT_USE +# define u_setMemoryFunctions u_setMemoryFunctions_SYSTEM_API_DO_NOT_USE +# define u_setMutexFunctions u_setMutexFunctions_SYSTEM_API_DO_NOT_USE +# define ucnv_setDefaultName ucnv_setDefaultName_SYSTEM_API_DO_NOT_USE +# define uloc_getDefault uloc_getDefault_SYSTEM_API_DO_NOT_USE +# define uloc_setDefault uloc_setDefault_SYSTEM_API_DO_NOT_USE +# else +# define u_cleanup_3_6 u_cleanup_SYSTEM_API_DO_NOT_USE +# define u_setAtomicIncDecFunctions_3_6 u_setAtomicIncDecFunctions_SYSTEM_API_DO_NOT_USE +# define u_setMemoryFunctions_3_6 u_setMemoryFunctions_SYSTEM_API_DO_NOT_USE +# define u_setMutexFunctions_3_6 u_setMutexFunctions_SYSTEM_API_DO_NOT_USE +# define ucnv_setDefaultName_3_6 ucnv_setDefaultName_SYSTEM_API_DO_NOT_USE +# define uloc_getDefault_3_6 uloc_getDefault_SYSTEM_API_DO_NOT_USE +# define uloc_setDefault_3_6 uloc_setDefault_SYSTEM_API_DO_NOT_USE +# endif /* U_DISABLE_RENAMING */ + +#endif /* U_HIDE_SYSTEM_API */ +#endif /* USYSTEM_H */ + diff --git a/Build/source/libs/icu-xetex/common/unicode/utext.h b/Build/source/libs/icu-xetex/common/unicode/utext.h index 1588a18b5d7..84aeb68afeb 100644 --- a/Build/source/libs/icu-xetex/common/unicode/utext.h +++ b/Build/source/libs/icu-xetex/common/unicode/utext.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 2004-2005, International Business Machines +* Copyright (C) 2004-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -23,7 +23,7 @@ * * The Text Access API provides a means to allow text that is stored in alternative * formats to work with ICU services. ICU normally operates on text that is - * stored UTF-16 format, in (UChar *) arrays for the C APIs or as type + * stored in UTF-16 format, in (UChar *) arrays for the C APIs or as type * UnicodeString for C++ APIs. * * ICU Text Access allows other formats, such as UTF-8 or non-contiguous @@ -102,6 +102,35 @@ * an adjusted index is returned, the original index referred to the * interior of a character. * + * <em>Conventions for calling UText functions</em> + * + * Most UText access functions have as their first parameter a (UText *) pointer, + * which specifies the UText to be used. Unless otherwise noted, the + * pointer must refer to a valid, open UText. Attempting to + * use a closed UText or passing a NULL pointer is a programming error and + * will produce undefined results or NULL pointer exceptions. + * + * The UText_Open family of functions can either open an existing (closed) + * UText, or heap allocate a new UText. Here is sample code for creating + * a stack-allocated UText. + * + * \code + * char *s = whatever(); // A utf-8 string + * U_ErrorCode status = U_ZERO_ERROR; + * UText ut = UTEXT_INITIALIZER; + * utext_openUTF8(ut, s, -1, &status); + * if (U_FAILURE(status)) { + * // error handling + * } else { + * // work with the UText + * } + * \endcode + * + * Any existing UText passed to an open function _must_ have been initialized, + * either by the UTEXT_INITIALIZER, or by having been originally heap-allocated + * by an open function. Passing NULL will cause the open function to + * heap-allocate and fully initialize a new UText. + * */ @@ -110,18 +139,14 @@ #ifdef XP_CPLUSPLUS #include "unicode/rep.h" #include "unicode/unistr.h" +#include "unicode/chariter.h" #endif -#ifndef U_HIDE_DRAFT_API U_CDECL_BEGIN struct UText; -typedef struct UText UText; /**< C typedef for struct UText. @draft ICU 3.4 */ - -struct UTextChunk; -typedef struct UTextChunk UTextChunk; /**< C typedef for struct UTextChunk. @draft ICU 3.4 */ - +typedef struct UText UText; /**< C typedef for struct UText. @draft ICU 3.6 */ /*************************************************************************************** @@ -132,10 +157,9 @@ typedef struct UTextChunk UTextChunk; /**< C typedef for struct UTextChunk. @dra /** - * utext_close Close function for UText instances. - * Cleans up, releases any resources being held by an - * open UText. - * <p/> + * Close function for UText instances. + * Cleans up, releases any resources being held by an open UText. + * <p> * If the UText was originally allocated by one of the utext_open functions, * the storage associated with the utext will also be freed. * If the UText storage originated with the application, as it would with @@ -169,7 +193,7 @@ utext_close(UText *ut); * @param ut Pointer to a UText struct. If NULL, a new UText will be created. * If non-NULL, must refer to an initialized UText struct, which will then * be reset to reference the specified UTF-8 string. - * @param s A UTF-8 string + * @param s A UTF-8 string. Must not be NULL. * @param length The length of the UTF-8 string in bytes, or -1 if the string is * zero terminated. * @param status Errors are returned here. @@ -178,7 +202,7 @@ utext_close(UText *ut); * @draft ICU 3.4 */ U_DRAFT UText * U_EXPORT2 -utext_openUTF8(UText *ut, const char *s, int32_t length, UErrorCode *status); +utext_openUTF8(UText *ut, const char *s, int64_t length, UErrorCode *status); /** @@ -196,7 +220,7 @@ utext_openUTF8(UText *ut, const char *s, int32_t length, UErrorCode *status); * @draft ICU 3.4 */ U_DRAFT UText * U_EXPORT2 -utext_openUChars(UText *ut, const UChar *s, int32_t length, UErrorCode *status); +utext_openUChars(UText *ut, const UChar *s, int64_t length, UErrorCode *status); #ifdef XP_CPLUSPLUS @@ -247,19 +271,41 @@ utext_openConstUnicodeString(UText *ut, const UnicodeString *s, UErrorCode *stat U_DRAFT UText * U_EXPORT2 utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status); +/** + * Open a UText implementation over an ICU CharacterIterator. + * @param ut Pointer to a UText struct. If NULL, a new UText will be created. + * If non-NULL, must refer to an already existing UText, which will then + * be reset to reference the specified replaceable text. + * @param ci A Character Iterator. + * @param status Errors are returned here. + * @return Pointer to the UText. If a UText was supplied as input, this + * will always be used and returned. + * @see Replaceable + * @draft ICU 3.4 + */ +U_DRAFT UText * U_EXPORT2 +utext_openCharacterIterator(UText *ut, CharacterIterator *ic, UErrorCode *status); + #endif /** - * clone a UText. Much like opening a UText where the source text is itself + * Clone a UText. This is much like opening a UText where the source text is itself * another UText. * * A deep clone will copy both the UText data structures and the underlying text. * The original and cloned UText will operate completely independently; modifications - * made to the text in one will not effect the other. Text providers are not + * made to the text in one will not affect the other. Text providers are not * required to support deep clones. The user of clone() must check the status return * and be prepared to handle failures. * + * The standard UText implementations for UTF8, UChar *, UnicodeString and + * Replaceable all support deep cloning. + * + * The UText returned from a deep clone will be writable, assuming that the text + * provider is able to support writing, even if the source UText had been made + * non-writable by means of UText_freeze(). + * * A shallow clone replicates only the UText data structures; it does not make * a copy of the underlying text. Shallow clones can be used as an efficient way to * have multiple iterators active in a single text string that is not being @@ -268,15 +314,32 @@ utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status); * A shallow clone operation will not fail, barring truly exceptional conditions such * as memory allocation failures. * + * Shallow UText clones should be avoided if the UText functions that modify the + * text are expected to be used, either on the original or the cloned UText. + * Any such modifications can cause unpredictable behavior. Read Only + * shallow clones provide some protection against errors of this type by + * disabling text modification via the cloned UText. + * + * A shallow clone made with the readOnly parameter == FALSE will preserve the + * utext_isWritable() state of the source object. Note, however, that + * write operations must be avoided while more than one UText exists that refer + * to the same underlying text. + * * A UText and its clone may be safely concurrently accessed by separate threads. - * This is true for both shallow and deep clones. + * This is true for read access only with shallow clones, and for both read and + * write access with deep clones. * It is the responsibility of the Text Provider to ensure that this thread safety * constraint is met. * * @param dest A UText struct to be filled in with the result of the clone operation, * or NULL if the clone function should heap-allocate a new UText struct. + * If non-NULL, must refer to an already existing UText, which will then + * be reset to become the clone. * @param src The UText to be cloned. * @param deep TRUE to request a deep clone, FALSE for a shallow clone. + * @param readOnly TRUE to request that the cloned UText have read only access to the + * underlying text. + * @param status Errors are returned here. For deep clones, U_UNSUPPORTED_ERROR * will be returned if the text provider is unable to clone the * original text. @@ -284,12 +347,27 @@ utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status); * @draft ICU 3.4 */ U_DRAFT UText * U_EXPORT2 -utext_clone(UText *dest, const UText *src, UBool deep, UErrorCode *status); +utext_clone(UText *dest, const UText *src, UBool deep, UBool readOnly, UErrorCode *status); + + +/** + * Compare two UText objects for equality. + * UTexts are equal if they are iterating over the same text, and + * have the same iteration position within the text. + * If either or both of the parameters are NULL, the comparison is FALSE. + * + * @param a The first of the two UTexts to compare. + * @param b The other UText to be compared. + * @return TRUE if the two UTexts are equal. + * @draft ICU 3.6 + */ +U_DRAFT UBool U_EXPORT2 +utext_equals(const UText *a, const UText *b); /***************************************************************************** * - * C Functions to work with the text represeted by a UText wrapper + * Functions to work with the text represeted by a UText wrapper * *****************************************************************************/ @@ -304,7 +382,7 @@ utext_clone(UText *dest, const UText *src, UBool deep, UErrorCode *status); * * @draft ICU 3.4 */ -U_DRAFT int32_t U_EXPORT2 +U_DRAFT int64_t U_EXPORT2 utext_nativeLength(UText *ut); /** @@ -336,7 +414,10 @@ utext_isLengthExpensive(const UText *ut); * This function is roughly equivalent to the the sequence * utext_setNativeIndex(index); * utext_current32(); - * (There is a difference if the index is out of bounds by being less than zero) + * (There is a subtle difference if the index is out of bounds by being less than zero - + * utext_setNativeIndex(negative value) sets the index to zero, after which utext_current() + * will return the char at zero. utext_char32At(negative index), on the other hand, will + * return the U_SENTINEL value of -1.) * * @param ut the text to be accessed * @param nativeIndex the native index of the character to be accessed. If the index points @@ -346,7 +427,7 @@ utext_isLengthExpensive(const UText *ut); * @draft ICU 3.4 */ U_DRAFT UChar32 U_EXPORT2 -utext_char32At(UText *ut, int32_t nativeIndex); +utext_char32At(UText *ut, int64_t nativeIndex); /** @@ -366,9 +447,12 @@ utext_current32(UText *ut); /** * Get the code point at the current iteration position of the UText, and * advance the position to the first index following the character. - * Returns U_SENTINEL (-1) if the position is at the end of the - * text. - * This is a post-increment operation + * + * If the position is at the end of the text (the index following + * the last character, which is also the length of the text), + * return U_SENTINEL (-1) and do not advance the index. + * + * This is a post-increment operation. * * An inline macro version of this function, UTEXT_NEXT32(), * is available for performance critical use. @@ -386,11 +470,12 @@ utext_next32(UText *ut); * Move the iterator position to the character (code point) whose * index precedes the current position, and return that character. * This is a pre-decrement operation. - * Returns U_SENTINEL (-1) if the position is at the start of the text. - * This is a pre-decrement operation. * - * An inline macro version of this function, UTEXT_PREVIOUS32(), - * is available for performance critical use. + * If the initial position is at the start of the text (index of 0) + * return U_SENTINEL (-1), and leave the position unchanged. + * + * An inline macro version of this function, UTEXT_PREVIOUS32(), + * is available for performance critical use. * * @param ut the text to be accessed. * @return the previous UChar32 code point, or U_SENTINEL (-1) @@ -403,12 +488,16 @@ utext_previous32(UText *ut); /** - * Set the iteration index, access the text for forward iteration, - * and return the code point starting at or before that index. + * Set the iteration index and return the code point at that index. * Leave the iteration index at the start of the following code point. * * This function is the most efficient and convenient way to - * begin a forward iteration. + * begin a forward iteration. The results are identical to the those + * from the sequence + * \code + * utext_setIndex(); + * utext_next32(); + * \endcode * * @param ut the text to be accessed. * @param nativeIndex Iteration index, in the native units of the text provider. @@ -417,7 +506,7 @@ utext_previous32(UText *ut); * @draft ICU 3.4 */ U_DRAFT UChar32 U_EXPORT2 -utext_next32From(UText *ut, int32_t nativeIndex); +utext_next32From(UText *ut, int64_t nativeIndex); @@ -437,92 +526,118 @@ utext_next32From(UText *ut, int32_t nativeIndex); * @draft ICU 3.4 */ U_DRAFT UChar32 U_EXPORT2 -utext_previous32From(UText *ut, int32_t nativeIndex); +utext_previous32From(UText *ut, int64_t nativeIndex); /** * Get the current iterator position, which can range from 0 to * the length of the text. * The position is a native index into the input text, in whatever format it - * may have, and may not always correspond to a UChar (UTF-16) index - * into the text. The returned position will always be aligned to a - * code point boundary + * may have (possibly UTF-8 for example), and may not always be the same as + * the corresponding UChar (UTF-16) index. + * The returned position will always be aligned to a code point boundary. * * @param ut the text to be accessed. * @return the current index position, in the native units of the text provider. * @draft ICU 3.4 */ -U_DRAFT int32_t U_EXPORT2 -utext_getNativeIndex(UText *ut); +U_DRAFT int64_t U_EXPORT2 +utext_getNativeIndex(const UText *ut); /** - * Set the current iteration position to the nearest code point - * boundary at or preceding the specified index. - * The index is in the native units of the original input text. - * If the index is out of range, it will be trimmed to be within - * the range of the input text. - * <p/> - * It will usually be more efficient to begin an iteration - * using the functions utext_next32From() or utext_previous32From() - * rather than setIndex(). - * <p/> - * Moving the index position to an adjacent character is best done - * with utext_next32(), utext_previous32() or utext_moveIndex32(). - * Attempting to do direct arithmetic on the index position is - * complicated by the fact that the size (in native units) of a - * character depends on the underlying representation of the character - * (UTF-8, UTF-16, UTF-32, arbitrary codepage), and is not - * easily knowable. - * - * @param ut the text to be accessed. - * @param nativeIndex the native unit index of the new iteration position. - * @draft ICU 3.4 - */ + * Set the current iteration position to the nearest code point + * boundary at or preceding the specified index. + * The index is in the native units of the original input text. + * If the index is out of range, it will be pinned to be within + * the range of the input text. + * <p> + * It will usually be more efficient to begin an iteration + * using the functions utext_next32From() or utext_previous32From() + * rather than setIndex(). + * <p> + * Moving the index position to an adjacent character is best done + * with utext_next32(), utext_previous32() or utext_moveIndex32(). + * Attempting to do direct arithmetic on the index position is + * complicated by the fact that the size (in native units) of a + * character depends on the underlying representation of the character + * (UTF-8, UTF-16, UTF-32, arbitrary codepage), and is not + * easily knowable. + * + * @param ut the text to be accessed. + * @param nativeIndex the native unit index of the new iteration position. + * @draft ICU 3.4 + */ U_DRAFT void U_EXPORT2 -utext_setNativeIndex(UText *ut, int32_t nativeIndex); +utext_setNativeIndex(UText *ut, int64_t nativeIndex); /** - * Move the iterator postion by delta code points. The number of code points - * is a signed number; a negative delta will move the iterator backwards, - * towards the start of the text. - * <p/> - * The index is moved by <code>delta</code> code points - * forward or backward, but no further backward than to 0 and - * no further forward than to utext_nativeLength(). - * The resulting index value will be in between 0 and length, inclusive. - * <p/> - * Because the index is kept in the native units of the text provider, the - * actual numeric amount by which the index moves depends on the - * underlying text storage representation of the text provider. - * - * @param ut the text to be accessed. - * @param delta the signed number of code points to move the iteration position. - * @return TRUE if the position could be moved the requested number of positions while - * staying within the range [0 - text length]. - * @draft ICU 3.4 - */ + * Move the iterator postion by delta code points. The number of code points + * is a signed number; a negative delta will move the iterator backwards, + * towards the start of the text. + * <p> + * The index is moved by <code>delta</code> code points + * forward or backward, but no further backward than to 0 and + * no further forward than to utext_nativeLength(). + * The resulting index value will be in between 0 and length, inclusive. + * + * @param ut the text to be accessed. + * @param delta the signed number of code points to move the iteration position. + * @return TRUE if the position could be moved the requested number of positions while + * staying within the range [0 - text length]. + * @draft ICU 3.4 + */ U_DRAFT UBool U_EXPORT2 utext_moveIndex32(UText *ut, int32_t delta); +/** + * Get the native index of the character preceeding the current position. + * If the iteration position is already at the start of the text, zero + * is returned. + * The value returned is the same as that obtained from the following sequence, + * but without the side effect of changing the iteration position. + * + * \code + * UText *ut = whatever; + * ... + * utext_previous(ut) + * utext_getNativeIndex(ut); + * \endcode + * + * This function is most useful during forwards iteration, where it will get the + * native index of the character most recently returned from utext_next(). + * + * @param ut the text to be accessed + * @return the native index of the character preceeding the current index position, + * or zero if the current position is at the start of the text. + * @draft ICU 3.6 + */ +U_DRAFT int64_t U_EXPORT2 +utext_getPreviousNativeIndex(UText *ut); + /** * * Extract text from a UText into a UChar buffer. The range of text to be extracted * is specified in the native indices of the UText provider. These may not necessarily * be UTF-16 indices. - * <p/> - * The size (number of 16 bit UChars) in the data to be extracted is returned. The + * <p> + * The size (number of 16 bit UChars) of the data to be extracted is returned. The * full number of UChars is returned, even when the extracted text is truncated * because the specified buffer size is too small. - * + * <p> * The extracted string will (if you are a user) / must (if you are a text provider) * be NUL-terminated if there is sufficient space in the destination buffer. This * terminating NUL is not included in the returned length. + * <p> + * The iteration index is left at the position following the last extracted character. * * @param ut the UText from which to extract data. - * @param nativeStart the native index of the first character to extract. + * @param nativeStart the native index of the first character to extract.\ + * If the specified index is out of range, + * it will be pinned to to be within 0 <= index <= textLength * @param nativeLimit the native string index of the position following the last - * character to extract. If the specified limit is greater than the length - * of the text, the limit will be trimmed back to the text length. + * character to extract. If the specified index is out of range, + * it will be pinned to to be within 0 <= index <= textLength. + * nativeLimit must be >= nativeStart. * @param dest the UChar (UTF-16) buffer into which the extracted text is placed * @param destCapacity The size, in UChars, of the destination buffer. May be zero * for precomputing the required size. @@ -535,12 +650,12 @@ utext_moveIndex32(UText *ut, int32_t delta); */ U_DRAFT int32_t U_EXPORT2 utext_extract(UText *ut, - int32_t nativeStart, int32_t nativeLimit, + int64_t nativeStart, int64_t nativeLimit, UChar *dest, int32_t destCapacity, UErrorCode *status); - +#ifndef U_HIDE_DRAFT_API /************************************************************************************ * * #define inline versions of selected performance-critical text access functions @@ -568,8 +683,8 @@ utext_extract(UText *ut, * @draft ICU 3.4 */ #define UTEXT_NEXT32(ut) \ - ((ut)->chunk.offset < (ut)->chunk.length && ((ut)->chunk.contents)[(ut)->chunk.offset]<0xd800 ? \ - ((ut)->chunk.contents)[((ut)->chunk.offset)++] : utext_next32(ut)) + ((ut)->chunkOffset < (ut)->chunkLength && ((ut)->chunkContents)[(ut)->chunkOffset]<0xd800 ? \ + ((ut)->chunkContents)[((ut)->chunkOffset)++] : utext_next32(ut)) /** * inline version of utext_previous32(), for performance-critical situations. @@ -582,12 +697,31 @@ utext_extract(UText *ut, * @draft ICU 3.4 */ #define UTEXT_PREVIOUS32(ut) \ - ((ut)->chunk.offset > 0 && \ - (ut)->chunk.contents[(ut)->chunk.offset-1] < 0xd800 ? \ - (ut)->chunk.contents[--((ut)->chunk.offset)] : utext_previous32(ut)) + ((ut)->chunkOffset > 0 && \ + (ut)->chunkContents[(ut)->chunkOffset-1] < 0xd800 ? \ + (ut)->chunkContents[--((ut)->chunkOffset)] : utext_previous32(ut)) + +/** + * inline version of utext_getNativeIndex(), for performance-critical situations. + * + * Get the current iterator position, which can range from 0 to + * the length of the text. + * The position is a native index into the input text, in whatever format it + * may have (possibly UTF-8 for example), and may not always be the same as + * the corresponding UChar (UTF-16) index. + * The returned position will always be aligned to a code point boundary. + * + * @draft ICU 3.6 + */ +#define UTEXT_GETNATIVEINDEX(ut) \ + ((ut)->chunkOffset <= (ut)->nativeIndexingLimit? \ + (ut)->chunkNativeStart+(ut)->chunkOffset : \ + (ut)->pFuncs->mapOffsetToNative(ut)) + +#endif /************************************************************************************ * @@ -599,12 +733,20 @@ utext_extract(UText *ut, /** - * Return TRUE if the text can be written with utext_replace() or + * Return TRUE if the text can be written (modified) with utext_replace() or * utext_copy(). For the text to be writable, the text provider must - * be of a type that supports writing. + * be of a type that supports writing and the UText must not be frozen. + * + * Attempting to modify text when utext_isWriteable() is FALSE will fail - + * the text will not be modified, and an error will be returned from the function + * that attempted the modification. * * @param ut the UText to be tested. * @return TRUE if the text is modifiable. + * + * @see utext_freeze() + * @see utext_replace() + * @see utext_copy() * @draft ICU 3.4 * */ @@ -653,7 +795,7 @@ utext_hasMetaData(const UText *ut); */ U_DRAFT int32_t U_EXPORT2 utext_replace(UText *ut, - int32_t nativeStart, int32_t nativeLimit, + int64_t nativeStart, int64_t nativeLimit, const UChar *replacementText, int32_t replacementLength, UErrorCode *status); @@ -669,6 +811,9 @@ utext_replace(UText *ut, * The text to be copied or moved is inserted at destIndex; * it does not replace or overwrite any existing text. * + * The iteration position is left following the newly inserted text + * at the destination position. + * * This function is only available on UText types that support writing, * that is, ones where utext_isWritable() returns TRUE. * @@ -679,8 +824,10 @@ utext_replace(UText *ut, * * @param ut The UText representing the text to be operated on. * @param nativeStart The native index of the start of the region to be copied or moved - * @param nativeLimit The native index of the character position following the region to be copied. - * @param destIndex The native destination index to which the source substring is copied or moved. + * @param nativeLimit The native index of the character position following the region + * to be copied. + * @param destIndex The native destination index to which the source substring is + * copied or moved. * @param move If TRUE, then the substring is moved, not copied/duplicated. * @param status receives any error status. Possible errors include U_NO_WRITE_PERMISSION * @@ -688,68 +835,38 @@ utext_replace(UText *ut, */ U_DRAFT void U_EXPORT2 utext_copy(UText *ut, - int32_t nativeStart, int32_t nativeLimit, - int32_t destIndex, + int64_t nativeStart, int64_t nativeLimit, + int64_t destIndex, UBool move, UErrorCode *status); - - - -/**************************************************************************************** - * - * The following items are required by text providers implementations - - * by packages that are writing UText wrappers for additional types of text strings. - * These declarations are not needed by applications that use already existing - * UText functions for wrapping strings or accessing text data that has been - * wrapped in a UText. - * - *****************************************************************************************/ - - /** - * Descriptor of a chunk, or segment of text in UChar format. - * - * UText provider implementations surface their text in the form of UTextChunks. + * <p> + * Freeze a UText. This prevents any modification to the underlying text itself + * by means of functions operating on this UText. + * </p> + * <p> + * Once frozen, a UText can not be unfrozen. The intent is to ensure + * that a the text underlying a frozen UText wrapper cannot be modified via that UText. + * </p> + * <p> + * Caution: freezing a UText will disable changes made via the specific + * frozen UText wrapper only; it will not have any effect on the ability to + * directly modify the text by bypassing the UText. Any such backdoor modifications + * are always an error while UText access is occuring because the underlying + * text can get out of sync with UText's buffering. + * </p> * - * If the native form of the text if UTF-16, a chunk will typically refer back to the - * original native text storage. If the native format is something else, chunks - * will typically refer to a buffer maintained by the provider that contains - * some amount input that has been converted to UTF-16 (UChar) form. - * - * @draft ICU 3.4 - */ -struct UTextChunk { - /** Pointer to contents of text chunk. UChar format. */ - const UChar *contents; - - /** Index within the contents of the current iteration position. */ - int32_t offset; - - /** Number of UChars in the chunk. */ - int32_t length; - - /** (Native) text index corresponding to the start of the chunk. */ - int32_t nativeStart; - - /** (Native) text index corresponding to the end of the chunk (contents+length). */ - int32_t nativeLimit; - - /** If TRUE, then non-UTF-16 indexes are used in this chunk. */ - UBool nonUTF16Indexes; - - /** Unused. */ - UBool padding1, padding2, padding3; - - /** Unused. */ - int32_t padInt1, padInt2; - - /** Contains sizeof(UTextChunk) and allows the future addition of fields. */ - int32_t sizeOfStruct; -}; + * @param ut The UText to be frozen. + * @see utext_isWritable() + * @draft ICU 3.6 + */ +U_DRAFT void U_EXPORT2 +utext_freeze(UText *ut); +#ifndef U_HIDE_DRAFT_API /** * UText provider properties (bit field indexes). * @@ -758,12 +875,6 @@ struct UTextChunk { */ enum { /** - * The provider works with non-UTF-16 ("native") text indexes. - * For example, byte indexes into UTF-8 text or UTF-32 indexes into UTF-32 text. - * @draft ICU 3.4 - */ - UTEXT_PROVIDER_NON_UTF16_INDEXES = 0, - /** * It is potentially time consuming for the provider to determine the length of the text. * @draft ICU 3.4 */ @@ -786,8 +897,16 @@ enum { * There is meta data associated with the text. * @see Replaceable::hasMetaData() * @draft ICU 3.4 + */ + UTEXT_PROVIDER_HAS_META_DATA = 4, + /** + * Text provider owns the text storage. + * Generally occurs as the result of a deep clone of the UText. + * When closing the UText, the associated text must + * also be closed/deleted/freed/ whatever is appropriate. + * @draft ICU 3.6 */ - UTEXT_PROVIDER_HAS_META_DATA = 4 + UTEXT_PROVIDER_OWNS_TEXT = 5 }; /** @@ -839,7 +958,7 @@ UTextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status); * @see UText * @draft ICU 3.4 */ -typedef int32_t U_CALLCONV +typedef int64_t U_CALLCONV UTextNativeLength(UText *ut); /** @@ -868,7 +987,7 @@ UTextNativeLength(UText *ut); * @draft ICU 3.4 */ typedef UBool U_CALLCONV -UTextAccess(UText *ut, int32_t nativeIndex, UBool forward, UTextChunk *chunk); +UTextAccess(UText *ut, int64_t nativeIndex, UBool forward); /** * Function type declaration for UText.extract(). @@ -876,10 +995,10 @@ UTextAccess(UText *ut, int32_t nativeIndex, UBool forward, UTextChunk *chunk); * Extract text from a UText into a UChar buffer. The range of text to be extracted * is specified in the native indices of the UText provider. These may not necessarily * be UTF-16 indices. - * <p/> + * <p> * The size (number of 16 bit UChars) in the data to be extracted is returned. The * full amount is returned, even when the specified buffer size is smaller. - * + * <p> * The extracted string will (if you are a user) / must (if you are a text provider) * be NUL-terminated if there is sufficient space in the destination buffer. * @@ -899,7 +1018,7 @@ UTextAccess(UText *ut, int32_t nativeIndex, UBool forward, UTextChunk *chunk); */ typedef int32_t U_CALLCONV UTextExtract(UText *ut, - int32_t nativeStart, int32_t nativeLimit, + int64_t nativeStart, int64_t nativeLimit, UChar *dest, int32_t destCapacity, UErrorCode *status); @@ -934,7 +1053,7 @@ UTextExtract(UText *ut, */ typedef int32_t U_CALLCONV UTextReplace(UText *ut, - int32_t nativeStart, int32_t nativeLimit, + int64_t nativeStart, int64_t nativeLimit, const UChar *replacementText, int32_t replacmentLength, UErrorCode *status); @@ -968,34 +1087,32 @@ UTextReplace(UText *ut, */ typedef void U_CALLCONV UTextCopy(UText *ut, - int32_t nativeStart, int32_t nativeLimit, - int32_t nativeDest, + int64_t nativeStart, int64_t nativeLimit, + int64_t nativeDest, UBool move, UErrorCode *status); /** * Function type declaration for UText.mapOffsetToNative(). - * Map from a UChar offset within the current text chunk within the UText to + * Map from the current UChar offset within the current text chunk to * the corresponding native index in the original source text. * * This is required only for text providers that do not use native UTF-16 indexes. * - * TODO: specify behavior with out-of-bounds offset? Shouldn't ever occur. - * * @param ut the UText. - * @param offset UTF-16 offset within text chunk - * 0<=offset<=chunk->length. - * @return Absolute (native) index corresponding to the specified chunk offset. + * @return Absolute (native) index corresponding to chunkOffset in the current chunk. * The returned native index should always be to a code point boundary. * * @draft ICU 3.4 */ -typedef int32_t U_CALLCONV -UTextMapOffsetToNative(UText *ut, int32_t offset); +typedef int64_t U_CALLCONV +UTextMapOffsetToNative(const UText *ut); /** * Function type declaration for UText.mapIndexToUTF16(). - * Map from a native index to a UChar offset within a text chunk + * Map from a native index to a UChar offset within a text chunk. + * Behavior is undefined if the native index does not fall within the + * current chunk. * * This function is required only for text providers that do not use native UTF-16 indexes. * @@ -1004,11 +1121,10 @@ UTextMapOffsetToNative(UText *ut, int32_t offset); * @return Chunk-relative UTF-16 offset corresponding to the specified native * index. * - * TODO: specify behavior with out-of-bounds index? Shouldn't ever occur. * @draft ICU 3.4 */ typedef int32_t U_CALLCONV -UTextMapNativeIndexToUTF16(UText *ut, int32_t nativeIndex); +UTextMapNativeIndexToUTF16(const UText *ut, int64_t nativeIndex); /** @@ -1033,102 +1149,44 @@ UTextClose(UText *ut); /** - * UText struct. Provides the interface between the generic UText access code - * and the UText provider code that works on specific kinds of - * text (UTF-8, noncontiguous UTF-16, whatever.) - * - * Applications that are using predefined types of text providers - * to pass text data to ICU services will have no need to view the - * internals of the UText structs that they open. - * - * @draft ICU 3.4 + * (public) Function dispatch table for UText. + * Conceptually very much like a C++ Virtual Function Table. + * This struct defines the organization of the table. + * Each text provider implementation must provide an + * actual table that is initialized with the appropriate functions + * for the type of text being handled. + * @draft ICU 3.6 */ -struct UText { +struct UTextFuncs { /** - * (protected) Pointer to string or wrapped object or similar. - * Not used by caller. - * @draft ICU 3.4 - */ - const void *context; - - /** - * (protected) Pointer fields available for use by the text provider. - * Not used by UText common code. - * @draft ICU 3.4 - */ - const void *p, *q, *r; - - /** - * (protected) Pointer to additional space requested by the - * text provider during the utext_open operation. - * @draft ICU 3.4 - */ - void *pExtra; - - /** - * (protected) Size in bytes of the extra space (pExtra). - * @draft ICU 3.4 - */ - int32_t extraSize; - - /** - * (private) Flags for managing the allocation and freeing of - * memory associated with this UText. - * @internal - */ - int32_t flags; - - /** - * (private) Magic. Try to detect when we are handed junk. - * utext_openXYZ() functions take an initialized, - * but not necessarily open, UText struct as an, - * optional fill-in parameter. This magic field - * is used to check for that initialization. - * Text provider close functions must NOT clear - * the magic field because that would prevent - * reuse of the UText struct. - * @internal - */ - uint32_t magic; - - - /** - * (public) sizeOfStruct=sizeof(UText) - * Allows possible backward compatible extension. + * (public) Function table size, sizeof(UTextFuncs) + * Intended for use should the table grow to accomodate added + * functions in the future, to allow tests for older format + * function tables that do not contain the extensions. * - * @draft ICU 3.4 + * Fields are placed for optimal alignment on + * 32/64/128-bit-pointer machines, by normally grouping together + * 4 32-bit fields, + * 4 pointers, + * 2 64-bit fields + * in sequence. + * @draft ICU 3.6 */ - int32_t sizeOfStruct; + int32_t tableSize; /** - * (protected) Integer fields for use by text provider. - * Not used by caller. - * @draft ICU 3.4 - */ - int32_t a, b, c; - - - /** - * Text provider properties. This set of flags is maintainted by the - * text provider implementation. - * @draft ICU 3.4 - */ - int32_t providerProperties; - - - - /** descriptor for the text chunk that includes or is adjacent to - * the current iteration position. - * @draft ICU 3.4 + * (private) Alignment padding. + * Do not use, reserved for use by the UText framework only. + * @internal */ - UTextChunk chunk; + int32_t reserved1, reserved2, reserved3; /** * (public) Function pointer for UTextClone * * @see UTextClone - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextClone *clone; @@ -1137,7 +1195,7 @@ struct UText { * May be expensive to compute! * * @see UTextLength - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextNativeLength *nativeLength; @@ -1145,7 +1203,7 @@ struct UText { * (public) Function pointer for UTextAccess. * * @see UTextAccess - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextAccess *access; @@ -1153,7 +1211,7 @@ struct UText { * (public) Function pointer for UTextExtract. * * @see UTextExtract - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextExtract *extract; @@ -1161,7 +1219,7 @@ struct UText { * (public) Function pointer for UTextReplace. * * @see UTextReplace - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextReplace *replace; @@ -1169,7 +1227,7 @@ struct UText { * (public) Function pointer for UTextCopy. * * @see UTextCopy - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextCopy *copy; @@ -1177,7 +1235,7 @@ struct UText { * (public) Function pointer for UTextMapOffsetToNative. * * @see UTextMapOffsetToNative - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextMapOffsetToNative *mapOffsetToNative; @@ -1185,7 +1243,7 @@ struct UText { * (public) Function pointer for UTextMapNativeIndexToUTF16. * * @see UTextMapNativeIndexToUTF16 - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextMapNativeIndexToUTF16 *mapNativeIndexToUTF16; @@ -1193,11 +1251,239 @@ struct UText { * (public) Function pointer for UTextClose. * * @see UTextClose - * @draft ICU 3.4 + * @draft ICU 3.6 */ UTextClose *close; + + /** + * (private) Spare function pointer + * @internal + */ + + UTextClose *spare1; + /** + * (private) Spare function pointer + * @internal + */ + UTextClose *spare2; + + /** + * (private) Spare function pointer + * @internal + */ + UTextClose *spare3; + +}; +typedef struct UTextFuncs UTextFuncs; + +#endif + +#ifndef U_HIDE_DRAFT_API + /** + * UText struct. Provides the interface between the generic UText access code + * and the UText provider code that works on specific kinds of + * text (UTF-8, noncontiguous UTF-16, whatever.) + * + * Applications that are using predefined types of text providers + * to pass text data to ICU services will have no need to view the + * internals of the UText structs that they open. + * + * @draft ICU 3.6 + */ +struct UText { + /** + * (private) Magic. Used to help detect when UText functions are handed + * invalid or unitialized UText structs. + * utext_openXYZ() functions take an initialized, + * but not necessarily open, UText struct as an + * optional fill-in parameter. This magic field + * is used to check for that initialization. + * Text provider close functions must NOT clear + * the magic field because that would prevent + * reuse of the UText struct. + * @internal + */ + uint32_t magic; + + + /** + * (private) Flags for managing the allocation and freeing of + * memory associated with this UText. + * @internal + */ + int32_t flags; + + + /** + * Text provider properties. This set of flags is maintainted by the + * text provider implementation. + * @draft ICU 3.4 + */ + int32_t providerProperties; + + /** + * (public) sizeOfStruct=sizeof(UText) + * Allows possible backward compatible extension. + * + * @draft ICU 3.4 + */ + int32_t sizeOfStruct; + + /* ------ 16 byte alignment boundary ----------- */ + + + /** + * (protected) Native index of the first character position following + * the current chunk. + * @draft ICU 3.6 + */ + int64_t chunkNativeLimit; + + /** + * (protected) Size in bytes of the extra space (pExtra). + * @draft ICU 3.4 + */ + int32_t extraSize; + + /** + * (protected) The highest chunk offset where native indexing and + * chunk (UTF-16) indexing correspond. For UTF-16 sources, value + * will be equal to chunkLength. + * + * @draft ICU 3.6 + */ + int32_t nativeIndexingLimit; + + /* ---- 16 byte alignment boundary------ */ + + /** + * (protected) Native index of the first character in the text chunk. + * @draft ICU 3.6 + */ + int64_t chunkNativeStart; + + /** + * (protected) Current iteration position within the text chunk (UTF-16 buffer). + * This is the index to the character that will be returned by utext_next32(). + * @draft ICU 3.6 + */ + int32_t chunkOffset; + + /** + * (protected) Length the text chunk (UTF-16 buffer), in UChars. + * @draft ICU 3.6 + */ + int32_t chunkLength; + + /* ---- 16 byte alignment boundary-- */ + + + /** + * (protected) pointer to a chunk of text in UTF-16 format. + * May refer either to original storage of the source of the text, or + * if conversion was required, to a buffer owned by the UText. + * @draft ICU 3.6 + */ + const UChar *chunkContents; + + /** + * (public) Pointer to Dispatch table for accessing functions for this UText. + * @draft ICU 3.6 + */ + UTextFuncs *pFuncs; + + /** + * (protected) Pointer to additional space requested by the + * text provider during the utext_open operation. + * @draft ICU 3.4 + */ + void *pExtra; + + /** + * (protected) Pointer to string or text-containin object or similar. + * This is the source of the text that this UText is wrapping, in a format + * that is known to the text provider functions. + * @draft ICU 3.4 + */ + const void *context; + + /* --- 16 byte alignment boundary--- */ + + /** + * (protected) Pointer fields available for use by the text provider. + * Not used by UText common code. + * @draft ICU 3.6 + */ + const void *p; + /** + * (protected) Pointer fields available for use by the text provider. + * Not used by UText common code. + * @draft ICU 3.6 + */ + const void *q; + /** + * (protected) Pointer fields available for use by the text provider. + * Not used by UText common code. + * @draft ICU 3.6 + */ + const void *r; + + /** + * Private field reserved for future use by the UText framework + * itself. This is not to be touched by the text providers. + * @internal ICU 3.4 + */ + void *privP; + + + /* --- 16 byte alignment boundary--- */ + + + /** + * (protected) Integer field reserved for use by the text provider. + * Not used by the UText framework, or by the client (user) of the UText. + * @draft ICU 3.4 + */ + int64_t a; + + /** + * (protected) Integer field reserved for use by the text provider. + * Not used by the UText framework, or by the client (user) of the UText. + * @draft ICU 3.4 + */ + int32_t b; + + /** + * (protected) Integer field reserved for use by the text provider. + * Not used by the UText framework, or by the client (user) of the UText. + * @draft ICU 3.4 + */ + int32_t c; + + /* ---- 16 byte alignment boundary---- */ + + + /** + * Private field reserved for future use by the UText framework + * itself. This is not to be touched by the text providers. + * @internal ICU 3.4 + */ + int64_t privA; + /** + * Private field reserved for future use by the UText framework + * itself. This is not to be touched by the text providers. + * @internal ICU 3.4 + */ + int32_t privB; + /** + * Private field reserved for future use by the UText framework + * itself. This is not to be touched by the text providers. + * @internal ICU 3.4 + */ + int32_t privC; }; +#endif /** * Common function for use by Text Provider implementations to allocate and/or initialize @@ -1220,74 +1506,47 @@ utext_setup(UText *ut, int32_t extraSpace, UErrorCode *status); /** * @internal + * Value used to help identify correctly initialized UText structs. + * Note: must be publicly visible so that UTEXT_INITIALIZER can access it. */ enum { UTEXT_MAGIC = 0x345ad82c }; - - -/** - * Initializer for a UTextChunk - * @internal - */ -#define UTEXT_CHUNK_INIT { \ - NULL, /* contents */ \ - 0, /* offset */ \ - 0, /* length */ \ - 0, /* start */ \ - 0, /* limit */ \ - FALSE, /* nonUTF16idx */ \ - FALSE, FALSE, FALSE, /* padding1,2,3 */ \ - 0, 0, /* padInt1, 2 */ \ - sizeof(UTextChunk) \ -} - - - -/** - * Initializer for the first part of a UText struct, the part that is - * in common for all types of text providers. - * - * @internal - */ -#define UTEXT_INITIALIZER_HEAD \ - NULL, /* context */ \ - NULL, NULL, NULL, /* p, q, r */ \ - NULL, /* pExtra */ \ - 0, /* extraSize */ \ - 0, /* flags */ \ - UTEXT_MAGIC, /* magic */ \ - sizeof(UText), /* sizeOfStruct */ \ - 0, 0, 0, /* a, b, c */ \ - 0, /* providerProps */ \ - UTEXT_CHUNK_INIT /* UTextChunk */ - - +#ifndef U_HIDE_DRAFT_API /** * initializer to be used with local (stack) instances of a UText * struct. UText structs must be initialized before passing * them to one of the utext_open functions. * - * @draft ICU 3.4 + * @draft ICU 3.6 */ -#define UTEXT_INITIALIZER { \ - UTEXT_INITIALIZER_HEAD, \ - NULL, /* clone () */ \ - NULL, /* length () */ \ - NULL, /* access () */ \ - NULL, /* extract () */ \ - NULL, /* replace () */ \ - NULL, /* copy () */ \ - NULL, NULL, /* map * 2 () */ \ - NULL /* close () */ \ -} +#define UTEXT_INITIALIZER { \ + UTEXT_MAGIC, /* magic */ \ + 0, /* flags */ \ + 0, /* providerProps */ \ + sizeof(UText), /* sizeOfStruct */ \ + 0, /* chunkNativeLimit */ \ + 0, /* extraSize */ \ + 0, /* nativeIndexingLimit */ \ + 0, /* chunkNativeStart */ \ + 0, /* chunkOffset */ \ + 0, /* chunkLength */ \ + NULL, /* chunkContents */ \ + NULL, /* pFuncs */ \ + NULL, /* pExtra */ \ + NULL, /* context */ \ + NULL, NULL, NULL, /* p, q, r */ \ + NULL, /* privP */ \ + 0, 0, 0, /* a, b, c */ \ + 0, 0, 0 /* privA,B,C, */ \ + } -U_CDECL_END +#endif /* U_HIDE_DRAFT_API */ +U_CDECL_END -#endif /* U_HIDE_DRAFT_API */ #endif diff --git a/Build/source/libs/icu-xetex/common/unicode/utf.h b/Build/source/libs/icu-xetex/common/unicode/utf.h index 71abc4218dc..2dfef63d66f 100644 --- a/Build/source/libs/icu-xetex/common/unicode/utf.h +++ b/Build/source/libs/icu-xetex/common/unicode/utf.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 1999-2005, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -63,6 +63,14 @@ * malformed sequences can be expressed unambiguously with a distinct subrange * of Unicode code points.) * + * The regular "safe" macros require that the initial, passed-in string index + * is within bounds. They only check the index when they read more than one + * code unit. This is usually done with code similar to the following loop: + * <pre>while(i<length) { + * U16_NEXT(s, i, length, c); + * // use c + * }</pre> + * * When it is safe to assume that text is well-formed UTF-16 * (does not contain single, unpaired surrogates), then one can use * U16_..._UNSAFE macros. @@ -80,6 +88,8 @@ * The unsafe UTF-8 macros are entirely implemented inside the macro definitions * and are fast, while the safe UTF-8 macros call functions for all but the * trivial (ASCII) cases. + * (ICU 3.6 optimizes U8_NEXT() and U8_APPEND() to handle most other common + * characters inline as well.) * * Unlike with UTF-16, malformed sequences cannot be expressed with distinct * code point values (0..U+10ffff). They are indicated with negative values instead. @@ -157,8 +167,6 @@ (uint32_t)(c)<=0x10ffff && \ !U_IS_UNICODE_NONCHAR(c))) -#ifndef U_HIDE_DRAFT_API - /** * Is this code point a BMP code point (U+0000..U+ffff)? * @param c 32-bit code point @@ -174,8 +182,6 @@ * @stable ICU 2.8 */ #define U_IS_SUPPLEMENTARY(c) ((uint32_t)((c)-0x10000)<=0xfffff) - -#endif /*U_HIDE_DRAFT_API*/ /** * Is this code point a lead surrogate (U+d800..U+dbff)? diff --git a/Build/source/libs/icu-xetex/common/unicode/utf16.h b/Build/source/libs/icu-xetex/common/unicode/utf16.h index 217c27429b7..cd8c5c1ed10 100644 --- a/Build/source/libs/icu-xetex/common/unicode/utf16.h +++ b/Build/source/libs/icu-xetex/common/unicode/utf16.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 1999-2005, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -179,7 +179,7 @@ * * @param s const UChar * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i<length + * @param i string offset, must be start<=i<length * @param length string length * @param c output UChar32 variable * @see U16_GET_UNSAFE @@ -243,7 +243,7 @@ * will be returned as the code point. * * @param s const UChar * string - * @param i string offset, i<length + * @param i string offset, must be i<length * @param length string length * @param c output UChar32 variable * @see U16_NEXT_UNSAFE @@ -292,7 +292,7 @@ * then isError is set to TRUE. * * @param s const UChar * string buffer - * @param i string offset, i<length + * @param i string offset, must be i<capacity * @param capacity size of the string buffer * @param c code point to append * @param isError output UBool set to TRUE if an error occurs, otherwise not modified @@ -332,7 +332,7 @@ * "Safe" macro, handles unpaired surrogates and checks for string boundaries. * * @param s const UChar * string - * @param i string offset, i<length + * @param i string offset, must be i<length * @param length string length * @see U16_FWD_1_UNSAFE * @stable ICU 2.4 @@ -370,7 +370,7 @@ * "Safe" macro, handles unpaired surrogates and checks for string boundaries. * * @param s const UChar * string - * @param i string offset, i<length + * @param i string offset, must be i<length * @param length string length * @param n number of code points to skip * @see U16_FWD_N_UNSAFE @@ -413,7 +413,7 @@ * * @param s const UChar * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i + * @param i string offset, must be start<=i * @see U16_SET_CP_START_UNSAFE * @stable ICU 2.4 */ @@ -468,7 +468,7 @@ * * @param s const UChar * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i + * @param i string offset, must be start<i * @param c output UChar32 variable * @see U16_PREV_UNSAFE * @stable ICU 2.4 @@ -509,7 +509,7 @@ * * @param s const UChar * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i + * @param i string offset, must be start<i * @see U16_BACK_1_UNSAFE * @stable ICU 2.4 */ @@ -549,7 +549,7 @@ * * @param s const UChar * string * @param start start of string - * @param i string offset, i<length + * @param i string offset, must be start<i * @param n number of code points to skip * @see U16_BACK_N_UNSAFE * @stable ICU 2.4 diff --git a/Build/source/libs/icu-xetex/common/unicode/utf8.h b/Build/source/libs/icu-xetex/common/unicode/utf8.h index b66ded8d6c0..ff788403048 100644 --- a/Build/source/libs/icu-xetex/common/unicode/utf8.h +++ b/Build/source/libs/icu-xetex/common/unicode/utf8.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 1999-2005, International Business Machines +* Copyright (C) 1999-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -48,8 +48,8 @@ * @internal */ #ifdef U_UTF8_IMPL -U_INTERNAL const uint8_t -#elif defined(U_STATIC_IMPLEMENTATION) +U_EXPORT const uint8_t +#elif defined(U_STATIC_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) U_CFUNC const uint8_t #else U_CFUNC U_IMPORT const uint8_t /* U_IMPORT2? */ /*U_IMPORT*/ @@ -181,7 +181,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * * @param s const uint8_t * string * @param start starting string offset - * @param i string offset, start<=i<length + * @param i string offset, must be start<=i<length * @param length string length * @param c output UChar32 variable, set to <0 in case of an error * @see U8_GET_UNSAFE @@ -213,7 +213,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * @stable ICU 2.4 */ #define U8_NEXT_UNSAFE(s, i, c) { \ - (c)=(s)[(i)++]; \ + (c)=(uint8_t)(s)[(i)++]; \ if((uint8_t)((c)-0xc0)<0x35) { \ uint8_t __count=U8_COUNT_TRAIL_BYTES(c); \ U8_MASK_LEAD_BYTE(c, __count); \ @@ -243,16 +243,34 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * c is set to a negative value. * * @param s const uint8_t * string - * @param i string offset, i<length + * @param i string offset, must be i<length * @param length string length * @param c output UChar32 variable, set to <0 in case of an error * @see U8_NEXT_UNSAFE * @stable ICU 2.4 */ #define U8_NEXT(s, i, length, c) { \ - (c)=(s)[(i)++]; \ - if(((uint8_t)(c))>=0x80) { \ - if(U8_IS_LEAD(c)) { \ + (c)=(uint8_t)(s)[(i)++]; \ + if((c)>=0x80) { \ + uint8_t __t1, __t2; \ + if( /* handle U+1000..U+CFFF inline */ \ + (0xe0<(c) && (c)<=0xec) && \ + (((i)+1)<(length)) && \ + (__t1=(uint8_t)((s)[i]-0x80))<=0x3f && \ + (__t2=(uint8_t)((s)[(i)+1]-0x80))<= 0x3f \ + ) { \ + /* no need for (c&0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */ \ + (c)=(UChar)(((c)<<12)|(__t1<<6)|__t2); \ + (i)+=2; \ + } else if( /* handle U+0080..U+07FF inline */ \ + ((c)<0xe0 && (c)>=0xc2) && \ + ((i)<(length)) && \ + (__t1=(uint8_t)((s)[i]-0x80))<=0x3f \ + ) { \ + (c)=(UChar)((((c)&0x1f)<<6)|__t1); \ + ++(i); \ + } else if(U8_IS_LEAD(c)) { \ + /* function call for "complicated" and error cases */ \ (c)=utf8_nextCharSafeBody((const uint8_t *)s, &(i), (int32_t)(length), c, -1); \ } else { \ (c)=U_SENTINEL; \ @@ -293,7 +311,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); } /** - * Append a code point to a string, overwriting 1 or 2 code units. + * Append a code point to a string, overwriting 1 to 4 bytes. * The offset points to the current end of the string contents * and is advanced (post-increment). * "Safe" macro, checks for a valid code point. @@ -302,18 +320,25 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * then isError is set to TRUE. * * @param s const uint8_t * string buffer - * @param i string offset, i<length - * @param length size of the string buffer + * @param i string offset, must be i<capacity + * @param capacity size of the string buffer * @param c code point to append * @param isError output UBool set to TRUE if an error occurs, otherwise not modified * @see U8_APPEND_UNSAFE * @stable ICU 2.4 */ -#define U8_APPEND(s, i, length, c, isError) { \ +#define U8_APPEND(s, i, capacity, c, isError) { \ if((uint32_t)(c)<=0x7f) { \ (s)[(i)++]=(uint8_t)(c); \ + } else if((uint32_t)(c)<=0x7ff && (i)+1<(capacity)) { \ + (s)[(i)++]=(uint8_t)(((c)>>6)|0xc0); \ + (s)[(i)++]=(uint8_t)(((c)&0x3f)|0x80); \ + } else if((uint32_t)(c)<=0xd7ff && (i)+2<(capacity)) { \ + (s)[(i)++]=(uint8_t)(((c)>>12)|0xe0); \ + (s)[(i)++]=(uint8_t)((((c)>>6)&0x3f)|0x80); \ + (s)[(i)++]=(uint8_t)(((c)&0x3f)|0x80); \ } else { \ - (i)=utf8_appendCharSafeBody(s, (int32_t)(i), (int32_t)(length), c, &(isError)); \ + (i)=utf8_appendCharSafeBody(s, (int32_t)(i), (int32_t)(capacity), c, &(isError)); \ } \ } @@ -337,13 +362,13 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * "Safe" macro, checks for illegal sequences and for string boundaries. * * @param s const uint8_t * string - * @param i string offset, i<length + * @param i string offset, must be i<length * @param length string length * @see U8_FWD_1_UNSAFE * @stable ICU 2.4 */ #define U8_FWD_1(s, i, length) { \ - uint8_t __b=(s)[(i)++]; \ + uint8_t __b=(uint8_t)(s)[(i)++]; \ if(U8_IS_LEAD(__b)) { \ uint8_t __count=U8_COUNT_TRAIL_BYTES(__b); \ if((i)+__count>(length)) { \ @@ -383,7 +408,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * "Safe" macro, checks for illegal sequences and for string boundaries. * * @param s const uint8_t * string - * @param i string offset, i<length + * @param i string offset, must be i<length * @param length string length * @param n number of code points to skip * @see U8_FWD_N_UNSAFE @@ -424,7 +449,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * * @param s const uint8_t * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i + * @param i string offset, must be start<=i * @see U8_SET_CP_START_UNSAFE * @stable ICU 2.4 */ @@ -456,14 +481,14 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * @stable ICU 2.4 */ #define U8_PREV_UNSAFE(s, i, c) { \ - (c)=(s)[--(i)]; \ + (c)=(uint8_t)(s)[--(i)]; \ if(U8_IS_TRAIL(c)) { \ uint8_t __b, __count=1, __shift=6; \ \ /* c is a trail byte */ \ (c)&=0x3f; \ for(;;) { \ - __b=(s)[--(i)]; \ + __b=(uint8_t)(s)[--(i)]; \ if(__b>=0xc0) { \ U8_MASK_LEAD_BYTE(__b, __count); \ (c)|=(UChar32)__b<<__shift; \ @@ -492,16 +517,16 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * * @param s const uint8_t * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i + * @param i string offset, must be start<i * @param c output UChar32 variable, set to <0 in case of an error * @see U8_PREV_UNSAFE * @stable ICU 2.4 */ #define U8_PREV(s, start, i, c) { \ - (c)=(s)[--(i)]; \ + (c)=(uint8_t)(s)[--(i)]; \ if((c)>=0x80) { \ if((c)<=0xbf) { \ - (c)=utf8_prevCharSafeBody(s, start, &(i), c, -1); \ + (c)=utf8_prevCharSafeBody((const uint8_t *)s, start, &(i), c, -1); \ } else { \ (c)=U_SENTINEL; \ } \ @@ -531,7 +556,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * * @param s const uint8_t * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i + * @param i string offset, must be start<i * @see U8_BACK_1_UNSAFE * @stable ICU 2.4 */ @@ -571,7 +596,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * * @param s const uint8_t * string * @param start index of the start of the string - * @param i string offset, i<length + * @param i string offset, must be start<i * @param n number of code points to skip * @see U8_BACK_N_UNSAFE * @stable ICU 2.4 @@ -612,7 +637,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i); * * @param s const uint8_t * string * @param start starting string offset (usually 0) - * @param i string offset, start<=i<=length + * @param i string offset, must be start<=i<=length * @param length string length * @see U8_SET_CP_LIMIT_UNSAFE * @stable ICU 2.4 diff --git a/Build/source/libs/icu-xetex/common/unicode/utf_old.h b/Build/source/libs/icu-xetex/common/unicode/utf_old.h index 20bf9b0aa8d..2397889960e 100644 --- a/Build/source/libs/icu-xetex/common/unicode/utf_old.h +++ b/Build/source/libs/icu-xetex/common/unicode/utf_old.h @@ -89,7 +89,7 @@ * accordingly. UTF-16 was the default.</p> * * <p>This concept has been abandoned. - * A lot of the ICU source code assumes UChar srings are in UTF-16. + * A lot of the ICU source code assumes UChar strings are in UTF-16. * This is especially true for low-level code like * conversion, normalization, and collation. * The utf.h header enforces the default of UTF-16. diff --git a/Build/source/libs/icu-xetex/common/unicode/utrace.h b/Build/source/libs/icu-xetex/common/unicode/utrace.h index edf50b0c2f7..bacca6df16c 100644 --- a/Build/source/libs/icu-xetex/common/unicode/utrace.h +++ b/Build/source/libs/icu-xetex/common/unicode/utrace.h @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 2003-2005, International Business Machines +* Copyright (C) 2003-2006, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -30,8 +30,6 @@ U_CDECL_BEGIN -#ifndef U_HIDE_DRAFT_API - /** * Trace severity levels. Higher levels increase the verbosity of the trace output. * @see utrace_setLevel @@ -85,8 +83,6 @@ typedef enum UTraceFunctionNumber { UTRACE_COLLATION_LIMIT } UTraceFunctionNumber; -#endif /*U_HIDE_DRAFT_API*/ - /** * Setter for the trace level. * @param traceLevel A UTraceLevel value. diff --git a/Build/source/libs/icu-xetex/common/unicode/utypes.h b/Build/source/libs/icu-xetex/common/unicode/utypes.h index 2672c74289c..7aceb27f982 100644 --- a/Build/source/libs/icu-xetex/common/unicode/utypes.h +++ b/Build/source/libs/icu-xetex/common/unicode/utypes.h @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 1996-2005, International Business Machines +* Copyright (C) 1996-2006, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * @@ -54,6 +54,13 @@ #include "unicode/uobslete.h" #endif +#ifdef U_HIDE_INTERNAL_API +#include "unicode/uintrnal.h" +#endif + +#ifdef U_HIDE_SYSTEM_API +#include "unicode/usystem.h" +#endif /*! * \file @@ -190,11 +197,14 @@ * @stable ICU 2.4 */ #define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM) + /** + * Do not use. * @internal */ #define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor) /** + * Do not use. * @internal */ #define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat @@ -322,7 +332,7 @@ typedef void* UClassID; * \def U_DATA_API * Set to export library symbols from inside the stubdata library, * and to import them from outside. - * @draft ICU 3.0 + * @stable ICU 3.0 */ /** @@ -476,10 +486,11 @@ typedef void* UClassID; * * Note: This is currently only done on Windows because * some Linux/Unix compilers have problems with defining global new/delete. - * On Windows, WIN32 is defined, and it is _MSC_Ver>=1200 for MSVC 6.0 and higher. + * On Windows, WIN32 is defined, and it is _MSC_VER>=1200 for MSVC 6.0 and higher. */ -#if defined(XP_CPLUSPLUS) && defined(U_WINDOWS) && (_MSC_Ver>=1200) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION)) +#if defined(XP_CPLUSPLUS) && defined(U_WINDOWS) && (_MSC_VER>=1200) && U_DEBUG && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION)) +#ifndef U_HIDE_INTERNAL_API /** * Global operator new, defined only inside ICU4C, must not be used. * Crashes intentionally. @@ -526,6 +537,7 @@ operator delete[](void * /*p*/) { *q=5; /* break it */ } +#endif /* U_HIDE_INTERNAL_API */ #endif /*===========================================================================*/ @@ -586,7 +598,7 @@ typedef enum UErrorCode { U_PARSE_ERROR = 9, /**< Equivalent to Java ParseException */ U_INVALID_CHAR_FOUND = 10, /**< Character conversion: Unmappable input sequence. In other APIs: Invalid character. */ U_TRUNCATED_CHAR_FOUND = 11, /**< Character conversion: Incomplete input sequence. */ - U_ILLEGAL_CHAR_FOUND = 12, /**< Character conversion: Illegal input sequence/combination of input units.. */ + U_ILLEGAL_CHAR_FOUND = 12, /**< Character conversion: Illegal input sequence/combination of input units. */ U_INVALID_TABLE_FORMAT = 13, /**< Conversion table file found, but corrupted */ U_INVALID_TABLE_FILE = 14, /**< Conversion table file not found */ U_BUFFER_OVERFLOW_ERROR = 15, /**< A result would not fit in the supplied buffer */ @@ -671,8 +683,8 @@ typedef enum UErrorCode { /* * the error code range 0x10200 0x102ff are reserved for Break Iterator related error */ + U_BRK_INTERNAL_ERROR=0x10200, /**< An internal error (bug) was detected. */ U_BRK_ERROR_START=0x10200, /**< Start of codes indicating Break Iterator failures */ - U_BRK_INTERNAL_ERROR, /**< An internal error (bug) was detected. */ U_BRK_HEX_DIGITS_EXPECTED, /**< Hex digits expected as part of a escaped char in a rule. */ U_BRK_SEMICOLON_EXPECTED, /**< Missing ';' at the end of a RBBI rule. */ U_BRK_RULE_SYNTAX, /**< Syntax error in RBBI rule. */ @@ -691,8 +703,8 @@ typedef enum UErrorCode { /* * The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs */ + U_REGEX_INTERNAL_ERROR=0x10300, /**< An internal error (bug) was detected. */ U_REGEX_ERROR_START=0x10300, /**< Start of codes indicating Regexp failures */ - U_REGEX_INTERNAL_ERROR, /**< An internal error (bug) was detected. */ U_REGEX_RULE_SYNTAX, /**< Syntax error in regexp pattern. */ U_REGEX_INVALID_STATE, /**< RegexMatcher in invalid state for requested operation */ U_REGEX_BAD_ESCAPE_SEQUENCE, /**< Unrecognized backslash escape sequence in pattern */ @@ -711,14 +723,15 @@ typedef enum UErrorCode { /* * The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes */ + U_IDNA_PROHIBITED_ERROR=0x10400, U_IDNA_ERROR_START=0x10400, - U_IDNA_PROHIBITED_ERROR, U_IDNA_UNASSIGNED_ERROR, U_IDNA_CHECK_BIDI_ERROR, U_IDNA_STD3_ASCII_RULES_ERROR, U_IDNA_ACE_PREFIX_ERROR, U_IDNA_VERIFICATION_ERROR, U_IDNA_LABEL_TOO_LONG_ERROR, + U_IDNA_ZERO_LENGTH_LABEL_ERROR, U_IDNA_ERROR_LIMIT, /* * Aliases for StringPrep diff --git a/Build/source/libs/icu-xetex/common/unicode/uversion.h b/Build/source/libs/icu-xetex/common/unicode/uversion.h index fdf251c2b22..156dd7fd93b 100644 --- a/Build/source/libs/icu-xetex/common/unicode/uversion.h +++ b/Build/source/libs/icu-xetex/common/unicode/uversion.h @@ -1,6 +1,6 @@ /* ******************************************************************************* -* Copyright (C) 2000-2005, International Business Machines +* Copyright (C) 2000-2006, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * @@ -67,7 +67,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_MINOR_NUM 4 +#define U_ICU_VERSION_MINOR_NUM 6 /** The current ICU patchlevel version as an integer. * This value will change in the subsequent releases of ICU @@ -79,20 +79,20 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_SUFFIX _3_4 +#define U_ICU_VERSION_SUFFIX _3_6 /** The current ICU library version as a dotted-decimal string. The patchlevel * only appears in this string if it non-zero. * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION "3.4" +#define U_ICU_VERSION "3.6" /** The current ICU library major/minor version as a string without dots, for library name suffixes. * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_SHORT "34" +#define U_ICU_VERSION_SHORT "36" /** An ICU version consists of up to 4 numbers from 0..255. * @stable ICU 2.4 @@ -119,13 +119,21 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]; #define U_ICU_NAMESPACE icu namespace U_ICU_NAMESPACE { } #else -#define U_ICU_NAMESPACE icu_3_4 +#define U_ICU_NAMESPACE icu_3_6 namespace U_ICU_NAMESPACE { } namespace icu = U_ICU_NAMESPACE; #endif + +#ifndef U_USING_ICU_NAMESPACE +# define U_USING_ICU_NAMESPACE 1 +#endif + +#if U_USING_ICU_NAMESPACE U_NAMESPACE_USE #endif +#endif + /*===========================================================================*/ /* General version helper functions. Definitions in putil.c */ |