LEFontInstance.h   LEFontInstance.h 
/* /*
* *
* (C) Copyright IBM Corp. 1998-2007 - All Rights Reserved * (C) Copyright IBM Corp. 1998-2012 - All Rights Reserved
* *
*/ */
#ifndef __LEFONTINSTANCE_H #ifndef __LEFONTINSTANCE_H
#define __LEFONTINSTANCE_H #define __LEFONTINSTANCE_H
#include "LETypes.h" #include "LETypes.h"
/** /**
* \file * \file
* \brief C++ API: Layout Engine Font Instance object * \brief C++ API: Layout Engine Font Instance object
skipping to change at line 169 skipping to change at line 169
* @param tableTag - the four byte table tag. (e.g. 'cmap') * @param tableTag - the four byte table tag. (e.g. 'cmap')
* *
* @return the address of the table in memory, or <code>NULL</code> * @return the address of the table in memory, or <code>NULL</code>
* if the table doesn't exist. * if the table doesn't exist.
* *
* @stable ICU 2.8 * @stable ICU 2.8
*/ */
virtual const void *getFontTable(LETag tableTag) const = 0; virtual const void *getFontTable(LETag tableTag) const = 0;
/** /**
* This method reads a table from the font. Note that in general,
* it only makes sense to call this method on an <code>LEFontInstance</
code>
* which represents a physical font - i.e. one which has been returned
by
* <code>getSubFont()</code>. This is because each subfont in a composi
te font
* will have different tables, and there's no way to know which subfont
to access.
*
* Subclasses which represent composite fonts should always return <cod
e>NULL</code>.
*
* This version sets a length, for range checking.
*
* @param tableTag - the four byte table tag. (e.g. 'cmap')
* @param length - ignored on entry, on exit will be the length of the
table if known, or -1 if unknown.
* @return the address of the table in memory, or <code>NULL</code>
* if the table doesn't exist.
* @internal
*/
virtual const void* getFontTable(LETag tableTag, size_t &length) const
{ length=-1; return getFontTable(tableTag); } /* -1 = unknown length */
/**
* This method is used to determine if the font can * This method is used to determine if the font can
* render the given character. This can usually be done * render the given character. This can usually be done
* by looking the character up in the font's character * by looking the character up in the font's character
* to glyph mapping. * to glyph mapping.
* *
* The default implementation of this method will return * The default implementation of this method will return
* <code>TRUE</code> if <code>mapCharToGlyph(ch)</code> * <code>TRUE</code> if <code>mapCharToGlyph(ch)</code>
* returns a non-zero value. * returns a non-zero value.
* *
* @param ch - the character to be tested * @param ch - the character to be tested
 End of changes. 2 change blocks. 
1 lines changed or deleted 27 lines changed or added


 LETypes.h   LETypes.h 
/* /*
* *
* (C) Copyright IBM Corp. 1998-2011 - All Rights Reserved * (C) Copyright IBM Corp. 1998-2012 - All Rights Reserved
* *
*/ */
#ifndef __LETYPES_H #ifndef __LETYPES_H
#define __LETYPES_H #define __LETYPES_H
#if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || define d(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined (U_COMBINED_IMPLEMENTATION)) #if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || define d(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined (U_COMBINED_IMPLEMENTATION))
#define LE_USE_CMEMORY #define LE_USE_CMEMORY
#endif #endif
skipping to change at line 305 skipping to change at line 305
*/ */
#define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSi ze) * sizeof (array)[0]) #define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSi ze) * sizeof (array)[0])
/** /**
* Free an array of basic types. This is used to isolate the rest of * Free an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h. * the LayoutEngine code from cmemory.h.
* *
* @internal * @internal
*/ */
#define LE_DELETE_ARRAY(array) uprv_free((void *) (array)) #define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
#else
/* Not using ICU memory - use C std lib versions */
#include <stdlib.h>
#include <string.h>
/**
* A convenience macro to get the length of an array.
*
* @internal
*/
#define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
/**
* A convenience macro for copying an array.
*
* @internal
*/
#define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src
), (count) * sizeof (src)[0])
/**
* Allocate an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h.
*
* @internal
*/
#define LE_NEW_ARRAY(type, count) (type *) malloc((count) * sizeof(type))
/**
* Re-allocate an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h.
*
* @internal
*/
#define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) *
sizeof (array)[0])
/**
* Free an array of basic types. This is used to isolate the rest of
* the LayoutEngine code from cmemory.h.
*
* @internal
*/
#define LE_DELETE_ARRAY(array) free((void *) (array))
#endif #endif
#endif /* U_HIDE_INTERNAL_API */ #endif /* U_HIDE_INTERNAL_API */
/** /**
* A macro to construct the four-letter tags used to * A macro to construct the four-letter tags used to
* label TrueType tables, and for script, language and * label TrueType tables, and for script, language and
* feature tags in OpenType tables. * feature tags in OpenType tables.
* *
* WARNING: THIS MACRO WILL ONLY WORK CORRECTLY IF * WARNING: THIS MACRO WILL ONLY WORK CORRECTLY IF
* THE ARGUMENT CHARACTERS ARE ASCII. * THE ARGUMENT CHARACTERS ARE ASCII.
 End of changes. 2 change blocks. 
1 lines changed or deleted 48 lines changed or added


 decimfmt.h   decimfmt.h 
skipping to change at line 41 skipping to change at line 41
*/ */
#if !UCONFIG_NO_FORMATTING #if !UCONFIG_NO_FORMATTING
#include "unicode/dcfmtsym.h" #include "unicode/dcfmtsym.h"
#include "unicode/numfmt.h" #include "unicode/numfmt.h"
#include "unicode/locid.h" #include "unicode/locid.h"
#include "unicode/fpositer.h" #include "unicode/fpositer.h"
#include "unicode/stringpiece.h" #include "unicode/stringpiece.h"
#include "unicode/curramt.h" #include "unicode/curramt.h"
#include "unicode/enumset.h"
/** /**
* \def UNUM_DECIMALFORMAT_INTERNAL_SIZE * \def UNUM_DECIMALFORMAT_INTERNAL_SIZE
* @internal * @internal
*/ */
#if UCONFIG_FORMAT_FASTPATHS_49 #if UCONFIG_FORMAT_FASTPATHS_49
#define UNUM_DECIMALFORMAT_INTERNAL_SIZE 16 #define UNUM_DECIMALFORMAT_INTERNAL_SIZE 16
#endif #endif
U_NAMESPACE_BEGIN U_NAMESPACE_BEGIN
class DigitList; class DigitList;
class ChoiceFormat; class ChoiceFormat;
class CurrencyPluralInfo; class CurrencyPluralInfo;
class Hashtable; class Hashtable;
class UnicodeSet; class UnicodeSet;
class FieldPositionHandler; class FieldPositionHandler;
/** // explicit template instantiation. see digitlst.h
* enum bitset for boolean fields. Similar to Java EnumSet<>. #if defined (_MSC_VER)
* Needs to range check. Not specific to decimal format. template class U_I18N_API EnumSet<UNumberFormatAttribute,
* @internal UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
*/ UNUM_LIMIT_BOOLEAN_ATTRIBUTE>;
template<typename T, uint32_t minValue, uint32_t limitValue> #endif
class EnumSet {
public:
EnumSet() : fBools(0) {}
EnumSet(const EnumSet<T,minValue,limitValue>& other) : fBools(other.fBo
ols) {}
~EnumSet() {}
void clear() { fBools=0; }
void add(T toAdd) { set(toAdd, 1); }
void remove(T toRemove) { set(toRemove, 0); }
int32_t contains(T toCheck) const { return get(toCheck); }
void set(T toSet, int32_t v) { fBools=(fBools&(~flag(toSet)))|(v?(flag(
toSet)):0); }
int32_t get(T toCheck) const { return (fBools & flag(toCheck))?1:0; }
UBool isValidEnum(T toCheck) const { return (toCheck>=minValue&&toChec
k<limitValue); }
UBool isValidValue(int32_t v) const { return (v==0||v==1); }
const EnumSet<T,minValue,limitValue>& operator=(const EnumSet<T,minValu
e,limitValue>& other) {
fBools = other.fBools;
return *this;
}
uint32_t getAll() const {
return fBools;
}
private:
uint32_t flag(T toCheck) const { return (1<<(toCheck-minValue)); }
private:
uint32_t fBools;
};
/** /**
* DecimalFormat is a concrete subclass of NumberFormat that formats decima l * DecimalFormat is a concrete subclass of NumberFormat that formats decima l
* numbers. It has a variety of features designed to make it possible to pa rse * numbers. It has a variety of features designed to make it possible to pa rse
* and format numbers in any locale, including support for Western, Arabic, or * and format numbers in any locale, including support for Western, Arabic, or
* Indic digits. It also supports different flavors of numbers, including * Indic digits. It also supports different flavors of numbers, including
* integers ("123"), fixed-point numbers ("123.4"), scientific notation * integers ("123"), fixed-point numbers ("123.4"), scientific notation
* ("1.23E4"), percentages ("12%"), and currency amounts ("$123", "USD123", * ("1.23E4"), percentages ("12%"), and currency amounts ("$123", "USD123",
* "123 US dollars"). All of these flavors can be easily localized. * "123 US dollars"). All of these flavors can be easily localized.
* *
 End of changes. 2 change blocks. 
37 lines changed or deleted 7 lines changed or added


 dtfmtsym.h   dtfmtsym.h 
skipping to change at line 28 skipping to change at line 28
#ifndef DTFMTSYM_H #ifndef DTFMTSYM_H
#define DTFMTSYM_H #define DTFMTSYM_H
#include "unicode/utypes.h" #include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING #if !UCONFIG_NO_FORMATTING
#include "unicode/calendar.h" #include "unicode/calendar.h"
#include "unicode/uobject.h" #include "unicode/uobject.h"
#include "unicode/locid.h" #include "unicode/locid.h"
#include "unicode/udat.h"
#include "unicode/ures.h" #include "unicode/ures.h"
/** /**
* \file * \file
* \brief C++ API: Symbols for formatting dates. * \brief C++ API: Symbols for formatting dates.
*/ */
U_NAMESPACE_BEGIN U_NAMESPACE_BEGIN
/* forward declaration */ /* forward declaration */
skipping to change at line 803 skipping to change at line 804
/** /**
* Create zone strings array by locale if not yet available * Create zone strings array by locale if not yet available
*/ */
void initZoneStringsArray(void); void initZoneStringsArray(void);
/** /**
* Delete just the zone strings. * Delete just the zone strings.
*/ */
void disposeZoneStrings(void); void disposeZoneStrings(void);
/**
* Returns the date format field index of the pattern character c,
* or UDAT_FIELD_COUNT if c is not a pattern character.
*/
static UDateFormatField U_EXPORT2 getPatternCharIndex(UChar c);
/**
* Returns TRUE if f (with its pattern character repeated count times)
is a numeric field.
*/
static UBool U_EXPORT2 isNumericField(UDateFormatField f, int32_t count
);
/**
* Returns TRUE if c (repeated count times) is the pattern character fo
r a numeric field.
*/
static UBool U_EXPORT2 isNumericPatternChar(UChar c, int32_t count);
}; };
U_NAMESPACE_END U_NAMESPACE_END
#endif /* #if !UCONFIG_NO_FORMATTING */ #endif /* #if !UCONFIG_NO_FORMATTING */
#endif // _DTFMTSYM #endif // _DTFMTSYM
//eof //eof
 End of changes. 2 change blocks. 
