summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu-xetex/common/unicode
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu-xetex/common/unicode')
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/brkiter.h165
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/caniter.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/dbbi.h252
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/locid.h16
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/normlzr.h5
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/platform.h.in11
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ppalmos.h4
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/pwin32.h20
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/rbbi.h179
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/strenum.h19
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ubidi.h726
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ubrk.h169
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uchar.h382
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ucnv.h119
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uconfig.h35
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/udata.h7
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/udeprctd.h48
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/udraft.h506
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uidna.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uintrnal.h68
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uloc.h33
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/umachine.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/umisc.h16
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/unifilt.h5
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uniset.h12
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/unistr.h81
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uobject.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uobslete.h9
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/urename.h3053
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ures.h228
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uscript.h112
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uset.h75
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/usetiter.h89
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/usprep.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ustring.h156
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/usystem.h46
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utext.h907
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf.h16
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf16.h20
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf8.h77
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf_old.h2
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utrace.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utypes.h29
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uversion.h20
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: &lt;dictionary&gt;. 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 &lt;dictionary&gt;, 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 */