From: Ben Harris Date: Wed, 15 Jan 2025 13:53:13 +0000 (+0000) Subject: Use X-macro trick for emitting lookups for variant capital D X-Git-Tag: bedstead-3.251~32 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=457163004ef883aca03ba5851f01ac9d8ff9d8da;p=bedstead.git Use X-macro trick for emitting lookups for variant capital D This will mean that adding extra characters to 'cv38' will automatically add them to 'ss01' and 'ss02' as well. --- diff --git a/bedstead.c b/bedstead.c index 35694c3..5f615da 100644 --- a/bedstead.c +++ b/bedstead.c @@ -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) "\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) "\n" x "\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",