0 lines changed or deleted 20 lines changed or added


 fmtable.h   fmtable.h 
skipping to change at line 35 skipping to change at line 35
*/ */
#if !UCONFIG_NO_FORMATTING #if !UCONFIG_NO_FORMATTING
U_NAMESPACE_BEGIN U_NAMESPACE_BEGIN
class CharString; class CharString;
class DigitList; class DigitList;
/** /**
* \def UNUM_INTERNAL_STACKARRAY_SIZE
* @internal
*/
#if U_PLATFORM == U_PF_OS400
#define UNUM_INTERNAL_STACKARRAY_SIZE 144
#else
#define UNUM_INTERNAL_STACKARRAY_SIZE 128
#endif
/**
* Formattable objects can be passed to the Format class or * Formattable objects can be passed to the Format class or
* its subclasses for formatting. Formattable is a thin wrapper * its subclasses for formatting. Formattable is a thin wrapper
* class which interconverts between the primitive numeric types * class which interconverts between the primitive numeric types
* (double, long, etc.) as well as UDate and UnicodeString. * (double, long, etc.) as well as UDate and UnicodeString.
* *
* <p>Internally, a Formattable object is a union of primitive types. * <p>Internally, a Formattable object is a union of primitive types.
* As such, it can only store one flavor of data at a time. To * As such, it can only store one flavor of data at a time. To
* determine what flavor of data it contains, use the getType method. * determine what flavor of data it contains, use the getType method.
* *
* <p>As of ICU 3.0, Formattable may also wrap a UObject pointer, * <p>As of ICU 3.0, Formattable may also wrap a UObject pointer,
skipping to change at line 652 skipping to change at line 662
struct { struct {
Formattable* fArray; Formattable* fArray;
int32_t fCount; int32_t fCount;
} fArrayAndCount; } fArrayAndCount;
} fValue; } fValue;
CharString *fDecimalStr; CharString *fDecimalStr;
DigitList *fDecimalNum; DigitList *fDecimalNum;
char fStackData[128]; // must be big enough for DigitLis t char fStackData[UNUM_INTERNAL_STACKARRAY_SIZE]; // must be big enough for DigitList
Type fType; Type fType;
UnicodeString fBogus; // Bogus string when it's needed. UnicodeString fBogus; // Bogus string when it's needed.
}; };
inline UDate Formattable::getDate(UErrorCode& status) const { inline UDate Formattable::getDate(UErrorCode& status) const {
if (fType != kDate) { if (fType != kDate) {
if (U_SUCCESS(status)) { if (U_SUCCESS(status)) {
status = U_INVALID_FORMAT_ERROR; status = U_INVALID_FORMAT_ERROR;
} }
 End of changes. 2 change blocks. 
1 lines changed or deleted 11 lines changed or added


 locid.h   locid.h 
skipping to change at line 739 skipping to change at line 739
char baseNameBuffer[ULOC_FULLNAME_CAPACITY]; char baseNameBuffer[ULOC_FULLNAME_CAPACITY];
UBool fIsBogus; UBool fIsBogus;
static const Locale &getLocale(int locid); static const Locale &getLocale(int locid);
/** /**
* A friend to allow the default locale to be set by either the C or C+ + API. * A friend to allow the default locale to be set by either the C or C+ + API.
* @internal * @internal
*/ */
friend void locale_set_default_internal(const char *); friend Locale *locale_set_default_internal(const char *, UErrorCode& st atus);
}; };
inline UBool inline UBool
Locale::operator!=(const Locale& other) const Locale::operator!=(const Locale& other) const
{ {
return !operator==(other); return !operator==(other);
} }
inline const char * inline const char *
Locale::getCountry() const Locale::getCountry() const
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 platform.h   platform.h 
skipping to change at line 667 skipping to change at line 667
*/ */
#ifdef U_HAVE_CHAR16_T #ifdef U_HAVE_CHAR16_T
/* Use the predefined value. */ /* Use the predefined value. */
#else #else
/* /*
* Notes: * Notes:
* Visual Studio 10 (_MSC_VER>=1600) defines char16_t but * Visual Studio 10 (_MSC_VER>=1600) defines char16_t but
* does not support u"abc" string literals. * does not support u"abc" string literals.
* gcc 4.4 defines the __CHAR16_TYPE__ macro to a usable type but * gcc 4.4 defines the __CHAR16_TYPE__ macro to a usable type but
* does not support u"abc" string literals. * does not support u"abc" string literals.
* C++11 requires support for UTF-16 literals * C++11 and C11 require support for UTF-16 literals
*/ */
# if (defined(__cplusplus) && __cplusplus >= 201103L) # if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(__STDC_ VERSION__) && __STDC_VERSION__ >= 201112L)
# define U_HAVE_CHAR16_T 1 # define U_HAVE_CHAR16_T 1
# else # else
# define U_HAVE_CHAR16_T 0 # define U_HAVE_CHAR16_T 0
# endif # endif
#endif #endif
/** /**
* @{ * @{
* \def U_DECLARE_UTF16 * \def U_DECLARE_UTF16
* Do not use this macro because it is not defined on all platforms. * Do not use this macro because it is not defined on all platforms.
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 smpdtfmt.h   smpdtfmt.h 
skipping to change at line 946 skipping to change at line 946
int32_t minDigits, int32_t minDigits,
int32_t maxDigits) const; int32_t maxDigits) const;
/** /**
* Return true if the given format character, occuring count * Return true if the given format character, occuring count
* times, represents a numeric field. * times, represents a numeric field.
*/ */
static UBool isNumeric(UChar formatChar, int32_t count); static UBool isNumeric(UChar formatChar, int32_t count);
/** /**
* Returns TRUE if the patternOffset is at the start of a numeric field
.
*/
static UBool isAtNumericField(const UnicodeString &pattern, int32_t pat
ternOffset);
/**
* Returns TRUE if the patternOffset is right after a non-numeric field
.
*/
static UBool isAfterNonNumericField(const UnicodeString &pattern, int32
_t patternOffset);
/**
* initializes fCalendar from parameters. Returns fCalendar as a conve nience. * initializes fCalendar from parameters. Returns fCalendar as a conve nience.
* @param adoptZone Zone to be adopted, or NULL for TimeZone::createDe fault(). * @param adoptZone Zone to be adopted, or NULL for TimeZone::createDe fault().
* @param locale Locale of the calendar * @param locale Locale of the calendar
* @param status Error code * @param status Error code
* @return the newly constructed fCalendar * @return the newly constructed fCalendar
*/ */
Calendar *initializeCalendar(TimeZone* adoptZone, const Locale& locale, UErrorCode& status); Calendar *initializeCalendar(TimeZone* adoptZone, const Locale& locale, UErrorCode& status);
/** /**
* initializes fSymbols from parameters. * initializes fSymbols from parameters.
 End of changes. 1 change blocks. 
0 lines changed or deleted 14 lines changed or added


 umachine.h   umachine.h 
skipping to change at line 257 skipping to change at line 257
# endif # endif
#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 char16_t, if available, * Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char 16_t),
* or wchar_t if that is 16 bits wide; always assumed to be unsigned. * or wchar_t if that is 16 bits wide; always assumed to be unsigned.
* If neither is available, then define UChar to be uint16_t. * If neither is available, then define UChar to be uint16_t.
* *
* 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 4.4 * @stable ICU 4.4
*/ */
#if defined(UCHAR_TYPE)
/* Define UChar to be compatible with char16_t or wchar_t if possible. */ typedef UCHAR_TYPE UChar;
#if U_HAVE_CHAR16_T /* Not #elif U_HAVE_CHAR16_T -- because that is type-incompatible with pre-
typedef char16_t UChar; C++11 callers
typedef char16_t UChar; */
#elif U_SIZEOF_WCHAR_T==2 #elif U_SIZEOF_WCHAR_T==2
typedef wchar_t UChar; typedef wchar_t UChar;
#elif defined(__CHAR16_TYPE__) #elif defined(__CHAR16_TYPE__)
typedef __CHAR16_TYPE__ UChar; typedef __CHAR16_TYPE__ 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.
 End of changes. 2 change blocks. 
