diff options
Diffstat (limited to 'www-client/chromium/files/chromium-icu-compatibility-r0.patch')
-rw-r--r-- | www-client/chromium/files/chromium-icu-compatibility-r0.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/www-client/chromium/files/chromium-icu-compatibility-r0.patch b/www-client/chromium/files/chromium-icu-compatibility-r0.patch new file mode 100644 index 0000000..305cb2f --- /dev/null +++ b/www-client/chromium/files/chromium-icu-compatibility-r0.patch @@ -0,0 +1,53 @@ +this patch fixes build failures with ICU 4.8 + +http://codereview.chromium.org/7421003/ +https://bugs.gentoo.org/show_bug.cgi?id=374903 + +--- v8/src/extensions/experimental/number-format.cc ++++ v8/src/extensions/experimental/number-format.cc +@@ -36,6 +36,8 @@ + #include "unicode/numfmt.h" + #include "unicode/uchar.h" + #include "unicode/ucurr.h" ++#include "unicode/unum.h" ++#include "unicode/uversion.h" + + namespace v8 { + namespace internal { +@@ -231,6 +233,8 @@ + } + + // Generates ICU number format pattern from given skeleton. ++// TODO(cira): Remove once ICU includes equivalent method ++// (see http://bugs.icu-project.org/trac/ticket/8610). + static icu::DecimalFormat* CreateFormatterFromSkeleton( + const icu::Locale& icu_locale, + const icu::UnicodeString& skeleton, +@@ -251,6 +255,7 @@ + // Case of non-consecutive U+00A4 is taken care of in i18n.js. + int32_t end_index = skeleton.lastIndexOf(currency_symbol, index); + ++#if (U_ICU_VERSION_MAJOR_NUM == 4) && (U_ICU_VERSION_MINOR_NUM <= 6) + icu::NumberFormat::EStyles style; + switch (end_index - index) { + case 0: +@@ -262,6 +267,19 @@ + default: + style = icu::NumberFormat::kPluralCurrencyStyle; + } ++#else // ICU version is 4.8 or above (we ignore versions below 4.0). ++ UNumberFormatStyle style; ++ switch (end_index - index) { ++ case 0: ++ style = UNUM_CURRENCY; ++ break; ++ case 1: ++ style = UNUM_CURRENCY_ISO; ++ break; ++ default: ++ style = UNUM_CURRENCY_PLURAL; ++ } ++#endif + + base_format = static_cast<icu::DecimalFormat*>( + icu::NumberFormat::createInstance(icu_locale, style, *status)); |