You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by be...@apache.org on 2014/02/13 19:12:12 UTC

[14/57] [abbrv] remove couch_collate

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/uiter.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/uiter.h b/apps/couch_collate/platform/osx/icu/unicode/uiter.h
deleted file mode 100644
index 9409f01..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/uiter.h
+++ /dev/null
@@ -1,707 +0,0 @@
-/*
-*******************************************************************************
-*
-*   Copyright (C) 2002-2006, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-*
-*******************************************************************************
-*   file name:  uiter.h
-*   encoding:   US-ASCII
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 2002jan18
-*   created by: Markus W. Scherer
-*/
-
-#ifndef __UITER_H__
-#define __UITER_H__
-
-/**
- * \file
- * \brief C API: Unicode Character Iteration
- *
- * @see UCharIterator
- */
-
-#include "unicode/utypes.h"
-
-#ifdef XP_CPLUSPLUS
-    U_NAMESPACE_BEGIN
-
-    class CharacterIterator;
-    class Replaceable;
-
-    U_NAMESPACE_END
-#endif
-
-U_CDECL_BEGIN
-
-struct UCharIterator;
-typedef struct UCharIterator UCharIterator; /**< C typedef for struct UCharIterator. @stable ICU 2.1 */
-
-/**
- * Origin constants for UCharIterator.getIndex() and UCharIterator.move().
- * @see UCharIteratorMove
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef enum UCharIteratorOrigin {
-    UITER_START, UITER_CURRENT, UITER_LIMIT, UITER_ZERO, UITER_LENGTH
-} UCharIteratorOrigin;
-
-/** Constants for UCharIterator. @stable ICU 2.6 */
-enum {
-    /**
-     * Constant value that may be returned by UCharIteratorMove
-     * indicating that the final UTF-16 index is not known, but that the move succeeded.
-     * This can occur when moving relative to limit or length, or
-     * when moving relative to the current index after a setState()
-     * when the current UTF-16 index is not known.
-     *
-     * It would be very inefficient to have to count from the beginning of the text
-     * just to get the current/limit/length index after moving relative to it.
-     * The actual index can be determined with getIndex(UITER_CURRENT)
-     * which will count the UChars if necessary.
-     *
-     * @stable ICU 2.6
-     */
-    UITER_UNKNOWN_INDEX=-2
-};
-
-
-/**
- * Constant for UCharIterator getState() indicating an error or
- * an unknown state.
- * Returned by uiter_getState()/UCharIteratorGetState
- * when an error occurs.
- * Also, some UCharIterator implementations may not be able to return
- * a valid state for each position. This will be clearly documented
- * for each such iterator (none of the public ones here).
- *
- * @stable ICU 2.6
- */
-#define UITER_NO_STATE ((uint32_t)0xffffffff)
-
-/**
- * Function type declaration for UCharIterator.getIndex().
- *
- * Gets the current position, or the start or limit of the
- * iteration range.
- *
- * This function may perform slowly for UITER_CURRENT after setState() was called,
- * or for UITER_LENGTH, because an iterator implementation may have to count
- * UChars if the underlying storage is not UTF-16.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @param origin get the 0, start, limit, length, or current index
- * @return the requested index, or U_SENTINEL in an error condition
- *
- * @see UCharIteratorOrigin
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef int32_t U_CALLCONV
-UCharIteratorGetIndex(UCharIterator *iter, UCharIteratorOrigin origin);
-
-/**
- * Function type declaration for UCharIterator.move().
- *
- * Use iter->move(iter, index, UITER_ZERO) like CharacterIterator::setIndex(index).
- *
- * Moves the current position relative to the start or limit of the
- * iteration range, or relative to the current position itself.
- * The movement is expressed in numbers of code units forward
- * or backward by specifying a positive or negative delta.
- * Out of bounds movement will be pinned to the start or limit.
- *
- * This function may perform slowly for moving relative to UITER_LENGTH
- * because an iterator implementation may have to count the rest of the
- * UChars if the native storage is not UTF-16.
- *
- * When moving relative to the limit or length, or
- * relative to the current position after setState() was called,
- * move() may return UITER_UNKNOWN_INDEX (-2) to avoid an inefficient
- * determination of the actual UTF-16 index.
- * The actual index can be determined with getIndex(UITER_CURRENT)
- * which will count the UChars if necessary.
- * See UITER_UNKNOWN_INDEX for details.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @param delta can be positive, zero, or negative
- * @param origin move relative to the 0, start, limit, length, or current index
- * @return the new index, or U_SENTINEL on an error condition,
- *         or UITER_UNKNOWN_INDEX when the index is not known.
- *
- * @see UCharIteratorOrigin
- * @see UCharIterator
- * @see UITER_UNKNOWN_INDEX
- * @stable ICU 2.1
- */
-typedef int32_t U_CALLCONV
-UCharIteratorMove(UCharIterator *iter, int32_t delta, UCharIteratorOrigin origin);
-
-/**
- * Function type declaration for UCharIterator.hasNext().
- *
- * Check if current() and next() can still
- * return another code unit.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return boolean value for whether current() and next() can still return another code unit
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef UBool U_CALLCONV
-UCharIteratorHasNext(UCharIterator *iter);
-
-/**
- * Function type declaration for UCharIterator.hasPrevious().
- *
- * Check if previous() can still return another code unit.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return boolean value for whether previous() can still return another code unit
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef UBool U_CALLCONV
-UCharIteratorHasPrevious(UCharIterator *iter);
- 
-/**
- * Function type declaration for UCharIterator.current().
- *
- * Return the code unit at the current position,
- * or U_SENTINEL if there is none (index is at the limit).
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the current code unit
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef UChar32 U_CALLCONV
-UCharIteratorCurrent(UCharIterator *iter);
-
-/**
- * Function type declaration for UCharIterator.next().
- *
- * Return the code unit at the current index and increment
- * the index (post-increment, like s[i++]),
- * or return U_SENTINEL if there is none (index is at the limit).
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the current code unit (and post-increment the current index)
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef UChar32 U_CALLCONV
-UCharIteratorNext(UCharIterator *iter);
-
-/**
- * Function type declaration for UCharIterator.previous().
- *
- * Decrement the index and return the code unit from there
- * (pre-decrement, like s[--i]),
- * or return U_SENTINEL if there is none (index is at the start).
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the previous code unit (after pre-decrementing the current index)
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef UChar32 U_CALLCONV
-UCharIteratorPrevious(UCharIterator *iter);
-
-/**
- * Function type declaration for UCharIterator.reservedFn().
- * Reserved for future use.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @param something some integer argument
- * @return some integer
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-typedef int32_t U_CALLCONV
-UCharIteratorReserved(UCharIterator *iter, int32_t something);
-
-/**
- * Function type declaration for UCharIterator.getState().
- *
- * Get the "state" of the iterator in the form of a single 32-bit word.
- * It is recommended that the state value be calculated to be as small as
- * is feasible. For strings with limited lengths, fewer than 32 bits may
- * be sufficient.
- *
- * This is used together with setState()/UCharIteratorSetState
- * to save and restore the iterator position more efficiently than with
- * getIndex()/move().
- *
- * The iterator state is defined as a uint32_t value because it is designed
- * for use in ucol_nextSortKeyPart() which provides 32 bits to store the state
- * of the character iterator.
- *
- * With some UCharIterator implementations (e.g., UTF-8),
- * getting and setting the UTF-16 index with existing functions
- * (getIndex(UITER_CURRENT) followed by move(pos, UITER_ZERO)) is possible but
- * relatively slow because the iterator has to "walk" from a known index
- * to the requested one.
- * This takes more time the farther it needs to go.
- *
- * An opaque state value allows an iterator implementation to provide
- * an internal index (UTF-8: the source byte array index) for
- * fast, constant-time restoration.
- *
- * After calling setState(), a getIndex(UITER_CURRENT) may be slow because
- * the UTF-16 index may not be restored as well, but the iterator can deliver
- * the correct text contents and move relative to the current position
- * without performance degradation.
- *
- * Some UCharIterator implementations may not be able to return
- * a valid state for each position, in which case they return UITER_NO_STATE instead.
- * This will be clearly documented for each such iterator (none of the public ones here).
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the state word
- *
- * @see UCharIterator
- * @see UCharIteratorSetState
- * @see UITER_NO_STATE
- * @stable ICU 2.6
- */
-typedef uint32_t U_CALLCONV
-UCharIteratorGetState(const UCharIterator *iter);
-
-/**
- * Function type declaration for UCharIterator.setState().
- *
- * Restore the "state" of the iterator using a state word from a getState() call.
- * The iterator object need not be the same one as for which getState() was called,
- * but it must be of the same type (set up using the same uiter_setXYZ function)
- * and it must iterate over the same string
- * (binary identical regardless of memory address).
- * For more about the state word see UCharIteratorGetState.
- *
- * After calling setState(), a getIndex(UITER_CURRENT) may be slow because
- * the UTF-16 index may not be restored as well, but the iterator can deliver
- * the correct text contents and move relative to the current position
- * without performance degradation.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @param state the state word from a getState() call
- *              on a same-type, same-string iterator
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                   which must not indicate a failure before the function call.
- *
- * @see UCharIterator
- * @see UCharIteratorGetState
- * @stable ICU 2.6
- */
-typedef void U_CALLCONV
-UCharIteratorSetState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode);
-
-
-/**
- * C API for code unit iteration.
- * This can be used as a C wrapper around
- * CharacterIterator, Replaceable, or implemented using simple strings, etc.
- *
- * There are two roles for using UCharIterator:
- *
- * A "provider" sets the necessary function pointers and controls the "protected"
- * fields of the UCharIterator structure. A "provider" passes a UCharIterator
- * into C APIs that need a UCharIterator as an abstract, flexible string interface.
- *
- * Implementations of such C APIs are "callers" of UCharIterator functions;
- * they only use the "public" function pointers and never access the "protected"
- * fields directly.
- *
- * The current() and next() functions only check the current index against the
- * limit, and previous() only checks the current index against the start,
- * to see if the iterator already reached the end of the iteration range.
- *
- * The assumption - in all iterators - is that the index is moved via the API,
- * which means it won't go out of bounds, or the index is modified by
- * user code that knows enough about the iterator implementation to set valid
- * index values.
- *
- * UCharIterator functions return code unit values 0..0xffff,
- * or U_SENTINEL if the iteration bounds are reached.
- *
- * @stable ICU 2.1
- */
-struct UCharIterator {
-    /**
-     * (protected) Pointer to string or wrapped object or similar.
-     * Not used by caller.
-     * @stable ICU 2.1
-     */
-    const void *context;
-
-    /**
-     * (protected) Length of string or similar.
-     * Not used by caller.
-     * @stable ICU 2.1
-     */
-    int32_t length;
-
-    /**
-     * (protected) Start index or similar.
-     * Not used by caller.
-     * @stable ICU 2.1
-     */
-    int32_t start;
-
-    /**
-     * (protected) Current index or similar.
-     * Not used by caller.
-     * @stable ICU 2.1
-     */
-    int32_t index;
-
-    /**
-     * (protected) Limit index or similar.
-     * Not used by caller.
-     * @stable ICU 2.1
-     */
-    int32_t limit;
-
-    /**
-     * (protected) Used by UTF-8 iterators and possibly others.
-     * @stable ICU 2.1
-     */
-    int32_t reservedField;
-
-    /**
-     * (public) Returns the current position or the
-     * start or limit index of the iteration range.
-     *
-     * @see UCharIteratorGetIndex
-     * @stable ICU 2.1
-     */
-    UCharIteratorGetIndex *getIndex;
-
-    /**
-     * (public) Moves the current position relative to the start or limit of the
-     * iteration range, or relative to the current position itself.
-     * The movement is expressed in numbers of code units forward
-     * or backward by specifying a positive or negative delta.
-     *
-     * @see UCharIteratorMove
-     * @stable ICU 2.1
-     */
-    UCharIteratorMove *move;
-
-    /**
-     * (public) Check if current() and next() can still
-     * return another code unit.
-     *
-     * @see UCharIteratorHasNext
-     * @stable ICU 2.1
-     */
-    UCharIteratorHasNext *hasNext;
-
-    /**
-     * (public) Check if previous() can still return another code unit.
-     *
-     * @see UCharIteratorHasPrevious
-     * @stable ICU 2.1
-     */
-    UCharIteratorHasPrevious *hasPrevious;
-
-    /**
-     * (public) Return the code unit at the current position,
-     * or U_SENTINEL if there is none (index is at the limit).
-     *
-     * @see UCharIteratorCurrent
-     * @stable ICU 2.1
-     */
-    UCharIteratorCurrent *current;
-
-    /**
-     * (public) Return the code unit at the current index and increment
-     * the index (post-increment, like s[i++]),
-     * or return U_SENTINEL if there is none (index is at the limit).
-     *
-     * @see UCharIteratorNext
-     * @stable ICU 2.1
-     */
-    UCharIteratorNext *next;
-
-    /**
-     * (public) Decrement the index and return the code unit from there
-     * (pre-decrement, like s[--i]),
-     * or return U_SENTINEL if there is none (index is at the start).
-     *
-     * @see UCharIteratorPrevious
-     * @stable ICU 2.1
-     */
-    UCharIteratorPrevious *previous;
-
-    /**
-     * (public) Reserved for future use. Currently NULL.
-     *
-     * @see UCharIteratorReserved
-     * @stable ICU 2.1
-     */
-    UCharIteratorReserved *reservedFn;
-
-    /**
-     * (public) Return the state of the iterator, to be restored later with setState().
-     * This function pointer is NULL if the iterator does not implement it.
-     *
-     * @see UCharIteratorGet
-     * @stable ICU 2.6
-     */
-    UCharIteratorGetState *getState;
-
-    /**
-     * (public) Restore the iterator state from the state word from a call
-     * to getState().
-     * This function pointer is NULL if the iterator does not implement it.
-     *
-     * @see UCharIteratorSet
-     * @stable ICU 2.6
-     */
-    UCharIteratorSetState *setState;
-};
-
-/**
- * Helper function for UCharIterator to get the code point
- * at the current index.
- *
- * Return the code point that includes the code unit at the current position,
- * or U_SENTINEL if there is none (index is at the limit).
- * If the current code unit is a lead or trail surrogate,
- * then the following or preceding surrogate is used to form
- * the code point value.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the current code point
- *
- * @see UCharIterator
- * @see U16_GET
- * @see UnicodeString::char32At()
- * @stable ICU 2.1
- */
-U_STABLE UChar32 U_EXPORT2
-uiter_current32(UCharIterator *iter);
-
-/**
- * Helper function for UCharIterator to get the next code point.
- *
- * Return the code point at the current index and increment
- * the index (post-increment, like s[i++]),
- * or return U_SENTINEL if there is none (index is at the limit).
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the current code point (and post-increment the current index)
- *
- * @see UCharIterator
- * @see U16_NEXT
- * @stable ICU 2.1
- */
-U_STABLE UChar32 U_EXPORT2
-uiter_next32(UCharIterator *iter);
-
-/**
- * Helper function for UCharIterator to get the previous code point.
- *
- * Decrement the index and return the code point from there
- * (pre-decrement, like s[--i]),
- * or return U_SENTINEL if there is none (index is at the start).
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the previous code point (after pre-decrementing the current index)
- *
- * @see UCharIterator
- * @see U16_PREV
- * @stable ICU 2.1
- */
-U_STABLE UChar32 U_EXPORT2
-uiter_previous32(UCharIterator *iter);
-
-/**
- * Get the "state" of the iterator in the form of a single 32-bit word.
- * This is a convenience function that calls iter->getState(iter)
- * if iter->getState is not NULL;
- * if it is NULL or any other error occurs, then UITER_NO_STATE is returned.
- *
- * Some UCharIterator implementations may not be able to return
- * a valid state for each position, in which case they return UITER_NO_STATE instead.
- * This will be clearly documented for each such iterator (none of the public ones here).
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @return the state word
- *
- * @see UCharIterator
- * @see UCharIteratorGetState
- * @see UITER_NO_STATE
- * @stable ICU 2.6
- */
-U_STABLE uint32_t U_EXPORT2
-uiter_getState(const UCharIterator *iter);
-
-/**
- * Restore the "state" of the iterator using a state word from a getState() call.
- * This is a convenience function that calls iter->setState(iter, state, pErrorCode)
- * if iter->setState is not NULL; if it is NULL, then U_UNSUPPORTED_ERROR is set.
- *
- * @param iter the UCharIterator structure ("this pointer")
- * @param state the state word from a getState() call
- *              on a same-type, same-string iterator
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                   which must not indicate a failure before the function call.
- *
- * @see UCharIterator
- * @see UCharIteratorSetState
- * @stable ICU 2.6
- */
-U_STABLE void U_EXPORT2
-uiter_setState(UCharIterator *iter, uint32_t state, UErrorCode *pErrorCode);
-
-/**
- * Set up a UCharIterator to iterate over a string.
- *
- * Sets the UCharIterator function pointers for iteration over the string s
- * with iteration boundaries start=index=0 and length=limit=string length.
- * The "provider" may set the start, index, and limit values at any time
- * within the range 0..length.
- * The length field will be ignored.
- *
- * The string pointer s is set into UCharIterator.context without copying
- * or reallocating the string contents.
- *
- * getState() simply returns the current index.
- * move() will always return the final index.
- *
- * @param iter UCharIterator structure to be set for iteration
- * @param s String to iterate over
- * @param length Length of s, or -1 if NUL-terminated
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-U_STABLE void U_EXPORT2
-uiter_setString(UCharIterator *iter, const UChar *s, int32_t length);
-
-/**
- * Set up a UCharIterator to iterate over a UTF-16BE string
- * (byte vector with a big-endian pair of bytes per UChar).
- *
- * Everything works just like with a normal UChar iterator (uiter_setString),
- * except that UChars are assembled from byte pairs,
- * and that the length argument here indicates an even number of bytes.
- *
- * getState() simply returns the current index.
- * move() will always return the final index.
- *
- * @param iter UCharIterator structure to be set for iteration
- * @param s UTF-16BE string to iterate over
- * @param length Length of s as an even number of bytes, or -1 if NUL-terminated
- *               (NUL means pair of 0 bytes at even index from s)
- *
- * @see UCharIterator
- * @see uiter_setString
- * @stable ICU 2.6
- */
-U_STABLE void U_EXPORT2
-uiter_setUTF16BE(UCharIterator *iter, const char *s, int32_t length);
-
-/**
- * Set up a UCharIterator to iterate over a UTF-8 string.
- *
- * Sets the UCharIterator function pointers for iteration over the UTF-8 string s
- * with UTF-8 iteration boundaries 0 and length.
- * The implementation counts the UTF-16 index on the fly and
- * lazily evaluates the UTF-16 length of the text.
- *
- * The start field is used as the UTF-8 offset, the limit field as the UTF-8 length.
- * When the reservedField is not 0, then it contains a supplementary code point
- * and the UTF-16 index is between the two corresponding surrogates.
- * At that point, the UTF-8 index is behind that code point.
- *
- * The UTF-8 string pointer s is set into UCharIterator.context without copying
- * or reallocating the string contents.
- *
- * getState() returns a state value consisting of
- * - the current UTF-8 source byte index (bits 31..1)
- * - a flag (bit 0) that indicates whether the UChar position is in the middle
- *   of a surrogate pair
- *   (from a 4-byte UTF-8 sequence for the corresponding supplementary code point)
- *
- * getState() cannot also encode the UTF-16 index in the state value.
- * move(relative to limit or length), or
- * move(relative to current) after setState(), may return UITER_UNKNOWN_INDEX.
- *
- * @param iter UCharIterator structure to be set for iteration
- * @param s UTF-8 string to iterate over
- * @param length Length of s in bytes, or -1 if NUL-terminated
- *
- * @see UCharIterator
- * @stable ICU 2.6
- */
-U_STABLE void U_EXPORT2
-uiter_setUTF8(UCharIterator *iter, const char *s, int32_t length);
-
-#ifdef XP_CPLUSPLUS
-
-/**
- * Set up a UCharIterator to wrap around a C++ CharacterIterator.
- *
- * Sets the UCharIterator function pointers for iteration using the
- * CharacterIterator charIter.
- *
- * The CharacterIterator pointer charIter is set into UCharIterator.context
- * without copying or cloning the CharacterIterator object.
- * The other "protected" UCharIterator fields are set to 0 and will be ignored.
- * The iteration index and boundaries are controlled by the CharacterIterator.
- *
- * getState() simply returns the current index.
- * move() will always return the final index.
- *
- * @param iter UCharIterator structure to be set for iteration
- * @param charIter CharacterIterator to wrap
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-U_STABLE void U_EXPORT2
-uiter_setCharacterIterator(UCharIterator *iter, U_NAMESPACE_QUALIFIER CharacterIterator *charIter);
-
-/**
- * Set up a UCharIterator to iterate over a C++ Replaceable.
- *
- * Sets the UCharIterator function pointers for iteration over the
- * Replaceable rep with iteration boundaries start=index=0 and
- * length=limit=rep->length().
- * The "provider" may set the start, index, and limit values at any time
- * within the range 0..length=rep->length().
- * The length field will be ignored.
- *
- * The Replaceable pointer rep is set into UCharIterator.context without copying
- * or cloning/reallocating the Replaceable object.
- *
- * getState() simply returns the current index.
- * move() will always return the final index.
- *
- * @param iter UCharIterator structure to be set for iteration
- * @param rep Replaceable to iterate over
- *
- * @see UCharIterator
- * @stable ICU 2.1
- */
-U_STABLE void U_EXPORT2
-uiter_setReplaceable(UCharIterator *iter, const U_NAMESPACE_QUALIFIER Replaceable *rep);
-
-#endif
-
-U_CDECL_END
-
-#endif

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/uloc.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/uloc.h b/apps/couch_collate/platform/osx/icu/unicode/uloc.h
deleted file mode 100644
index 29c479a..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/uloc.h
+++ /dev/null
@@ -1,1046 +0,0 @@
-/*
-**********************************************************************
-*   Copyright (C) 1997-2008, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-**********************************************************************
-*
-* File ULOC.H
-*
-* Modification History:
-*
-*   Date        Name        Description
-*   04/01/97    aliu        Creation.
-*   08/22/98    stephen     JDK 1.2 sync.
-*   12/08/98    rtg         New C API for Locale
-*   03/30/99    damiba      overhaul
-*   03/31/99    helena      Javadoc for uloc functions.
-*   04/15/99    Madhu       Updated Javadoc
-********************************************************************************
-*/
-
-#ifndef ULOC_H
-#define ULOC_H
-
-#include "unicode/utypes.h"
-#include "unicode/uenum.h"
-
-/**    
- * \file
- * \brief  C API: Locale 
- *
- * <h2> ULoc C API for Locale </h2>
- * A <code>Locale</code> represents a specific geographical, political,
- * or cultural region. An operation that requires a <code>Locale</code> to perform
- * its task is called <em>locale-sensitive</em> and uses the <code>Locale</code>
- * to tailor information for the user. For example, displaying a number
- * is a locale-sensitive operation--the number should be formatted
- * according to the customs/conventions of the user's native country,
- * region, or culture.  In the C APIs, a locales is simply a const char string.
- *
- * <P>
- * You create a <code>Locale</code> with one of the three options listed below.
- * Each of the component is separated by '_' in the locale string.
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code
- *       newLanguage
- * 
- *       newLanguage + newCountry
- * 
- *       newLanguage + newCountry + newVariant
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- * The first option is a valid <STRONG>ISO
- * Language Code.</STRONG> These codes are the lower-case two-letter
- * codes as defined by ISO-639.
- * You can find a full list of these codes at a number of sites, such as:
- * <BR><a href ="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">
- * http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt</a>
- *
- * <P>
- * The second option includes an additonal <STRONG>ISO Country
- * 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.chemie.fu-berlin.de/diverse/doc/ISO_3166.html">
- * http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html</a>
- *
- * <P>
- * The third option requires another additonal information--the 
- * <STRONG>Variant.</STRONG>
- * The Variant codes are vendor and browser-specific.
- * For example, use WIN for Windows, MAC for Macintosh, and POSIX for POSIX.
- * Where there are two variants, separate them with an underscore, and
- * put the most important one first. For
- * example, a Traditional Spanish collation might be referenced, with
- * "ES", "ES", "Traditional_WIN".
- *
- * <P>
- * Because a <code>Locale</code> is just an identifier for a region,
- * no validity check is performed when you specify a <code>Locale</code>.
- * If you want to see whether particular resources are available for the
- * <code>Locale</code> you asked for, you must query those resources. For
- * example, ask the <code>UNumberFormat</code> for the locales it supports
- * using its <code>getAvailable</code> method.
- * <BR><STRONG>Note:</STRONG> When you ask for a resource for a particular
- * locale, you get back the best available match, not necessarily
- * precisely what you asked for. For more information, look at
- * <code>UResourceBundle</code>.
- *
- * <P>
- * The <code>Locale</code> provides a number of convenient constants
- * that you can use to specify the commonly used
- * locales. For example, the following refers to a locale
- * for the United States:
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code
- *       ULOC_US
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- *
- * <P>
- * Once you've specified a locale you can query it for information about
- * itself. Use <code>uloc_getCountry</code> to get the ISO Country Code and
- * <code>uloc_getLanguage</code> to get the ISO Language Code. You can
- * use <code>uloc_getDisplayCountry</code> to get the
- * name of the country suitable for displaying to the user. Similarly,
- * you can use <code>uloc_getDisplayLanguage</code> to get the name of
- * the language suitable for displaying to the user. Interestingly,
- * the <code>uloc_getDisplayXXX</code> methods are themselves locale-sensitive
- * and have two versions: one that uses the default locale and one
- * that takes a locale as an argument and displays the name or country in
- * a language appropriate to that locale.
- *
- * <P>
- * The ICU provides a number of services that perform locale-sensitive
- * operations. For example, the <code>unum_xxx</code> functions format
- * numbers, currency, or percentages in a locale-sensitive manner. 
- * </P>
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code
- *     UErrorCode success = U_ZERO_ERROR;
- *     UNumberFormat *nf;
- *     const char* myLocale = "fr_FR";
- * 
- *     nf = unum_open( UNUM_DEFAULT, NULL, success );          
- *     unum_close(nf);
- *     nf = unum_open( UNUM_CURRENCY, NULL, success );
- *     unum_close(nf);
- *     nf = unum_open( UNUM_PERCENT, NULL, success );   
- *     unum_close(nf);
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- * Each of these methods has two variants; one with an explicit locale
- * and one without; the latter using the default locale.
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code 
- * 
- *     nf = unum_open( UNUM_DEFAULT, myLocale, success );          
- *     unum_close(nf);
- *     nf = unum_open( UNUM_CURRENCY, myLocale, success );
- *     unum_close(nf);
- *     nf = unum_open( UNUM_PERCENT, myLocale, success );   
- *     unum_close(nf);
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- * A <code>Locale</code> is the mechanism for identifying the kind of services
- * (<code>UNumberFormat</code>) that you would like to get. The locale is
- * <STRONG>just</STRONG> a mechanism for identifying these services.
- *
- * <P>
- * Each international serivce that performs locale-sensitive operations 
- * allows you
- * to get all the available objects of that type. You can sift
- * through these objects by language, country, or variant,
- * and use the display names to present a menu to the user.
- * For example, you can create a menu of all the collation objects
- * suitable for a given language. Such classes implement these
- * three class methods:
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code
- *       const char* uloc_getAvailable(int32_t index);
- *       int32_t uloc_countAvailable();
- *       int32_t
- *       uloc_getDisplayName(const char* localeID,
- *                 const char* inLocaleID, 
- *                 UChar* result,
- *                 int32_t maxResultSize,
- *                  UErrorCode* err);
- * 
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- * <P>
- * Concerning POSIX/RFC1766 Locale IDs, 
- *  the getLanguage/getCountry/getVariant/getName functions do understand
- * the POSIX type form of  language_COUNTRY.ENCODING\@VARIANT
- * and if there is not an ICU-stype variant, uloc_getVariant() for example
- * will return the one listed after the \@at sign. As well, the hyphen
- * "-" is recognized as a country/variant separator similarly to RFC1766.
- * So for example, "en-us" will be interpreted as en_US.  
- * As a result, uloc_getName() is far from a no-op, and will have the
- * effect of converting POSIX/RFC1766 IDs into ICU form, although it does
- * NOT map any of the actual codes (i.e. russian->ru) in any way.
- * Applications should call uloc_getName() at the point where a locale ID
- * is coming from an external source (user entry, OS, web browser)
- * and pass the resulting string to other ICU functions.  For example,
- * don't use de-de\@EURO as an argument to resourcebundle.
- *
- * @see UResourceBundle
- */
-
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_CHINESE            "zh"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_ENGLISH            "en"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_FRENCH             "fr"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_GERMAN             "de"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_ITALIAN            "it"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_JAPANESE           "ja"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_KOREAN             "ko"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_SIMPLIFIED_CHINESE "zh_CN"
-/** Useful constant for this language. @stable ICU 2.0 */
-#define ULOC_TRADITIONAL_CHINESE "zh_TW"
-
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_CANADA         "en_CA"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_CANADA_FRENCH  "fr_CA"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_CHINA          "zh_CN"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_PRC            "zh_CN"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_FRANCE         "fr_FR"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_GERMANY        "de_DE"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_ITALY          "it_IT"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_JAPAN          "ja_JP"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_KOREA          "ko_KR"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_TAIWAN         "zh_TW"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_UK             "en_GB"
-/** Useful constant for this country/region. @stable ICU 2.0 */
-#define ULOC_US             "en_US"
-
-/**
- * Useful constant for the maximum size of the language part of a locale ID.
- * (including the terminating NULL).
- * @stable ICU 2.0
- */
-#define ULOC_LANG_CAPACITY 12
-
-/**
- * Useful constant for the maximum size of the country part of a locale ID
- * (including the terminating NULL).
- * @stable ICU 2.0
- */
-#define ULOC_COUNTRY_CAPACITY 4
-/**
- * Useful constant for the maximum size of the whole locale ID
- * (including the terminating NULL).
- * @stable ICU 2.0
- */
-#define ULOC_FULLNAME_CAPACITY 56
-
-/**
- * Useful constant for the maximum size of the script part of a locale ID
- * (including the terminating NULL).
- * @stable ICU 2.8
- */
-#define ULOC_SCRIPT_CAPACITY 6
-
-/**
- * Useful constant for the maximum size of keywords in a locale
- * @stable ICU 2.8
- */
-#define ULOC_KEYWORDS_CAPACITY 50
-
-/**
- * Useful constant for the maximum SIZE of keywords in a locale
- * @stable ICU 2.8
- */
-#define ULOC_KEYWORD_AND_VALUES_CAPACITY 100
-
-/**
- * Character separating keywords from the locale string
- * different for EBCDIC - TODO
- * @stable ICU 2.8
- */
-#define ULOC_KEYWORD_SEPARATOR '@'
-/**
- * Character for assigning value to a keyword
- * @stable ICU 2.8
- */
-#define ULOC_KEYWORD_ASSIGN '='
-/**
- * Character separating keywords
- * @stable ICU 2.8
- */
-#define ULOC_KEYWORD_ITEM_SEPARATOR ';'
-
-/**
- * Constants for *_getLocale()
- * Allow user to select whether she wants information on 
- * requested, valid or actual locale.
- * For example, a collator for "en_US_CALIFORNIA" was
- * requested. In the current state of ICU (2.0), 
- * the requested locale is "en_US_CALIFORNIA",
- * the valid locale is "en_US" (most specific locale supported by ICU)
- * and the actual locale is "root" (the collation data comes unmodified 
- * from the UCA)
- * The locale is considered supported by ICU if there is a core ICU bundle 
- * for that locale (although it may be empty).
- * @stable ICU 2.1
- */
-typedef enum {
-  /** This is locale the data actually comes from 
-   * @stable ICU 2.1
-   */
-  ULOC_ACTUAL_LOCALE    = 0,
-  /** This is the most specific locale supported by ICU 
-   * @stable ICU 2.1
-   */
-  ULOC_VALID_LOCALE    = 1,
-
-#ifndef U_HIDE_DEPRECATED_API
-  /** This is the requested locale
-   *  @deprecated ICU 2.8 
-   */
-  ULOC_REQUESTED_LOCALE = 2,
-#endif /* U_HIDE_DEPRECATED_API */
-
-  ULOC_DATA_LOCALE_TYPE_LIMIT = 3
-} ULocDataLocaleType ;
-
-
-/**
- * Gets ICU's default locale.  
- * The returned string is a snapshot in time, and will remain valid
- *   and unchanged even when uloc_setDefault() is called.
- *   The returned storage is owned by ICU, and must not be altered or deleted
- *   by the caller.
- *  
- * @return the ICU default locale
- * @system
- * @stable ICU 2.0
- */
-U_STABLE const char* U_EXPORT2
-uloc_getDefault(void);
-
-/**
- * Sets ICU's default locale.  
- *    By default (without calling this function), ICU's default locale will be based
- *    on information obtained from the underlying system environment.
- *    <p>
- *    Changes to ICU's default locale do not propagate back to the
- *    system environment.
- *    <p>
- *    Changes to ICU's default locale to not affect any ICU services that
- *    may already be open based on the previous default locale value.
- *
- * @param localeID the new ICU default locale. A value of NULL will try to get
- *                 the system's default locale.
- * @param status the error information if the setting of default locale fails
- * @system
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2
-uloc_setDefault(const char* localeID,
-        UErrorCode*       status);
-
-/**
- * Gets the language code for the specified locale.
- *
- * @param localeID the locale to get the ISO language code with
- * @param language the language code for localeID
- * @param languageCapacity the size of the language buffer to store the  
- * language code with
- * @param err error information if retrieving the language code failed
- * @return the actual buffer size needed for the language code.  If it's greater 
- * than languageCapacity, the returned language code will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getLanguage(const char*    localeID,
-         char* language,
-         int32_t languageCapacity,
-         UErrorCode* err);
-
-/**
- * Gets the script code for the specified locale.
- *
- * @param localeID the locale to get the ISO language code with
- * @param script the language code for localeID
- * @param scriptCapacity the size of the language buffer to store the  
- * language code with
- * @param err error information if retrieving the language code failed
- * @return the actual buffer size needed for the language code.  If it's greater 
- * than scriptCapacity, the returned language code will be truncated.  
- * @stable ICU 2.8
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getScript(const char*    localeID,
-         char* script,
-         int32_t scriptCapacity,
-         UErrorCode* err);
-
-/**
- * Gets the  country code for the specified locale.
- *
- * @param localeID the locale to get the country code with
- * @param country the country code for localeID
- * @param countryCapacity the size of the country buffer to store the  
- * country code with
- * @param err error information if retrieving the country code failed
- * @return the actual buffer size needed for the country code.  If it's greater 
- * than countryCapacity, the returned country code will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getCountry(const char*    localeID,
-        char* country,
-        int32_t countryCapacity,
-        UErrorCode* err);
-
-/**
- * Gets the variant code for the specified locale.
- *
- * @param localeID the locale to get the variant code with
- * @param variant the variant code for localeID
- * @param variantCapacity the size of the variant buffer to store the 
- * variant code with
- * @param err error information if retrieving the variant code failed
- * @return the actual buffer size needed for the variant code.  If it's greater 
- * than variantCapacity, the returned variant code will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getVariant(const char*    localeID,
-        char* variant,
-        int32_t variantCapacity,
-        UErrorCode* err);
-
-
-/**
- * Gets the full name for the specified locale.
- * Note: This has the effect of 'canonicalizing' the ICU locale ID to
- * a certain extent. Upper and lower case are set as needed.
- * It does NOT map aliased names in any way.
- * See the top of this header file.
- * This API supports preflighting.
- *
- * @param localeID the locale to get the full name with
- * @param name fill in buffer for the name without keywords.
- * @param nameCapacity capacity of the fill in buffer.
- * @param err error information if retrieving the full name failed
- * @return the actual buffer size needed for the full name.  If it's greater 
- * than nameCapacity, the returned full name will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getName(const char*    localeID,
-         char* name,
-         int32_t nameCapacity,
-         UErrorCode* err);
-
-/**
- * Gets the full name for the specified locale.
- * Note: This has the effect of 'canonicalizing' the string to
- * a certain extent. Upper and lower case are set as needed,
- * and if the components were in 'POSIX' format they are changed to
- * ICU format.  It does NOT map aliased names in any way.
- * See the top of this header file.
- *
- * @param localeID the locale to get the full name with
- * @param name the full name for localeID
- * @param nameCapacity the size of the name buffer to store the 
- * full name with
- * @param err error information if retrieving the full name failed
- * @return the actual buffer size needed for the full name.  If it's greater 
- * than nameCapacity, the returned full name will be truncated.  
- * @stable ICU 2.8
- */
-U_STABLE int32_t U_EXPORT2
-uloc_canonicalize(const char*    localeID,
-         char* name,
-         int32_t nameCapacity,
-         UErrorCode* err);
-
-/**
- * Gets the ISO language code for the specified locale.
- *
- * @param localeID the locale to get the ISO language code with
- * @return language the ISO language code for localeID
- * @stable ICU 2.0
- */
-U_STABLE const char* U_EXPORT2
-uloc_getISO3Language(const char* localeID);
-
-
-/**
- * Gets the ISO country code for the specified locale.
- *
- * @param localeID the locale to get the ISO country code with
- * @return country the ISO country code for localeID
- * @stable ICU 2.0
- */
-U_STABLE const char* U_EXPORT2
-uloc_getISO3Country(const char* localeID);
-
-/**
- * Gets the Win32 LCID value for the specified locale.
- * If the ICU locale is not recognized by Windows, 0 will be returned.
- *
- * @param localeID the locale to get the Win32 LCID value with
- * @return country the Win32 LCID for localeID
- * @stable ICU 2.0
- */
-U_STABLE uint32_t U_EXPORT2
-uloc_getLCID(const char* localeID);
-
-/**
- * Gets the language name suitable for display for the specified locale.
- *
- * @param locale the locale to get the ISO language code with
- * @param displayLocale Specifies the locale to be used to display the name.  In other words,
- *                 if the locale's language code is "en", passing Locale::getFrench() for
- *                 inLocale would result in "Anglais", while passing Locale::getGerman()
- *                 for inLocale would result in "Englisch".
- * @param language the displayable language code for localeID
- * @param languageCapacity the size of the language buffer to store the  
- * displayable language code with
- * @param status error information if retrieving the displayable language code failed
- * @return the actual buffer size needed for the displayable language code.  If it's greater 
- * than languageCapacity, the returned language code will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getDisplayLanguage(const char* locale,
-            const char* displayLocale,
-            UChar* language,
-            int32_t languageCapacity,
-            UErrorCode* status);
-
-/**
- * Gets the script name suitable for display for the specified locale.
- *
- * @param locale the locale to get the displayable script code with. NULL may be used to specify the default.
- * @param displayLocale Specifies the locale to be used to display the name.  In other words,
- *                 if the locale's language code is "en", passing Locale::getFrench() for
- *                 inLocale would result in "", while passing Locale::getGerman()
- *                 for inLocale would result in "". NULL may be used to specify the default.
- * @param script the displayable country code for localeID
- * @param scriptCapacity the size of the script buffer to store the  
- * displayable script code with
- * @param status error information if retrieving the displayable script code failed
- * @return the actual buffer size needed for the displayable script code.  If it's greater 
- * than scriptCapacity, the returned displayable script code will be truncated.  
- * @stable ICU 2.8
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getDisplayScript(const char* locale,
-            const char* displayLocale,
-            UChar* script,
-            int32_t scriptCapacity,
-            UErrorCode* status);
-
-/**
- * Gets the country name suitable for display for the specified locale.
- *
- * @param locale the locale to get the displayable country code with. NULL may be used to specify the default.
- * @param displayLocale Specifies the locale to be used to display the name.  In other words,
- *                 if the locale's language code is "en", passing Locale::getFrench() for
- *                 inLocale would result in "Anglais", while passing Locale::getGerman()
- *                 for inLocale would result in "Englisch". NULL may be used to specify the default.
- * @param country the displayable country code for localeID
- * @param countryCapacity the size of the country buffer to store the  
- * displayable country code with
- * @param status error information if retrieving the displayable country code failed
- * @return the actual buffer size needed for the displayable country code.  If it's greater 
- * than countryCapacity, the returned displayable country code will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getDisplayCountry(const char* locale,
-                       const char* displayLocale,
-                       UChar* country,
-                       int32_t countryCapacity,
-                       UErrorCode* status);
-
-
-/**
- * Gets the variant name suitable for display for the specified locale.
- *
- * @param locale the locale to get the displayable variant code with. NULL may be used to specify the default.
- * @param displayLocale Specifies the locale to be used to display the name.  In other words,
- *                 if the locale's language code is "en", passing Locale::getFrench() for
- *                 inLocale would result in "Anglais", while passing Locale::getGerman()
- *                 for inLocale would result in "Englisch". NULL may be used to specify the default.
- * @param variant the displayable variant code for localeID
- * @param variantCapacity the size of the variant buffer to store the 
- * displayable variant code with
- * @param status error information if retrieving the displayable variant code failed
- * @return the actual buffer size needed for the displayable variant code.  If it's greater 
- * than variantCapacity, the returned displayable variant code will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getDisplayVariant(const char* locale,
-                       const char* displayLocale,
-                       UChar* variant,
-                       int32_t variantCapacity,
-                       UErrorCode* status);
-
-/**
- * Gets the keyword name suitable for display for the specified locale.
- * E.g: for the locale string de_DE\@collation=PHONEBOOK, this API gets the display 
- * string for the keyword collation. 
- * Usage:
- * <code>
- *    UErrorCode status = U_ZERO_ERROR;
- *    const char* keyword =NULL;
- *    int32_t keywordLen = 0;
- *    int32_t keywordCount = 0;
- *    UChar displayKeyword[256];
- *    int32_t displayKeywordLen = 0;
- *    UEnumeration* keywordEnum = uloc_openKeywords("de_DE@collation=PHONEBOOK;calendar=TRADITIONAL", &status);
- *    for(keywordCount = uenum_count(keywordEnum, &status); keywordCount > 0 ; keywordCount--){
- *          if(U_FAILURE(status)){
- *              ...something went wrong so handle the error...
- *              break;
- *          }
- *          // the uenum_next returns NUL terminated string
- *          keyword = uenum_next(keywordEnum, &keywordLen, &status);
- *          displayKeywordLen = uloc_getDisplayKeyword(keyword, "en_US", displayKeyword, 256);
- *          ... do something interesting .....
- *    }
- *    uenum_close(keywordEnum);
- * </code>
- * @param keyword           The keyword whose display string needs to be returned.
- * @param displayLocale     Specifies the locale to be used to display the name.  In other words,
- *                          if the locale's language code is "en", passing Locale::getFrench() for
- *                          inLocale would result in "Anglais", while passing Locale::getGerman()
- *                          for inLocale would result in "Englisch". NULL may be used to specify the default.
- * @param dest              the buffer to which the displayable keyword should be written.
- * @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 status            error information if retrieving the displayable string failed. 
- *                          Should not be NULL and should not indicate failure on entry.
- * @return the actual buffer size needed for the displayable variant code.  
- * @see #uloc_openKeywords
- * @stable ICU 2.8
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getDisplayKeyword(const char* keyword,
-                       const char* displayLocale,
-                       UChar* dest,
-                       int32_t destCapacity,
-                       UErrorCode* status);
-/**
- * Gets the value of the keyword suitable for display for the specified locale.
- * E.g: for the locale string de_DE\@collation=PHONEBOOK, this API gets the display 
- * string for PHONEBOOK, in the display locale, when "collation" is specified as the keyword.
- *
- * @param locale            The locale to get the displayable variant code with. NULL may be used to specify the default.
- * @param keyword           The keyword for whose value should be used.
- * @param displayLocale     Specifies the locale to be used to display the name.  In other words,
- *                          if the locale's language code is "en", passing Locale::getFrench() for
- *                          inLocale would result in "Anglais", while passing Locale::getGerman()
- *                          for inLocale would result in "Englisch". NULL may be used to specify the default.
- * @param dest              the buffer to which the displayable keyword should be written.
- * @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 status            error information if retrieving the displayable string failed. 
- *                          Should not be NULL and must not indicate failure on entry.
- * @return the actual buffer size needed for the displayable variant code.  
- * @stable ICU 2.8
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getDisplayKeywordValue(   const char* locale,
-                               const char* keyword,
-                               const char* displayLocale,
-                               UChar* dest,
-                               int32_t destCapacity,
-                               UErrorCode* status);
-/**
- * Gets the full name suitable for display for the specified locale.
- *
- * @param localeID the locale to get the displayable name with. NULL may be used to specify the default.
- * @param inLocaleID Specifies the locale to be used to display the name.  In other words,
- *                   if the locale's language code is "en", passing Locale::getFrench() for
- *                   inLocale would result in "Anglais", while passing Locale::getGerman()
- *                   for inLocale would result in "Englisch". NULL may be used to specify the default.
- * @param result the displayable name for localeID
- * @param maxResultSize the size of the name buffer to store the 
- * displayable full name with
- * @param err error information if retrieving the displayable name failed
- * @return the actual buffer size needed for the displayable name.  If it's greater 
- * than maxResultSize, the returned displayable name will be truncated.  
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getDisplayName(const char* localeID,
-            const char* inLocaleID,
-            UChar* result,
-            int32_t maxResultSize,
-            UErrorCode* err);
-
-
-/**
- * Gets the specified locale from a list of all available locales.  
- * The return value is a pointer to an item of 
- * a locale name array.  Both this array and the pointers
- * it contains are owned by ICU and should not be deleted or written through
- * by the caller.  The locale name is terminated by a null pointer.
- * @param n the specific locale name index of the available locale list
- * @return a specified locale name of all available locales
- * @stable ICU 2.0
- */
-U_STABLE const char* U_EXPORT2
-uloc_getAvailable(int32_t n);
-
-/**
- * Gets the size of the all available locale list.
- *
- * @return the size of the locale list
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2 uloc_countAvailable(void);
-
-/**
- *
- * Gets a list of all available language codes defined in ISO 639.  This is a pointer
- * to an array of pointers to arrays of char.  All of these pointers are owned
- * by ICU-- do not delete them, and do not write through them.  The array is
- * terminated with a null pointer.
- * @return a list of all available language codes
- * @stable ICU 2.0
- */
-U_STABLE const char* const* U_EXPORT2
-uloc_getISOLanguages(void);
-
-/**
- *
- * Gets a list of all available 2-letter country codes defined in ISO 639.  This is a
- * pointer to an array of pointers to arrays of char.  All of these pointers are
- * owned by ICU-- do not delete them, and do not write through them.  The array is
- * terminated with a null pointer.
- * @return a list of all available country codes
- * @stable ICU 2.0
- */
-U_STABLE const char* const* U_EXPORT2
-uloc_getISOCountries(void);
-
-/**
- * Truncate the locale ID string to get the parent locale ID.
- * Copies the part of the string before the last underscore.
- * The parent locale ID will be an empty string if there is no
- * underscore, or if there is only one underscore at localeID[0].
- *
- * @param localeID Input locale ID string.
- * @param parent   Output string buffer for the parent locale ID.
- * @param parentCapacity Size of the output buffer.
- * @param err A UErrorCode value.
- * @return The length of the parent locale ID.
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getParent(const char*    localeID,
-                 char* parent,
-                 int32_t parentCapacity,
-                 UErrorCode* err);
-
-
-
-
-/**
- * Gets the full name for the specified locale.
- * Note: This has the effect of 'canonicalizing' the string to
- * a certain extent. Upper and lower case are set as needed,
- * and if the components were in 'POSIX' format they are changed to
- * ICU format.  It does NOT map aliased names in any way.
- * See the top of this header file.
- * This API strips off the keyword part, so "de_DE\@collation=phonebook" 
- * will become "de_DE". 
- * This API supports preflighting.
- *
- * @param localeID the locale to get the full name with
- * @param name fill in buffer for the name without keywords.
- * @param nameCapacity capacity of the fill in buffer.
- * @param err error information if retrieving the full name failed
- * @return the actual buffer size needed for the full name.  If it's greater 
- * than nameCapacity, the returned full name will be truncated.  
- * @stable ICU 2.8
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getBaseName(const char*    localeID,
-         char* name,
-         int32_t nameCapacity,
-         UErrorCode* err);
-
-/**
- * Gets an enumeration of keywords for the specified locale. Enumeration
- * must get disposed of by the client using uenum_close function.
- *
- * @param localeID the locale to get the variant code with
- * @param status error information if retrieving the keywords failed
- * @return enumeration of keywords or NULL if there are no keywords.
- * @stable ICU 2.8
- */
-U_STABLE UEnumeration* U_EXPORT2
-uloc_openKeywords(const char* localeID,
-                        UErrorCode* status);
-
-/**
- * Get the value for a keyword. Locale name does not need to be normalized.
- * 
- * @param localeID locale name containing the keyword ("de_DE@currency=EURO;collation=PHONEBOOK")
- * @param keywordName name of the keyword for which we want the value. Case insensitive.
- * @param buffer receiving buffer
- * @param bufferCapacity capacity of receiving buffer
- * @param status containing error code - buffer not big enough.
- * @return the length of keyword value
- * @stable ICU 2.8
- */
-U_STABLE int32_t U_EXPORT2
-uloc_getKeywordValue(const char* localeID,
-                     const char* keywordName,
-                     char* buffer, int32_t bufferCapacity,
-                     UErrorCode* status);
-
-
-/**
- * Set the value of the specified keyword.
- * NOTE: Unlike almost every other ICU function which takes a
- * buffer, this function will NOT truncate the output text. If a
- * BUFFER_OVERFLOW_ERROR is received, it means that the original
- * buffer is untouched. This is done to prevent incorrect or possibly
- * even malformed locales from being generated and used.
- * 
- * @param keywordName name of the keyword to be set. Case insensitive.
- * @param keywordValue value of the keyword to be set. If 0-length or
- *  NULL, will result in the keyword being removed. No error is given if 
- *  that keyword does not exist.
- * @param buffer input buffer containing locale to be modified.
- * @param bufferCapacity capacity of receiving buffer
- * @param status containing error code - buffer not big enough.
- * @return the length needed for the buffer
- * @see uloc_getKeywordValue
- * @stable ICU 3.2
- */
-U_STABLE int32_t U_EXPORT2
-uloc_setKeywordValue(const char* keywordName,
-                     const char* keywordValue,
-                     char* buffer, int32_t bufferCapacity,
-                     UErrorCode* status);
-
-/**
- * enums for the  return value for the character and line orientation
- * functions.
- * @draft ICU 4.0
- */
-typedef enum {
-  ULOC_LAYOUT_LTR   = 0,  /* left-to-right. */
-  ULOC_LAYOUT_RTL    = 1,  /* right-to-left. */
-  ULOC_LAYOUT_TTB    = 2,  /* top-to-bottom. */
-  ULOC_LAYOUT_BTT    = 3,   /* bottom-to-top. */
-  ULOC_LAYOUT_UNKNOWN
-} ULayoutType;
-
-/**
- * Get the layout character orientation for the specified locale.
- * 
- * @param localeId locale name
- * @param status Error status
- * @return an enum indicating the layout orientation for characters.
- * @draft ICU 4.0
- */
-U_DRAFT ULayoutType U_EXPORT2
-uloc_getCharacterOrientation(const char* localeId,
-                             UErrorCode *status);
-
-/**
- * Get the layout line orientation for the specified locale.
- * 
- * @param localeId locale name
- * @param status Error status
- * @return an enum indicating the layout orientation for lines.
- * @draft ICU 4.0
- */
-U_DRAFT ULayoutType U_EXPORT2
-uloc_getLineOrientation(const char* localeId,
-                        UErrorCode *status);
-
-/**
- * enums for the 'outResult' parameter return value
- * @see uloc_acceptLanguageFromHTTP
- * @see uloc_acceptLanguage
- * @stable ICU 3.2
- */
-typedef enum {
-  ULOC_ACCEPT_FAILED   = 0,  /* No exact match was found. */
-  ULOC_ACCEPT_VALID    = 1,  /* An exact match was found. */
-  ULOC_ACCEPT_FALLBACK = 2   /* A fallback was found, for example, 
-                                Accept list contained 'ja_JP'
-                                which matched available locale 'ja'. */
-} UAcceptResult;
-
-
-/**
- * Based on a HTTP header from a web browser and a list of available locales,
- * determine an acceptable locale for the user.
- * @param result - buffer to accept the result locale
- * @param resultAvailable the size of the result buffer.
- * @param outResult - An out parameter that contains the fallback status
- * @param httpAcceptLanguage - "Accept-Language:" header as per HTTP.
- * @param availableLocales - list of available locales to match
- * @param status Error status, may be BUFFER_OVERFLOW_ERROR
- * @return length needed for the locale.
- * @stable ICU 3.2
- */
-U_STABLE int32_t U_EXPORT2
-uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable,
-                            UAcceptResult *outResult,
-                            const char *httpAcceptLanguage,
-                            UEnumeration* availableLocales,
-                            UErrorCode *status);
-
-/**
- * Based on a list of available locales,
- * determine an acceptable locale for the user.
- * @param result - buffer to accept the result locale
- * @param resultAvailable the size of the result buffer.
- * @param outResult - An out parameter that contains the fallback status
- * @param acceptList - list of acceptable languages
- * @param acceptListCount - count of acceptList items
- * @param availableLocales - list of available locales to match
- * @param status Error status, may be BUFFER_OVERFLOW_ERROR
- * @return length needed for the locale.
- * @stable ICU 3.2
- */
-U_STABLE int32_t U_EXPORT2
-uloc_acceptLanguage(char *result, int32_t resultAvailable, 
-                    UAcceptResult *outResult, const char **acceptList,
-                    int32_t acceptListCount,
-                    UEnumeration* availableLocales,
-                    UErrorCode *status);
-
-
-/**
- * Gets the ICU locale ID for the specified Win32 LCID value.
- *
- * @param hostID the Win32 LCID to translate
- * @param locale the output buffer for the ICU locale ID, which will be NUL-terminated
- *  if there is room.
- * @param localeCapacity the size of the output buffer
- * @param status an error is returned if the LCID is unrecognized or the output buffer
- *  is too small
- * @return actual the actual size of the locale ID, not including NUL-termination 
- * @stable ICU 4.0
- */
-U_DRAFT int32_t U_EXPORT2
-uloc_getLocaleForLCID(uint32_t hostID, char *locale, int32_t localeCapacity,
-                    UErrorCode *status);
-
-
-/**
- * Add the likely subtags for a provided locale ID, per the algorithm described
- * in the following CLDR technical report:
- *
- *   http://www.unicode.org/reports/tr35/#Likely_Subtags
- *
- * If localeID is already in the maximal form, or there is no data available
- * for maximization, it will be copied to the output buffer.  For example,
- * "und-Zzzz" cannot be maximized, since there is no reasonable maximization.
- *
- * Examples:
- *
- * "en" maximizes to "en_Latn_US"
- *
- * "de" maximizes to "de_Latn_US"
- *
- * "sr" maximizes to "sr_Cyrl_RS"
- *
- * "sh" maximizes to "sr_Latn_RS" (Note this will not reverse.)
- *
- * "zh_Hani" maximizes to "zh_Hans_CN" (Note this will not reverse.)
- *
- * @param localeID The locale to maximize
- * @param maximizedLocaleID The maximized locale
- * @param maximizedLocaleIDCapacity The capacity of the maximizedLocaleID buffer
- * @param err Error information if maximizing the locale failed.  If the length
- * of the localeID and the null-terminator is greater than the maximum allowed size,
- * or the localeId is not well-formed, the error code is U_ILLEGAL_ARGUMENT_ERROR.
- * @return The actual buffer size needed for the maximized locale.  If it's
- * greater than maximizedLocaleIDCapacity, the returned ID will be truncated.
- * On error, the return value is -1.
- * @draft ICU 4.0
- */
-U_DRAFT int32_t U_EXPORT2
-uloc_addLikelySubtags(const char*    localeID,
-         char* maximizedLocaleID,
-         int32_t maximizedLocaleIDCapacity,
-         UErrorCode* err);
-
-
-/**
- * Minimize the subtags for a provided locale ID, per the algorithm described
- * in the following CLDR technical report:
- *
- *   http://www.unicode.org/reports/tr35/#Likely_Subtags
- *
- * If localeID is already in the minimal form, or there is no data available
- * for minimization, it will be copied to the output buffer.  Since the
- * minimization algorithm relies on proper maximization, see the comments
- * for uloc_addLikelySubtags for reasons why there might not be any data.
- *
- * Examples:
- *
- * "en_Latn_US" minimizes to "en"
- *
- * "de_Latn_US" minimizes to "de"
- *
- * "sr_Cyrl_RS" minimizes to "sr"
- *
- * "zh_Hant_TW" minimizes to "zh_TW" (The region is preferred to the
- * script, and minimizing to "zh" would imply "zh_Hans_CN".)
- *
- * @param localeID The locale to minimize
- * @param minimizedLocaleID The minimized locale
- * @param minimizedLocaleIDCapacity The capacity of the minimizedLocaleID buffer
- * @param err Error information if minimizing the locale failed.  If the length
- * of the localeID and the null-terminator is greater than the maximum allowed size,
- * or the localeId is not well-formed, the error code is U_ILLEGAL_ARGUMENT_ERROR.
- * @return The actual buffer size needed for the minimized locale.  If it's
- * greater than minimizedLocaleIDCapacity, the returned ID will be truncated.
- * On error, the return value is -1.
- * @draft ICU 4.0
- */
-U_DRAFT int32_t U_EXPORT2
-uloc_minimizeSubtags(const char*    localeID,
-         char* minimizedLocaleID,
-         int32_t minimizedLocaleIDCapacity,
-         UErrorCode* err);
-
-#endif /*_ULOC*/

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/ulocdata.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/ulocdata.h b/apps/couch_collate/platform/osx/icu/unicode/ulocdata.h
deleted file mode 100644
index 4a69994..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/ulocdata.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
-******************************************************************************
-*                                                                            *
-* Copyright (C) 2003-2007, International Business Machines                   *
-*                Corporation and others. All Rights Reserved.                *
-*                                                                            *
-******************************************************************************
-*   file name:  ulocdata.h
-*   encoding:   US-ASCII
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 2003Oct21
-*   created by: Ram Viswanadha
-*/
-
-#ifndef __ULOCDATA_H__
-#define __ULOCDATA_H__
-
-#include "unicode/ures.h"
-#include "unicode/uloc.h"
-#include "unicode/uset.h"
-
-/**
- * \file
- * \brief C API: Provides access to locale data. 
- */
-
-/** Forward declaration of the ULocaleData structure. @stable ICU 3.6 */
-struct ULocaleData;
-
-/** A locale data object. @stable ICU 3.6 */
-typedef struct ULocaleData ULocaleData;
-
-
-
-/** The possible types of exemplar character sets.
-  * @stable ICU 3.4
-  */
-typedef enum ULocaleDataExemplarSetType  {
-     ULOCDATA_ES_STANDARD=0,      /* Basic set */
-     ULOCDATA_ES_AUXILIARY=1,     /* Auxiliary set */
-     ULOCDATA_ES_COUNT=2
-} ULocaleDataExemplarSetType;
-
-/** The possible types of delimiters.
-  * @stable ICU 3.4
-  */
-typedef enum ULocaleDataDelimiterType {
-    ULOCDATA_QUOTATION_START = 0,     /* Quotation start */
-     ULOCDATA_QUOTATION_END = 1,       /* Quotation end */
-     ULOCDATA_ALT_QUOTATION_START = 2, /* Alternate quotation start */
-     ULOCDATA_ALT_QUOTATION_END = 3,   /* Alternate quotation end */
-     ULOCDATA_DELIMITER_COUNT = 4
-} ULocaleDataDelimiterType;
-
-/**
- * Opens a locale data object for the given locale
- *
- * @param localeID  Specifies the locale associated with this locale
- *                  data object.
- * @param status    Pointer to error status code.
- * @stable ICU 3.4
- */
-U_STABLE ULocaleData* U_EXPORT2 
-ulocdata_open(const char *localeID, UErrorCode *status);
-
-/**
- * Closes a locale data object.
- *
- * @param uld       The locale data object to close
- * @stable ICU 3.4
- */
-U_STABLE void U_EXPORT2 
-ulocdata_close(ULocaleData *uld);
-
-/**
- * Sets the "no Substitute" attribute of the locale data
- * object.  If true, then any methods associated with the
- * locale data object will return null when there is no
- * data available for that method, given the locale ID
- * supplied to ulocdata_open().
- *
- * @param uld       The locale data object to set.
- * @param setting   Value of the "no substitute" attribute.
- * @stable ICU 3.4
- */
-U_STABLE void U_EXPORT2 
-ulocdata_setNoSubstitute(ULocaleData *uld, UBool setting);
-
-/**
- * Retrieves the current "no Substitute" value of the locale data
- * object.  If true, then any methods associated with the
- * locale data object will return null when there is no
- * data available for that method, given the locale ID
- * supplied to ulocdata_open().
- *
- * @param uld       Pointer to the The locale data object to set.
- * @return UBool    Value of the "no substitute" attribute.
- * @stable ICU 3.4
- */
-U_STABLE UBool U_EXPORT2 
-ulocdata_getNoSubstitute(ULocaleData *uld);
-
-/**
- * Returns the set of exemplar characters for a locale.
- *
- * @param uld       Pointer to the locale data object from which the 
- *                  exemplar character set is to be retrieved.
- * @param fillIn    Pointer to a USet object to receive the 
- *                  exemplar character set for the given locale.  Previous
- *                  contents of fillIn are lost.  <em>If fillIn is NULL,
- *                  then a new USet is created and returned.  The caller
- *                  owns the result and must dispose of it by calling
- *                  uset_close.</em>
- * @param options   Bitmask for options to apply to the exemplar pattern.
- *                  Specify zero to retrieve the exemplar set as it is
- *                  defined in the locale data.  Specify
- *                  USET_CASE_INSENSITIVE to retrieve a case-folded
- *                  exemplar set.  See uset_applyPattern for a complete
- *                  list of valid options.  The USET_IGNORE_SPACE bit is
- *                  always set, regardless of the value of 'options'.
- * @param extype    Specifies the type of exemplar set to be retrieved.
- * @param status    Pointer to an input-output error code value;
- *                  must not be NULL.
- * @return USet*    Either fillIn, or if fillIn is NULL, a pointer to
- *                  a newly-allocated USet that the user must close.
- * @stable ICU 3.4
- */
-U_STABLE USet* U_EXPORT2 
-ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn, 
-                        uint32_t options, ULocaleDataExemplarSetType extype, UErrorCode *status);
-
-/**
- * Returns one of the delimiter strings associated with a locale.
- *
- * @param uld           Pointer to the locale data object from which the 
- *                      delimiter string is to be retrieved.
- * @param type          the type of delimiter to be retrieved.
- * @param result        A pointer to a buffer to receive the result.
- * @param resultLength  The maximum size of result.
- * @param status        Pointer to an error code value
- * @return int32_t      The total buffer size needed; if greater than resultLength,
- *                      the output was truncated.
- * @stable ICU 3.4
- */
-U_STABLE int32_t U_EXPORT2 
-ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type, UChar *result, int32_t resultLength, UErrorCode *status);
-
-/**
- * Enumeration for representing the measurement systems.
- * @stable ICU 2.8
- */
-typedef enum UMeasurementSystem {
-    UMS_SI,     /** Measurement system specified by SI otherwise known as Metric system. */
-    UMS_US,     /** Measurement system followed in the United States of America. */ 
-    UMS_LIMIT
-} UMeasurementSystem;
-
-/**
- * Returns the measurement system used in the locale specified by the localeID.
- * Please note that this API will change in ICU 3.6 and will use an ulocdata object.
- *
- * @param localeID      The id of the locale for which the measurement system to be retrieved.
- * @param status        Must be a valid pointer to an error code value,
- *                      which must not indicate a failure before the function call.
- * @return UMeasurementSystem the measurement system used in the locale.
- * @stable ICU 2.8
- */
-U_STABLE UMeasurementSystem U_EXPORT2
-ulocdata_getMeasurementSystem(const char *localeID, UErrorCode *status);
-
-/**
- * Returns the element gives the normal business letter size, and customary units. 
- * The units for the numbers are always in <em>milli-meters</em>.
- * For US since 8.5 and 11 do not yeild an integral value when converted to milli-meters,
- * the values are rounded off.
- * So for A4 size paper the height and width are 297 mm and 210 mm repectively, 
- * and for US letter size the height and width are 279 mm and 216 mm respectively.
- * Please note that this API will change in ICU 3.6 and will use an ulocdata object.
- *
- * @param localeID      The id of the locale for which the paper size information to be retrieved.
- * @param height        A pointer to int to recieve the height information.
- * @param width         A pointer to int to recieve the width information.
- * @param status        Must be a valid pointer to an error code value,
- *                      which must not indicate a failure before the function call.
- * @stable ICU 2.8
- */
-U_STABLE void U_EXPORT2
-ulocdata_getPaperSize(const char *localeID, int32_t *height, int32_t *width, UErrorCode *status);
-
-#endif

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/umachine.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/umachine.h b/apps/couch_collate/platform/osx/icu/unicode/umachine.h
deleted file mode 100644
index 083f9cf..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/umachine.h
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
-******************************************************************************
-*
-*   Copyright (C) 1999-2006, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-*
-******************************************************************************
-*   file name:  umachine.h
-*   encoding:   US-ASCII
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 1999sep13
-*   created by: Markus W. Scherer
-*
-*   This file defines basic types and constants for utf.h to be
-*   platform-independent. umachine.h and utf.h are included into
-*   utypes.h to provide all the general definitions for ICU.
-*   All of these definitions used to be in utypes.h before
-*   the UTF-handling macros made this unmaintainable.
-*/
-
-#ifndef __UMACHINE_H__
-#define __UMACHINE_H__
-
-
-/**
- * \file
- * \brief Basic types and constants for UTF 
- * 
- * <h2> Basic types and constants for UTF </h2>
- *   This file defines basic types and constants for utf.h to be
- *   platform-independent. umachine.h and utf.h are included into
- *   utypes.h to provide all the general definitions for ICU.
- *   All of these definitions used to be in utypes.h before
- *   the UTF-handling macros made this unmaintainable.
- * 
- */
-/*==========================================================================*/
-/* Include platform-dependent definitions                                   */
-/* which are contained in the platform-specific file platform.h             */
-/*==========================================================================*/
-
-#if defined(U_PALMOS)
-#   include "unicode/ppalmos.h"
-#elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
-#   include "unicode/pwin32.h"
-#else
-#   include "unicode/platform.h"
-#endif
-
-/*
- * ANSI C headers:
- * stddef.h defines wchar_t
- */
-#include <stddef.h>
-
-/*==========================================================================*/
-/* XP_CPLUSPLUS is a cross-platform symbol which should be defined when     */
-/* using C++.  It should not be defined when compiling under C.             */
-/*==========================================================================*/
-
-#ifdef __cplusplus
-#   ifndef XP_CPLUSPLUS
-#       define XP_CPLUSPLUS
-#   endif
-#else
-#   undef XP_CPLUSPLUS
-#endif
-
-/*==========================================================================*/
-/* For C wrappers, we use the symbol U_STABLE.                                */
-/* This works properly if the includer is C or C++.                         */
-/* Functions are declared   U_STABLE return-type U_EXPORT2 function-name()... */
-/*==========================================================================*/
-
-/**
- * \def U_CFUNC
- * This is used in a declaration of a library private ICU C function.
- * @stable ICU 2.4
- */
-
-/**
- * \def U_CDECL_BEGIN
- * This is used to begin a declaration of a library private ICU C API.
- * @stable ICU 2.4
- */
-
-/**
- * \def U_CDECL_END
- * This is used to end a declaration of a library private ICU C API 
- * @stable ICU 2.4
- */
-
-#ifdef XP_CPLUSPLUS
-#   define U_CFUNC extern "C"
-#   define U_CDECL_BEGIN extern "C" {
-#   define U_CDECL_END   }
-#else
-#   define U_CFUNC extern
-#   define U_CDECL_BEGIN
-#   define U_CDECL_END
-#endif
-
-/** This is used to declare a function as a public ICU C API @stable ICU 2.0*/
-#define U_CAPI U_CFUNC U_EXPORT
-#define U_STABLE U_CAPI
-#define U_DRAFT  U_CAPI
-#define U_DEPRECATED U_CAPI
-#define U_OBSOLETE U_CAPI
-#define U_INTERNAL U_CAPI
-
-/*==========================================================================*/
-/* limits for int32_t etc., like in POSIX inttypes.h                        */
-/*==========================================================================*/
-
-#ifndef INT8_MIN
-/** The smallest value an 8 bit signed integer can hold @stable ICU 2.0 */
-#   define INT8_MIN        ((int8_t)(-128))
-#endif
-#ifndef INT16_MIN
-/** The smallest value a 16 bit signed integer can hold @stable ICU 2.0 */
-#   define INT16_MIN       ((int16_t)(-32767-1))
-#endif
-#ifndef INT32_MIN
-/** The smallest value a 32 bit signed integer can hold @stable ICU 2.0 */
-#   define INT32_MIN       ((int32_t)(-2147483647-1))
-#endif
-
-#ifndef INT8_MAX
-/** The largest value an 8 bit signed integer can hold @stable ICU 2.0 */
-#   define INT8_MAX        ((int8_t)(127))
-#endif
-#ifndef INT16_MAX
-/** The largest value a 16 bit signed integer can hold @stable ICU 2.0 */
-#   define INT16_MAX       ((int16_t)(32767))
-#endif
-#ifndef INT32_MAX
-/** The largest value a 32 bit signed integer can hold @stable ICU 2.0 */
-#   define INT32_MAX       ((int32_t)(2147483647))
-#endif
-
-#ifndef UINT8_MAX
-/** The largest value an 8 bit unsigned integer can hold @stable ICU 2.0 */
-#   define UINT8_MAX       ((uint8_t)(255U))
-#endif
-#ifndef UINT16_MAX
-/** The largest value a 16 bit unsigned integer can hold @stable ICU 2.0 */
-#   define UINT16_MAX      ((uint16_t)(65535U))
-#endif
-#ifndef UINT32_MAX
-/** The largest value a 32 bit unsigned integer can hold @stable ICU 2.0 */
-#   define UINT32_MAX      ((uint32_t)(4294967295U))
-#endif
-
-#if defined(U_INT64_T_UNAVAILABLE)
-# error int64_t is required for decimal format and rule-based number format.
-#else
-# ifndef INT64_C
-/**
- * Provides a platform independent way to specify a signed 64-bit integer constant.
- * note: may be wrong for some 64 bit platforms - ensure your compiler provides INT64_C
- * @stable ICU 2.8
- */
-#   define INT64_C(c) c ## LL
-# endif
-# ifndef UINT64_C
-/**
- * Provides a platform independent way to specify an unsigned 64-bit integer constant.
- * note: may be wrong for some 64 bit platforms - ensure your compiler provides UINT64_C
- * @stable ICU 2.8
- */
-#   define UINT64_C(c) c ## ULL
-# endif
-# ifndef U_INT64_MIN
-/** The smallest value a 64 bit signed integer can hold @stable ICU 2.8 */
-#     define U_INT64_MIN       ((int64_t)(INT64_C(-9223372036854775807)-1))
-# endif
-# ifndef U_INT64_MAX
-/** The largest value a 64 bit signed integer can hold @stable ICU 2.8 */
-#     define U_INT64_MAX       ((int64_t)(INT64_C(9223372036854775807)))
-# endif
-# ifndef U_UINT64_MAX
-/** The largest value a 64 bit unsigned integer can hold @stable ICU 2.8 */
-#     define U_UINT64_MAX      ((uint64_t)(UINT64_C(18446744073709551615)))
-# endif
-#endif
-
-/*==========================================================================*/
-/* Boolean data type                                                        */
-/*==========================================================================*/
-
-/** The ICU boolean type @stable ICU 2.0 */
-typedef int8_t UBool;
-
-#ifndef TRUE
-/** The TRUE value of a UBool @stable ICU 2.0 */
-#   define TRUE  1
-#endif
-#ifndef FALSE
-/** The FALSE value of a UBool @stable ICU 2.0 */
-#   define FALSE 0
-#endif
-
-
-/*==========================================================================*/
-/* Unicode data types                                                       */
-/*==========================================================================*/
-
-/* wchar_t-related definitions -------------------------------------------- */
-
-/**
- * \def U_HAVE_WCHAR_H
- * Indicates whether <wchar.h> is available (1) or not (0). Set to 1 by default.
- *
- * @stable ICU 2.0
- */
-#ifndef U_HAVE_WCHAR_H
-#   define U_HAVE_WCHAR_H 1
-#endif
-
-/**
- * \def U_SIZEOF_WCHAR_T
- * U_SIZEOF_WCHAR_T==sizeof(wchar_t) (0 means it is not defined or autoconf could not set it)
- *
- * @stable ICU 2.0
- */
-#if U_SIZEOF_WCHAR_T==0
-#   undef U_SIZEOF_WCHAR_T
-#   define U_SIZEOF_WCHAR_T 4
-#endif
-
-/*
- * \def U_WCHAR_IS_UTF16
- * Defined if wchar_t uses UTF-16.
- *
- * @stable ICU 2.0
- */
-/*
- * \def U_WCHAR_IS_UTF32
- * Defined if wchar_t uses UTF-32.
- *
- * @stable ICU 2.0
- */
-#if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32)
-#   ifdef __STDC_ISO_10646__ 
-#       if (U_SIZEOF_WCHAR_T==2)
-#           define U_WCHAR_IS_UTF16
-#       elif (U_SIZEOF_WCHAR_T==4)
-#           define  U_WCHAR_IS_UTF32
-#       endif
-#   elif defined __UCS2__
-#       if (__OS390__ || __OS400__) && (U_SIZEOF_WCHAR_T==2)
-#           define U_WCHAR_IS_UTF16
-#       endif
-#   elif defined __UCS4__
-#       if (U_SIZEOF_WCHAR_T==4)
-#           define U_WCHAR_IS_UTF32
-#       endif
-#   elif defined(U_WINDOWS)
-#       define U_WCHAR_IS_UTF16    
-#   endif
-#endif
-
-/* UChar and UChar32 definitions -------------------------------------------- */
-
-/** Number of bytes in a UChar. @stable ICU 2.0 */
-#define U_SIZEOF_UCHAR 2
-
-/**
- * \var UChar
- * Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned.
- * If wchar_t is not 16 bits wide, then define UChar to be uint16_t.
- * This makes the definition of UChar platform-dependent
- * but allows direct string type compatibility with platforms with
- * 16-bit wchar_t types.
- *
- * @stable ICU 2.0
- */
-
-/* Define UChar to be compatible with wchar_t if possible. */
-#if U_SIZEOF_WCHAR_T==2
-    typedef wchar_t UChar;
-#else
-    typedef uint16_t UChar;
-#endif
-
-/**
- * Define UChar32 as a type for single Unicode code points.
- * UChar32 is a signed 32-bit integer (same as int32_t).
- *
- * The Unicode code point range is 0..0x10ffff.
- * All other values (negative or >=0x110000) are illegal as Unicode code points.
- * They may be used as sentinel values to indicate "done", "error"
- * or similar non-code point conditions.
- *
- * Before ICU 2.4 (Jitterbug 2146), UChar32 was defined
- * to be wchar_t if that is 32 bits wide (wchar_t may be signed or unsigned)
- * or else to be uint32_t.
- * That is, the definition of UChar32 was platform-dependent.
- *
- * @see U_SENTINEL
- * @stable ICU 2.4
- */
-typedef int32_t UChar32;
-
-/*==========================================================================*/
-/* U_INLINE and U_ALIGN_CODE   Set default values if these are not already  */
-/*                             defined.  Definitions normally are in        */
-/*                             platform.h or the corresponding file for     */
-/*                             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.
- * This is useful for getting consistent performance test results.
- * @internal
- */
-#ifndef U_ALIGN_CODE
-#   define U_ALIGN_CODE(n)
-#endif
-
-#endif /* U_HIDE_INTERNAL_API */
-
-#ifndef U_INLINE
-#   ifdef XP_CPLUSPLUS
-#       define U_INLINE inline
-#   else
-#       define U_INLINE
-#   endif
-#endif
-
-#include "unicode/urename.h"
-
-#endif

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/umisc.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/umisc.h b/apps/couch_collate/platform/osx/icu/unicode/umisc.h
deleted file mode 100644
index d85451f..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/umisc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-**********************************************************************
-*   Copyright (C) 1999-2006, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-**********************************************************************
-*   file name:  umisc.h
-*   encoding:   US-ASCII
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 1999oct15
-*   created by: Markus W. Scherer
-*/
-
-#ifndef UMISC_H
-#define UMISC_H
-
-#include "unicode/utypes.h"
-
-/**
- * \file
- * \brief  C API:misc definitions 
- *
- *  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
- */
-typedef struct UFieldPosition {
-  /**
-   * The field 
-   * @stable ICU 2.0
-   */
-  int32_t field;
-  /**
-   * The start of the text range containing field 
-   * @stable ICU 2.0
-   */
-  int32_t beginIndex;
-  /** 
-   * The limit of the text range containing field 
-   * @stable ICU 2.0
-   */
-  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