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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/