Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id DE45C10164 for ; Thu, 13 Feb 2014 18:14:15 +0000 (UTC) Received: (qmail 76216 invoked by uid 500); 13 Feb 2014 18:12:43 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 75116 invoked by uid 500); 13 Feb 2014 18:12:07 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 74835 invoked by uid 99); 13 Feb 2014 18:12:01 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Feb 2014 18:12:01 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 8FD8B8A924B; Thu, 13 Feb 2014 18:12:00 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: benoitc@apache.org To: commits@couchdb.apache.org Date: Thu, 13 Feb 2014 18:12:19 -0000 Message-Id: <0eb3979eff2b49d6a683922a379627dc@git.apache.org> In-Reply-To: <113237e1f9904b5cb0e6f0a915a4b1ba@git.apache.org> References: <113237e1f9904b5cb0e6f0a915a4b1ba@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [21/57] [abbrv] remove couch_collate 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 - * - *

BreakIterator C API

- * - * 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. - *

- * Line boundary analysis determines where a text string can be broken - * when line-wrapping. The mechanism correctly handles punctuation and - * hyphenated words. - *

- * Sentence boundary analysis allows selection with correct - * interpretation of periods within numbers and abbreviations, and - * trailing punctuation marks such as quotation marks and parentheses. - *

- * 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. - *

- * 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. - *

- * Title boundary analysis locates all positions, - * typically starts of words, that should be set to Title Case - * when title casing the text. - *

- * 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/. - *

- * 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. - *

- * 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 beyond 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 beyond 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. - *

- * 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. - *

- * 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 - * - *

Calendar C API

- * - * UCalendar C API is used for converting between a UDate object - * and a set of integer fields such as UCAL_YEAR, UCAL_MONTH, - * UCAL_DAY, UCAL_HOUR, and so on. - * (A UDate object represents a specific instant in - * time with millisecond precision. See UDate - * for information about the UDate .) - * - *

- * Types of UCalendar interpret a UDate - * according to the rules of a specific calendar system. The U_STABLE - * provides the enum UCalendarType with UCAL_TRADITIONAL and - * UCAL_GREGORIAN. - *

- * Like other locale-sensitive C API, calendar API provides a - * function, ucal_open(), which returns a pointer to - * UCalendar 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

\endhtmlonly - *
- * \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
- * 
- * \htmlonly
\endhtmlonly - * - *

- * A UCalendar 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). - * - *

- * When computing a UDate from time fields, two special circumstances - * may arise: there may be insufficient information to compute the - * UDate (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). - * - *

- * Insufficient information. 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. - * - *

- * Inconsistent information. 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

\endhtmlonly - *
- * \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
- * 
- * \htmlonly
\endhtmlonly - * - * For the time of day: - * - * \htmlonly
\endhtmlonly - *
- * \code
- * UCAL_HOUR_OF_DAY
- * UCAL_AM_PM + UCAL_HOUR
- * \endcode
- * 
- * \htmlonly
\endhtmlonly - * - *

- * Note: 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 and day-of-week in some cases. - * - *

- * Note: There are certain possible ambiguities in - * interpretation of certain singular times, which are resolved in the - * following ways: - *

    - *
  1. 24:00:00 "belongs" to the following day. That is, - * 23:59 on Dec 31, 1969 < 24:00 on Jan 1, 1970 < 24:01:00 on Jan 1, 1970 - * - *
  2. Although historically not precise, midnight also belongs to "am", - * and noon belongs to "pm", so on the same day, - * 12:00 am (midnight) < 12:01 am, and 12:00 pm (noon) < 12:01 pm - *
- * - *

- * 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. - * - *

- * Calendar 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 December 12, 1996 results in - * January 12, 1996. - * - *

- * Calendar 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 September 12, 1996 - * results in September 7, 1996. - * - * @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 - * JANUARY; 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 UCAL_FIRST_DAY_OF_WEEK and UCAL_MINIMAL_DAYS_IN_FIRST_WEEK - * attributes, has value 1. Subclasses define - * the value of UCAL_WEEK_OF_YEAR 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 UCAL_FIRST_DAY_OF_WEEK and UCAL_MINIMAL_DAYS_IN_FIRST_WEEK - * attributes, has value 1. Subclasses define - * the value of WEEK_OF_MONTH 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 DAY_OF_MONTH. - * 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 SUNDAY, - * MONDAY, TUESDAY, WEDNESDAY, - * THURSDAY, FRIDAY, and SATURDAY. - * @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 DAY_OF_WEEK field, this uniquely specifies a day - * within a month. Unlike WEEK_OF_MONTH and - * WEEK_OF_YEAR, this field's value does not depend on - * getFirstDayOfWeek() or - * getMinimalDaysInFirstWeek(). DAY_OF_MONTH 1 - * through 7 always correspond to DAY_OF_WEEK_IN_MONTH - * 1; 8 through 15 correspond to - * DAY_OF_WEEK_IN_MONTH 2, and so on. - * DAY_OF_WEEK_IN_MONTH 0 indicates the week before - * DAY_OF_WEEK_IN_MONTH 1. Negative values count back from the - * end of the month, so the last Sunday of a month is specified as - * DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1. 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, DAY_OF_WEEK_IN_MONTH -1 will overlap - * DAY_OF_WEEK_IN_MONTH 5 and the end of 4. - * @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 HOUR is before or after noon. - * E.g., at 10:04:15.250 PM the AM_PM is PM. - * @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. HOUR is used for the 12-hour - * clock. - * E.g., at 10:04:15.250 PM the HOUR 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. HOUR_OF_DAY is used for the 24-hour clock. - * E.g., at 10:04:15.250 PM the HOUR_OF_DAY 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 UCAL_MINUTE 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 UCAL_SECOND 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 UCAL_MILLISECOND 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 - * UCAL_WEEK_OF_YEAR field. This may be one greater or less - * than the value of UCAL_EXTENDED_YEAR. - * @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 exactly - * 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 UCAL_DATE. - * 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 UCAL_MONTH 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 - * <set_num>%<msg_num> 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*/