chiark / gitweb /
Rename two 'cvXX' features based on SAA5054 shapes
authorBen Harris <bjh21@bjh21.me.uk>
Mon, 13 Jan 2025 21:14:36 +0000 (21:14 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Tue, 14 Jan 2025 23:21:24 +0000 (23:21 +0000)
The features that generate the variant ocircumflex and ccedilla glyphs
are now treated a being variants of lower-case 'o' and cedilla
respectively.  Unlike the SAA5051/2 variants, we don't yet have
variants of their base glyphs.  Indeed, for the lower-case 'o' we
probably never will, because the variant is "larger accented versions"
so the unaccented version wouldn't change.

I haven't done anything about the weird SAA5054 ugrave because I'm not
sure there's any real design principle behind it.

I've also added a comment explaining the numbering of 'cvXX' features.

bedstead-faces.css
bedstead.c

index 88d0c3b6486e89860df263afec5a4d970ed67f53..4db70b61d4c3fa66a2e9a9319b98a33858b41812 100644 (file)
         ugrave-roundjoined: 61 2;
         j-default: 74 1;
         j-serif: 74 2;
+        o-default: 79 1;
+        o-large: 79 2;
         t-default: 84 1;
         t-small: 84 2;
-        ocircumflex-default: 92 1;
-        ocircumflex-large: 92 2;
-        ccedilla-default: 94 1;
-        ccedilla-angular: 94 2;
+        cedilla-default: 96 1;
+        cedilla-angular: 96 2;
     }
 }
index a73a65bebaeafff535e46449cc3e085115ec1ea6..bbae63d0a9a6a7d570dc6f8fde563619f8645551 100644 (file)
@@ -2772,6 +2772,10 @@ 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)
+       /*
+        * Where possible, Character Variant features have numbers
+        * that are 32 less than the ASCII code of the base character.
+        */
        { "cv12", SCRIPT_ALL, .name = "comma variants",
          .xml = CV2("comma", ".left") },
        { "cv14", SCRIPT_ALL, .name = "full-stop variants",
@@ -2792,11 +2796,11 @@ static struct gsub_feature {
          .xml = CV2("ugrave",".roundjoined") },
        { "cv74", SCRIPT_ALL, .name = "small-j variants",
          .xml = CV2("j", ".serif") },
+       { "cv79", SCRIPT_ALL, .name = "small-o variants",
+         .xml = CV2("ocircumflex", ".large") },
        { "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",
+       { "cv96", SCRIPT_ALL, .name = "cedilla variants",
          .xml = CV2("ccedilla", ".angular") },
        { "ss14", SCRIPT_ALL,  ".sep4", .name = "4-cell separated graphics" },
        { "ss16", SCRIPT_ALL,  ".sep6", .name = "6-cell separated graphics" },