Add names for 'cvXX' features

This commit is contained in:
Ben Harris 2025-01-08 22:38:15 +00:00
parent 320de601bc
commit 669db1f283

View File

@ -2772,19 +2772,32 @@ static struct gsub_feature {
ALTSET(c, ALT3(a, b, c)))
#define CV2(base, a) CROSSALT2(base, base a)
#define CV3(base, a, b) CROSSALT3(base, base a, base b)
{ "cv12", SCRIPT_ALL, .xml = CV2("comma", ".left") },
{ "cv14", SCRIPT_ALL, .xml = CV2("period", ".large") },
{ "cv26", SCRIPT_ALL, .xml = CV2("colon", ".leftsmall") },
{ "cv27", SCRIPT_ALL, .xml = CV2("semicolon", ".left") },
{ "cv31", SCRIPT_ALL, .xml = CV2("question", ".open") },
{ "cv38", SCRIPT_ALL, .xml = CV3("D", ".serif", ".narrow") },
{ "cv42", SCRIPT_ALL, .xml = CV2("J", ".narrow") },
{ "cv44", SCRIPT_ALL, .xml = CV2("L", ".narrow") },
{ "cv61", SCRIPT_ALL, .xml = CV2("ugrave",".roundjoined") },
{ "cv74", SCRIPT_ALL, .xml = CV2("j", ".serif") },
{ "cv84", SCRIPT_ALL, .xml = CV2("t", ".small") },
{ "cv92", SCRIPT_ALL, .xml = CV2("ocircumflex", ".large") },
{ "cv94", SCRIPT_ALL, .xml = CV2("ccedilla", ".angular") },
{ "cv12", SCRIPT_ALL, .name = "comma variants",
.xml = CV2("comma", ".left") },
{ "cv14", SCRIPT_ALL, .name = "full-stop variants",
.xml = CV2("period", ".large") },
{ "cv26", SCRIPT_ALL, .name = "colon variants",
.xml = CV2("colon", ".leftsmall") },
{ "cv27", SCRIPT_ALL, .name = "semicolon variants",
.xml = CV2("semicolon", ".left") },
{ "cv31", SCRIPT_ALL, .name = "question-mark variants",
.xml = CV2("question", ".open") },
{ "cv38", SCRIPT_ALL, .name = "capital-D variants",
.xml = CV3("D", ".serif", ".narrow") },
{ "cv42", SCRIPT_ALL, .name = "capital-J variants",
.xml = CV2("J", ".narrow") },
{ "cv44", SCRIPT_ALL, .name = "capital-L variants",
.xml = CV2("L", ".narrow") },
{ "cv61", SCRIPT_ALL, .name = "small-u-grave variants",
.xml = CV2("ugrave",".roundjoined") },
{ "cv74", SCRIPT_ALL, .name = "small-j variants",
.xml = CV2("j", ".serif") },
{ "cv84", SCRIPT_ALL, .name = "small-t variants",
.xml = CV2("t", ".small") },
{ "cv92", SCRIPT_ALL, .name = "small-o-circumflex variants",
.xml = CV2("ocircumflex", ".large") },
{ "cv94", SCRIPT_ALL, .name = "small-c-cedilla variants",
.xml = CV2("ccedilla", ".angular") },
{ "ss14", SCRIPT_ALL, ".sep4", .name = "4-cell separated graphics" },
{ "ss16", SCRIPT_ALL, ".sep6", .name = "6-cell separated graphics" },
};
@ -3644,10 +3657,23 @@ dogsub(void)
TTXS("FeatureTag", gsub_features[i].tag);
printf(" <Feature>\n");
if (gsub_features[i].name != NULL) {
printf(" <FeatureParamsStylisticSet>\n");
TTXI("Version", 0);
TTXI("UINameID", NAMEBASE_GSUB + i);
printf(" </FeatureParamsStylisticSet>\n");
if (gsub_features[i].tag[0] == 's') {
printf(" <FeatureParamsStylisticSet>\n");
TTXI("Version", 0);
TTXI("UINameID", NAMEBASE_GSUB + i);
printf(" </FeatureParamsStylisticSet>\n");
} else {
printf(" "
"<FeatureParamsCharacterVariants>\n");
TTXI("Format", 0);
TTXI("FeatUILabelNameID", NAMEBASE_GSUB + i);
TTXI("FeatUITooltipTextNameID", 0);
TTXI("SampleTextNameID", 0);
TTXI("NumNamedParameters", 0);
TTXI("FirstParamUILabelNameID", 0);
printf(" "
"</FeatureParamsCharacterVariants>\n");
}
}
/* We only have one GSUB lookup per feature, thankfully. */
TTXI("LookupListIndex", i);