Update ICU to 59.1
* Highlights:
- Emoji 5.0 data (partial; Emoji_Component property not included)
- CLDR 31.0.1 (http://blog.unicode.org/2017/03/cldr-version-31-released.html)
UTC and GMT are treated as distinct)
- New case mapping API for styled text
- C++ 11 is required
- char16_t for UChar (UTF-16)
- Source code is in UTF-8
* Size changes
common: 10,130,560 => 10,175,056
android: 6,573,872 => 6,616,864
iOS: 6,562,352 => 6,605,152
On top of ICU 59.1 from the upstream, the following changes were applied.
See https://chromium.googlesource.com/chromium/deps/icu/+log/chromium/59staging
- Fix C++ 11 string literal assignment issue (upstream bug: 13192)
- Fix C4229 warning by MSVC
- Apply utf32.patch and include unistr.h in fuzzer_util
- Update ICU data files
- Fix wpo.patch
- Apply Google locale patch and locale1.patch
- update readme
- Apply breakiterator related patches
- Apply and update wpo.patch
- Drop unused patch, apply data.build.win.patch, update README.chromium
- Add /utf-8 flag for Windows/Visual Studio
- Update BUILD.gn for UChar, stubdata and apply data_sym.patch
- use stubdata.cpp instead of stubdata.c in icu.gyp
- Update icu.gyp* files for v8
- Update BUILD.gn, apply data.build.patch and vscomp.patch
- Add new files in ICU 59.1
- Get a fresh copy of ICU 59.1 from the upstream
- Update update.sh script
TBR=drott@chromium.org, yangguo@chromium.org
Bug:699469
TEST: layout tests, all unittests, browser tests
Change-Id: Ie1e77323aa0c7f872153680c4deca6471a771a5c
Reviewed-on: https://chromium-review.googlesource.com/505173
Reviewed-by: Jungshik Shin <jshin@chromium.org>
diff --git a/source/common/udata.cpp b/source/common/udata.cpp
index 9460746..10e9998 100644
--- a/source/common/udata.cpp
+++ b/source/common/udata.cpp
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -8,7 +8,7 @@
*
******************************************************************************
* file name: udata.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -110,8 +110,12 @@
static UHashtable *gCommonDataCache = NULL; /* Global hash table of opened ICU data files. */
static icu::UInitOnce gCommonDataCacheInitOnce = U_INITONCE_INITIALIZER;
+#if U_PLATFORM_HAS_WINUWP_API == 0
static UDataFileAccess gDataFileAccess = UDATA_DEFAULT_ACCESS; // Access not synchronized.
// Modifying is documented as thread-unsafe.
+#else
+static UDataFileAccess gDataFileAccess = UDATA_NO_FILES; // Windows UWP looks in one spot explicitly
+#endif
static UBool U_CALLCONV
udata_cleanup(void)
@@ -619,12 +623,14 @@
/*----------------------------------------------------------------------*
* *
- * Add a static reference to the common data library *
+ * Add a static reference to the common data library *
* Unless overridden by an explicit udata_setCommonData, this will be *
* our common data. *
* *
*----------------------------------------------------------------------*/
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
extern "C" const ICU_Data_Header U_DATA_API U_ICUDATA_ENTRY_POINT;
+#endif
/*
* This would be a good place for weak-linkage declarations of
@@ -672,6 +678,7 @@
if(gCommonICUDataArray[commonDataIndex] != NULL) {
return gCommonICUDataArray[commonDataIndex];
}
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
int32_t i;
for(i = 0; i < commonDataIndex; ++i) {
if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT.hdr) {
@@ -679,6 +686,7 @@
return NULL;
}
}
+#endif
}
/* Add the linked-in data to the list. */
@@ -694,11 +702,13 @@
setCommonICUDataPointer(uprv_getICUData_conversion(), FALSE, pErrorCode);
}
*/
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT.hdr, FALSE, pErrorCode);
{
Mutex lock;
return gCommonICUDataArray[commonDataIndex];
}
+#endif
}
@@ -1245,9 +1255,14 @@
fprintf(stderr, " tocEntryPath = %s\n", tocEntryName.data());
#endif
+#if U_PLATFORM_HAS_WINUWP_API == 0 // Windows UWP Platform does not support dll icu data at this time
if(path == NULL) {
path = COMMON_DATA_NAME; /* "icudt26e" */
}
+#else
+ // Windows UWP expects only a single data file.
+ path = COMMON_DATA_NAME; /* "icudt26e" */
+#endif
/************************ Begin loop looking for ind. files ***************/
#ifdef UDATA_DEBUG