ICU-20438 ICU 64 C API promotion and API Change Report generation.

This commit is contained in:
Andy Heninger 2019-02-25 14:47:32 -08:00
parent 513eff5408
commit 666d1a9d8e
18 changed files with 1928 additions and 1586 deletions

File diff suppressed because it is too large Load diff

View file

@ -67,6 +67,10 @@ public:
*/
LocaleBuilder();
/**
* Destructor
* @draft ICU 64
*/
virtual ~LocaleBuilder();
/**

View file

@ -103,20 +103,17 @@ typedef enum UCurrNameStyle {
* currency, such as "US Dollar" for USD.
* @stable ICU 2.6
*/
UCURR_LONG_NAME
UCURR_LONG_NAME,
#ifndef U_HIDE_DRAFT_API
,
/**
* Selector for getName() indicating the narrow currency symbol.
* The narrow currency symbol is similar to the regular currency
* symbol, but it always takes the shortest form: for example,
* "$" instead of "US$" for USD in en-CA.
*
* @draft ICU 61
* @stable ICU 61
*/
UCURR_NARROW_SYMBOL_NAME
#endif // U_HIDE_DRAFT_API
} UCurrNameStyle;
#if !UCONFIG_NO_SERVICE

View file

@ -609,7 +609,6 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
} \
}
#ifndef U_HIDE_DRAFT_API
/**
* If the string ends with a UTF-8 byte sequence that is valid so far
* but incomplete, then reduce the length of the string to end before
@ -634,7 +633,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* @param start int32_t starting string offset (usually 0)
* @param length int32_t string length (usually start<=length)
* @see U8_SET_CP_START
* @draft ICU 61
* @stable ICU 61
*/
#define U8_TRUNCATE_IF_INCOMPLETE(s, start, length) \
if((length)>(start)) { \
@ -658,7 +657,6 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
} \
} \
}
#endif // U_HIDE_DRAFT_API
/* definitions with backward iteration -------------------------------------- */

View file

