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" },
};