From: Ben Harris Date: Sat, 18 Jan 2025 17:55:42 +0000 (+0000) Subject: Switch to a variadic macro for generating alternate substitutions X-Git-Tag: bedstead-3.251~19 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=b5afc323ea9c87de596efdf464a20deb83c18301;p=bedstead.git Switch to a variadic macro for generating alternate substitutions --- diff --git a/bedstead.c b/bedstead.c index 401ee0f..c286f4f 100644 --- a/bedstead.c +++ b/bedstead.c @@ -2968,38 +2968,40 @@ 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) +#define GET_MACRO(_1, _2, _3, x, ...) x +#define CV(...) GET_MACRO(__VA_ARGS__, CV3, CV2)(__VA_ARGS__) /* * Where possible, Character Variant features have numbers * that are 32 less than the ASCII code of the base character. */ { "cv07", SCRIPT_ALL, .name = "apostrophe variants", - .xml = ALTSUB(CV07(CV2)) }, + .xml = ALTSUB(CV07(CV)) }, { "cv12", SCRIPT_ALL, .name = "comma variants", - .xml = ALTSUB(CV12(CV2)) }, + .xml = ALTSUB(CV12(CV)) }, { "cv14", SCRIPT_ALL, .name = "full-stop variants", - .xml = ALTSUB(CV14(CV2)) }, + .xml = ALTSUB(CV14(CV)) }, { "cv26", SCRIPT_ALL, .name = "colon variants", - .xml = ALTSUB(CV26(CV2)) }, + .xml = ALTSUB(CV26(CV)) }, { "cv27", SCRIPT_ALL, .name = "semicolon variants", - .xml = ALTSUB(CV27(CV2)) }, + .xml = ALTSUB(CV27(CV)) }, { "cv31", SCRIPT_ALL, .name = "question-mark variants", - .xml = ALTSUB(CV31(CV2)) }, + .xml = ALTSUB(CV31(CV)) }, { "cv38", SCRIPT_ALL, .name = "capital-D variants", - .xml = ALTSUB(CV38(CV3)) }, + .xml = ALTSUB(CV38(CV)) }, { "cv42", SCRIPT_ALL, .name = "capital-J variants", - .xml = ALTSUB(CV42(CV2)) }, + .xml = ALTSUB(CV42(CV)) }, { "cv44", SCRIPT_ALL, .name = "capital-L variants", - .xml = ALTSUB(CV44(CV2)) }, + .xml = ALTSUB(CV44(CV)) }, { "cv61", SCRIPT_ALL, .name = "small-u-grave variants", - .xml = ALTSUB(CV61(CV2)) }, + .xml = ALTSUB(CV61(CV)) }, { "cv74", SCRIPT_ALL, .name = "small-j variants", - .xml = ALTSUB(CV74(CV2)) }, + .xml = ALTSUB(CV74(CV)) }, { "cv79", SCRIPT_ALL, .name = "small-o variants", - .xml = ALTSUB(CV79(CV2)) }, + .xml = ALTSUB(CV79(CV)) }, { "cv84", SCRIPT_ALL, .name = "small-t variants", - .xml = ALTSUB(CV84(CV2)) }, + .xml = ALTSUB(CV84(CV)) }, { "cv96", SCRIPT_ALL, .name = "cedilla variants", - .xml = ALTSUB(CV96(CV2)) }, + .xml = ALTSUB(CV96(CV)) }, { "ss14", SCRIPT_ALL, ".sep4", .name = "4-cell separated graphics" }, { "ss16", SCRIPT_ALL, ".sep6", .name = "6-cell separated graphics" }, };