diff --git a/tools/icu/iculslocs.cc b/tools/icu/iculslocs.cc index 8b1fa527c2c985..e0de23774594f3 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(type), key); return 1; } break; }