Skip to content

Commit

Permalink
tools: fix iculslocs to support ICU 65.1
Browse files Browse the repository at this point in the history
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: #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>
  • Loading branch information
srl295 authored and targos committed Sep 20, 2019
1 parent 04b5287 commit e73a307
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions tools/icu/iculslocs.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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;
}
Expand Down

0 comments on commit e73a307

Please sign in to comment.