@ -544,12 +544,8 @@ typedef enum UErrorCode {
U_DEFAULT_KEYWORD_MISSING, /**< Missing DEFAULT rule in plural rules */
U_DECIMAL_NUMBER_SYNTAX_ERROR, /**< Decimal number syntax error */
U_FORMAT_INEXACT_ERROR, /**< Cannot format a number exactly and rounding mode is ROUND_UNNECESSARY @stable ICU 4.8 */
#ifndef U_HIDE_DRAFT_API
U_NUMBER_ARG_OUTOFBOUNDS_ERROR, /**< The argument to a NumberFormatter helper method was out of bounds; the bounds are usually 0 to 999. @draft ICU 61 */
#endif // U_HIDE_DRAFT_API
#ifndef U_HIDE_DRAFT_API
U_NUMBER_SKELETON_SYNTAX_ERROR, /**< The number skeleton passed to C++ NumberFormatter or C UNumberFormatter was invalid or contained a syntax error. @draft ICU 62 */
#endif // U_HIDE_DRAFT_API
U_NUMBER_ARG_OUTOFBOUNDS_ERROR, /**< The argument to a NumberFormatter helper method was out of bounds; the bounds are usually 0 to 999. @stable ICU 61 */
U_NUMBER_SKELETON_SYNTAX_ERROR, /**< The number skeleton passed to C++ NumberFormatter or C UNumberFormatter was invalid or contained a syntax error. @stable ICU 62 */
#ifndef U_HIDE_DEPRECATED_API
/**
* One more than the highest normal formatting API error code.

View file

@ -151,7 +151,7 @@ Derived NumberFormatterSettings<Derived>::roundingMode(UNumberFormatRoundingMode
}
template<typename Derived>
Derived NumberFormatterSettings<Derived>::grouping(UGroupingStrategy strategy) const& {
Derived NumberFormatterSettings<Derived>::grouping(UNumberGroupingStrategy strategy) const& {
Derived copy(*this);
// NOTE: This is slightly different than how the setting is stored in Java
// because we want to put it on the stack.
@ -160,7 +160,7 @@ Derived NumberFormatterSettings<Derived>::grouping(UGroupingStrategy strategy) c
}
template<typename Derived>
Derived NumberFormatterSettings<Derived>::grouping(UGroupingStrategy strategy)&& {
Derived NumberFormatterSettings<Derived>::grouping(UNumberGroupingStrategy strategy)&& {
Derived move(std::move(*this));
move.fMacros.grouper = Grouper::forStrategy(strategy);
return move;

View file

@ -34,7 +34,7 @@ int16_t getMinGroupingForLocale(const Locale& locale) {
}
Grouper Grouper::forStrategy(UGroupingStrategy grouping) {
Grouper Grouper::forStrategy(UNumberGroupingStrategy grouping) {
switch (grouping) {
case UNUM_GROUPING_OFF:
return {-1, -1, -2, grouping};

View file

@ -217,7 +217,7 @@ UNumberFormatRoundingMode stem_to_object::roundingMode(skeleton::StemEnum stem)
}
}
UGroupingStrategy stem_to_object::groupingStrategy(skeleton::StemEnum stem) {
UNumberGroupingStrategy stem_to_object::groupingStrategy(skeleton::StemEnum stem) {
switch (stem) {
case STEM_GROUP_OFF:
return UNUM_GROUPING_OFF;
@ -315,7 +315,7 @@ void enum_to_stem_string::roundingMode(UNumberFormatRoundingMode value, UnicodeS
}
}
void enum_to_stem_string::groupingStrategy(UGroupingStrategy value, UnicodeString& sb) {
void enum_to_stem_string::groupingStrategy(UNumberGroupingStrategy value, UnicodeString& sb) {
switch (value) {
case UNUM_GROUPING_OFF:
sb.append(u"group-off", -1);

View file

@ -175,7 +175,7 @@ Precision precision(skeleton::StemEnum stem);
UNumberFormatRoundingMode roundingMode(skeleton::StemEnum stem);
UGroupingStrategy groupingStrategy(skeleton::StemEnum stem);
UNumberGroupingStrategy groupingStrategy(skeleton::StemEnum stem);
UNumberUnitWidth unitWidth(skeleton::StemEnum stem);
@ -193,7 +193,7 @@ namespace enum_to_stem_string {
void roundingMode(UNumberFormatRoundingMode value, UnicodeString& sb);
void groupingStrategy(UGroupingStrategy value, UnicodeString& sb);
void groupingStrategy(UNumberGroupingStrategy value, UnicodeString& sb);
void unitWidth(UNumberUnitWidth value, UnicodeString& sb);

View file

@ -273,7 +273,6 @@ public:
*/
const UnicodeString& getAppendItemName(UDateTimePatternField field) const;
#ifndef U_HIDE_DRAFT_API
/**
* The general interface to get a display name for a particular date/time field,
* in one of several possible display widths.
@ -281,10 +280,9 @@ public:
* @param field The desired UDateTimePatternField, such as UDATPG_ERA_FIELD.
* @param width The desired UDateTimePGDisplayWidth, such as UDATPG_ABBREVIATED.
* @return. The display name for field
* @draft ICU 61
* @stable ICU 61
*/
UnicodeString getFieldDisplayName(UDateTimePatternField field, UDateTimePGDisplayWidth width) const;
#endif // U_HIDE_DRAFT_API
/**
* The DateTimeFormat is a message format pattern used to compose date and

View file

@ -240,6 +240,7 @@ class U_I18N_API ConstrainedFieldPosition : public UMemory {
*/
class U_I18N_API FormattedValue /* not : public UObject because this is an interface/mixin class */ {
public:
/** @draft ICU 64 */
virtual ~FormattedValue();
/**

View file

@ -976,7 +976,7 @@ class U_I18N_API MeasureUnit: public UObject {
* Caller owns returned value and must free it.
* Also see {@link #getDayPerson()}.
* @param status ICU error code.
* @draft ICU 63
* @draft ICU 64
*/
static MeasureUnit *createDayPerson(UErrorCode &status);
#endif /* U_HIDE_DRAFT_API */
@ -1086,7 +1086,7 @@ class U_I18N_API MeasureUnit: public UObject {
* Caller owns returned value and must free it.
* Also see {@link #getMonthPerson()}.
* @param status ICU error code.
* @draft ICU 63
* @draft ICU 64
*/
static MeasureUnit *createMonthPerson(UErrorCode &status);
#endif /* U_HIDE_DRAFT_API */
@ -1160,7 +1160,7 @@ class U_I18N_API MeasureUnit: public UObject {
* Caller owns returned value and must free it.
* Also see {@link #getWeekPerson()}.
* @param status ICU error code.
* @draft ICU 63
* @draft ICU 64
*/
static MeasureUnit *createWeekPerson(UErrorCode &status);
#endif /* U_HIDE_DRAFT_API */
@ -1198,7 +1198,7 @@ class U_I18N_API MeasureUnit: public UObject {
* Caller owns returned value and must free it.
* Also see {@link #getYearPerson()}.
* @param status ICU error code.
* @draft ICU 63
* @draft ICU 64
*/
static MeasureUnit *createYearPerson(UErrorCode &status);
#endif /* U_HIDE_DRAFT_API */

View file

@ -2408,7 +2408,7 @@ class U_I18N_API FormattedNumber : public UMemory, public FormattedValue {
/**
* Default constructor; makes an empty FormattedNumber.
* @draft ICU 60
* @draft ICU 64
*/
FormattedNumber()
: fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {};

View file

@ -237,10 +237,12 @@ public:
kPermillField = UNUM_PERMILL_FIELD,
/** @stable ICU 2.0 */
kSignField = UNUM_SIGN_FIELD,
#ifndef U_HIDE_DRAFT_API
/** @draft ICU 64 */
kMeasureUnitField = UNUM_MEASURE_UNIT_FIELD,
/** @draft ICU 64 */
kCompactField = UNUM_COMPACT_FIELD,
#endif // U_HIDE_DRAFT_API
/**
* These constants are provided for backwards compatibility only.

View file

@ -95,20 +95,18 @@ typedef enum UDateTimePatternField {
UDATPG_FIELD_COUNT
} UDateTimePatternField;
#ifndef U_HIDE_DRAFT_API
/**
* Field display name width constants for udatpg_getFieldDisplayName().
* @draft ICU 61
* @stable ICU 61
*/
typedef enum UDateTimePGDisplayWidth {
/** @draft ICU 61 */
/** @stable ICU 61 */
UDATPG_WIDE,
/** @draft ICU 61 */
/** @stable ICU 61 */
UDATPG_ABBREVIATED,
/** @draft ICU 61 */
/** @stable ICU 61 */
UDATPG_NARROW
} UDateTimePGDisplayWidth;
#endif // U_HIDE_DRAFT_API
/**
* Masks to control forcing the length of specified fields in the returned
@ -440,7 +438,6 @@ udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg,
UDateTimePatternField field,
int32_t *pLength);
#ifndef U_HIDE_DRAFT_API
/**
* The general interface to get a display name for a particular date/time field,
* in one of several possible display widths.
@ -464,15 +461,14 @@ udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg,
* @return
* The full length of the name; if greater than capacity, fieldName contains a
* truncated result.
* @draft ICU 61
* @stable ICU 61
*/
U_DRAFT int32_t U_EXPORT2
U_STABLE int32_t U_EXPORT2
udatpg_getFieldDisplayName(const UDateTimePatternGenerator *dtpg,
UDateTimePatternField field,
UDateTimePGDisplayWidth width,
UChar *fieldName, int32_t capacity,
UErrorCode *pErrorCode);
#endif // U_HIDE_DRAFT_API
/**
* The DateTimeFormat is a message format pattern used to compose date and

View file

@ -269,13 +269,6 @@ typedef enum UNumberGroupingStrategy {
} UNumberGroupingStrategy;
#ifndef U_HIDE_DEPRECATED_API
/**
* Old name for compatibility: will be removed in ICU 64.
* @deprecated ICU 63
*/
typedef UNumberGroupingStrategy UGroupingStrategy;
#endif /* U_HIDE_DEPRECATED_API */
#endif /* U_HIDE_DRAFT_API */
@ -384,6 +377,8 @@ typedef enum UNumberSignDisplay {
* <li>UNUM_DECIMAL_SEPARATOR_AUTO: "1", "1.1"
* <li>UNUM_DECIMAL_SEPARATOR_ALWAYS: "1.", "1.1"
* </ul>
*
* @draft ICU 60
*/
typedef enum UNumberDecimalSeparatorDisplay {
/**
@ -410,15 +405,13 @@ typedef enum UNumberDecimalSeparatorDisplay {
} UNumberDecimalSeparatorDisplay;
#endif /* U_HIDE_DRAFT_API */
#ifndef U_HIDE_DRAFT_API
struct UNumberFormatter;
/**
* C-compatible version of icu::number::LocalizedNumberFormatter.
*
* NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
*
* @draft ICU 62
* @stable ICU 62
*/
typedef struct UNumberFormatter UNumberFormatter;
@ -428,7 +421,7 @@ struct UFormattedNumber;
*
* NOTE: This is a C-compatible API; C++ users should build against numberformatter.h instead.
*
* @draft ICU 62
* @stable ICU 62
*/
typedef struct UFormattedNumber UFormattedNumber;
@ -448,13 +441,14 @@ typedef struct UFormattedNumber UFormattedNumber;
* @param skeletonLen The number of UChars in the skeleton string, or -1 it it is NUL-terminated.
* @param locale The NUL-terminated locale ID.
* @param ec Set if an error occurs.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT UNumberFormatter* U_EXPORT2
U_STABLE UNumberFormatter* U_EXPORT2
unumf_openForSkeletonAndLocale(const UChar* skeleton, int32_t skeletonLen, const char* locale,
UErrorCode* ec);
#ifndef U_HIDE_DRAFT_API
/**
* Like unumf_openForSkeletonAndLocale, but accepts a UParseError, which will be populated with the
* location of a skeleton syntax error if such a syntax error exists.
@ -470,6 +464,7 @@ unumf_openForSkeletonAndLocale(const UChar* skeleton, int32_t skeletonLen, const
U_DRAFT UNumberFormatter* U_EXPORT2
unumf_openForSkeletonAndLocaleWithError(
const UChar* skeleton, int32_t skeletonLen, const char* locale, UParseError* perror, UErrorCode* ec);
#endif // U_HIDE_DRAFT_API
/**
@ -478,9 +473,9 @@ unumf_openForSkeletonAndLocaleWithError(
* passed to a format function.
*
* @param ec Set if an error occurs.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT UFormattedNumber* U_EXPORT2
U_STABLE UFormattedNumber* U_EXPORT2
unumf_openResult(UErrorCode* ec);
@ -497,9 +492,9 @@ unumf_openResult(UErrorCode* ec);
* @param value The number to be formatted.
* @param uresult The object that will be mutated to store the result; see unumf_openResult.
* @param ec Set if an error occurs.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT void U_EXPORT2
U_STABLE void U_EXPORT2
unumf_formatInt(const UNumberFormatter* uformatter, int64_t value, UFormattedNumber* uresult,
UErrorCode* ec);
@ -517,9 +512,9 @@ unumf_formatInt(const UNumberFormatter* uformatter, int64_t value, UFormattedNum
* @param value The number to be formatted.
* @param uresult The object that will be mutated to store the result; see unumf_openResult.
* @param ec Set if an error occurs.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT void U_EXPORT2
U_STABLE void U_EXPORT2
unumf_formatDouble(const UNumberFormatter* uformatter, double value, UFormattedNumber* uresult,
UErrorCode* ec);
@ -541,13 +536,13 @@ unumf_formatDouble(const UNumberFormatter* uformatter, double value, UFormattedN
* @param valueLen The length of the numeric string, or -1 if it is NUL-terminated.
* @param uresult The object that will be mutated to store the result; see unumf_openResult.
* @param ec Set if an error occurs.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT void U_EXPORT2
U_STABLE void U_EXPORT2
unumf_formatDecimal(const UNumberFormatter* uformatter, const char* value, int32_t valueLen,
UFormattedNumber* uresult, UErrorCode* ec);
#ifndef U_HIDE_DRAFT_API
/**
* Returns a representation of a UFormattedNumber as a UFormattedValue,
* which can be subsequently passed to any API requiring that type.
@ -564,6 +559,7 @@ unumf_formatDecimal(const UNumberFormatter* uformatter, const char* value, int32
*/
U_DRAFT const UFormattedValue* U_EXPORT2
unumf_resultAsValue(const UFormattedNumber* uresult, UErrorCode* ec);
#endif /* U_HIDE_DRAFT_API */
/**
@ -583,9 +579,9 @@ unumf_resultAsValue(const UFormattedNumber* uresult, UErrorCode* ec);
* @param bufferCapacity The number of UChars available in the buffer.
* @param ec Set if an error occurs.
* @return The required length.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT int32_t U_EXPORT2
U_STABLE int32_t U_EXPORT2
unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t bufferCapacity,
UErrorCode* ec);
@ -621,9 +617,9 @@ unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t buf
* (exclusive index). If a field position is not found, the FieldPosition is not changed and
* the method returns FALSE.
* @param ec Set if an error occurs.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT UBool U_EXPORT2
U_STABLE UBool U_EXPORT2
unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* ufpos, UErrorCode* ec);
@ -646,9 +642,9 @@ unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* u
* overlap, but they may nest. For example, 1234 could format as "1,234" which might consist of a
* grouping separator field for ',' and an integer field encompassing the entire string.
* @param ec Set if an error occurs.
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT void U_EXPORT2
U_STABLE void U_EXPORT2
unumf_resultGetAllFieldPositions(const UFormattedNumber* uresult, UFieldPositionIterator* ufpositer,
UErrorCode* ec);
@ -657,9 +653,9 @@ unumf_resultGetAllFieldPositions(const UFormattedNumber* uresult, UFieldPosition
* Releases the UNumberFormatter created by unumf_openForSkeletonAndLocale().
*
* @param uformatter An object created by unumf_openForSkeletonAndLocale().
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT void U_EXPORT2
U_STABLE void U_EXPORT2
unumf_close(UNumberFormatter* uformatter);
@ -667,9 +663,9 @@ unumf_close(UNumberFormatter* uformatter);
* Releases the UFormattedNumber created by unumf_openResult().
*
* @param uresult An object created by unumf_openResult().
* @draft ICU 62
* @stable ICU 62
*/
U_DRAFT void U_EXPORT2
U_STABLE void U_EXPORT2
unumf_closeResult(UFormattedNumber* uresult);
@ -689,12 +685,12 @@ U_NAMESPACE_BEGIN
*
* @see LocalPointerBase
* @see LocalPointer
* @draft ICU 62
* @stable ICU 62
*/
U_DEFINE_LOCAL_OPEN_POINTER(LocalUNumberFormatterPointer, UNumberFormatter, unumf_close);
/**
* \class LocalUNumberFormatterPointer
* \class LocalUFormattedNumberPointer
* "Smart pointer" class; closes a UFormattedNumber via unumf_closeResult().
* For most methods see the LocalPointerBase base class.
*
@ -706,65 +702,12 @@ U_DEFINE_LOCAL_OPEN_POINTER(LocalUNumberFormatterPointer, UNumberFormatter, unum
*
* @see LocalPointerBase
* @see LocalPointer
* @draft ICU 62
* @stable ICU 62
*/
U_DEFINE_LOCAL_OPEN_POINTER(LocalUFormattedNumberPointer, UFormattedNumber, unumf_closeResult);
U_NAMESPACE_END
#endif // U_SHOW_CPLUSPLUS_API
#endif /* U_HIDE_DRAFT_API */
#endif //__UNUMBERFORMATTER_H__
#endif /* #if !UCONFIG_NO_FORMATTING */

View file

@ -32,9 +32,9 @@
<javac includeantruntime="false" includes="**/*.java"
srcdir="${src.dir}"
destdir="${build.dir}"
source="1.5"
source="1.7"
debug="on" deprecation="off"
encoding="ascii"/>
encoding="utf8"/>
</target>
<target name="clean" depends="init" description="remove all build targets">

View file

@ -10,9 +10,9 @@ A tool to generate a report of API status changes between two ICU4C releases.
Requirements:
- Everything needed to build ICU4C from a command line (UNIX) environment
- Doxygen (for generating docs).
Doxygen 1.7.5.1 is recommended for ICU API docs,
Doxygen 1.8.13 or newer is recommended for ICU API docs,
but an older Doxygen may work for the API Change Report.
- Java JDK 1.5+
- Java JDK 1.7+
- Apache Ant
- Note: if you have trouble with null output, put xalan.jar and xercesImpl.jar from <http://xalan.apache.org/xalan-j/downloads.html#latest-release> into ./lib/