calendar.h | calendar.h | |||
---|---|---|---|---|
skipping to change at line 176 | skipping to change at line 176 | |||
public: | public: | |||
/** | /** | |||
* Field IDs for date and time. Used to specify date/time fields. ERA i s calendar | * Field IDs for date and time. Used to specify date/time fields. ERA i s calendar | |||
* specific. Example ranges given are for illustration only; see specif ic Calendar | * specific. Example ranges given are for illustration only; see specif ic Calendar | |||
* subclasses for actual ranges. | * subclasses for actual ranges. | |||
* @deprecated ICU 2.6. Use C enum UCalendarDateFields defined in ucal. h | * @deprecated ICU 2.6. Use C enum UCalendarDateFields defined in ucal. h | |||
*/ | */ | |||
enum EDateFields { | enum EDateFields { | |||
#ifndef U_HIDE_DEPRECATED_API | #ifndef U_HIDE_DEPRECATED_API | |||
/* | ||||
* ERA may be defined on other platforms. To avoid any potential problems u | ||||
ndefined it here. | ||||
*/ | ||||
#ifdef ERA | ||||
#undef ERA | ||||
#endif | ||||
ERA, // Example: 0..1 | ERA, // Example: 0..1 | |||
YEAR, // Example: 1..big number | YEAR, // Example: 1..big number | |||
MONTH, // Example: 0..11 | MONTH, // Example: 0..11 | |||
WEEK_OF_YEAR, // Example: 1..53 | WEEK_OF_YEAR, // Example: 1..53 | |||
WEEK_OF_MONTH, // Example: 1..4 | WEEK_OF_MONTH, // Example: 1..4 | |||
DATE, // Example: 1..31 | DATE, // Example: 1..31 | |||
DAY_OF_YEAR, // Example: 1..365 | DAY_OF_YEAR, // Example: 1..365 | |||
DAY_OF_WEEK, // Example: 1..7 | DAY_OF_WEEK, // Example: 1..7 | |||
DAY_OF_WEEK_IN_MONTH, // Example: 1..4, may be specified as -1 | DAY_OF_WEEK_IN_MONTH, // Example: 1..4, may be specified as -1 | |||
AM_PM, // Example: 0..1 | AM_PM, // Example: 0..1 | |||
HOUR, // Example: 0..11 | HOUR, // Example: 0..11 | |||
HOUR_OF_DAY, // Example: 0..23 | HOUR_OF_DAY, // Example: 0..23 | |||
MINUTE, // Example: 0..59 | MINUTE, // Example: 0..59 | |||
SECOND, // Example: 0..59 | SECOND, // Example: 0..59 | |||
MILLISECOND, // Example: 0..999 | MILLISECOND, // Example: 0..999 | |||
ZONE_OFFSET, // Example: -12*U_MILLIS_PER_HOUR..12*U_MILLI S_PER_HOUR | ZONE_OFFSET, // Example: -12*U_MILLIS_PER_HOUR..12*U_MILLI S_PER_HOUR | |||
DST_OFFSET, // Example: 0 or U_MILLIS_PER_HOUR | DST_OFFSET, // Example: 0 or U_MILLIS_PER_HOUR | |||
YEAR_WOY, // 'Y' Example: 1..big number - Year of Week of Year | YEAR_WOY, // 'Y' Example: 1..big number - Year of Week of Year | |||
DOW_LOCAL, // 'e' Example: 1..7 - Day of Week / Localize d | DOW_LOCAL, // 'e' Example: 1..7 - Day of Week / Localize d | |||
EXTENDED_YEAR, | EXTENDED_YEAR, | |||
JULIAN_DAY, | JULIAN_DAY, | |||
MILLISECONDS_IN_DAY, | MILLISECONDS_IN_DAY, | |||
IS_LEAP_MONTH, | IS_LEAP_MONTH, | |||
FIELD_COUNT = UCAL_FIELD_COUNT // See ucal.h for other fields. | FIELD_COUNT = UCAL_FIELD_COUNT // See ucal.h for other fields. | |||
#endif /* U_HIDE_DEPRECATED_API */ | #endif /* U_HIDE_DEPRECATED_API */ | |||
}; | }; | |||
/** | /** | |||
* Useful constant for days of week. Note: Calendar day-of-week is 1-ba sed. Clients | * Useful constant for days of week. Note: Calendar day-of-week is 1-ba sed. Clients | |||
* who create locale resources for the field of first-day-of-week shoul d be aware of | * who create locale resources for the field of first-day-of-week shoul d be aware of | |||
* this. For instance, in US locale, first-day-of-week is set to 1, i.e ., SUNDAY. | * this. For instance, in US locale, first-day-of-week is set to 1, i.e ., SUNDAY. | |||
* @deprecated ICU 2.6. Use C enum UCalendarDaysOfWeek defined in ucal. h | * @deprecated ICU 2.6. Use C enum UCalendarDaysOfWeek defined in ucal. h | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 11 lines changed or added | |||
errorcode.h | errorcode.h | |||
---|---|---|---|---|
skipping to change at line 103 | skipping to change at line 103 | |||
UBool isSuccess() const { return U_SUCCESS(errorCode); } | UBool isSuccess() const { return U_SUCCESS(errorCode); } | |||
/** Tests for U_FAILURE(). @draft ICU 4.2 */ | /** Tests for U_FAILURE(). @draft ICU 4.2 */ | |||
UBool isFailure() const { return U_FAILURE(errorCode); } | UBool isFailure() const { return U_FAILURE(errorCode); } | |||
/** Returns the UErrorCode value. @draft ICU 4.2 */ | /** Returns the UErrorCode value. @draft ICU 4.2 */ | |||
UErrorCode get() const { return errorCode; } | UErrorCode get() const { return errorCode; } | |||
/** Sets the UErrorCode value. @draft ICU 4.2 */ | /** Sets the UErrorCode value. @draft ICU 4.2 */ | |||
void set(UErrorCode value) { errorCode=value; } | void set(UErrorCode value) { errorCode=value; } | |||
/** Returns the UErrorCode value and resets it to U_ZERO_ERROR. @draft ICU 4.2 */ | /** Returns the UErrorCode value and resets it to U_ZERO_ERROR. @draft ICU 4.2 */ | |||
UErrorCode reset(); | UErrorCode reset(); | |||
/** | /** | |||
* Checks for a failure code: | * Asserts isSuccess(). | |||
* In other words, this method checks for a failure code, | ||||
* and the base class handles it like this: | ||||
* \code | * \code | |||
* if(isFailure()) { handleFailure(); } | * if(isFailure()) { handleFailure(); } | |||
* \endcode | * \endcode | |||
* @draft ICU 4.2 | * @draft ICU 4.4 | |||
*/ | */ | |||
void check() const; | void assertSuccess() const; | |||
protected: | protected: | |||
/** | /** | |||
* Internal UErrorCode, accessible to subclasses. | * Internal UErrorCode, accessible to subclasses. | |||
* @draft ICU 4.2 | * @draft ICU 4.2 | |||
*/ | */ | |||
UErrorCode errorCode; | UErrorCode errorCode; | |||
/** | /** | |||
* Called by check() if isFailure() is true. | * Called by assertSuccess() if isFailure() is true. | |||
* A subclass should override this function to deal with a failure code : | * A subclass should override this function to deal with a failure code : | |||
* Throw an exception, log an error, terminate the program, or similar. | * Throw an exception, log an error, terminate the program, or similar. | |||
* @draft ICU 4.2 | * @draft ICU 4.2 | |||
*/ | */ | |||
virtual void handleFailure() const {} | virtual void handleFailure() const {} | |||
}; | }; | |||
U_NAMESPACE_END | U_NAMESPACE_END | |||
#endif // __ERRORCODE_H__ | #endif // __ERRORCODE_H__ | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 6 lines changed or added | |||
platform.h | platform.h | |||
---|---|---|---|---|
skipping to change at line 278 | skipping to change at line 278 | |||
/** @} */ | /** @} */ | |||
/** | /** | |||
* @{ | * @{ | |||
* \def U_DECLARE_UTF16 | * \def U_DECLARE_UTF16 | |||
* Do not use this macro. Use the UNICODE_STRING or U_STRING_DECL macros | * Do not use this macro. Use the UNICODE_STRING or U_STRING_DECL macros | |||
* instead. | * instead. | |||
* @internal | * @internal | |||
*/ | */ | |||
#ifndef U_GNUC_UTF16_STRING | ||||
#define U_GNUC_UTF16_STRING 0 | ||||
#endif | ||||
#if 1 || defined(U_CHECK_UTF16_STRING) | #if 1 || defined(U_CHECK_UTF16_STRING) | |||
#if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \ | #if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \ | |||
|| (defined(__HP_aCC) && __HP_aCC >= 035000) \ | || (defined(__HP_aCC) && __HP_aCC >= 035000) \ | |||
|| (defined(__HP_cc) && __HP_cc >= 111106) | || (defined(__HP_cc) && __HP_cc >= 111106) \ | |||
|| U_GNUC_UTF16_STRING | ||||
#define U_DECLARE_UTF16(string) u ## string | #define U_DECLARE_UTF16(string) u ## string | |||
#elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) | #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) | |||
/* || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x580) */ | /* || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x580) */ | |||
/* Sun's C compiler has issues with this notation, and it's unreliable. */ | /* Sun's C compiler has issues with this notation, and it's unreliable. */ | |||
#define U_DECLARE_UTF16(string) U ## string | #define U_DECLARE_UTF16(string) U ## string | |||
#elif U_SIZEOF_WCHAR_T == 2 \ | #elif U_SIZEOF_WCHAR_T == 2 \ | |||
&& (U_CHARSET_FAMILY == 0 || ((defined(OS390) || defined(OS400)) && def ined(__UCS2__))) | && (U_CHARSET_FAMILY == 0 || ((defined(OS390) || defined(OS400)) && def ined(__UCS2__))) | |||
#define U_DECLARE_UTF16(string) L ## string | #define U_DECLARE_UTF16(string) L ## string | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 5 lines changed or added | |||
tmutfmt.h | tmutfmt.h | |||
---|---|---|---|---|
/* | /* | |||
************************************************************************** ***** | ************************************************************************** ***** | |||
* Copyright (C) 2008, Google, International Business Machines Corporation and * | * Copyright (C) 2009, Google, International Business Machines Corporation and * | |||
* others. All Rights Reserved. * | * others. All Rights Reserved. * | |||
************************************************************************** ***** | ************************************************************************** ***** | |||
*/ | */ | |||
#ifndef __TMUTFMT_H__ | #ifndef __TMUTFMT_H__ | |||
#define __TMUTFMT_H__ | #define __TMUTFMT_H__ | |||
#include "unicode/utypes.h" | #include "unicode/utypes.h" | |||
/** | /** | |||
skipping to change at line 40 | skipping to change at line 40 | |||
union UHashTok; | union UHashTok; | |||
U_NAMESPACE_BEGIN | U_NAMESPACE_BEGIN | |||
U_CDECL_BEGIN | U_CDECL_BEGIN | |||
/** | /** | |||
* @internal ICU 4.2 | * @internal ICU 4.2 | |||
*/ | */ | |||
static UBool U_CALLCONV hashTableValueComparator(UHashTok val1, UHashTok va l2) ; | UBool U_CALLCONV tmutfmtHashTableValueComparator(UHashTok val1, UHashTok va l2) ; | |||
U_CDECL_END | U_CDECL_END | |||
class Hashtable; | class Hashtable; | |||
/** | /** | |||
* Format or parse a TimeUnitAmount, using plural rules for the units where available. | * Format or parse a TimeUnitAmount, using plural rules for the units where available. | |||
* | * | |||
* <P> | * <P> | |||
* Code Sample: | * Code Sample: | |||
skipping to change at line 226 | skipping to change at line 226 | |||
*/ | */ | |||
virtual UClassID getDynamicClassID(void) const; | virtual UClassID getDynamicClassID(void) const; | |||
private: | private: | |||
NumberFormat* fNumberFormat; | NumberFormat* fNumberFormat; | |||
Locale fLocale; | Locale fLocale; | |||
Hashtable* fTimeUnitToCountToPatterns[TimeUnit::UTIMEUNIT_FIELD_COUN T]; | Hashtable* fTimeUnitToCountToPatterns[TimeUnit::UTIMEUNIT_FIELD_COUN T]; | |||
PluralRules* fPluralRules; | PluralRules* fPluralRules; | |||
EStyle fStyle; | EStyle fStyle; | |||
friend UBool U_CALLCONV hashTableValueComparator(UHashTok val1, UHashTo k val2); | friend UBool U_CALLCONV tmutfmtHashTableValueComparator(UHashTok val1, UHashTok val2); | |||
void create(const Locale& locale, EStyle style, UErrorCode& status); | void create(const Locale& locale, EStyle style, UErrorCode& status); | |||
// it might actually be simpler to make them Decimal Formats later. | // it might actually be simpler to make them Decimal Formats later. | |||
// initialize all private data members | // initialize all private data members | |||
void setup(UErrorCode& status); | void setup(UErrorCode& status); | |||
// initialize data member without fill in data for fTimeUnitToCountToPa ttern | // initialize data member without fill in data for fTimeUnitToCountToPa ttern | |||
void initDataMembers(UErrorCode& status); | void initDataMembers(UErrorCode& status); | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 3 lines changed or added | |||
uclean.h | uclean.h | |||
---|---|---|---|---|
/* | /* | |||
*************************************************************************** *** | *************************************************************************** *** | |||
* * | * * | |||
* Copyright (C) 2001-2005, International Business Machines * | * Copyright (C) 2001-2009, International Business Machines * | |||
* Corporation and others. All Rights Reserved. * | * Corporation and others. All Rights Reserved. * | |||
* * | * * | |||
*************************************************************************** *** | *************************************************************************** *** | |||
* file name: uclean.h | * file name: uclean.h | |||
* encoding: US-ASCII | * encoding: US-ASCII | |||
* tab size: 8 (not used) | * tab size: 8 (not used) | |||
* indentation:4 | * indentation:4 | |||
* | * | |||
* created on: 2001July05 | * created on: 2001July05 | |||
* created by: George Rhoten | * created by: George Rhoten | |||
skipping to change at line 27 | skipping to change at line 27 | |||
#ifndef __UCLEAN_H__ | #ifndef __UCLEAN_H__ | |||
#define __UCLEAN_H__ | #define __UCLEAN_H__ | |||
#include "unicode/utypes.h" | #include "unicode/utypes.h" | |||
/** | /** | |||
* \file | * \file | |||
* \brief C API: Initialize and clean up ICU | * \brief C API: Initialize and clean up ICU | |||
*/ | */ | |||
/** | /** | |||
* Initialize ICU. The description further below applies to ICU 2.6 to ICU | * Initialize ICU. | |||
3.4. | * | |||
* Starting with ICU 3.4, u_init() needs not be called any more for | * Use of this function is optional. It is OK to simply use ICU | |||
* ensuring thread safety, but it can give an indication for whether ICU | * services and functions without first having initialized | |||
* can load its data. In ICU 3.4, it will try to load the converter alias | * ICU by calling u_init(). | |||
table | * | |||
* (cnvalias.icu) and give an error code if that fails. | * u_init() will attempt to load some part of ICU's data, and is | |||
* This may change in the future. | * useful as a test for configuration or installation problems that | |||
* <p> | * leave the ICU data inaccessible. A successful invocation of u_init() | |||
* For ensuring the availability of necessary data, an application should | * does not, however, guarantee that all ICU data is accessible. | |||
* open the service objects (converters, collators, etc.) that it will use | * | |||
* and check for error codes there. | * Multiple calls to u_init() cause no harm, aside from the small amount | |||
* <p> | * of time required. | |||
* Documentation for ICU 2.6 to ICU 3.4: | * | |||
* <p> | * In old versions of ICU, u_init() was required in multi-threaded applica | |||
* This function loads and initializes data items | tions | |||
* that are required internally by various ICU functions. Use of this exp | * to ensure the thread safety of ICU. u_init() is no longer needed for t | |||
licit | his purpose. | |||
* initialization is required in multi-threaded applications; in | ||||
* single threaded apps, use is optional, but incurs little additional | ||||
* cost, and is thus recommended. | ||||
* <p> | ||||
* In multi-threaded applications, u_init() should be called in the | ||||
* main thread before starting additional threads, or, alternatively | ||||
* it can be called in each individual thread once, before other ICU | ||||
* functions are called in that thread. In this second scenario, the | ||||
* application must guarantee that the first call to u_init() happen | ||||
* without contention, in a single thread only. | ||||
* <p> | ||||
* If <code>u_setMemoryFunctions()</code> or | ||||
* <code>u_setMutexFunctions</code> are needed (uncommon), they must be | ||||
* called _before_ <code>u_init()</code>. | ||||
* <p> | ||||
* Extra, repeated, or otherwise unneeded calls to u_init() do no harm, | ||||
* other than taking a small amount of time. | ||||
* | * | |||
* @param status An ICU UErrorCode parameter. It must not be <code>NULL</co de>. | * @param status An ICU UErrorCode parameter. It must not be <code>NULL</co de>. | |||
* An Error will be returned if some required part of ICU data can not | * An Error will be returned if some required part of ICU data can not | |||
* be loaded or initialized. | * be loaded or initialized. | |||
* The function returns immediately if the input error code indicates a | * The function returns immediately if the input error code indicates a | |||
* failure, as usual. | * failure, as usual. | |||
* | * | |||
* @stable ICU 2.6 | * @stable ICU 2.6 | |||
*/ | */ | |||
U_STABLE void U_EXPORT2 | U_STABLE void U_EXPORT2 | |||
End of changes. 2 change blocks. | ||||
36 lines changed or deleted | 19 lines changed or added | |||
udata.h | udata.h | |||
---|---|---|---|---|
/* | /* | |||
*************************************************************************** *** | *************************************************************************** *** | |||
* | * | |||
* Copyright (C) 1999-2008, International Business Machines | * Copyright (C) 1999-2009, International Business Machines | |||
* Corporation and others. All Rights Reserved. | * Corporation and others. All Rights Reserved. | |||
* | * | |||
*************************************************************************** *** | *************************************************************************** *** | |||
* file name: udata.h | * file name: udata.h | |||
* encoding: US-ASCII | * encoding: US-ASCII | |||
* tab size: 8 (not used) | * tab size: 8 (not used) | |||
* indentation:4 | * indentation:4 | |||
* | * | |||
* created on: 1999oct25 | * created on: 1999oct25 | |||
* created by: Markus W. Scherer | * created by: Markus W. Scherer | |||
skipping to change at line 374 | skipping to change at line 374 | |||
UDATA_PACKAGES_FIRST, | UDATA_PACKAGES_FIRST, | |||
/** ICU does not access the file system for data loading. */ | /** ICU does not access the file system for data loading. */ | |||
UDATA_NO_FILES, | UDATA_NO_FILES, | |||
/** An alias for the default access mode. */ | /** An alias for the default access mode. */ | |||
UDATA_DEFAULT_ACCESS = UDATA_FILES_FIRST, | UDATA_DEFAULT_ACCESS = UDATA_FILES_FIRST, | |||
UDATA_FILE_ACCESS_COUNT | UDATA_FILE_ACCESS_COUNT | |||
} UDataFileAccess; | } UDataFileAccess; | |||
/** | /** | |||
* This function may be called to control how ICU loads data. It must be ca lled | * This function may be called to control how ICU loads data. It must be ca lled | |||
* before any ICU data is loaded, including application data loaded with ur | * before any ICU data is loaded, including application data loaded with | |||
es/ResourceBundle or | * ures/ResourceBundle or udata APIs. This function is not multithread safe | |||
* udata APIs. It should be called before u_init. This function is not mul | . | |||
tithread safe. | ||||
* The results of calling it while other threads are loading data are undef ined. | * The results of calling it while other threads are loading data are undef ined. | |||
* @param access The type of file access to be used | * @param access The type of file access to be used | |||
* @param status Error code. | * @param status Error code. | |||
* @see UDataFileAccess | * @see UDataFileAccess | |||
* @stable ICU 3.4 | * @stable ICU 3.4 | |||
*/ | */ | |||
U_STABLE void U_EXPORT2 | U_STABLE void U_EXPORT2 | |||
udata_setFileAccess(UDataFileAccess access, UErrorCode *status); | udata_setFileAccess(UDataFileAccess access, UErrorCode *status); | |||
U_CDECL_END | U_CDECL_END | |||
End of changes. 2 change blocks. | ||||
5 lines changed or deleted | 4 lines changed or added | |||
umachine.h | umachine.h | |||
---|---|---|---|---|
/* | /* | |||
*************************************************************************** *** | *************************************************************************** *** | |||
* | * | |||
* Copyright (C) 1999-2008, International Business Machines | * Copyright (C) 1999-2009, International Business Machines | |||
* Corporation and others. All Rights Reserved. | * Corporation and others. All Rights Reserved. | |||
* | * | |||
*************************************************************************** *** | *************************************************************************** *** | |||
* file name: umachine.h | * file name: umachine.h | |||
* encoding: US-ASCII | * encoding: US-ASCII | |||
* tab size: 8 (not used) | * tab size: 8 (not used) | |||
* indentation:4 | * indentation:4 | |||
* | * | |||
* created on: 1999sep13 | * created on: 1999sep13 | |||
* created by: Markus W. Scherer | * created by: Markus W. Scherer | |||
skipping to change at line 285 | skipping to change at line 285 | |||
#endif | #endif | |||
/* UChar and UChar32 definitions ------------------------------------------ -- */ | /* UChar and UChar32 definitions ------------------------------------------ -- */ | |||
/** Number of bytes in a UChar. @stable ICU 2.0 */ | /** Number of bytes in a UChar. @stable ICU 2.0 */ | |||
#define U_SIZEOF_UCHAR 2 | #define U_SIZEOF_UCHAR 2 | |||
/** | /** | |||
* \var UChar | * \var UChar | |||
* Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned. | * Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned. | |||
* If wchar_t is not 16 bits wide, then define UChar to be uint16_t. | * If wchar_t is not 16 bits wide, then define UChar to be uint16_t or char | |||
16_t because GCC >=4.4 | ||||
* can handle UTF16 string literals. | ||||
* This makes the definition of UChar platform-dependent | * This makes the definition of UChar platform-dependent | |||
* but allows direct string type compatibility with platforms with | * but allows direct string type compatibility with platforms with | |||
* 16-bit wchar_t types. | * 16-bit wchar_t types. | |||
* | * | |||
* @stable ICU 2.0 | * @draft ICU 4.4 | |||
*/ | */ | |||
/* Define UChar to be compatible with wchar_t if possible. */ | /* Define UChar to be compatible with wchar_t if possible. */ | |||
#if U_SIZEOF_WCHAR_T==2 | #if U_SIZEOF_WCHAR_T==2 | |||
typedef wchar_t UChar; | typedef wchar_t UChar; | |||
#elif U_GNUC_UTF16_STRING | ||||
#if defined _GCC_ | ||||
typedef __CHAR16_TYPE__ char16_t; | ||||
#endif | ||||
typedef char16_t UChar; | ||||
#else | #else | |||
typedef uint16_t UChar; | typedef uint16_t UChar; | |||
#endif | #endif | |||
/** | /** | |||
* Define UChar32 as a type for single Unicode code points. | * Define UChar32 as a type for single Unicode code points. | |||
* UChar32 is a signed 32-bit integer (same as int32_t). | * UChar32 is a signed 32-bit integer (same as int32_t). | |||
* | * | |||
* The Unicode code point range is 0..0x10ffff. | * The Unicode code point range is 0..0x10ffff. | |||
* All other values (negative or >=0x110000) are illegal as Unicode code po ints. | * All other values (negative or >=0x110000) are illegal as Unicode code po ints. | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 10 lines changed or added | |||
unistr.h | unistr.h | |||
---|---|---|---|---|
skipping to change at line 3234 | skipping to change at line 3234 | |||
// A UnicodeString object (not necessarily its current buffer) | // A UnicodeString object (not necessarily its current buffer) | |||
// is writable unless it isBogus() or it has an "open" getBuffer(minCapac ity). | // is writable unless it isBogus() or it has an "open" getBuffer(minCapac ity). | |||
inline UBool isWritable() const; | inline UBool isWritable() const; | |||
// Is the current buffer writable? | // Is the current buffer writable? | |||
inline UBool isBufferWritable() const; | inline UBool isBufferWritable() const; | |||
// None of the following does releaseArray(). | // None of the following does releaseArray(). | |||
inline void setLength(int32_t len); // sets only fShortLength and fLength | inline void setLength(int32_t len); // sets only fShortLength and fLength | |||
inline void setToEmpty(); // sets fFlags=kShortString | inline void setToEmpty(); // sets fFlags=kShortString | |||
inline void setToStackBuffer(int32_t len); // sets fFlags=kShortString | ||||
inline void setArray(UChar *array, int32_t len, int32_t capacity); // doe s not set fFlags | inline void setArray(UChar *array, int32_t len, int32_t capacity); // doe s not set fFlags | |||
// allocate the array; result may be fStackBuffer | // allocate the array; result may be fStackBuffer | |||
// sets refCount to 1 if appropriate | // sets refCount to 1 if appropriate | |||
// sets fArray, fCapacity, and fFlags | // sets fArray, fCapacity, and fFlags | |||
// returns boolean for success or failure | // returns boolean for success or failure | |||
UBool allocate(int32_t capacity); | UBool allocate(int32_t capacity); | |||
// release the array if owned | // release the array if owned | |||
void releaseArray(void); | void releaseArray(void); | |||
skipping to change at line 4135 | skipping to change at line 4134 | |||
} | } | |||
} | } | |||
inline void | inline void | |||
UnicodeString::setToEmpty() { | UnicodeString::setToEmpty() { | |||
fShortLength = 0; | fShortLength = 0; | |||
fFlags = kShortString; | fFlags = kShortString; | |||
} | } | |||
inline void | inline void | |||
UnicodeString::setToStackBuffer(int32_t len) { | ||||
fShortLength = (int8_t)len; | ||||
fFlags = kShortString; | ||||
} | ||||
inline void | ||||
UnicodeString::setArray(UChar *array, int32_t len, int32_t capacity) { | UnicodeString::setArray(UChar *array, int32_t len, int32_t capacity) { | |||
setLength(len); | setLength(len); | |||
fUnion.fFields.fArray = array; | fUnion.fFields.fArray = array; | |||
fUnion.fFields.fCapacity = capacity; | fUnion.fFields.fCapacity = capacity; | |||
} | } | |||
inline const UChar * | inline const UChar * | |||
UnicodeString::getTerminatedBuffer() { | UnicodeString::getTerminatedBuffer() { | |||
if(!isWritable()) { | if(!isWritable()) { | |||
return 0; | return 0; | |||
} else { | } else { | |||
UChar *array = getArrayStart(); | UChar *array = getArrayStart(); | |||
int32_t len = length(); | int32_t len = length(); | |||
#ifndef U_VALGRIND | if(len < getCapacity()) { | |||
if(len < getCapacity() && array[len] == 0) { | if(!(fFlags&kBufferIsReadonly)) { | |||
/* | ||||
* We must not write to a readonly buffer, but it is known to be | ||||
* NUL-terminated if len<capacity. | ||||
* A shared, allocated buffer (refCount()>1) must not have its cont | ||||
ents | ||||
* modified, but the NUL at [len] is beyond the string contents, | ||||
* and multiple string objects and threads writing the same NUL int | ||||
o the | ||||
* same location is harmless. | ||||
* In all other cases, the buffer is fully writable and it is anywa | ||||
y safe | ||||
* to write the NUL. | ||||
* | ||||
* Note: An earlier version of this code tested whether there is a | ||||
NUL | ||||
* at [len] already, but, while safe, it generated lots of warnings | ||||
from | ||||
* tools like valgrind and Purify. | ||||
*/ | ||||
array[len] = 0; | ||||
} | ||||
return array; | return array; | |||
} | } else if(cloneArrayIfNeeded(len+1)) { | |||
#endif | ||||
if(cloneArrayIfNeeded(len+1)) { | ||||
array = getArrayStart(); | array = getArrayStart(); | |||
array[len] = 0; | array[len] = 0; | |||
return array; | return array; | |||
} else { | } else { | |||
return 0; | return 0; | |||
} | } | |||
} | } | |||
} | } | |||
inline UnicodeString& | inline UnicodeString& | |||
End of changes. 4 change blocks. | ||||
12 lines changed or deleted | 24 lines changed or added | |||
ures.h | ures.h | |||
---|---|---|---|---|
skipping to change at line 85 | skipping to change at line 85 | |||
/** | /** | |||
* Resource type constant for aliases; | * Resource type constant for aliases; | |||
* internally stores a string which identifies the actual resource | * internally stores a string which identifies the actual resource | |||
* storing the data (can be in a different resource bundle). | * storing the data (can be in a different resource bundle). | |||
* Resolved internally before delivering the actual resource through th e API. | * Resolved internally before delivering the actual resource through th e API. | |||
* @stable ICU 2.6 | * @stable ICU 2.6 | |||
*/ | */ | |||
URES_ALIAS=3, | URES_ALIAS=3, | |||
#ifndef U_HIDE_INTERNAL_API | ||||
/** | ||||
* Internal use only. | ||||
* Alternative resource type constant for tables of key-value pairs. | ||||
* Never returned by ures_getType(). | ||||
* @internal | ||||
*/ | ||||
URES_TABLE32=4, | ||||
#endif /* U_HIDE_INTERNAL_API */ | ||||
/** | /** | |||
* Resource type constant for a single 28-bit integer, interpreted as | * Resource type constant for a single 28-bit integer, interpreted as | |||
* signed or unsigned by the ures_getInt() or ures_getUInt() function. | * signed or unsigned by the ures_getInt() or ures_getUInt() function. | |||
* @see ures_getInt | * @see ures_getInt | |||
* @see ures_getUInt | * @see ures_getUInt | |||
* @stable ICU 2.6 | * @stable ICU 2.6 | |||
*/ | */ | |||
URES_INT=7, | URES_INT=7, | |||
/** Resource type constant for arrays of resources. @stable ICU 2.6 */ | /** Resource type constant for arrays of resources. @stable ICU 2.6 */ | |||
skipping to change at line 418 | skipping to change at line 406 | |||
/** | /** | |||
* Returns a binary data from a binary resource. | * Returns a binary data from a binary resource. | |||
* | * | |||
* @param resourceBundle a string resource | * @param resourceBundle a string resource | |||
* @param len fills in the length of resulting byte chunk | * @param len fills in the length of resulting byte chunk | |||
* @param status fills in the outgoing error code | * @param status fills in the outgoing error code | |||
* could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found | * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found | |||
* Always check the value of status. Don't count on returnin g NULL. | * Always check the value of status. Don't count on returnin g NULL. | |||
* could be a non-failing error | * could be a non-failing error | |||
* e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAU LT_WARNING </TT> | * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAU LT_WARNING </TT> | |||
* @return a pointer to a chuck of unsigned bytes which live in a memory ma pped/DLL file. | * @return a pointer to a chunk of unsigned bytes which live in a memory ma pped/DLL file. | |||
* @see ures_getString | * @see ures_getString | |||
* @see ures_getIntVector | * @see ures_getIntVector | |||
* @see ures_getInt | * @see ures_getInt | |||
* @see ures_getUInt | * @see ures_getUInt | |||
* @stable ICU 2.0 | * @stable ICU 2.0 | |||
*/ | */ | |||
U_STABLE const uint8_t* U_EXPORT2 | U_STABLE const uint8_t* U_EXPORT2 | |||
ures_getBinary(const UResourceBundle* resourceBundle, | ures_getBinary(const UResourceBundle* resourceBundle, | |||
int32_t* len, | int32_t* len, | |||
UErrorCode* status); | UErrorCode* status); | |||
skipping to change at line 440 | skipping to change at line 428 | |||
/** | /** | |||
* Returns a 32 bit integer array from a resource. | * Returns a 32 bit integer array from a resource. | |||
* | * | |||
* @param resourceBundle an int vector resource | * @param resourceBundle an int vector resource | |||
* @param len fills in the length of resulting byte chunk | * @param len fills in the length of resulting byte chunk | |||
* @param status fills in the outgoing error code | * @param status fills in the outgoing error code | |||
* could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found | * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found | |||
* Always check the value of status. Don't count on returnin g NULL. | * Always check the value of status. Don't count on returnin g NULL. | |||
* could be a non-failing error | * could be a non-failing error | |||
* e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAU LT_WARNING </TT> | * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAU LT_WARNING </TT> | |||
* @return a pointer to a chunk of unsigned bytes which live in a memory ma pped/DLL file. | * @return a pointer to a chunk of integers which live in a memory mapped/D LL file. | |||
* @see ures_getBinary | * @see ures_getBinary | |||
* @see ures_getString | * @see ures_getString | |||
* @see ures_getInt | * @see ures_getInt | |||
* @see ures_getUInt | * @see ures_getUInt | |||
* @stable ICU 2.0 | * @stable ICU 2.0 | |||
*/ | */ | |||
U_STABLE const int32_t* U_EXPORT2 | U_STABLE const int32_t* U_EXPORT2 | |||
ures_getIntVector(const UResourceBundle* resourceBundle, | ures_getIntVector(const UResourceBundle* resourceBundle, | |||
int32_t* len, | int32_t* len, | |||
UErrorCode* status); | UErrorCode* status); | |||
End of changes. 3 change blocks. | ||||
14 lines changed or deleted | 2 lines changed or added | |||
utypes.h | utypes.h | |||
---|---|---|---|---|
skipping to change at line 249 | skipping to change at line 249 | |||
* \def U_CALLCONV | * \def U_CALLCONV | |||
* Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary | * Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary | |||
* in callback function typedefs to make sure that the calling convention | * in callback function typedefs to make sure that the calling convention | |||
* is compatible. | * is compatible. | |||
* | * | |||
* This is only used for non-ICU-API functions. | * This is only used for non-ICU-API functions. | |||
* When a function is a public ICU API, | * When a function is a public ICU API, | |||
* you must use the U_CAPI and U_EXPORT2 qualifiers. | * you must use the U_CAPI and U_EXPORT2 qualifiers. | |||
* @stable ICU 2.0 | * @stable ICU 2.0 | |||
*/ | */ | |||
#if defined(OS390) && (__COMPILER_VER__ < 0x41020000) && defined(XP_CPLUSPL US) | #if defined(OS390) && defined(XP_CPLUSPLUS) | |||
# define U_CALLCONV __cdecl | # define U_CALLCONV __cdecl | |||
#else | #else | |||
# define U_CALLCONV U_EXPORT2 | # define U_CALLCONV U_EXPORT2 | |||
#endif | #endif | |||
/** | /** | |||
* \def NULL | * \def NULL | |||
* Define NULL if necessary, to 0 for C++ and to ((void *)0) for C. | * Define NULL if necessary, to 0 for C++ and to ((void *)0) for C. | |||
* @stable ICU 2.0 | * @stable ICU 2.0 | |||
*/ | */ | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
uversion.h | uversion.h | |||
---|---|---|---|---|
skipping to change at line 71 | skipping to change at line 71 | |||
/** The current ICU major version as an integer. | /** The current ICU major version as an integer. | |||
* This value will change in the subsequent releases of ICU | * This value will change in the subsequent releases of ICU | |||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
#define U_ICU_VERSION_MAJOR_NUM 4 | #define U_ICU_VERSION_MAJOR_NUM 4 | |||
/** The current ICU minor version as an integer. | /** The current ICU minor version as an integer. | |||
* This value will change in the subsequent releases of ICU | * This value will change in the subsequent releases of ICU | |||
* @stable ICU 2.6 | * @stable ICU 2.6 | |||
*/ | */ | |||
#define U_ICU_VERSION_MINOR_NUM 2 | #define U_ICU_VERSION_MINOR_NUM 3 | |||
/** The current ICU patchlevel version as an integer. | /** The current ICU patchlevel version as an integer. | |||
* This value will change in the subsequent releases of ICU | * This value will change in the subsequent releases of ICU | |||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
#define U_ICU_VERSION_PATCHLEVEL_NUM 1 | #define U_ICU_VERSION_PATCHLEVEL_NUM 1 | |||
/** The current ICU build level version as an integer. | /** The current ICU build level version as an integer. | |||
* This value is for use by ICU clients. It defaults to 0. | * This value is for use by ICU clients. It defaults to 0. | |||
* @stable ICU 4.0 | * @stable ICU 4.0 | |||
*/ | */ | |||
#ifndef U_ICU_VERSION_BUILDLEVEL_NUM | #ifndef U_ICU_VERSION_BUILDLEVEL_NUM | |||
#define U_ICU_VERSION_BUILDLEVEL_NUM 0 | #define U_ICU_VERSION_BUILDLEVEL_NUM 0 | |||
#endif | #endif | |||
/** Glued version suffix for renamers | /** Glued version suffix for renamers | |||
* This value will change in the subsequent releases of ICU | * This value will change in the subsequent releases of ICU | |||
* @stable ICU 2.6 | * @stable ICU 2.6 | |||
*/ | */ | |||
#define U_ICU_VERSION_SUFFIX _4_2 | #define U_ICU_VERSION_SUFFIX _4_3 | |||
/** The current ICU library version as a dotted-decimal string. The patchle vel and buildlevel | /** The current ICU library version as a dotted-decimal string. The patchle vel | |||
* only appears in this string if it non-zero. | * only appears in this string if it non-zero. | |||
* This value will change in the subsequent releases of ICU | * This value will change in the subsequent releases of ICU | |||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
#define U_ICU_VERSION "4.2.1" | #define U_ICU_VERSION "4.3.1" | |||
/** The current ICU library major/minor version as a string without dots, f or library name suffixes. | /** The current ICU library major/minor version as a string without dots, f or library name suffixes. | |||
* This value will change in the subsequent releases of ICU | * This value will change in the subsequent releases of ICU | |||
* @stable ICU 2.6 | * @stable ICU 2.6 | |||
*/ | */ | |||
#define U_ICU_VERSION_SHORT "42" | #define U_ICU_VERSION_SHORT "43" | |||
/** An ICU version consists of up to 4 numbers from 0..255. | /** An ICU version consists of up to 4 numbers from 0..255. | |||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
#define U_MAX_VERSION_LENGTH 4 | #define U_MAX_VERSION_LENGTH 4 | |||
/** In a string, ICU version fields are delimited by dots. | /** In a string, ICU version fields are delimited by dots. | |||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
#define U_VERSION_DELIMITER '.' | #define U_VERSION_DELIMITER '.' | |||
/** The maximum length of an ICU version string. | /** The maximum length of an ICU version string. | |||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
#define U_MAX_VERSION_STRING_LENGTH 20 | #define U_MAX_VERSION_STRING_LENGTH 20 | |||
/** The binary form of a version on ICU APIs is an array of 4 uint8_t. | /** The binary form of a version on ICU APIs is an array of 4 uint8_t. | |||
* To compare two versions, use memcmp(v1,v2,sizeof(UVersionInfo)). | ||||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]; | typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]; | |||
/*========================================================================= ==*/ | /*========================================================================= ==*/ | |||
/* C++ namespace if supported. Versioned unless versioning is disabled. */ | /* C++ namespace if supported. Versioned unless versioning is disabled. */ | |||
/*========================================================================= ==*/ | /*========================================================================= ==*/ | |||
/** | /** | |||
* \def U_NAMESPACE_BEGIN | * \def U_NAMESPACE_BEGIN | |||
skipping to change at line 166 | skipping to change at line 167 | |||
* If the compiler doesn't support namespaces, this does nothing. | * If the compiler doesn't support namespaces, this does nothing. | |||
* @stable ICU 2.4 | * @stable ICU 2.4 | |||
*/ | */ | |||
/* Define namespace symbols if the compiler supports it. */ | /* Define namespace symbols if the compiler supports it. */ | |||
#if U_HAVE_NAMESPACE && defined(XP_CPLUSPLUS) | #if U_HAVE_NAMESPACE && defined(XP_CPLUSPLUS) | |||
# if U_DISABLE_RENAMING | # if U_DISABLE_RENAMING | |||
# define U_ICU_NAMESPACE icu | # define U_ICU_NAMESPACE icu | |||
namespace U_ICU_NAMESPACE { } | namespace U_ICU_NAMESPACE { } | |||
# else | # else | |||
# define U_ICU_NAMESPACE icu_4_2 | # define U_ICU_NAMESPACE icu_4_3 | |||
namespace U_ICU_NAMESPACE { } | namespace U_ICU_NAMESPACE { } | |||
namespace icu = U_ICU_NAMESPACE; | namespace icu = U_ICU_NAMESPACE; | |||
# endif | # endif | |||
# define U_NAMESPACE_BEGIN namespace U_ICU_NAMESPACE { | # define U_NAMESPACE_BEGIN namespace U_ICU_NAMESPACE { | |||
# define U_NAMESPACE_END } | # define U_NAMESPACE_END } | |||
# define U_NAMESPACE_USE using namespace U_ICU_NAMESPACE; | # define U_NAMESPACE_USE using namespace U_ICU_NAMESPACE; | |||
# define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE:: | # define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE:: | |||
# ifndef U_USING_ICU_NAMESPACE | # ifndef U_USING_ICU_NAMESPACE | |||
skipping to change at line 247 | skipping to change at line 248 | |||
* Gets the ICU release version. The version array stores the version info rmation | * Gets the ICU release version. The version array stores the version info rmation | |||
* for ICU. For example, release "1.3.31.2" is then represented as 0x01031 F02. | * for ICU. For example, release "1.3.31.2" is then represented as 0x01031 F02. | |||
* Definition of this function lives in putil.c | * Definition of this function lives in putil.c | |||
* | * | |||
* @param versionArray the version # information, the result will be filled in | * @param versionArray the version # information, the result will be filled in | |||
* @stable ICU 2.0 | * @stable ICU 2.0 | |||
*/ | */ | |||
U_STABLE void U_EXPORT2 | U_STABLE void U_EXPORT2 | |||
u_getVersion(UVersionInfo versionArray); | u_getVersion(UVersionInfo versionArray); | |||
/** | ||||
* Compare two version numbers, v1 and v2, numerically. | ||||
* Returns 0 if v1 == v2 | ||||
* Returns -1 if v1 < v2 (v1 is older, v2 is newer) | ||||
* Returns +1 if v1 > v2 (v1 is newer, v2 is older) | ||||
* @param v1 version to compare | ||||
* @param v2 version to compare | ||||
* @return comparison result | ||||
* @draft ICU 4.2 | ||||
*/ | ||||
U_STABLE int32_t U_EXPORT2 | ||||
u_compareVersions(UVersionInfo v1, UVersionInfo v2); | ||||
/*========================================================================= == | /*========================================================================= == | |||
* ICU collation framework version information | * ICU collation framework version information | |||
* Version info that can be obtained from a collator is affected by these | * Version info that can be obtained from a collator is affected by these | |||
* numbers in a secret and magic way. Please use collator version as whole | * numbers in a secret and magic way. Please use collator version as whole | |||
*========================================================================= == | *========================================================================= == | |||
*/ | */ | |||
/** Collation runtime version (sort key generator, strcoll). | /** Collation runtime version (sort key generator, strcoll). | |||
* If the version is different, sortkeys for the same string could be diffe rent | * If the version is different, sortkeys for the same string could be diffe rent | |||
* version 2 was in ICU 1.8.1. changed is: compression intervals, French se condary | * version 2 was in ICU 1.8.1. changed is: compression intervals, French se condary | |||
End of changes. 8 change blocks. | ||||
19 lines changed or deleted | 7 lines changed or added | |||