Skip to content

Commit 5cff179

Browse files
hsivonensffc
authored andcommitted
ICU-23121 Export compressibleBytes data for ICU4X
1 parent 795d7ac commit 5cff179

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

icu4c/source/tools/genrb/parse.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,6 +1026,15 @@ writeCollationSpecialPrimariesTOML(const char* outputdir, const char* name, cons
10261026
lastPrimaries[i] = static_cast<uint16_t>((data->getLastPrimaryForGroup(UCOL_REORDER_CODE_FIRST + i) + 1) >> 16);
10271027
}
10281028

1029+
uint8_t compressibleBytes[32] = {};
1030+
for (int32_t i = 0; i < 256; ++i) {
1031+
if (data->compressibleBytes[i]) {
1032+
int32_t arrIndex = i >> 3;
1033+
uint8_t mask = (1 << (i & 7));
1034+
compressibleBytes[arrIndex] |= mask;
1035+
}
1036+
}
1037+
10291038
uint32_t numericPrimary = data->numericPrimary;
10301039
if (numericPrimary & 0xFFFFFF) {
10311040
printf("Lower 24 bits set in numeric primary");
@@ -1034,6 +1043,7 @@ writeCollationSpecialPrimariesTOML(const char* outputdir, const char* name, cons
10341043
}
10351044

10361045
usrc_writeArray(f, "last_primaries = [\n ", lastPrimaries, 16, 4, " ", "\n]\n");
1046+
usrc_writeArray(f, "compressible_bytes = [\n ", compressibleBytes, 8, 32, " ", "\n]\n");
10371047
fprintf(f, "numeric_primary = 0x%X\n", numericPrimary >> 24);
10381048
fclose(f);
10391049
}

0 commit comments

Comments
 (0)