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