couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From beno...@apache.org
Subject [21/57] [abbrv] remove couch_collate
Date Thu, 13 Feb 2014 18:12:19 GMT
http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/ubrk.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/ubrk.h b/apps/couch_collate/platform/osx/icu/unicode/ubrk.h
deleted file mode 100644
index d57ba37..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/ubrk.h
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
-******************************************************************************
-* Copyright (C) 1996-2007, International Business Machines Corporation and others.
-* All Rights Reserved.
-******************************************************************************
-*/
-
-#ifndef UBRK_H
-#define UBRK_H
-
-#include "unicode/utypes.h"
-#include "unicode/uloc.h"
-#include "unicode/utext.h"
-
-/**
- * A text-break iterator.
- *  For usage in C programs.
- */
-#ifndef UBRK_TYPEDEF_UBREAK_ITERATOR
-#   define UBRK_TYPEDEF_UBREAK_ITERATOR
-    /**
-     *  Opaque type representing an ICU Break iterator object.
-     *  @stable ICU 2.0
-     */
-    typedef void UBreakIterator;
-#endif
-
-#if !UCONFIG_NO_BREAK_ITERATION
-
-#include "unicode/parseerr.h"
-
-/**
- * \file
- * \brief C API: BreakIterator
- *
- * <h2> BreakIterator C API </h2>
- *
- * The BreakIterator C API defines  methods for finding the location
- * of boundaries in text. Pointer to a UBreakIterator maintain a
- * current position and scan over text returning the index of characters
- * where boundaries occur.
- * <p>
- * Line boundary analysis determines where a text string can be broken
- * when line-wrapping. The mechanism correctly handles punctuation and
- * hyphenated words.
- * <p>
- * Sentence boundary analysis allows selection with correct
- * interpretation of periods within numbers and abbreviations, and
- * trailing punctuation marks such as quotation marks and parentheses.
- * <p>
- * Word boundary analysis is used by search and replace functions, as
- * well as within text editing applications that allow the user to
- * select words with a double click. Word selection provides correct
- * interpretation of punctuation marks within and following
- * words. Characters that are not part of a word, such as symbols or
- * punctuation marks, have word-breaks on both sides.
- * <p>
- * Character boundary analysis allows users to interact with
- * characters as they expect to, for example, when moving the cursor
- * through a text string. Character boundary analysis provides correct
- * navigation of through character strings, regardless of how the
- * character is stored.  For example, an accented character might be
- * stored as a base character and a diacritical mark. What users
- * consider to be a character can differ between languages.
- * <p>
- * Title boundary analysis locates all positions,
- * typically starts of words, that should be set to Title Case
- * when title casing the text.
- * <p>
- * The text boundary positions are found according to the rules
- * described in Unicode Standard Annex #29, Text Boundaries, and
- * Unicode Standard Annex #14, Line Breaking Properties.  These
- * are available at http://www.unicode.org/reports/tr14/ and
- * http://www.unicode.org/reports/tr29/.
- * <p>
- * In addition to the plain C API defined in this header file, an
- * object oriented C++ API with equivalent functionality is defined in the
- * file brkiter.h.
- * <p>
- * Code snippits illustrating the use of the Break Iterator APIs
- * are available in the ICU User Guide,
- * http://icu-project.org/userguide/boundaryAnalysis.html
- * and in the sample program icu/source/samples/break/break.cpp"
- */
-
-/** The possible types of text boundaries.  @stable ICU 2.0 */
-typedef enum UBreakIteratorType {
-  /** Character breaks  @stable ICU 2.0 */
-  UBRK_CHARACTER = 0,
-  /** Word breaks @stable ICU 2.0 */
-  UBRK_WORD = 1,
-  /** Line breaks @stable ICU 2.0 */
-  UBRK_LINE = 2,
-  /** Sentence breaks @stable ICU 2.0 */
-  UBRK_SENTENCE = 3,
-
-#ifndef U_HIDE_DEPRECATED_API
-  /**
-   * Title Case breaks
-   * The iterator created using this type locates title boundaries as described for
-   * Unicode 3.2 only. For Unicode 4.0 and above title boundary iteration,
-   * please use Word Boundary iterator.
-   *
-   * @deprecated ICU 2.8 Use the word break iterator for titlecasing for Unicode 4 and later.
-   */
-  UBRK_TITLE = 4,
-#endif /* U_HIDE_DEPRECATED_API */
-  UBRK_COUNT = 5
-} UBreakIteratorType;
-
-/** Value indicating all text boundaries have been returned.
- *  @stable ICU 2.0
- */
-#define UBRK_DONE ((int32_t) -1)
-
-
-/**
- *  Enum constants for the word break tags returned by
- *  getRuleStatus().  A range of values is defined for each category of
- *  word, to allow for further subdivisions of a category in future releases.
- *  Applications should check for tag values falling within the range, rather
- *  than for single individual values.
- *  @stable ICU 2.2
-*/
-typedef enum UWordBreak {
-    /** Tag value for "words" that do not fit into any of other categories.
-     *  Includes spaces and most punctuation. */
-    UBRK_WORD_NONE           = 0,
-    /** Upper bound for tags for uncategorized words. */
-    UBRK_WORD_NONE_LIMIT     = 100,
-    /** Tag value for words that appear to be numbers, lower limit.    */
-    UBRK_WORD_NUMBER         = 100,
-    /** Tag value for words that appear to be numbers, upper limit.    */
-    UBRK_WORD_NUMBER_LIMIT   = 200,
-    /** Tag value for words that contain letters, excluding
-     *  hiragana, katakana or ideographic characters, lower limit.    */
-    UBRK_WORD_LETTER         = 200,
-    /** Tag value for words containing letters, upper limit  */
-    UBRK_WORD_LETTER_LIMIT   = 300,
-    /** Tag value for words containing kana characters, lower limit */
-    UBRK_WORD_KANA           = 300,
-    /** Tag value for words containing kana characters, upper limit */
-    UBRK_WORD_KANA_LIMIT     = 400,
-    /** Tag value for words containing ideographic characters, lower limit */
-    UBRK_WORD_IDEO           = 400,
-    /** Tag value for words containing ideographic characters, upper limit */
-    UBRK_WORD_IDEO_LIMIT     = 500
-} UWordBreak;
-
-/**
- *  Enum constants for the line break tags returned by getRuleStatus().
- *  A range of values is defined for each category of
- *  word, to allow for further subdivisions of a category in future releases.
- *  Applications should check for tag values falling within the range, rather
- *  than for single individual values.
- *  @stable ICU 2.8
-*/
-typedef enum ULineBreakTag {
-    /** Tag value for soft line breaks, positions at which a line break
-      *  is acceptable but not required                */
-    UBRK_LINE_SOFT            = 0,
-    /** Upper bound for soft line breaks.              */
-    UBRK_LINE_SOFT_LIMIT      = 100,
-    /** Tag value for a hard, or mandatory line break  */
-    UBRK_LINE_HARD            = 100,
-    /** Upper bound for hard line breaks.              */
-    UBRK_LINE_HARD_LIMIT      = 200
-} ULineBreakTag;
-
-
-
-/**
- *  Enum constants for the sentence break tags returned by getRuleStatus().
- *  A range of values is defined for each category of
- *  sentence, to allow for further subdivisions of a category in future releases.
- *  Applications should check for tag values falling within the range, rather
- *  than for single individual values.
- *  @stable ICU 2.8
-*/
-typedef enum USentenceBreakTag {
-    /** Tag value for for sentences  ending with a sentence terminator
-      * ('.', '?', '!', etc.) character, possibly followed by a
-      * hard separator (CR, LF, PS, etc.)
-      */
-    UBRK_SENTENCE_TERM       = 0,
-    /** Upper bound for tags for sentences ended by sentence terminators.    */
-    UBRK_SENTENCE_TERM_LIMIT = 100,
-    /** Tag value for for sentences that do not contain an ending
-      * sentence terminator ('.', '?', '!', etc.) character, but
-      * are ended only by a hard separator (CR, LF, PS, etc.) or end of input.
-      */
-    UBRK_SENTENCE_SEP        = 100,
-    /** Upper bound for tags for sentences ended by a separator.              */
-    UBRK_SENTENCE_SEP_LIMIT  = 200
-    /** Tag value for a hard, or mandatory line break  */
-} USentenceBreakTag;
-
-
-/**
- * Open a new UBreakIterator for locating text boundaries for a specified locale.
- * A UBreakIterator may be used for detecting character, line, word,
- * and sentence breaks in text.
- * @param type The type of UBreakIterator to open: one of UBRK_CHARACTER, UBRK_WORD,
- * UBRK_LINE, UBRK_SENTENCE
- * @param locale The locale specifying the text-breaking conventions.
- * @param text The text to be iterated over.
- * @param textLength The number of characters in text, or -1 if null-terminated.
- * @param status A UErrorCode to receive any errors.
- * @return A UBreakIterator for the specified locale.
- * @see ubrk_openRules
- * @stable ICU 2.0
- */
-U_STABLE UBreakIterator* U_EXPORT2
-ubrk_open(UBreakIteratorType type,
-      const char *locale,
-      const UChar *text,
-      int32_t textLength,
-      UErrorCode *status);
-
-/**
- * Open a new UBreakIterator for locating text boundaries using specified breaking rules.
- * The rule syntax is ... (TBD)
- * @param rules A set of rules specifying the text breaking conventions.
- * @param rulesLength The number of characters in rules, or -1 if null-terminated.
- * @param text The text to be iterated over.  May be null, in which case ubrk_setText() is
- *        used to specify the text to be iterated.
- * @param textLength The number of characters in text, or -1 if null-terminated.
- * @param parseErr   Receives position and context information for any syntax errors
- *                   detected while parsing the rules.
- * @param status A UErrorCode to receive any errors.
- * @return A UBreakIterator for the specified rules.
- * @see ubrk_open
- * @stable ICU 2.2
- */
-U_STABLE UBreakIterator* U_EXPORT2
-ubrk_openRules(const UChar     *rules,
-               int32_t         rulesLength,
-               const UChar     *text,
-               int32_t          textLength,
-               UParseError     *parseErr,
-               UErrorCode      *status);
-
-/**
- * Thread safe cloning operation
- * @param bi iterator to be cloned
- * @param stackBuffer user allocated space for the new clone. If NULL new memory will be allocated.
- *  If buffer is not large enough, new memory will be allocated.
- *  Clients can use the U_BRK_SAFECLONE_BUFFERSIZE. This will probably be enough to avoid memory allocations.
- * @param pBufferSize pointer to size of allocated space.
- *  If *pBufferSize == 0, a sufficient size for use in cloning will
- *  be returned ('pre-flighting')
- *  If *pBufferSize is not enough for a stack-based safe clone,
- *  new memory will be allocated.
- * @param status to indicate whether the operation went on smoothly or there were errors
- *  An informational status value, U_SAFECLONE_ALLOCATED_ERROR, is used if any allocations were necessary.
- * @return pointer to the new clone
- * @stable ICU 2.0
- */
-U_STABLE UBreakIterator * U_EXPORT2
-ubrk_safeClone(
-          const UBreakIterator *bi,
-          void *stackBuffer,
-          int32_t *pBufferSize,
-          UErrorCode *status);
-
-/**
-  * A recommended size (in bytes) for the memory buffer to be passed to ubrk_saveClone().
-  * @stable ICU 2.0
-  */
-#define U_BRK_SAFECLONE_BUFFERSIZE 512
-
-/**
-* Close a UBreakIterator.
-* Once closed, a UBreakIterator may no longer be used.
-* @param bi The break iterator to close.
- * @stable ICU 2.0
-*/
-U_STABLE void U_EXPORT2
-ubrk_close(UBreakIterator *bi);
-
-/**
- * Sets an existing iterator to point to a new piece of text
- * @param bi The iterator to use
- * @param text The text to be set
- * @param textLength The length of the text
- * @param status The error code
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2
-ubrk_setText(UBreakIterator* bi,
-             const UChar*    text,
-             int32_t         textLength,
-             UErrorCode*     status);
-
-
-/**
- * Sets an existing iterator to point to a new piece of text
- * @param bi The iterator to use
- * @param text The text to be set.
- *             This function makes a shallow clone of the supplied UText.  This means
- *             that the caller is free to immediately close or otherwise reuse the
- *             UText that was passed as a parameter, but that the underlying text itself
- *             must not be altered while being referenced by the break iterator.
- * @param status The error code
- * @stable ICU 3.4
- */
-U_STABLE void U_EXPORT2
-ubrk_setUText(UBreakIterator* bi,
-             UText*          text,
-             UErrorCode*     status);
-
-
-
-/**
- * Determine the most recently-returned text boundary.
- *
- * @param bi The break iterator to use.
- * @return The character index most recently returned by \ref ubrk_next, \ref ubrk_previous,
- * \ref ubrk_first, or \ref ubrk_last.
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-ubrk_current(const UBreakIterator *bi);
-
-/**
- * Determine the text boundary following the current text boundary.
- *
- * @param bi The break iterator to use.
- * @return The character index of the next text boundary, or UBRK_DONE
- * if all text boundaries have been returned.
- * @see ubrk_previous
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-ubrk_next(UBreakIterator *bi);
-
-/**
- * Determine the text boundary preceding the current text boundary.
- *
- * @param bi The break iterator to use.
- * @return The character index of the preceding text boundary, or UBRK_DONE
- * if all text boundaries have been returned.
- * @see ubrk_next
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-ubrk_previous(UBreakIterator *bi);
-
-/**
- * Determine the index of the first character in the text being scanned.
- * This is not always the same as index 0 of the text.
- * @param bi The break iterator to use.
- * @return The character index of the first character in the text being scanned.
- * @see ubrk_last
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-ubrk_first(UBreakIterator *bi);
-
-/**
- * Determine the index immediately <EM>beyond</EM> the last character in the text being
- * scanned.
- * This is not the same as the last character.
- * @param bi The break iterator to use.
- * @return The character offset immediately <EM>beyond</EM> the last character in the
- * text being scanned.
- * @see ubrk_first
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-ubrk_last(UBreakIterator *bi);
-
-/**
- * Determine the text boundary preceding the specified offset.
- * The value returned is always smaller than offset, or UBRK_DONE.
- * @param bi The break iterator to use.
- * @param offset The offset to begin scanning.
- * @return The text boundary preceding offset, or UBRK_DONE.
- * @see ubrk_following
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-ubrk_preceding(UBreakIterator *bi,
-           int32_t offset);
-
-/**
- * Determine the text boundary following the specified offset.
- * The value returned is always greater than offset, or UBRK_DONE.
- * @param bi The break iterator to use.
- * @param offset The offset to begin scanning.
- * @return The text boundary following offset, or UBRK_DONE.
- * @see ubrk_preceding
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2
-ubrk_following(UBreakIterator *bi,
-           int32_t offset);
-
-/**
-* Get a locale for which text breaking information is available.
-* A UBreakIterator in a locale returned by this function will perform the correct
-* text breaking for the locale.
-* @param index The index of the desired locale.
-* @return A locale for which number text breaking information is available, or 0 if none.
-* @see ubrk_countAvailable
-* @stable ICU 2.0
-*/
-U_STABLE const char* U_EXPORT2
-ubrk_getAvailable(int32_t index);
-
-/**
-* Determine how many locales have text breaking information available.
-* This function is most useful as determining the loop ending condition for
-* calls to \ref ubrk_getAvailable.
-* @return The number of locales for which text breaking information is available.
-* @see ubrk_getAvailable
-* @stable ICU 2.0
-*/
-U_STABLE int32_t U_EXPORT2
-ubrk_countAvailable(void);
-
-
-/**
-* Returns true if the specfied position is a boundary position.  As a side
-* effect, leaves the iterator pointing to the first boundary position at
-* or after "offset".
-* @param bi The break iterator to use.
-* @param offset the offset to check.
-* @return True if "offset" is a boundary position.
-* @stable ICU 2.0
-*/
-U_STABLE  UBool U_EXPORT2
-ubrk_isBoundary(UBreakIterator *bi, int32_t offset);
-
-/**
- * Return the status from the break rule that determined the most recently
- * returned break position.  The values appear in the rule source
- * within brackets, {123}, for example.  For rules that do not specify a
- * status, a default value of 0 is returned.
- * <p>
- * For word break iterators, the possible values are defined in enum UWordBreak.
- * @stable ICU 2.2
- */
-U_STABLE  int32_t U_EXPORT2
-ubrk_getRuleStatus(UBreakIterator *bi);
-
-/**
- * Get the statuses from the break rules that determined the most recently
- * returned break position.  The values appear in the rule source
- * within brackets, {123}, for example.  The default status value for rules
- * that do not explicitly provide one is zero.
- * <p>
- * For word break iterators, the possible values are defined in enum UWordBreak.
- * @param bi        The break iterator to use
- * @param fillInVec an array to be filled in with the status values.
- * @param capacity  the length of the supplied vector.  A length of zero causes
- *                  the function to return the number of status values, in the
- *                  normal way, without attemtping to store any values.
- * @param status    receives error codes.
- * @return          The number of rule status values from rules that determined
- *                  the most recent boundary returned by the break iterator.
- * @stable ICU 3.0
- */
-U_STABLE  int32_t U_EXPORT2
-ubrk_getRuleStatusVec(UBreakIterator *bi, int32_t *fillInVec, int32_t capacity, UErrorCode *status);
-
-/**
- * Return the locale of the break iterator. You can choose between the valid and
- * the actual locale.
- * @param bi break iterator
- * @param type locale type (valid or actual)
- * @param status error code
- * @return locale string
- * @stable ICU 2.8
- */
-U_STABLE const char* U_EXPORT2
-ubrk_getLocaleByType(const UBreakIterator *bi, ULocDataLocaleType type, UErrorCode* status);
-
-
-#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
-
-#endif

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/ucal.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/ucal.h b/apps/couch_collate/platform/osx/icu/unicode/ucal.h
deleted file mode 100644
index 9ba2668..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/ucal.h
+++ /dev/null
@@ -1,1161 +0,0 @@
-/*
- *******************************************************************************
- * Copyright (C) 1996-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- *******************************************************************************
- */
-
-#ifndef UCAL_H
-#define UCAL_H
-
-#include "unicode/utypes.h"
-#include "unicode/uenum.h"
-#include "unicode/uloc.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-/**
- * \file
- * \brief C API: Calendar
- *
- * <h2>Calendar C API</h2>
- *
- * UCalendar C API is used  for converting between a <code>UDate</code> object
- * and a set of integer fields such as <code>UCAL_YEAR</code>, <code>UCAL_MONTH</code>,
- * <code>UCAL_DAY</code>, <code>UCAL_HOUR</code>, and so on.
- * (A <code>UDate</code> object represents a specific instant in
- * time with millisecond precision. See UDate
- * for information about the <code>UDate</code> .)
- *
- * <p>
- * Types of <code>UCalendar</code> interpret a <code>UDate</code>
- * according to the rules of a specific calendar system. The U_STABLE
- * provides the enum UCalendarType with UCAL_TRADITIONAL and
- * UCAL_GREGORIAN.
- * <p>
- * Like other locale-sensitive C API, calendar API  provides a
- * function, <code>ucal_open()</code>, which returns a pointer to
- * <code>UCalendar</code> whose time fields have been initialized
- * with the current date and time. We need to specify the type of
- * calendar to be opened and the  timezoneId.
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code
- * UCalendar *caldef;
- * UChar *tzId;
- * UErrorCode status;
- * tzId=(UChar*)malloc(sizeof(UChar) * (strlen("PST") +1) );
- * u_uastrcpy(tzId, "PST");
- * caldef=ucal_open(tzID, u_strlen(tzID), NULL, UCAL_TRADITIONAL, &status);
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- *
- * <p>
- * A <code>UCalendar</code> object can produce all the time field values
- * needed to implement the date-time formatting for a particular language
- * and calendar style (for example, Japanese-Gregorian, Japanese-Traditional).
- *
- * <p>
- * When computing a <code>UDate</code> from time fields, two special circumstances
- * may arise: there may be insufficient information to compute the
- * <code>UDate</code> (such as only year and month but no day in the month),
- * or there may be inconsistent information (such as "Tuesday, July 15, 1996"
- * -- July 15, 1996 is actually a Monday).
- *
- * <p>
- * <strong>Insufficient information.</strong> The calendar will use default
- * information to specify the missing fields. This may vary by calendar; for
- * the Gregorian calendar, the default for a field is the same as that of the
- * start of the epoch: i.e., UCAL_YEAR = 1970, UCAL_MONTH = JANUARY, UCAL_DATE = 1, etc.
- *
- * <p>
- * <strong>Inconsistent information.</strong> If fields conflict, the calendar
- * will give preference to fields set more recently. For example, when
- * determining the day, the calendar will look for one of the following
- * combinations of fields.  The most recent combination, as determined by the
- * most recently set single field, will be used.
- *
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code
- * UCAL_MONTH + UCAL_DAY_OF_MONTH
- * UCAL_MONTH + UCAL_WEEK_OF_MONTH + UCAL_DAY_OF_WEEK
- * UCAL_MONTH + UCAL_DAY_OF_WEEK_IN_MONTH + UCAL_DAY_OF_WEEK
- * UCAL_DAY_OF_YEAR
- * UCAL_DAY_OF_WEEK + UCAL_WEEK_OF_YEAR
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- *
- * For the time of day:
- *
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * \code
- * UCAL_HOUR_OF_DAY
- * UCAL_AM_PM + UCAL_HOUR
- * \endcode
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
- *
- * <p>
- * <strong>Note:</strong> for some non-Gregorian calendars, different
- * fields may be necessary for complete disambiguation. For example, a full
- * specification of the historial Arabic astronomical calendar requires year,
- * month, day-of-month <em>and</em> day-of-week in some cases.
- *
- * <p>
- * <strong>Note:</strong> There are certain possible ambiguities in
- * interpretation of certain singular times, which are resolved in the
- * following ways:
- * <ol>
- *     <li> 24:00:00 "belongs" to the following day. That is,
- *          23:59 on Dec 31, 1969 &lt; 24:00 on Jan 1, 1970 &lt; 24:01:00 on Jan 1, 1970
- *
- *     <li> Although historically not precise, midnight also belongs to "am",
- *          and noon belongs to "pm", so on the same day,
- *          12:00 am (midnight) &lt; 12:01 am, and 12:00 pm (noon) &lt; 12:01 pm
- * </ol>
- *
- * <p>
- * The date or time format strings are not part of the definition of a
- * calendar, as those must be modifiable or overridable by the user at
- * runtime. Use {@link DateFormat}
- * to format dates.
- *
- * <p>
- * <code>Calendar</code> provides an API for field "rolling", where fields
- * can be incremented or decremented, but wrap around. For example, rolling the
- * month up in the date <code>December 12, <b>1996</b></code> results in
- * <code>January 12, <b>1996</b></code>.
- *
- * <p>
- * <code>Calendar</code> also provides a date arithmetic function for
- * adding the specified (signed) amount of time to a particular time field.
- * For example, subtracting 5 days from the date <code>September 12, 1996</code>
- * results in <code>September 7, 1996</code>.
- *
- * @stable ICU 2.0
- */
-
-/** A calendar.
- *  For usage in C programs.
- * @stable ICU 2.0
- */
-typedef void* UCalendar;
-
-/** Possible types of UCalendars 
- * @stable ICU 2.0
- */
-enum UCalendarType {
-  /**
-   * Despite the name, UCAL_TRADITIONAL designates the locale's default calendar,
-   * which may be the Gregorian calendar or some other calendar.
-   * @stable ICU 2.0
-   */
-  UCAL_TRADITIONAL,
-  /**
-   * Unambiguously designates the Gregorian calendar for the locale.
-   * @stable ICU 2.0
-   */
-  UCAL_GREGORIAN,
-  /**
-   * A better name for UCAL_TRADITIONAL.
-   * @draft ICU 4.2
-   */
-  UCAL_DEFAULT = UCAL_TRADITIONAL
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarType UCalendarType;
-
-/** Possible fields in a UCalendar 
- * @stable ICU 2.0
- */
-enum UCalendarDateFields {
-  /** 
-   * Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar. 
-   * This is a calendar-specific value.
-   * @stable ICU 2.6 
-   */
-  UCAL_ERA,
-
-  /**
-   * Field number indicating the year. This is a calendar-specific value.
-   * @stable ICU 2.6 
-   */
-  UCAL_YEAR,
-
-  /**
-   * Field number indicating the month. This is a calendar-specific value. 
-   * The first month of the year is
-   * <code>JANUARY</code>; the last depends on the number of months in a year.
-   * @see #UCAL_JANUARY
-   * @see #UCAL_FEBRUARY
-   * @see #UCAL_MARCH
-   * @see #UCAL_APRIL
-   * @see #UCAL_MAY
-   * @see #UCAL_JUNE
-   * @see #UCAL_JULY
-   * @see #UCAL_AUGUST
-   * @see #UCAL_SEPTEMBER
-   * @see #UCAL_OCTOBER
-   * @see #UCAL_NOVEMBER
-   * @see #UCAL_DECEMBER
-   * @see #UCAL_UNDECIMBER
-   * @stable ICU 2.6 
-   */
-  UCAL_MONTH,
-
-  /**
-   * Field number indicating the
-   * week number within the current year.  The first week of the year, as
-   * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code>
-   * attributes, has value 1.  Subclasses define
-   * the value of <code>UCAL_WEEK_OF_YEAR</code> for days before the first week of
-   * the year.
-   * @see ucal_getAttribute
-   * @see ucal_setAttribute
-   * @stable ICU 2.6 
-   */
-  UCAL_WEEK_OF_YEAR,
-
- /**
-   * Field number indicating the
-   * week number within the current month.  The first week of the month, as
-   * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code>
-   * attributes, has value 1.  Subclasses define
-   * the value of <code>WEEK_OF_MONTH</code> for days before the first week of
-   * the month.
-   * @see ucal_getAttribute
-   * @see ucal_setAttribute
-   * @see #UCAL_FIRST_DAY_OF_WEEK
-   * @see #UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
-   * @stable ICU 2.6 
-   */
-  UCAL_WEEK_OF_MONTH,
-
- /**
-   * Field number indicating the
-   * day of the month. This is a synonym for <code>DAY_OF_MONTH</code>.
-   * The first day of the month has value 1.
-   * @see #UCAL_DAY_OF_MONTH
-   * @stable ICU 2.6 
-   */
-  UCAL_DATE,
-
- /**
-   * Field number indicating the day
-   * number within the current year.  The first day of the year has value 1.
-   * @stable ICU 2.6 
-   */
-  UCAL_DAY_OF_YEAR,
-
- /**
-   * Field number indicating the day
-   * of the week.  This field takes values <code>SUNDAY</code>,
-   * <code>MONDAY</code>, <code>TUESDAY</code>, <code>WEDNESDAY</code>,
-   * <code>THURSDAY</code>, <code>FRIDAY</code>, and <code>SATURDAY</code>.
-   * @see #UCAL_SUNDAY
-   * @see #UCAL_MONDAY
-   * @see #UCAL_TUESDAY
-   * @see #UCAL_WEDNESDAY
-   * @see #UCAL_THURSDAY
-   * @see #UCAL_FRIDAY
-   * @see #UCAL_SATURDAY
-   * @stable ICU 2.6 
-   */
-  UCAL_DAY_OF_WEEK,
-
- /**
-   * Field number indicating the
-   * ordinal number of the day of the week within the current month. Together
-   * with the <code>DAY_OF_WEEK</code> field, this uniquely specifies a day
-   * within a month.  Unlike <code>WEEK_OF_MONTH</code> and
-   * <code>WEEK_OF_YEAR</code>, this field's value does <em>not</em> depend on
-   * <code>getFirstDayOfWeek()</code> or
-   * <code>getMinimalDaysInFirstWeek()</code>.  <code>DAY_OF_MONTH 1</code>
-   * through <code>7</code> always correspond to <code>DAY_OF_WEEK_IN_MONTH
-   * 1</code>; <code>8</code> through <code>15</code> correspond to
-   * <code>DAY_OF_WEEK_IN_MONTH 2</code>, and so on.
-   * <code>DAY_OF_WEEK_IN_MONTH 0</code> indicates the week before
-   * <code>DAY_OF_WEEK_IN_MONTH 1</code>.  Negative values count back from the
-   * end of the month, so the last Sunday of a month is specified as
-   * <code>DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1</code>.  Because
-   * negative values count backward they will usually be aligned differently
-   * within the month than positive values.  For example, if a month has 31
-   * days, <code>DAY_OF_WEEK_IN_MONTH -1</code> will overlap
-   * <code>DAY_OF_WEEK_IN_MONTH 5</code> and the end of <code>4</code>.
-   * @see #UCAL_DAY_OF_WEEK
-   * @see #UCAL_WEEK_OF_MONTH
-   * @stable ICU 2.6 
-   */
-  UCAL_DAY_OF_WEEK_IN_MONTH,
-
- /**
-   * Field number indicating
-   * whether the <code>HOUR</code> is before or after noon.
-   * E.g., at 10:04:15.250 PM the <code>AM_PM</code> is <code>PM</code>.
-   * @see #UCAL_AM
-   * @see #UCAL_PM
-   * @see #UCAL_HOUR
-   * @stable ICU 2.6 
-   */
-  UCAL_AM_PM,
-
- /**
-   * Field number indicating the
-   * hour of the morning or afternoon. <code>HOUR</code> is used for the 12-hour
-   * clock.
-   * E.g., at 10:04:15.250 PM the <code>HOUR</code> is 10.
-   * @see #UCAL_AM_PM
-   * @see #UCAL_HOUR_OF_DAY
-   * @stable ICU 2.6 
-   */
-  UCAL_HOUR,
-
- /**
-   * Field number indicating the
-   * hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock.
-   * E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22.
-   * @see #UCAL_HOUR
-   * @stable ICU 2.6 
-   */
-  UCAL_HOUR_OF_DAY,
-
- /**
-   * Field number indicating the
-   * minute within the hour.
-   * E.g., at 10:04:15.250 PM the <code>UCAL_MINUTE</code> is 4.
-   * @stable ICU 2.6 
-   */
-  UCAL_MINUTE,
-
- /**
-   * Field number indicating the
-   * second within the minute.
-   * E.g., at 10:04:15.250 PM the <code>UCAL_SECOND</code> is 15.
-   * @stable ICU 2.6 
-   */
-  UCAL_SECOND,
-
- /**
-   * Field number indicating the
-   * millisecond within the second.
-   * E.g., at 10:04:15.250 PM the <code>UCAL_MILLISECOND</code> is 250.
-   * @stable ICU 2.6 
-   */
-  UCAL_MILLISECOND,
-
- /**
-   * Field number indicating the
-   * raw offset from GMT in milliseconds.
-   * @stable ICU 2.6 
-   */
-  UCAL_ZONE_OFFSET,
-
- /**
-   * Field number indicating the
-   * daylight savings offset in milliseconds.
-   * @stable ICU 2.6 
-   */
-  UCAL_DST_OFFSET,
-  
- /**
-   * Field number 
-   * indicating the extended year corresponding to the
-   * <code>UCAL_WEEK_OF_YEAR</code> field.  This may be one greater or less
-   * than the value of <code>UCAL_EXTENDED_YEAR</code>.
-   * @stable ICU 2.6
-   */
-  UCAL_YEAR_WOY,
-
- /**
-   * Field number 
-   * indicating the localized day of week.  This will be a value from 1
-   * to 7 inclusive, with 1 being the localized first day of the week.
-   * @stable ICU 2.6
-   */
-  UCAL_DOW_LOCAL,
-
-  /**
-   * Year of this calendar system, encompassing all supra-year fields. For example, 
-   * in Gregorian/Julian calendars, positive Extended Year values indicate years AD,
-   *  1 BC = 0 extended, 2 BC = -1 extended, and so on. 
-   * @stable ICU 2.8 
-   */
-  UCAL_EXTENDED_YEAR,
-
- /**
-   * Field number 
-   * indicating the modified Julian day number.  This is different from
-   * the conventional Julian day number in two regards.  First, it
-   * demarcates days at local zone midnight, rather than noon GMT.
-   * Second, it is a local number; that is, it depends on the local time
-   * zone.  It can be thought of as a single number that encompasses all
-   * the date-related fields.
-   * @stable ICU 2.8
-   */
-  UCAL_JULIAN_DAY, 
-
-  /**
-   * Ranges from 0 to 23:59:59.999 (regardless of DST).  This field behaves <em>exactly</em> 
-   * like a composite of all time-related fields, not including the zone fields.  As such, 
-   * it also reflects discontinuities of those fields on DST transition days.  On a day
-   * of DST onset, it will jump forward.  On a day of DST cessation, it will jump 
-   * backward.  This reflects the fact that it must be combined with the DST_OFFSET field
-   * to obtain a unique local time value.
-   * @stable ICU 2.8
-   */
-  UCAL_MILLISECONDS_IN_DAY,
-
-  /**
-   * Whether or not the current month is a leap month (0 or 1). See the Chinese calendar for
-   * an example of this.
-   */
-  UCAL_IS_LEAP_MONTH,
-  
-  /**
-   * Field count
-   * @stable ICU 2.6
-   */
-  UCAL_FIELD_COUNT,
-
- /**
-   * Field number indicating the
-   * day of the month. This is a synonym for <code>UCAL_DATE</code>.
-   * The first day of the month has value 1.
-   * @see #UCAL_DATE
-   * Synonym for UCAL_DATE
-   * @stable ICU 2.8
-   **/
-  UCAL_DAY_OF_MONTH=UCAL_DATE
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarDateFields UCalendarDateFields;
-    /**
-     * Useful constant for days of week. Note: Calendar day-of-week is 1-based. Clients
-     * who create locale resources for the field of first-day-of-week should be aware of
-     * this. For instance, in US locale, first-day-of-week is set to 1, i.e., UCAL_SUNDAY.
-     */
-/** Possible days of the week in a UCalendar 
- * @stable ICU 2.0
- */
-enum UCalendarDaysOfWeek {
-  /** Sunday */
-  UCAL_SUNDAY = 1,
-  /** Monday */
-  UCAL_MONDAY,
-  /** Tuesday */
-  UCAL_TUESDAY,
-  /** Wednesday */
-  UCAL_WEDNESDAY,
-  /** Thursday */
-  UCAL_THURSDAY,
-  /** Friday */
-  UCAL_FRIDAY,
-  /** Saturday */
-  UCAL_SATURDAY
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarDaysOfWeek UCalendarDaysOfWeek;
-
-/** Possible months in a UCalendar. Note: Calendar month is 0-based.
- * @stable ICU 2.0
- */
-enum UCalendarMonths {
-  /** January */
-  UCAL_JANUARY,
-  /** February */
-  UCAL_FEBRUARY,
-  /** March */
-  UCAL_MARCH,
-  /** April */
-  UCAL_APRIL,
-  /** May */
-  UCAL_MAY,
-  /** June */
-  UCAL_JUNE,
-  /** July */
-  UCAL_JULY,
-  /** August */
-  UCAL_AUGUST,
-  /** September */
-  UCAL_SEPTEMBER,
-  /** October */
-  UCAL_OCTOBER,
-  /** November */
-  UCAL_NOVEMBER,
-  /** December */
-  UCAL_DECEMBER,
-  /** Value of the <code>UCAL_MONTH</code> field indicating the
-    * thirteenth month of the year. Although the Gregorian calendar
-    * does not use this value, lunar calendars do.
-    */
-  UCAL_UNDECIMBER
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarMonths UCalendarMonths;
-
-/** Possible AM/PM values in a UCalendar 
- * @stable ICU 2.0
- */
-enum UCalendarAMPMs {
-    /** AM */
-  UCAL_AM,
-  /** PM */
-  UCAL_PM
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarAMPMs UCalendarAMPMs;
-
-/**
- * Create an enumeration over all time zones.
- *
- * @param ec input/output error code
- *
- * @return an enumeration object that the caller must dispose of using
- * uenum_close(), or NULL upon failure. In case of failure *ec will
- * indicate the error.
- *
- * @stable ICU 2.6
- */
-U_STABLE UEnumeration* U_EXPORT2
-ucal_openTimeZones(UErrorCode* ec);
-
-/**
- * Create an enumeration over all time zones associated with the given
- * country. Some zones are affiliated with no country (e.g., "UTC");
- * these may also be retrieved, as a group.
- *
- * @param country the ISO 3166 two-letter country code, or NULL to
- * retrieve zones not affiliated with any country
- *
- * @param ec input/output error code
- *
- * @return an enumeration object that the caller must dispose of using
- * uenum_close(), or NULL upon failure. In case of failure *ec will
- * indicate the error.
- *
- * @stable ICU 2.6
- */
-U_STABLE UEnumeration* U_EXPORT2
-ucal_openCountryTimeZones(const char* country, UErrorCode* ec);
-
-/**
- * Return the default time zone. The default is determined initially
- * by querying the host operating system. It may be changed with
- * ucal_setDefaultTimeZone() or with the C++ TimeZone API.
- *
- * @param result A buffer to receive the result, or NULL
- *
- * @param resultCapacity The capacity of the result buffer
- *
- * @param ec input/output error code
- *
- * @return The result string length, not including the terminating
- * null
- *
- * @stable ICU 2.6
- */
-U_STABLE int32_t U_EXPORT2
-ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* ec);
-
-/**
- * Set the default time zone.
- *
- * @param zoneID null-terminated time zone ID
- *
- * @param ec input/output error code
- *
- * @stable ICU 2.6
- */
-U_STABLE void U_EXPORT2
-ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec);
-
-/**
- * Return the amount of time in milliseconds that the clock is
- * advanced during daylight savings time for the given time zone, or
- * zero if the time zone does not observe daylight savings time.
- *
- * @param zoneID null-terminated time zone ID
- *
- * @param ec input/output error code
- *
- * @return the number of milliseconds the time is advanced with
- * respect to standard time when the daylight savings rules are in
- * effect. This is always a non-negative number, most commonly either
- * 3,600,000 (one hour) or zero.
- *
- * @stable ICU 2.6
- */
-U_STABLE int32_t U_EXPORT2
-ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec);
-
-/**
- * Get the current date and time.
- * The value returned is represented as milliseconds from the epoch.
- * @return The current date and time.
- * @stable ICU 2.0
- */
-U_STABLE UDate U_EXPORT2 
-ucal_getNow(void);
-
-/**
- * Open a UCalendar.
- * A UCalendar may be used to convert a millisecond value to a year,
- * month, and day.
- * @param zoneID The desired TimeZone ID.  If 0, use the default time zone.
- * @param len The length of zoneID, or -1 if null-terminated.
- * @param locale The desired locale
- * @param type The type of UCalendar to open. This can be UCAL_GREGORIAN to open the Gregorian
- * calendar for the locale, or UCAL_DEFAULT to open the default calendar for the locale (the
- * default calendar may also be Gregorian). To open a specific non-Gregorian calendar for the
- * locale, use uloc_setKeywordValue to set the value of the calendar keyword for the locale
- * and then pass the locale to ucal_open with UCAL_DEFAULT as the type.
- * @param status A pointer to an UErrorCode to receive any errors
- * @return A pointer to a UCalendar, or 0 if an error occurred.
- * @stable ICU 2.0
- */
-U_STABLE UCalendar* U_EXPORT2 
-ucal_open(const UChar*   zoneID,
-          int32_t        len,
-          const char*    locale,
-          UCalendarType  type,
-          UErrorCode*    status);
-
-/**
- * Close a UCalendar.
- * Once closed, a UCalendar may no longer be used.
- * @param cal The UCalendar to close.
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_close(UCalendar *cal);
-
-/**
- * Open a copy of a UCalendar.
- * This function performs a deep copy.
- * @param cal The calendar to copy
- * @param status A pointer to an UErrorCode to receive any errors.
- * @return A pointer to a UCalendar identical to cal.
- * @draft ICU 4.0
- */
-U_DRAFT UCalendar* U_EXPORT2 
-ucal_clone(const UCalendar* cal,
-           UErrorCode*      status);
-
-/**
- * Set the TimeZone used by a UCalendar.
- * A UCalendar uses a timezone for converting from Greenwich time to local time.
- * @param cal The UCalendar to set.
- * @param zoneID The desired TimeZone ID.  If 0, use the default time zone.
- * @param len The length of zoneID, or -1 if null-terminated.
- * @param status A pointer to an UErrorCode to receive any errors.
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_setTimeZone(UCalendar*    cal,
-                 const UChar*  zoneID,
-                 int32_t       len,
-                 UErrorCode*   status);
-
-/**
- * Possible formats for a UCalendar's display name 
- * @stable ICU 2.0
- */
-enum UCalendarDisplayNameType {
-  /** Standard display name */
-  UCAL_STANDARD,
-  /** Short standard display name */
-  UCAL_SHORT_STANDARD,
-  /** Daylight savings display name */
-  UCAL_DST,
-  /** Short daylight savings display name */
-  UCAL_SHORT_DST
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarDisplayNameType UCalendarDisplayNameType;
-
-/**
- * Get the display name for a UCalendar's TimeZone.
- * A display name is suitable for presentation to a user.
- * @param cal          The UCalendar to query.
- * @param type         The desired display name format; one of UCAL_STANDARD, UCAL_SHORT_STANDARD,
- *                     UCAL_DST, UCAL_SHORT_DST
- * @param locale       The desired locale for the display name.
- * @param result       A pointer to a buffer to receive the formatted number.
- * @param resultLength The maximum size of result.
- * @param status       A pointer to an UErrorCode to receive any errors
- * @return             The total buffer size needed; if greater than resultLength, the output was truncated.
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2 
-ucal_getTimeZoneDisplayName(const UCalendar*          cal,
-                            UCalendarDisplayNameType  type,
-                            const char*               locale,
-                            UChar*                    result,
-                            int32_t                   resultLength,
-                            UErrorCode*               status);
-
-/**
- * Determine if a UCalendar is currently in daylight savings time.
- * Daylight savings time is not used in all parts of the world.
- * @param cal The UCalendar to query.
- * @param status A pointer to an UErrorCode to receive any errors
- * @return TRUE if cal is currently in daylight savings time, FALSE otherwise
- * @stable ICU 2.0
- */
-U_STABLE UBool U_EXPORT2 
-ucal_inDaylightTime(const UCalendar*  cal,
-                    UErrorCode*       status );
-
-/**
- * Sets the GregorianCalendar change date. This is the point when the switch from
- * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October
- * 15, 1582. Previous to this time and date will be Julian dates.
- *
- * This function works only for Gregorian calendars. If the UCalendar is not
- * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR
- * error code is set.
- *
- * @param cal        The calendar object.
- * @param date       The given Gregorian cutover date.
- * @param pErrorCode Pointer to a standard ICU error code. Its input value must
- *                   pass the U_SUCCESS() test, or else the function returns
- *                   immediately. Check for U_FAILURE() on output or use with
- *                   function chaining. (See User Guide for details.)
- *
- * @see GregorianCalendar::setGregorianChange
- * @see ucal_getGregorianChange
- * @stable ICU 3.6
- */
-U_STABLE void U_EXPORT2
-ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode);
-
-/**
- * Gets the Gregorian Calendar change date. This is the point when the switch from
- * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October
- * 15, 1582. Previous to this time and date will be Julian dates.
- *
- * This function works only for Gregorian calendars. If the UCalendar is not
- * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR
- * error code is set.
- *
- * @param cal        The calendar object.
- * @param pErrorCode Pointer to a standard ICU error code. Its input value must
- *                   pass the U_SUCCESS() test, or else the function returns
- *                   immediately. Check for U_FAILURE() on output or use with
- *                   function chaining. (See User Guide for details.)
- * @return   The Gregorian cutover time for this calendar.
- *
- * @see GregorianCalendar::getGregorianChange
- * @see ucal_setGregorianChange
- * @stable ICU 3.6
- */
-U_STABLE UDate U_EXPORT2
-ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode);
-
-/**
- * Types of UCalendar attributes 
- * @stable ICU 2.0
- */
-enum UCalendarAttribute {
-    /** Lenient parsing */
-  UCAL_LENIENT,
-  /** First day of week */
-  UCAL_FIRST_DAY_OF_WEEK,
-  /** Minimum number of days in first week */
-  UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarAttribute UCalendarAttribute;
-
-/**
- * Get a numeric attribute associated with a UCalendar.
- * Numeric attributes include the first day of the week, or the minimal numbers
- * of days in the first week of the month.
- * @param cal The UCalendar to query.
- * @param attr The desired attribute; one of UCAL_LENIENT, UCAL_FIRST_DAY_OF_WEEK,
- * or UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
- * @return The value of attr.
- * @see ucal_setAttribute
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2 
-ucal_getAttribute(const UCalendar*    cal,
-                  UCalendarAttribute  attr);
-
-/**
- * Set a numeric attribute associated with a UCalendar.
- * Numeric attributes include the first day of the week, or the minimal numbers
- * of days in the first week of the month.
- * @param cal The UCalendar to set.
- * @param attr The desired attribute; one of UCAL_LENIENT, UCAL_FIRST_DAY_OF_WEEK,
- * or UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
- * @param newValue The new value of attr.
- * @see ucal_getAttribute
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_setAttribute(UCalendar*          cal,
-                  UCalendarAttribute  attr,
-                  int32_t             newValue);
-
-/**
- * Get a locale for which calendars are available.
- * A UCalendar in a locale returned by this function will contain the correct
- * day and month names for the locale.
- * @param index The index of the desired locale.
- * @return A locale for which calendars are available, or 0 if none.
- * @see ucal_countAvailable
- * @stable ICU 2.0
- */
-U_STABLE const char* U_EXPORT2 
-ucal_getAvailable(int32_t index);
-
-/**
- * Determine how many locales have calendars available.
- * This function is most useful as determining the loop ending condition for
- * calls to \ref ucal_getAvailable.
- * @return The number of locales for which calendars are available.
- * @see ucal_getAvailable
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2 
-ucal_countAvailable(void);
-
-/**
- * Get a UCalendar's current time in millis.
- * The time is represented as milliseconds from the epoch.
- * @param cal The UCalendar to query.
- * @param status A pointer to an UErrorCode to receive any errors
- * @return The calendar's current time in millis.
- * @see ucal_setMillis
- * @see ucal_setDate
- * @see ucal_setDateTime
- * @stable ICU 2.0
- */
-U_STABLE UDate U_EXPORT2 
-ucal_getMillis(const UCalendar*  cal,
-               UErrorCode*       status);
-
-/**
- * Set a UCalendar's current time in millis.
- * The time is represented as milliseconds from the epoch.
- * @param cal The UCalendar to set.
- * @param dateTime The desired date and time.
- * @param status A pointer to an UErrorCode to receive any errors
- * @see ucal_getMillis
- * @see ucal_setDate
- * @see ucal_setDateTime
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_setMillis(UCalendar*   cal,
-               UDate        dateTime,
-               UErrorCode*  status );
-
-/**
- * Set a UCalendar's current date.
- * The date is represented as a series of 32-bit integers.
- * @param cal The UCalendar to set.
- * @param year The desired year.
- * @param month The desired month; one of UCAL_JANUARY, UCAL_FEBRUARY, UCAL_MARCH, UCAL_APRIL, UCAL_MAY,
- * UCAL_JUNE, UCAL_JULY, UCAL_AUGUST, UCAL_SEPTEMBER, UCAL_OCTOBER, UCAL_NOVEMBER, UCAL_DECEMBER, UCAL_UNDECIMBER
- * @param date The desired day of the month.
- * @param status A pointer to an UErrorCode to receive any errors
- * @see ucal_getMillis
- * @see ucal_setMillis
- * @see ucal_setDateTime
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_setDate(UCalendar*   cal,
-             int32_t      year,
-             int32_t      month,
-             int32_t      date,
-             UErrorCode*  status);
-
-/**
- * Set a UCalendar's current date.
- * The date is represented as a series of 32-bit integers.
- * @param cal The UCalendar to set.
- * @param year The desired year.
- * @param month The desired month; one of UCAL_JANUARY, UCAL_FEBRUARY, UCAL_MARCH, UCAL_APRIL, UCAL_MAY,
- * UCAL_JUNE, UCAL_JULY, UCAL_AUGUST, UCAL_SEPTEMBER, UCAL_OCTOBER, UCAL_NOVEMBER, UCAL_DECEMBER, UCAL_UNDECIMBER
- * @param date The desired day of the month.
- * @param hour The desired hour of day.
- * @param minute The desired minute.
- * @param second The desirec second.
- * @param status A pointer to an UErrorCode to receive any errors
- * @see ucal_getMillis
- * @see ucal_setMillis
- * @see ucal_setDate
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_setDateTime(UCalendar*   cal,
-                 int32_t      year,
-                 int32_t      month,
-                 int32_t      date,
-                 int32_t      hour,
-                 int32_t      minute,
-                 int32_t      second,
-                 UErrorCode*  status);
-
-/**
- * Returns TRUE if two UCalendars are equivalent.  Equivalent
- * UCalendars will behave identically, but they may be set to
- * different times.
- * @param cal1 The first of the UCalendars to compare.
- * @param cal2 The second of the UCalendars to compare.
- * @return TRUE if cal1 and cal2 are equivalent, FALSE otherwise.
- * @stable ICU 2.0
- */
-U_STABLE UBool U_EXPORT2 
-ucal_equivalentTo(const UCalendar*  cal1,
-                  const UCalendar*  cal2);
-
-/**
- * Add a specified signed amount to a particular field in a UCalendar.
- * This can modify more significant fields in the calendar.
- * @param cal The UCalendar to which to add.
- * @param field The field to which to add the signed value; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
- * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
- * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
- * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
- * @param amount The signed amount to add to field. If the amount causes the value
- * to exceed to maximum or minimum values for that field, other fields are modified
- * to preserve the magnitude of the change.
- * @param status A pointer to an UErrorCode to receive any errors
- * @see ucal_roll
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_add(UCalendar*           cal,
-         UCalendarDateFields  field,
-         int32_t              amount,
-         UErrorCode*          status);
-
-/**
- * Add a specified signed amount to a particular field in a UCalendar.
- * This will not modify more significant fields in the calendar.
- * @param cal The UCalendar to which to add.
- * @param field The field to which to add the signed value; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
- * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
- * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
- * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
- * @param amount The signed amount to add to field. If the amount causes the value
- * to exceed to maximum or minimum values for that field, the field is pinned to a permissible
- * value.
- * @param status A pointer to an UErrorCode to receive any errors
- * @see ucal_add
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_roll(UCalendar*           cal,
-          UCalendarDateFields  field,
-          int32_t              amount,
-          UErrorCode*          status);
-
-/**
- * Get the current value of a field from a UCalendar.
- * All fields are represented as 32-bit integers.
- * @param cal The UCalendar to query.
- * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
- * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
- * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
- * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
- * @param status A pointer to an UErrorCode to receive any errors
- * @return The value of the desired field.
- * @see ucal_set
- * @see ucal_isSet
- * @see ucal_clearField
- * @see ucal_clear
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2 
-ucal_get(const UCalendar*     cal,
-         UCalendarDateFields  field,
-         UErrorCode*          status );
-
-/**
- * Set the value of a field in a UCalendar.
- * All fields are represented as 32-bit integers.
- * @param cal The UCalendar to set.
- * @param field The field to set; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
- * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
- * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
- * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
- * @param value The desired value of field.
- * @see ucal_get
- * @see ucal_isSet
- * @see ucal_clearField
- * @see ucal_clear
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_set(UCalendar*           cal,
-         UCalendarDateFields  field,
-         int32_t              value);
-
-/**
- * Determine if a field in a UCalendar is set.
- * All fields are represented as 32-bit integers.
- * @param cal The UCalendar to query.
- * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
- * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
- * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
- * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
- * @return TRUE if field is set, FALSE otherwise.
- * @see ucal_get
- * @see ucal_set
- * @see ucal_clearField
- * @see ucal_clear
- * @stable ICU 2.0
- */
-U_STABLE UBool U_EXPORT2 
-ucal_isSet(const UCalendar*     cal,
-           UCalendarDateFields  field);
-
-/**
- * Clear a field in a UCalendar.
- * All fields are represented as 32-bit integers.
- * @param cal The UCalendar containing the field to clear.
- * @param field The field to clear; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
- * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
- * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
- * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
- * @see ucal_get
- * @see ucal_set
- * @see ucal_isSet
- * @see ucal_clear
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_clearField(UCalendar*           cal,
-                UCalendarDateFields  field);
-
-/**
- * Clear all fields in a UCalendar.
- * All fields are represented as 32-bit integers.
- * @param calendar The UCalendar to clear.
- * @see ucal_get
- * @see ucal_set
- * @see ucal_isSet
- * @see ucal_clearField
- * @stable ICU 2.0
- */
-U_STABLE void U_EXPORT2 
-ucal_clear(UCalendar* calendar);
-
-/**
- * Possible limit values for a UCalendar 
- * @stable ICU 2.0
- */
-enum UCalendarLimitType {
-  /** Minimum value */
-  UCAL_MINIMUM,
-  /** Maximum value */
-  UCAL_MAXIMUM,
-  /** Greatest minimum value */
-  UCAL_GREATEST_MINIMUM,
-  /** Leaest maximum value */
-  UCAL_LEAST_MAXIMUM,
-  /** Actual minimum value */
-  UCAL_ACTUAL_MINIMUM,
-  /** Actual maximum value */
-  UCAL_ACTUAL_MAXIMUM
-};
-
-/** @stable ICU 2.0 */
-typedef enum UCalendarLimitType UCalendarLimitType;
-
-/**
- * Determine a limit for a field in a UCalendar.
- * A limit is a maximum or minimum value for a field.
- * @param cal The UCalendar to query.
- * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
- * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
- * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
- * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
- * @param type The desired critical point; one of UCAL_MINIMUM, UCAL_MAXIMUM, UCAL_GREATEST_MINIMUM,
- * UCAL_LEAST_MAXIMUM, UCAL_ACTUAL_MINIMUM, UCAL_ACTUAL_MAXIMUM
- * @param status A pointer to an UErrorCode to receive any errors.
- * @return The requested value.
- * @stable ICU 2.0
- */
-U_STABLE int32_t U_EXPORT2 
-ucal_getLimit(const UCalendar*     cal,
-              UCalendarDateFields  field,
-              UCalendarLimitType   type,
-              UErrorCode*          status);
-
-/** Get the locale for this calendar object. You can choose between valid and actual locale.
- *  @param cal The calendar object
- *  @param type type of the locale we're looking for (valid or actual) 
- *  @param status error code for the operation
- *  @return the locale name
- *  @stable ICU 2.8
- */
-U_STABLE const char * U_EXPORT2
-ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status);
-
-/**
- * Returns the timezone data version currently used by ICU.
- * @param status error code for the operation
- * @return the version string, such as "2007f"
- * @stable ICU 3.8
- */
-U_DRAFT const char * U_EXPORT2
-ucal_getTZDataVersion(UErrorCode* status);
-
-/**
- * Returns the canonical system timezone ID or the normalized
- * custom time zone ID for the given time zone ID.
- * @param id        The input timezone ID to be canonicalized.
- * @param len       The length of id, or -1 if null-terminated.
- * @param result    The buffer receives the canonical system timezone ID
- *                  or the custom timezone ID in normalized format.
- * @param resultCapacity    The capacity of the result buffer.
- * @param isSystemID        Receives if the given ID is a known system
-     *                      timezone ID.
- * @param status    Recevies the status.  When the given timezone ID
- *                  is neither a known system time zone ID nor a
- *                  valid custom timezone ID, U_ILLEGAL_ARGUMENT_ERROR
- *                  is set.
- * @return          The result string length, not including the terminating
- *                  null.
- * @draft ICU 4.0
- */
-U_DRAFT int32_t U_EXPORT2
-ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len,
-                            UChar* result, int32_t resultCapacity, UBool *isSystemID, UErrorCode* status);
-/**
- * Get the resource keyword value string designating the calendar type for the UCalendar.
- * @param cal The UCalendar to query.
- * @param status The error code for the operation.
- * @return The resource keyword value string.
- * @draft ICU 4.2
- */
-U_DRAFT const char * U_EXPORT2
-ucal_getType(const UCalendar *cal, UErrorCode* status);
-
-/**
- * The following is a temporary Apple-specific API to help InternationalPrefs
- * transition to the updated version of the above ICU API. It will be removed soon.
- */
-U_DRAFT const char * U_EXPORT2
-ucal_getTypeWithError(const UCalendar *cal, UErrorCode* status);
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/ucasemap.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/ucasemap.h b/apps/couch_collate/platform/osx/icu/unicode/ucasemap.h
deleted file mode 100644
index 7ba622b..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/ucasemap.h
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
-*******************************************************************************
-*
-*   Copyright (C) 2005-2008, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-*
-*******************************************************************************
-*   file name:  ucasemap.h
-*   encoding:   US-ASCII
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 2005may06
-*   created by: Markus W. Scherer
-*
-*   Case mapping service object and functions using it.
-*/
-
-#ifndef __UCASEMAP_H__
-#define __UCASEMAP_H__
-
-#include "unicode/utypes.h"
-#include "unicode/ustring.h"
-
-/**
- * \file
- * \brief C API: Unicode case mapping functions using a UCaseMap service object.
- *
- * The service object takes care of memory allocations, data loading, and setup
- * for the attributes, as usual.
- *
- * Currently, the functionality provided here does not overlap with uchar.h
- * and ustring.h, except for ucasemap_toTitle().
- *
- * ucasemap_utf8XYZ() functions operate directly on UTF-8 strings.
- */
-
-/**
- * UCaseMap is an opaque service object for newer ICU case mapping functions.
- * Older functions did not use a service object.
- * @stable ICU 3.4
- */
-struct UCaseMap;
-typedef struct UCaseMap UCaseMap; /**< C typedef for struct UCaseMap. @stable ICU 3.4 */
-
-/**
- * Open a UCaseMap service object for a locale and a set of options.
- * The locale ID and options are preprocessed so that functions using the
- * service object need not process them in each call.
- *
- * @param locale ICU locale ID, used for language-dependent
- *               upper-/lower-/title-casing according to the Unicode standard.
- *               Usual semantics: ""=root, NULL=default locale, etc.
- * @param options Options bit set, used for case folding and string comparisons.
- *                Same flags as for u_foldCase(), u_strFoldCase(),
- *                u_strCaseCompare(), etc.
- *                Use 0 or U_FOLD_CASE_DEFAULT for default behavior.
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                   which must not indicate a failure before the function call.
- * @return Pointer to a UCaseMap service object, if successful.
- *
- * @see U_FOLD_CASE_DEFAULT
- * @see U_FOLD_CASE_EXCLUDE_SPECIAL_I
- * @see U_TITLECASE_NO_LOWERCASE
- * @see U_TITLECASE_NO_BREAK_ADJUSTMENT
- * @stable ICU 3.4
- */
-U_STABLE UCaseMap * U_EXPORT2
-ucasemap_open(const char *locale, uint32_t options, UErrorCode *pErrorCode);
-
-/**
- * Close a UCaseMap service object.
- * @param csm Object to be closed.
- * @stable ICU 3.4
- */
-U_STABLE void U_EXPORT2
-ucasemap_close(UCaseMap *csm);
-
-/**
- * Get the locale ID that is used for language-dependent case mappings.
- * @param csm UCaseMap service object.
- * @return locale ID
- * @stable ICU 3.4
- */
-U_STABLE const char * U_EXPORT2
-ucasemap_getLocale(const UCaseMap *csm);
-
-/**
- * Get the options bit set that is used for case folding and string comparisons.
- * @param csm UCaseMap service object.
- * @return options bit set
- * @stable ICU 3.4
- */
-U_STABLE uint32_t U_EXPORT2
-ucasemap_getOptions(const UCaseMap *csm);
-
-/**
- * Set the locale ID that is used for language-dependent case mappings.
- *
- * @param csm UCaseMap service object.
- * @param locale Locale ID, see ucasemap_open().
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                   which must not indicate a failure before the function call.
- *
- * @see ucasemap_open
- * @stable ICU 3.4
- */
-U_STABLE void U_EXPORT2
-ucasemap_setLocale(UCaseMap *csm, const char *locale, UErrorCode *pErrorCode);
-
-/**
- * Set the options bit set that is used for case folding and string comparisons.
- *
- * @param csm UCaseMap service object.
- * @param options Options bit set, see ucasemap_open().
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                   which must not indicate a failure before the function call.
- *
- * @see ucasemap_open
- * @stable ICU 3.4
- */
-U_STABLE void U_EXPORT2
-ucasemap_setOptions(UCaseMap *csm, uint32_t options, UErrorCode *pErrorCode);
-
-/**
- * Do not lowercase non-initial parts of words when titlecasing.
- * Option bit for titlecasing APIs that take an options bit set.
- *
- * By default, titlecasing will titlecase the first cased character
- * of a word and lowercase all other characters.
- * With this option, the other characters will not be modified.
- *
- * @see ucasemap_setOptions
- * @see ucasemap_toTitle
- * @see ucasemap_utf8ToTitle
- * @see UnicodeString::toTitle
- * @stable ICU 4.0
- */
-#define U_TITLECASE_NO_LOWERCASE 0x100
-
-/**
- * Do not adjust the titlecasing indexes from BreakIterator::next() indexes;
- * titlecase exactly the characters at breaks from the iterator.
- * Option bit for titlecasing APIs that take an options bit set.
- *
- * By default, titlecasing will take each break iterator index,
- * adjust it by looking for the next cased character, and titlecase that one.
- * Other characters are lowercased.
- *
- * This follows Unicode 4 & 5 section 3.13 Default Case Operations:
- *
- * R3  toTitlecase(X): Find the word boundaries based on Unicode Standard Annex
- * #29, "Text Boundaries." Between each pair of word boundaries, find the first
- * cased character F. If F exists, map F to default_title(F); then map each
- * subsequent character C to default_lower(C).
- *
- * @see ucasemap_setOptions
- * @see ucasemap_toTitle
- * @see ucasemap_utf8ToTitle
- * @see UnicodeString::toTitle
- * @see U_TITLECASE_NO_LOWERCASE
- * @stable ICU 4.0
- */
-#define U_TITLECASE_NO_BREAK_ADJUSTMENT 0x200
-
-#if !UCONFIG_NO_BREAK_ITERATION
-
-/**
- * Get the break iterator that is used for titlecasing.
- * Do not modify the returned break iterator.
- * @param csm UCaseMap service object.
- * @return titlecasing break iterator
- * @stable ICU 4.0
- */
-U_DRAFT const UBreakIterator * U_EXPORT2
-ucasemap_getBreakIterator(const UCaseMap *csm);
-
-/**
- * Set the break iterator that is used for titlecasing.
- * The UCaseMap service object releases a previously set break iterator
- * and "adopts" this new one, taking ownership of it.
- * It will be released in a subsequent call to ucasemap_setBreakIterator()
- * or ucasemap_close().
- *
- * Break iterator operations are not thread-safe. Therefore, titlecasing
- * functions use non-const UCaseMap objects. It is not possible to titlecase
- * strings concurrently using the same UCaseMap.
- *
- * @param csm UCaseMap service object.
- * @param iterToAdopt Break iterator to be adopted for titlecasing.
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                   which must not indicate a failure before the function call.
- *
- * @see ucasemap_toTitle
- * @see ucasemap_utf8ToTitle
- * @stable ICU 4.0
- */
-U_DRAFT void U_EXPORT2
-ucasemap_setBreakIterator(UCaseMap *csm, UBreakIterator *iterToAdopt, UErrorCode *pErrorCode);
-
-/**
- * Titlecase a UTF-16 string. This function is almost a duplicate of u_strToTitle(),
- * except that it takes ucasemap_setOptions() into account and has performance
- * advantages from being able to use a UCaseMap object for multiple case mapping
- * operations, saving setup time.
- *
- * Casing is locale-dependent and context-sensitive.
- * Titlecasing uses a break iterator to find the first characters of words
- * that are to be titlecased. It titlecases those characters and lowercases
- * all others. (This can be modified with ucasemap_setOptions().)
- *
- * The titlecase break iterator can be provided to customize for arbitrary
- * styles, using rules and dictionaries beyond the standard iterators.
- * It may be more efficient to always provide an iterator to avoid
- * opening and closing one for each string.
- * The standard titlecase iterator for the root locale implements the
- * algorithm of Unicode TR 21.
- *
- * This function uses only the setText(), first() and next() methods of the
- * provided break iterator.
- *
- * The result may be longer or shorter than the original.
- * The source string and the destination buffer must not overlap.
- *
- * @param csm       UCaseMap service object.
- * @param dest      A buffer for the result string. The result will be NUL-terminated if
- *                  the buffer is large enough.
- *                  The contents is undefined in case of failure.
- * @param destCapacity The size of the buffer (number of bytes). 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.
- * @param src       The original string.
- * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                  which must not indicate a failure before the function call.
- * @return The length of the result string, if successful - or in case of a buffer overflow,
- *         in which case it will be greater than destCapacity.
- *
- * @see u_strToTitle
- * @stable ICU 4.0
- */
-U_DRAFT int32_t U_EXPORT2
-ucasemap_toTitle(UCaseMap *csm,
-                 UChar *dest, int32_t destCapacity,
-                 const UChar *src, int32_t srcLength,
-                 UErrorCode *pErrorCode);
-
-#endif
-
-/**
- * Lowercase the characters in a UTF-8 string.
- * Casing is locale-dependent and context-sensitive.
- * The result may be longer or shorter than the original.
- * The source string and the destination buffer must not overlap.
- *
- * @param csm       UCaseMap service object.
- * @param dest      A buffer for the result string. The result will be NUL-terminated if
- *                  the buffer is large enough.
- *                  The contents is undefined in case of failure.
- * @param destCapacity The size of the buffer (number of bytes). 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.
- * @param src       The original string.
- * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                  which must not indicate a failure before the function call.
- * @return The length of the result string, if successful - or in case of a buffer overflow,
- *         in which case it will be greater than destCapacity.
- *
- * @see u_strToLower
- * @stable ICU 3.4
- */
-U_STABLE int32_t U_EXPORT2
-ucasemap_utf8ToLower(const UCaseMap *csm,
-                     char *dest, int32_t destCapacity,
-                     const char *src, int32_t srcLength,
-                     UErrorCode *pErrorCode);
-
-/**
- * Uppercase the characters in a UTF-8 string.
- * Casing is locale-dependent and context-sensitive.
- * The result may be longer or shorter than the original.
- * The source string and the destination buffer must not overlap.
- *
- * @param csm       UCaseMap service object.
- * @param dest      A buffer for the result string. The result will be NUL-terminated if
- *                  the buffer is large enough.
- *                  The contents is undefined in case of failure.
- * @param destCapacity The size of the buffer (number of bytes). 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.
- * @param src       The original string.
- * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                  which must not indicate a failure before the function call.
- * @return The length of the result string, if successful - or in case of a buffer overflow,
- *         in which case it will be greater than destCapacity.
- *
- * @see u_strToUpper
- * @stable ICU 3.4
- */
-U_STABLE int32_t U_EXPORT2
-ucasemap_utf8ToUpper(const UCaseMap *csm,
-                     char *dest, int32_t destCapacity,
-                     const char *src, int32_t srcLength,
-                     UErrorCode *pErrorCode);
-
-#if !UCONFIG_NO_BREAK_ITERATION
-
-/**
- * Titlecase a UTF-8 string.
- * Casing is locale-dependent and context-sensitive.
- * Titlecasing uses a break iterator to find the first characters of words
- * that are to be titlecased. It titlecases those characters and lowercases
- * all others. (This can be modified with ucasemap_setOptions().)
- *
- * The titlecase break iterator can be provided to customize for arbitrary
- * styles, using rules and dictionaries beyond the standard iterators.
- * It may be more efficient to always provide an iterator to avoid
- * opening and closing one for each string.
- * The standard titlecase iterator for the root locale implements the
- * algorithm of Unicode TR 21.
- *
- * This function uses only the setText(), first() and next() methods of the
- * provided break iterator.
- *
- * The result may be longer or shorter than the original.
- * The source string and the destination buffer must not overlap.
- *
- * @param csm       UCaseMap service object.
- * @param dest      A buffer for the result string. The result will be NUL-terminated if
- *                  the buffer is large enough.
- *                  The contents is undefined in case of failure.
- * @param destCapacity The size of the buffer (number of bytes). 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.
- * @param src       The original string.
- * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                  which must not indicate a failure before the function call.
- * @return The length of the result string, if successful - or in case of a buffer overflow,
- *         in which case it will be greater than destCapacity.
- *
- * @see u_strToTitle
- * @see U_TITLECASE_NO_LOWERCASE
- * @see U_TITLECASE_NO_BREAK_ADJUSTMENT
- * @stable ICU 4.0
- */
-U_DRAFT int32_t U_EXPORT2
-ucasemap_utf8ToTitle(UCaseMap *csm,
-                    char *dest, int32_t destCapacity,
-                    const char *src, int32_t srcLength,
-                    UErrorCode *pErrorCode);
-
-#endif
-
-/**
- * Case-fold the characters in a UTF-8 string.
- * Case-folding is locale-independent and not context-sensitive,
- * but there is an option for whether to include or exclude mappings for dotted I
- * and dotless i that are marked with 'I' in CaseFolding.txt.
- * The result may be longer or shorter than the original.
- * The source string and the destination buffer must not overlap.
- *
- * @param csm       UCaseMap service object.
- * @param dest      A buffer for the result string. The result will be NUL-terminated if
- *                  the buffer is large enough.
- *                  The contents is undefined in case of failure.
- * @param destCapacity The size of the buffer (number of bytes). 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.
- * @param src       The original string.
- * @param srcLength The length of the original string. If -1, then src must be NUL-terminated.
- * @param pErrorCode Must be a valid pointer to an error code value,
- *                  which must not indicate a failure before the function call.
- * @return The length of the result string, if successful - or in case of a buffer overflow,
- *         in which case it will be greater than destCapacity.
- *
- * @see u_strFoldCase
- * @see ucasemap_setOptions
- * @see U_FOLD_CASE_DEFAULT
- * @see U_FOLD_CASE_EXCLUDE_SPECIAL_I
- * @stable ICU 4.0
- */
-U_DRAFT int32_t U_EXPORT2
-ucasemap_utf8FoldCase(const UCaseMap *csm,
-                      char *dest, int32_t destCapacity,
-                      const char *src, int32_t srcLength,
-                      UErrorCode *pErrorCode);
-
-#endif

