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