Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: source/i18n/unicode/unum.h

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/i18n/unicode/ulocdata.h ('k') | source/i18n/unicode/unumsys.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/i18n/unicode/unum.h
diff --git a/source/i18n/unicode/unum.h b/source/i18n/unicode/unum.h
index dce77332e96c5b8be56fa81117f13eef5092e37e..c382cc86f9e199cbc4a91b206f902f079966ddb4 100644
--- a/source/i18n/unicode/unum.h
+++ b/source/i18n/unicode/unum.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2013, International Business Machines Corporation and others.
+* Copyright (C) 1997-2014, International Business Machines Corporation and others.
* All Rights Reserved.
* Modification History:
*
@@ -18,9 +18,11 @@
#include "unicode/localpointer.h"
#include "unicode/uloc.h"
+#include "unicode/ucurr.h"
#include "unicode/umisc.h"
#include "unicode/parseerr.h"
#include "unicode/uformattable.h"
+#include "unicode/udisplaycontext.h"
/**
* \file
@@ -149,58 +151,78 @@ typedef enum UNumberFormatStyle {
* Currency format with a currency symbol, e.g., "$1.00".
* @stable ICU 2.0
*/
- UNUM_CURRENCY,
+ UNUM_CURRENCY=2,
/**
* Percent format
* @stable ICU 2.0
*/
- UNUM_PERCENT,
+ UNUM_PERCENT=3,
/**
* Scientific format
* @stable ICU 2.1
*/
- UNUM_SCIENTIFIC,
+ UNUM_SCIENTIFIC=4,
/**
- * Spellout rule-based format
+ * Spellout rule-based format. The default ruleset can be specified/changed using
+ * unum_setTextAttribute with UNUM_DEFAULT_RULESET; the available public rulesets
+ * can be listed using unum_getTextAttribute with UNUM_PUBLIC_RULESETS.
* @stable ICU 2.0
*/
- UNUM_SPELLOUT,
+ UNUM_SPELLOUT=5,
/**
- * Ordinal rule-based format
+ * Ordinal rule-based format . The default ruleset can be specified/changed using
+ * unum_setTextAttribute with UNUM_DEFAULT_RULESET; the available public rulesets
+ * can be listed using unum_getTextAttribute with UNUM_PUBLIC_RULESETS.
* @stable ICU 3.0
*/
- UNUM_ORDINAL,
+ UNUM_ORDINAL=6,
/**
* Duration rule-based format
* @stable ICU 3.0
*/
- UNUM_DURATION,
+ UNUM_DURATION=7,
/**
* Numbering system rule-based format
* @stable ICU 4.2
*/
- UNUM_NUMBERING_SYSTEM,
+ UNUM_NUMBERING_SYSTEM=8,
/**
* Rule-based format defined by a pattern string.
* @stable ICU 3.0
*/
- UNUM_PATTERN_RULEBASED,
+ UNUM_PATTERN_RULEBASED=9,
/**
* Currency format with an ISO currency code, e.g., "USD1.00".
* @stable ICU 4.8
*/
- UNUM_CURRENCY_ISO,
+ UNUM_CURRENCY_ISO=10,
/**
* Currency format with a pluralized currency name,
* e.g., "1.00 US dollar" and "3.00 US dollars".
* @stable ICU 4.8
*/
- UNUM_CURRENCY_PLURAL,
+ UNUM_CURRENCY_PLURAL=11,
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * Currency format for accounting, e.g., "($3.00)" for
+ * negative currency amount instead of "-$3.00" ({@link #UNUM_CURRENCY}).
+ * @draft ICU 53
+ */
+ UNUM_CURRENCY_ACCOUNTING=12,
+ /**
+ * Currency format with a currency symbol given CASH usage, e.g.,
+ * "NT$3" instead of "NT$3.23".
+ * @draft ICU 54
+ */
+ UNUM_CASH_CURRENCY=13,
+#endif /* U_HIDE_DRAFT_API */
+
/**
* One more than the highest number format style constant.
* @stable ICU 4.8
*/
- UNUM_FORMAT_STYLE_COUNT,
+ UNUM_FORMAT_STYLE_COUNT=14,
+
/**
* Default format
* @stable ICU 2.0
@@ -252,19 +274,17 @@ typedef enum UNumberFormatPadPosition {
UNUM_PAD_AFTER_SUFFIX
} UNumberFormatPadPosition;
-#ifndef U_HIDE_DRAFT_API
/**
* Constants for specifying short or long format.
- * @draft ICU 51
+ * @stable ICU 51
*/
typedef enum UNumberCompactStyle {
- /** @draft ICU 51 */
+ /** @stable ICU 51 */
UNUM_SHORT,
- /** @draft ICU 51 */
+ /** @stable ICU 51 */
UNUM_LONG
- /** @draft ICU 51 */
+ /** @stable ICU 51 */
} UNumberCompactStyle;
-#endif /* U_HIDE_DRAFT_API */
/**
* Constants for specifying currency spacing
@@ -323,7 +343,9 @@ typedef enum UNumberFormatFields {
* The caller must call {@link #unum_close } when done to release resources
* used by this object.
* @param style The type of number format to open: one of
- * UNUM_DECIMAL, UNUM_CURRENCY, UNUM_PERCENT, UNUM_SCIENTIFIC, UNUM_SPELLOUT,
+ * UNUM_DECIMAL, UNUM_CURRENCY, UNUM_PERCENT, UNUM_SCIENTIFIC,
+ * UNUM_CURRENCY_ISO, UNUM_CURRENCY_PLURAL, UNUM_SPELLOUT,
+ * UNUM_ORDINAL, UNUM_DURATION, UNUM_NUMBERING_SYSTEM,
* UNUM_PATTERN_DECIMAL, UNUM_PATTERN_RULEBASED, or UNUM_DEFAULT.
* If UNUM_PATTERN_DECIMAL or UNUM_PATTERN_RULEBASED is passed then the
* number format is opened using the given pattern, which must conform
@@ -562,7 +584,6 @@ unum_formatDoubleCurrency(const UNumberFormat* fmt,
UFieldPosition* pos,
UErrorCode* status);
-#ifndef U_HIDE_DRAFT_API
/**
* Format a UFormattable into a string.
* @param fmt the formatter to use
@@ -581,16 +602,15 @@ unum_formatDoubleCurrency(const UNumberFormat* fmt,
* @return the total buffer size needed; if greater than resultLength,
* the output was truncated. Will return 0 on error.
* @see unum_parseToUFormattable
- * @draft ICU 52
+ * @stable ICU 52
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_formatUFormattable(const UNumberFormat* fmt,
const UFormattable *number,
UChar *result,
int32_t resultLength,
UFieldPosition *pos,
UErrorCode *status);
-#endif /* U_HIDE_DRAFT_API */
/**
* Parse a string into an integer using a UNumberFormat.
@@ -726,7 +746,6 @@ unum_parseDoubleCurrency(const UNumberFormat* fmt,
UChar* currency,
UErrorCode* status);
-#ifndef U_HIDE_DRAFT_API
/**
* Parse a UChar string into a UFormattable.
* Example code:
@@ -743,16 +762,15 @@ unum_parseDoubleCurrency(const UNumberFormat* fmt,
* @return the UFormattable. Will be ==result unless NULL was passed in for result, in which case it will be the newly opened UFormattable.
* @see ufmt_getType
* @see ufmt_close
- * @draft ICU 52
+ * @stable ICU 52
*/
-U_DRAFT UFormattable* U_EXPORT2
+U_STABLE UFormattable* U_EXPORT2
unum_parseToUFormattable(const UNumberFormat* fmt,
UFormattable *result,
const UChar* text,
int32_t textLength,
int32_t* parsePos, /* 0 = start */
UErrorCode* status);
-#endif /* U_HIDE_DRAFT_API */
/**
* Set the pattern used by a UNumberFormat. This can only be used
@@ -805,16 +823,19 @@ U_STABLE int32_t U_EXPORT2
unum_countAvailable(void);
#if UCONFIG_HAVE_PARSEALLINPUT
+/* The UNumberFormatAttributeValue type cannot be #ifndef U_HIDE_INTERNAL_API, needed for .h variable declaration */
/**
* @internal
*/
typedef enum UNumberFormatAttributeValue {
+#ifndef U_HIDE_INTERNAL_API
/** @internal */
UNUM_NO = 0,
/** @internal */
UNUM_YES = 1,
/** @internal */
UNUM_MAYBE = 2
+#endif /* U_HIDE_INTERNAL_API */
} UNumberFormatAttributeValue;
#endif
@@ -872,7 +893,6 @@ typedef enum UNumberFormatAttribute {
*/
UNUM_PARSE_ALL_INPUT = UNUM_LENIENT_PARSE + 1,
#endif
-#ifndef U_HIDE_DRAFT_API
/**
* Scale, which adjusts the position of the
* decimal point when formatting. Amounts will be multiplied by 10 ^ (scale)
@@ -881,20 +901,30 @@ typedef enum UNumberFormatAttribute {
* <p>Example: setting the scale to 3, 123 formats as "123,000"
* <p>Example: setting the scale to -4, 123 formats as "0.0123"
*
- * @draft ICU 51 */
+ * @stable ICU 51 */
UNUM_SCALE = UNUM_LENIENT_PARSE + 2,
-#endif /* U_HIDE_DRAFT_API */
#ifndef U_HIDE_INTERNAL_API
/** Count of "regular" numeric attributes.
* @internal */
UNUM_NUMERIC_ATTRIBUTE_COUNT = UNUM_LENIENT_PARSE + 3,
+#endif /* U_HIDE_INTERNAL_API */
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * if this attribute is set to 0, it is set to UNUM_CURRENCY_STANDARD purpose,
+ * otherwise it is UNUM_CURRENCY_CASH purpose
+ * Default: 0 (UNUM_CURRENCY_STANDARD purpose)
+ * @draft ICU 54
+ */
+ UNUM_CURRENCY_USAGE = UNUM_LENIENT_PARSE + 4,
+#endif /* U_HIDE_DRAFT_API */
+
+ /* The following cannot be #ifndef U_HIDE_INTERNAL_API, needed in .h file variable declararions */
/** One below the first bitfield-boolean item.
* All items after this one are stored in boolean form.
* @internal */
UNUM_MAX_NONBOOLEAN_ATTRIBUTE = 0x0FFF,
-#endif /* U_HIDE_INTERNAL_API */
/** If 1, specifies that if setting the "max integer digits" attribute would truncate a value, set an error status rather than silently truncating.
* For example, formatting the value 1234 with 4 max int digits would succeed, but formatting 12345 would fail. There is no effect on parsing.
@@ -910,11 +940,22 @@ typedef enum UNumberFormatAttribute {
*/
UNUM_PARSE_NO_EXPONENT,
-#ifndef U_HIDE_INTERNAL_API
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * if this attribute is set to 1, specifies that, if the pattern contains a
+ * decimal mark the input is required to have one. If this attribute is set to 0,
+ * specifies that input does not have to contain a decimal mark.
+ * Has no effect on formatting.
+ * Default: 0 (unset)
+ * @draft ICU 54
+ */
+ UNUM_PARSE_DECIMAL_MARK_REQUIRED = UNUM_PARSE_NO_EXPONENT+1,
+#endif /* U_HIDE_DRAFT_API */
+
+ /* The following cannot be #ifndef U_HIDE_INTERNAL_API, needed in .h file variable declararions */
/** Limit of boolean attributes.
* @internal */
- UNUM_LIMIT_BOOLEAN_ATTRIBUTE
-#endif /* U_HIDE_INTERNAL_API */
+ UNUM_LIMIT_BOOLEAN_ATTRIBUTE = UNUM_PARSE_NO_EXPONENT+2
} UNumberFormatAttribute;
/**
@@ -1015,14 +1056,20 @@ typedef enum UNumberFormatTextAttribute {
/** The ISO currency code */
UNUM_CURRENCY_CODE,
/**
- * The default rule set. This is only available with rule-based formatters.
+ * The default rule set, such as "%spellout-numbering-year:", "%spellout-cardinal:",
+ * "%spellout-ordinal-masculine-plural:", "%spellout-ordinal-feminine:", or
+ * "%spellout-ordinal-neuter:". The available public rulesets can be listed using
+ * unum_getTextAttribute with UNUM_PUBLIC_RULESETS. This is only available with
+ * rule-based formatters.
* @stable ICU 3.0
*/
UNUM_DEFAULT_RULESET,
/**
* The public rule sets. This is only available with rule-based formatters.
* This is a read-only attribute. The public rulesets are returned as a
- * single string, with each ruleset name delimited by ';' (semicolon).
+ * single string, with each ruleset name delimited by ';' (semicolon). See the
+ * CLDR LDML spec for more information about RBNF rulesets:
+ * http://www.unicode.org/reports/tr35/tr35-numbers.html#Rule-Based_Number_Formatting
* @stable ICU 3.0
*/
UNUM_PUBLIC_RULESETS
@@ -1180,8 +1227,16 @@ typedef enum UNumberFormatSymbol {
* @stable ICU 4.6
*/
UNUM_NINE_DIGIT_SYMBOL = 26,
+
+#ifndef U_HIDE_DRAFT_API
+ /** Multiplication sign
+ * @draft ICU 54
+ */
+ UNUM_EXPONENT_MULTIPLICATION_SYMBOL = 27,
+#endif /* U_HIDE_DRAFT_API */
+
/** count symbol constants */
- UNUM_FORMAT_SYMBOL_COUNT = 27
+ UNUM_FORMAT_SYMBOL_COUNT = 28
} UNumberFormatSymbol;
/**
@@ -1242,6 +1297,32 @@ unum_getLocaleByType(const UNumberFormat *fmt,
ULocDataLocaleType type,
UErrorCode* status);
+#ifndef U_HIDE_DRAFT_API
+/**
+ * Set a particular UDisplayContext value in the formatter, such as
+ * UDISPCTX_CAPITALIZATION_FOR_STANDALONE.
+ * @param fmt The formatter for which to set a UDisplayContext value.
+ * @param value The UDisplayContext value to set.
+ * @param status A pointer to an UErrorCode to receive any errors
+ * @draft ICU 53
+ */
+U_DRAFT void U_EXPORT2
+unum_setContext(UNumberFormat* fmt, UDisplayContext value, UErrorCode* status);
+
+/**
+ * Get the formatter's UDisplayContext value for the specified UDisplayContextType,
+ * such as UDISPCTX_TYPE_CAPITALIZATION.
+ * @param fmt The formatter to query.
+ * @param type The UDisplayContextType whose value to return
+ * @param status A pointer to an UErrorCode to receive any errors
+ * @return The UDisplayContextValue for the specified type.
+ * @draft ICU 53
+ */
+U_DRAFT UDisplayContext U_EXPORT2
+unum_getContext(const UNumberFormat *fmt, UDisplayContextType type, UErrorCode* status);
+
+#endif /* U_HIDE_DRAFT_API */
+
#endif /* #if !UCONFIG_NO_FORMATTING */
#endif
« no previous file with comments | « source/i18n/unicode/ulocdata.h ('k') | source/i18n/unicode/unumsys.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698