* Number Formatting (includes currency and unit formatting) |
* unumberformatter.h, unum.h |
* icu::number::NumberFormatter (ICU 60+) or icu::NumberFormat (older versions) |
diff --git a/thirdparty/icu4c/common/unicode/urename.h b/thirdparty/icu4c/common/unicode/urename.h
index 20232cd209..fe59fdd893 100644
--- a/thirdparty/icu4c/common/unicode/urename.h
+++ b/thirdparty/icu4c/common/unicode/urename.h
@@ -1137,6 +1137,7 @@
#define ulocimp_toLanguageTag U_ICU_ENTRY_POINT_RENAME(ulocimp_toLanguageTag)
#define ulocimp_toLegacyKey U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyKey)
#define ulocimp_toLegacyType U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyType)
+#define ultag_getTKeyStart U_ICU_ENTRY_POINT_RENAME(ultag_getTKeyStart)
#define ultag_isExtensionSubtags U_ICU_ENTRY_POINT_RENAME(ultag_isExtensionSubtags)
#define ultag_isLanguageSubtag U_ICU_ENTRY_POINT_RENAME(ultag_isLanguageSubtag)
#define ultag_isPrivateuseValueSubtags U_ICU_ENTRY_POINT_RENAME(ultag_isPrivateuseValueSubtags)
diff --git a/thirdparty/icu4c/common/unicode/uvernum.h b/thirdparty/icu4c/common/unicode/uvernum.h
index a4cbb9e0fe..a46481a3fe 100644
--- a/thirdparty/icu4c/common/unicode/uvernum.h
+++ b/thirdparty/icu4c/common/unicode/uvernum.h
@@ -66,7 +66,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_MINOR_NUM 1
+#define U_ICU_VERSION_MINOR_NUM 2
/** The current ICU patchlevel version as an integer.
* This value will change in the subsequent releases of ICU
@@ -139,7 +139,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.4
*/
-#define U_ICU_VERSION "68.1"
+#define U_ICU_VERSION "68.2"
/**
* The current ICU library major version number as a string, for library name suffixes.
@@ -158,7 +158,7 @@
/** Data version in ICU4C.
* @internal ICU 4.4 Internal Use Only
**/
-#define U_ICU_DATA_VERSION "68.1"
+#define U_ICU_DATA_VERSION "68.2"
#endif /* U_HIDE_INTERNAL_API */
/*===========================================================================
diff --git a/thirdparty/icu4c/common/wintz.cpp b/thirdparty/icu4c/common/wintz.cpp
index 3730232286..580cedadb6 100644
--- a/thirdparty/icu4c/common/wintz.cpp
+++ b/thirdparty/icu4c/common/wintz.cpp
@@ -36,17 +36,58 @@
U_NAMESPACE_BEGIN
+// Note these constants and the struct are only used when dealing with the fallback path for RDP sesssions.
+
+// This is the location of the time zones in the registry on Vista+ systems.
+// See: https://docs.microsoft.com/windows/win32/api/timezoneapi/ns-timezoneapi-dynamic_time_zone_information
+#define WINDOWS_TIMEZONES_REG_KEY_PATH L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones"
+
+// Max length for a registry key is 255. +1 for null.
+// See: https://docs.microsoft.com/windows/win32/sysinfo/registry-element-size-limits
+#define WINDOWS_MAX_REG_KEY_LENGTH 256
+
+#if U_PLATFORM_HAS_WINUWP_API == 0
+
+// This is the layout of the TZI binary value in the registry.
+// See: https://docs.microsoft.com/windows/win32/api/timezoneapi/ns-timezoneapi-time_zone_information
+typedef struct _REG_TZI_FORMAT {
+ LONG Bias;
+ LONG StandardBias;
+ LONG DaylightBias;
+ SYSTEMTIME StandardDate;
+ SYSTEMTIME DaylightDate;
+} REG_TZI_FORMAT;
+
+#endif // U_PLATFORM_HAS_WINUWP_API
+
/**
-* Main Windows time zone detection function.
-* Returns the Windows time zone converted to an ICU time zone as a heap-allocated buffer, or nullptr upon failure.
+* This is main Windows time zone detection function.
+*
+* It returns the Windows time zone converted to an ICU time zone as a heap-allocated buffer, or nullptr upon failure.
*
-* Note: We use the Win32 API GetDynamicTimeZoneInformation (available since Vista+) to get the current time zone info.
-* This API returns a non-localized time zone name, which is mapped to an ICU time zone ID (~ Olsen ID).
+* We use the Win32 API GetDynamicTimeZoneInformation (which is available since Vista) to get the current time zone info,
+* as this API returns a non-localized time zone name which can be then mapped to an ICU time zone.
+*
+* However, in some RDP/terminal services situations, this struct isn't always fully complete, and the TimeZoneKeyName
+* field of the struct might be NULL. This can happen with some 3rd party RDP clients, and also when using older versions
+* of the RDP protocol, which don't send the newer TimeZoneKeyNamei information and only send the StandardName and DaylightName.
+*
+* Since these 3rd party clients and older RDP clients only send the pre-Vista time zone information to the server, this means that we
+* need to fallback on using the pre-Vista methods to determine the time zone. This unfortunately requires examining the registry directly
+* in order to try and determine the current time zone.
+*
+* Note that this can however still fail in some cases though if the client and server are using different languages, as the StandardName
+* that is sent by client is localized in the client's language. However, we must compare this to the names that are on the server, which
+* are localized in registry using the server's language. Despite that, this is the best we can do.
+*
+* Note: This fallback method won't work for the UWP version though, as we can't use the registry APIs in UWP.
+*
+* Once we have the current Windows time zone, then we can then map it to an ICU time zone ID (~ Olsen ID).
*/
U_CAPI const char* U_EXPORT2
uprv_detectWindowsTimeZone()
{
- // Obtain the DYNAMIC_TIME_ZONE_INFORMATION info to get the non-localized time zone name.
+ // We first try to obtain the time zone directly by using the TimeZoneKeyName field of the DYNAMIC_TIME_ZONE_INFORMATION struct.
DYNAMIC_TIME_ZONE_INFORMATION dynamicTZI;
uprv_memset(&dynamicTZI, 0, sizeof(dynamicTZI));
SYSTEMTIME systemTimeAllZero;
@@ -86,22 +127,138 @@ uprv_detectWindowsTimeZone()
// Note '-' before 'utcOffsetMin'. The timezone ID's sign convention
// is that a timezone ahead of UTC is Etc/GMT- and a timezone
// behind UTC is Etc/GMT+.
- int ret = snprintf(gmtOffsetTz, UPRV_LENGTHOF(gmtOffsetTz), "Etc/GMT%+d", -utcOffsetMins / 60);
+ int ret = snprintf(gmtOffsetTz, UPRV_LENGTHOF(gmtOffsetTz), "Etc/GMT%+ld", -utcOffsetMins / 60);
if (ret > 0 && ret < UPRV_LENGTHOF(gmtOffsetTz)) {
return uprv_strdup(gmtOffsetTz);
}
}
}
- // If DST is NOT disabled, but we have an empty TimeZoneKeyName, then it is unclear
- // what we should do as this should not happen.
+ // If DST is NOT disabled, but the TimeZoneKeyName field of the struct is NULL, then we may be dealing with a
+ // RDP/terminal services session where the 'Time Zone Redirection' feature is enabled. However, either the RDP
+ // client sent the server incomplete info (some 3rd party RDP clients only send the StandardName and DaylightName,
+ // but do not send the important TimeZoneKeyName), or if the RDP server has not appropriately populated the struct correctly.
+ //
+ // In this case we unfortunately have no choice but to fallback to using the pre-Vista method of determining the
+ // time zone, which requires examining the registry directly.
+ //
+ // Note that this can however still fail though if the client and server are using different languages, as the StandardName
+ // that is sent by client is *localized* in the client's language. However, we must compare this to the names that are
+ // on the server, which are *localized* in registry using the server's language.
+ //
+ // One other note is that this fallback method doesn't work for the UWP version, as we can't use the registry APIs.
+
+ // windowsTimeZoneName will point at timezoneSubKeyName if we had to fallback to using the registry, and we found a match.
+ WCHAR timezoneSubKeyName[WINDOWS_MAX_REG_KEY_LENGTH];
+ WCHAR *windowsTimeZoneName = dynamicTZI.TimeZoneKeyName;
+
if (dynamicTZI.TimeZoneKeyName[0] == 0) {
+
+// We can't use the registry APIs in the UWP version.
+#if U_PLATFORM_HAS_WINUWP_API == 1
+ (void)timezoneSubKeyName; // suppress unused variable warnings.
return nullptr;
+#else
+ // Open the path to the time zones in the Windows registry.
+ LONG ret;
+ HKEY hKeyAllTimeZones = nullptr;
+ ret = RegOpenKeyExW(HKEY_LOCAL_MACHINE, WINDOWS_TIMEZONES_REG_KEY_PATH, 0, KEY_READ,
+ reinterpret_cast(&hKeyAllTimeZones));
+
+ if (ret != ERROR_SUCCESS) {
+ // If we can't open the key, then we can't do much, so fail.
+ return nullptr;
+ }
+
+ // Read the number of subkeys under the time zone registry path.
+ DWORD numTimeZoneSubKeys;
+ ret = RegQueryInfoKeyW(hKeyAllTimeZones, nullptr, nullptr, nullptr, &numTimeZoneSubKeys,
+ nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
+
+ if (ret != ERROR_SUCCESS) {
+ RegCloseKey(hKeyAllTimeZones);
+ return nullptr;
+ }
+
+ // Examine each of the subkeys to try and find a match for the localized standard name ("Std").
+ //
+ // Note: The name of the time zone subkey itself is not localized, but the "Std" name is localized. This means
+ // that we could fail to find a match if the RDP client and RDP server are using different languages, but unfortunately
+ // there isn't much we can do about it.
+ HKEY hKeyTimeZoneSubKey = nullptr;
+ ULONG registryValueType;
+ WCHAR registryStandardName[WINDOWS_MAX_REG_KEY_LENGTH];
+
+ for (DWORD i = 0; i < numTimeZoneSubKeys; i++) {
+ // Note: RegEnumKeyExW wants the size of the buffer in characters.
+ DWORD size = UPRV_LENGTHOF(timezoneSubKeyName);
+ ret = RegEnumKeyExW(hKeyAllTimeZones, i, timezoneSubKeyName, &size, nullptr, nullptr, nullptr, nullptr);
+
+ if (ret != ERROR_SUCCESS) {
+ RegCloseKey(hKeyAllTimeZones);
+ return nullptr;
+ }
+
+ ret = RegOpenKeyExW(hKeyAllTimeZones, timezoneSubKeyName, 0, KEY_READ,
+ reinterpret_cast(&hKeyTimeZoneSubKey));
+
+ if (ret != ERROR_SUCCESS) {
+ RegCloseKey(hKeyAllTimeZones);
+ return nullptr;
+ }
+
+ // Note: RegQueryValueExW wants the size of the buffer in bytes.
+ size = sizeof(registryStandardName);
+ ret = RegQueryValueExW(hKeyTimeZoneSubKey, L"Std", nullptr, ®istryValueType,
+ reinterpret_cast(registryStandardName), &size);
+
+ if (ret != ERROR_SUCCESS || registryValueType != REG_SZ) {
+ RegCloseKey(hKeyTimeZoneSubKey);
+ RegCloseKey(hKeyAllTimeZones);
+ return nullptr;
+ }
+
+ // Note: wcscmp does an ordinal (byte) comparison.
+ if (wcscmp(reinterpret_cast(registryStandardName), dynamicTZI.StandardName) == 0) {
+ // Since we are comparing the *localized* time zone name, it's possible that some languages might use
+ // the same string for more than one time zone. Thus we need to examine the TZI data in the registry to
+ // compare the GMT offset (the bias), and the DST transition dates, to ensure it's the same time zone
+ // as the currently reported one.
+ REG_TZI_FORMAT registryTziValue;
+ uprv_memset(®istryTziValue, 0, sizeof(registryTziValue));
+
+ // Note: RegQueryValueExW wants the size of the buffer in bytes.
+ DWORD timezoneTziValueSize = sizeof(registryTziValue);
+ ret = RegQueryValueExW(hKeyTimeZoneSubKey, L"TZI", nullptr, ®istryValueType,
+ reinterpret_cast(®istryTziValue), &timezoneTziValueSize);
+
+ if (ret == ERROR_SUCCESS) {
+ if ((dynamicTZI.Bias == registryTziValue.Bias) &&
+ (memcmp((const void *)&dynamicTZI.StandardDate, (const void *)®istryTziValue.StandardDate, sizeof(SYSTEMTIME)) == 0) &&
+ (memcmp((const void *)&dynamicTZI.DaylightDate, (const void *)®istryTziValue.DaylightDate, sizeof(SYSTEMTIME)) == 0))
+ {
+ // We found a matching time zone.
+ windowsTimeZoneName = timezoneSubKeyName;
+ break;
+ }
+ }
+ }
+ RegCloseKey(hKeyTimeZoneSubKey);
+ hKeyTimeZoneSubKey = nullptr;
+ }
+
+ if (hKeyTimeZoneSubKey != nullptr) {
+ RegCloseKey(hKeyTimeZoneSubKey);
+ }
+ if (hKeyAllTimeZones != nullptr) {
+ RegCloseKey(hKeyAllTimeZones);
+ }
+#endif // U_PLATFORM_HAS_WINUWP_API
}
CharString winTZ;
UErrorCode status = U_ZERO_ERROR;
- winTZ.appendInvariantChars(UnicodeString(TRUE, dynamicTZI.TimeZoneKeyName, -1), status);
+ winTZ.appendInvariantChars(UnicodeString(TRUE, windowsTimeZoneName, -1), status);
// Map Windows Timezone name (non-localized) to ICU timezone ID (~ Olson timezone id).
StackUResourceBundle winTZBundle;
@@ -123,18 +280,29 @@ uprv_detectWindowsTimeZone()
int regionCodeLen = GetGeoInfoW(geoId, GEO_ISO2, regionCodeW, UPRV_LENGTHOF(regionCodeW), 0);
const UChar *icuTZ16 = nullptr;
- int32_t tzLen;
+ int32_t tzListLen = 0;
if (regionCodeLen != 0) {
for (int i = 0; i < UPRV_LENGTHOF(regionCodeW); i++) {
regionCode[i] = static_cast(regionCodeW[i]);
}
- icuTZ16 = ures_getStringByKey(winTZBundle.getAlias(), regionCode, &tzLen, &status);
+ icuTZ16 = ures_getStringByKey(winTZBundle.getAlias(), regionCode, &tzListLen, &status);
}
if (regionCodeLen == 0 || U_FAILURE(status)) {
// fallback to default "001" (world)
status = U_ZERO_ERROR;
- icuTZ16 = ures_getStringByKey(winTZBundle.getAlias(), "001", &tzLen, &status);
+ icuTZ16 = ures_getStringByKey(winTZBundle.getAlias(), "001", &tzListLen, &status);
+ }
+
+ // Note: We want the first entry in the string returned by ures_getStringByKey.
+ // However this string can be a space delimited list of timezones:
+ // Ex: "America/New_York America/Detroit America/Indiana/Petersburg ..."
+ // We need to stop at the first space, so we pass tzLen (instead of tzListLen) to appendInvariantChars below.
+ int32_t tzLen = 0;
+ if (tzListLen > 0) {
+ while (!(icuTZ16[tzLen] == u'\0' || icuTZ16[tzLen] == u' ')) {
+ tzLen++;
+ }
}
// Note: cloneData returns nullptr if the status is a failure, so this
diff --git a/thirdparty/icu4c/icudt68l.dat b/thirdparty/icu4c/icudt68l.dat
index 548c1a5a7219c24a5b3826d6f3e03cea4084cfc0..9ecea5d548e142cc34f7d3aa0d43d83e61e5545f 100644
GIT binary patch
delta 107610
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 4Zpc|$+@*5
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 |