summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven R. Loomis <srloomis@us.ibm.com>2019-09-10 14:18:17 -0700
committerRuben Bridgewater <ruben@bridgewater.de>2019-09-25 18:20:52 +0200
commit0db7ebe0731477ebb2b97619b391167c09ae11a1 (patch)
tree14792fa21dbcf86c96e105d7979c85f7f6109791
parent9abee075ad40c59bd8e9ddf4d496c5ebabdab5da (diff)
downloadnode-new-0db7ebe0731477ebb2b97619b391167c09ae11a1.tar.gz
tools: fix iculslocs to support ICU 65.1
The ICU alias table format changed in https://unicode-org.atlassian.net/browse/ICU-20627 Because of this, iculslocs.cc needs to handle URES_TABLE format contents in the res_index.txt file. PR-URL: https://github.com/nodejs/node/pull/29523 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
-rw-r--r--tools/icu/iculslocs.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/tools/icu/iculslocs.cc b/tools/icu/iculslocs.cc
index 8b1fa527c2..e0de237745 100644
--- a/tools/icu/iculslocs.cc
+++ b/tools/icu/iculslocs.cc
@@ -209,7 +209,8 @@ int dumpAllButInstalledLocales(int lev,
} else {
printIndent(bf, lev);
fprintf(bf, "%s", key);
- switch (ures_getType(t.getAlias())) {
+ const UResType type = ures_getType(t.getAlias());
+ switch (type) {
case URES_STRING: {
int32_t len = 0;
const UChar* s = ures_getString(t.getAlias(), &len, status);
@@ -218,8 +219,16 @@ int dumpAllButInstalledLocales(int lev,
fwrite(s, len, 1, bf);
fprintf(bf, "\"}");
} break;
+ case URES_TABLE: {
+ fprintf(bf, ":table {\n");
+ dumpAllButInstalledLocales(lev+1, &t, bf, status);
+ printIndent(bf, lev);
+ fprintf(bf, "}\n");
+ } break;
default: {
- printf("ERROR: unhandled type in dumpAllButInstalledLocales().\n");
+ printf("ERROR: unhandled type %d for key %s "
+ "in dumpAllButInstalledLocales().\n",
+ static_cast<int>(type), key);
return 1;
} break;
}