chiark / gitweb /
Add names for 'cvXX' features
authorBen Harris <bjh21@bjh21.me.uk>
Wed, 8 Jan 2025 22:38:15 +0000 (22:38 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Wed, 8 Jan 2025 22:42:31 +0000 (22:42 +0000)
bedstead.c

index 52cb01643b4d90386d23681fe00c1ef1f053d2f7..a73a65bebaeafff535e46449cc3e085115ec1ea6 100644 (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);