chiark / gitweb /
Use X-macro trick for emitting lookups for variant capital D
authorBen Harris <bjh21@bjh21.me.uk>
Wed, 15 Jan 2025 13:53:13 +0000 (13:53 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Wed, 15 Jan 2025 13:53:13 +0000 (13:53 +0000)
This will mean that adding extra characters to 'cv38' will
automatically add them to 'ss01' and 'ss02' as well.

bedstead.c

index 35694c32660ba3d0235bdff02b1aa7f40b99d85a..5f615da61db405ecc7a3c971b8d73bcb4c2c60e3 100644 (file)
@@ -2736,6 +2736,7 @@ static struct alt_sub_override {
 #define CV27(VAR2) VAR2("semicolon", ".left")
 #define CV31(VAR2) VAR2("question", ".open") VAR2("questiondown", ".open") \
        VAR2("uni2E2E", ".open")
+#define CV38(VAR3) VAR3("D", ".serif", ".narrow")
 #define CV42(VAR2) VAR2("J", ".narrow")
 #define CV44(VAR2) VAR2("L", ".narrow")
 #define CV61(VAR2) VAR2("ugrave",".roundjoined")
@@ -2763,16 +2764,18 @@ static struct gsub_feature {
        { "rtlm", SCRIPT_ALL, .suffix = ".rtlm" },
 #define SUB(in, out) "<Substitution in='" in "' out='" out "'/>\n"
 #define SUFFIXSUB(base, suffix) SUB(base, base suffix)
+#define SUFFIXSUB1(base, suffix1, suffix2) SUB(base, base suffix1)
+#define SUFFIXSUB2(base, suffix1, suffix2) SUB(base, base suffix2)
 #define SINGLESUB(x) "<SingleSubst>\n" x "</SingleSubst>\n"
        { "ss01", SCRIPT_ALL, .name = "SAA5051",
          .xml = SINGLESUB(CV12(SUFFIXSUB) CV14(SUFFIXSUB) CV26(SUFFIXSUB)
                           CV27(SUFFIXSUB) CV31(SUFFIXSUB)
-                          SUFFIXSUB("D", ".serif") CV42(SUFFIXSUB)
+                          CV38(SUFFIXSUB1) CV42(SUFFIXSUB)
                           CV44(SUFFIXSUB) CV74(SUFFIXSUB) CV84(SUFFIXSUB)) },
        { "ss02", SCRIPT_ALL, .name = "SAA5052",
          .xml = SINGLESUB(CV12(SUFFIXSUB) CV14(SUFFIXSUB) CV26(SUFFIXSUB)
                           CV27(SUFFIXSUB) CV31(SUFFIXSUB)
-                          SUFFIXSUB("D", ".narrow") CV42(SUFFIXSUB)
+                          CV38(SUFFIXSUB2) CV42(SUFFIXSUB)
                           CV44(SUFFIXSUB) CV74(SUFFIXSUB) CV84(SUFFIXSUB)) },
        { "ss04", SCRIPT_ALL, .name = "SAA5054",
          .xml = SINGLESUB(CV61(SUFFIXSUB) CV79(SUFFIXSUB) CV96(SUFFIXSUB)) },
@@ -2801,7 +2804,7 @@ static struct gsub_feature {
        { "cv31", SCRIPT_ALL, .name = "question-mark variants",
          .xml = ALTSUB(CV31(CV2)) },
        { "cv38", SCRIPT_ALL, .name = "capital-D variants",
-         .xml = ALTSUB(CV3("D", ".serif", ".narrow")) },
+         .xml = ALTSUB(CV38(CV3)) },
        { "cv42", SCRIPT_ALL, .name = "capital-J variants",
          .xml = ALTSUB(CV42(CV2)) },
        { "cv44", SCRIPT_ALL, .name = "capital-L variants",