diff options
author | Steven R. Loomis <srloomis@us.ibm.com> | 2019-09-10 14:18:17 -0700 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-09-25 18:20:52 +0200 |
commit | 0db7ebe0731477ebb2b97619b391167c09ae11a1 (patch) | |
tree | 14792fa21dbcf86c96e105d7979c85f7f6109791 | |
parent | 9abee075ad40c59bd8e9ddf4d496c5ebabdab5da (diff) | |
download | node-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.cc | 13 |
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; } |