http://git-wip-us.apache.org/repos/asf/couchdb/blob/81332b78/apps/couch_collate/platform/osx/icu/unicode/ucat.h
----------------------------------------------------------------------
diff --git a/apps/couch_collate/platform/osx/icu/unicode/ucat.h b/apps/couch_collate/platform/osx/icu/unicode/ucat.h
deleted file mode 100644
index ad9f037..0000000
--- a/apps/couch_collate/platform/osx/icu/unicode/ucat.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
-**********************************************************************
-* Copyright (c) 2003-2004, International Business Machines
-* Corporation and others.  All Rights Reserved.
-**********************************************************************
-* Author: Alan Liu
-* Created: March 19 2003
-* Since: ICU 2.6
-**********************************************************************
-*/
-#ifndef UCAT_H
-#define UCAT_H
-
-#include "unicode/utypes.h"
-#include "unicode/ures.h"
-
-/**
- * \file
- * \brief C API: Message Catalog Wrappers
- *
- * This C API provides look-alike functions that deliberately resemble
- * the POSIX catopen, catclose, and catgets functions.  The underlying
- * implementation is in terms of ICU resource bundles, rather than
- * POSIX message catalogs.
- *
- * The ICU resource bundles obey standard ICU inheritance policies.
- * To facilitate this, sets and messages are flattened into one tier.
- * This is done by creating resource bundle keys of the form
- * &lt;set_num&gt;%&lt;msg_num&gt; where set_num is the set number and msg_num is
- * the message number, formatted as decimal strings.
- *
- * Example:  Consider a message catalog containing two sets:
- *
- * Set 1: Message 4  = "Good morning."
- *        Message 5  = "Good afternoon."
- *        Message 7  = "Good evening."
- *        Message 8  = "Good night."
- * Set 4: Message 14 = "Please "
- *        Message 19 = "Thank you."
- *        Message 20 = "Sincerely,"
- *
- * The ICU resource bundle source file would, assuming it is named
- * "greet.txt", would look like this:
- *
- * greet
- * {
- *     1%4  { "Good morning." }
- *     1%5  { "Good afternoon." }
- *     1%7  { "Good evening." }
- *     1%8  { "Good night." }
- * 
- *     4%14 { "Please " }
- *     4%19 { "Thank you." }
- *     4%20 { "Sincerely," }
- * }
- *
- * The catgets function is commonly used in combination with functions
- * like printf and strftime.  ICU components like message format can
- * be used instead, although they use a different format syntax.
- * There is an ICU package, icuio, that provides some of
- * the POSIX-style formatting API.
- */
-
-U_CDECL_BEGIN
-
-/**
- * An ICU message catalog descriptor, analogous to nl_catd.
- * 
- * @stable ICU 2.6
- */
-typedef UResourceBundle* u_nl_catd;
-
-/**
- * Open and return an ICU message catalog descriptor. The descriptor
- * may be passed to u_catgets() to retrieve localized strings.
- *
- * @param name string containing the full path pointing to the
- * directory where the resources reside followed by the package name
- * e.g. "/usr/resource/my_app/resources/guimessages" on a Unix system.
- * If NULL, ICU default data files will be used.
- *
- * Unlike POSIX, environment variables are not interpolated within the
- * name.
- *
- * @param locale the locale for which we want to open the resource. If
- * NULL, the default ICU locale will be used (see uloc_getDefault). If
- * strlen(locale) == 0, the root locale will be used.
- *
- * @param ec input/output error code. Upon output,
- * U_USING_FALLBACK_WARNING indicates that a fallback locale was
- * used. For example, 'de_CH' was requested, but nothing was found
- * there, so 'de' was used. U_USING_DEFAULT_WARNING indicates that the
- * default locale data or root locale data was used; neither the
- * requested locale nor any of its fallback locales were found.
- *
- * @return a message catalog descriptor that may be passed to
- * u_catgets(). If the ec parameter indicates success, then the caller
- * is responsible for calling u_catclose() to close the message
- * catalog. If the ec parameter indicates failure, then NULL will be
- * returned.
- * 
- * @stable ICU 2.6
- */
-U_STABLE u_nl_catd U_EXPORT2
-u_catopen(const char* name, const char* locale, UErrorCode* ec);
-
-/**
- * Close an ICU message catalog, given its descriptor.
- *
- * @param catd a message catalog descriptor to be closed. May be NULL,
- * in which case no action is taken.
- * 
- * @stable ICU 2.6
- */
-U_STABLE void U_EXPORT2
-u_catclose(u_nl_catd catd);
-
-/**
- * Retrieve a localized string from an ICU message catalog.
- *
- * @param catd a message catalog descriptor returned by u_catopen.
- *
- * @param set_num the message catalog set number. Sets need not be
- * numbered consecutively.
- *
- * @param msg_num the message catalog message number within the
- * set. Messages need not be numbered consecutively.
- *
- * @param s the default string. This is returned if the string
- * specified by the set_num and msg_num is not found. It must be
- * zero-terminated.
- *
- * @param len fill-in parameter to receive the length of the result.
- * May be NULL, in which case it is ignored.
- *
- * @param ec input/output error code. May be U_USING_FALLBACK_WARNING
- * or U_USING_DEFAULT_WARNING. U_MISSING_RESOURCE_ERROR indicates that
- * the set_num/msg_num tuple does not specify a valid message string
- * in this catalog.
- *
- * @return a pointer to a zero-terminated UChar array which lives in
- * an internal buffer area, typically a memory mapped/DLL file. The
- * caller must NOT delete this pointer. If the call is unsuccessful
- * for any reason, then s is returned.  This includes the situation in
- * which ec indicates a failing error code upon entry to this
- * function.
- * 
- * @stable ICU 2.6
- */
-U_STABLE const UChar* U_EXPORT2
-u_catgets(u_nl_catd catd, int32_t set_num, int32_t msg_num,
-          const UChar* s,
-          int32_t* len, UErrorCode* ec);
-
-U_CDECL_END
-
-#endif /*UCAT_H*/
-/*eof*/


Mime
View raw message