5 lines changed or deleted 6 lines changed or added


 ustring.h   ustring.h 
skipping to change at line 942 skipping to change at line 942
* U_STRING_INIT(var, GLUCK, 9) * U_STRING_INIT(var, GLUCK, 9)
* </pre> * </pre>
* *
* Instead, use the string literal "Mr. Gluck" as the argument to both mac ro * Instead, use the string literal "Mr. Gluck" as the argument to both mac ro
* calls. * calls.
* *
* *
* @stable ICU 2.0 * @stable ICU 2.0
*/ */
#if defined(U_DECLARE_UTF16) #if defined(U_DECLARE_UTF16)
# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1 ]=U_DECLARE_UTF16(cs) # define U_STRING_DECL(var, cs, length) static const UChar *var=(const UC har *)U_DECLARE_UTF16(cs)
/**@stable ICU 2.0 */ /**@stable ICU 2.0 */
# define U_STRING_INIT(var, cs, length) # define U_STRING_INIT(var, cs, length)
#elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16))) #elif U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16)))
# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1 ]=L ## cs # define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1 ]=L ## cs
/**@stable ICU 2.0 */ /**@stable ICU 2.0 */
# define U_STRING_INIT(var, cs, length) # define U_STRING_INIT(var, cs, length)
#elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY #elif U_SIZEOF_UCHAR==1 && U_CHARSET_FAMILY==U_ASCII_FAMILY
# define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1 ]=cs # define U_STRING_DECL(var, cs, length) static const UChar var[(length)+1 ]=cs
/**@stable ICU 2.0 */ /**@stable ICU 2.0 */
# define U_STRING_INIT(var, cs, length) # define U_STRING_INIT(var, cs, length)
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 uvernum.h   uvernum.h 
skipping to change at line 72 skipping to change at line 72
/** 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 1 #define U_ICU_VERSION_MINOR_NUM 1
/** 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 0 #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
skipping to change at line 121 skipping to change at line 121
#define U_DEF2_ICU_ENTRY_POINT_RENAME(x,y) U_DEF_ICU_ENTRY_POINT_RENAME(x,y ) #define U_DEF2_ICU_ENTRY_POINT_RENAME(x,y) U_DEF_ICU_ENTRY_POINT_RENAME(x,y )
#define U_ICU_ENTRY_POINT_RENAME(x) U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_IC U_VERSION_SUFFIX) #define U_ICU_ENTRY_POINT_RENAME(x) U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_IC U_VERSION_SUFFIX)
#endif #endif
#endif #endif
/** The current ICU library version as a dotted-decimal string. The patchle vel /** 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 "50.1" #define U_ICU_VERSION "50.1.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 "50" #define U_ICU_VERSION_SHORT "50"
#ifndef U_HIDE_INTERNAL_API #ifndef U_HIDE_INTERNAL_API
/** Data version in ICU4C. /** Data version in ICU4C.
* @internal ICU 4.4 Internal Use Only * @internal ICU 4.4 Internal Use Only
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 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/