#define ALT3(a, b, c) ALT1(a) ALT2(b, c)
#define ALTSET(g, a) "<AlternateSet glyph='" g "'>" a "</AlternateSet>\n"
#define ALTSUB(x) "<AlternateSubst>\n" x "</AlternateSubst>\n"
-#define CROSSALT2(a, b) ALTSUB(ALTSET(a, ALT2(a, b)) ALTSET(b, ALT2(a, b)))
-#define CROSSALT3(a, b, c) \
- ALTSUB(ALTSET(a, ALT3(a, b, c)) \
- ALTSET(b, ALT3(a, b, c)) \
- ALTSET(c, ALT3(a, b, c)))
+#define CROSSALT2(a, b) ALTSET(a, ALT2(a, b)) ALTSET(b, ALT2(a, b))
+#define CROSSALT3(a, b, c) ALTSET(a, ALT3(a, b, c)) ALTSET(b, ALT3(a, b, c)) \
+ ALTSET(c, ALT3(a, b, c))
#define CV2(base, a) CROSSALT2(base, base a)
#undef VAR2
#define VAR2 CV2
* 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 = CV12 },
- { "cv14", SCRIPT_ALL, .name = "full-stop variants", .xml = CV14 },
- { "cv26", SCRIPT_ALL, .name = "colon variants", .xml = CV26 },
- { "cv27", SCRIPT_ALL, .name = "semicolon variants", .xml = CV27 },
- { "cv31", SCRIPT_ALL, .name = "question-mark variants", .xml = CV31 },
+ { "cv12", SCRIPT_ALL, .name = "comma variants",
+ .xml = ALTSUB(CV12) },
+ { "cv14", SCRIPT_ALL, .name = "full-stop variants",
+ .xml = ALTSUB(CV14) },
+ { "cv26", SCRIPT_ALL, .name = "colon variants",
+ .xml = ALTSUB(CV26) },
+ { "cv27", SCRIPT_ALL, .name = "semicolon variants",
+ .xml = ALTSUB(CV27) },
+ { "cv31", SCRIPT_ALL, .name = "question-mark variants",
+ .xml = ALTSUB(CV31) },
{ "cv38", SCRIPT_ALL, .name = "capital-D variants",
- .xml = CV3("D", ".serif", ".narrow") },
- { "cv42", SCRIPT_ALL, .name = "capital-J variants", .xml = CV42 },
- { "cv44", SCRIPT_ALL, .name = "capital-L variants", .xml = CV44 },
- { "cv61", SCRIPT_ALL, .name = "small-u-grave variants", .xml = CV61 },
- { "cv74", SCRIPT_ALL, .name = "small-j variants", .xml = CV74 },
- { "cv79", SCRIPT_ALL, .name = "small-o variants", .xml = CV79 },
- { "cv84", SCRIPT_ALL, .name = "small-t variants", .xml = CV84 },
- { "cv96", SCRIPT_ALL, .name = "cedilla variants", .xml = CV96 },
+ .xml = ALTSUB(CV3("D", ".serif", ".narrow")) },
+ { "cv42", SCRIPT_ALL, .name = "capital-J variants",
+ .xml = ALTSUB(CV42) },
+ { "cv44", SCRIPT_ALL, .name = "capital-L variants",
+ .xml = ALTSUB(CV44) },
+ { "cv61", SCRIPT_ALL, .name = "small-u-grave variants",
+ .xml = ALTSUB(CV61) },
+ { "cv74", SCRIPT_ALL, .name = "small-j variants",
+ .xml = ALTSUB(CV74) },
+ { "cv79", SCRIPT_ALL, .name = "small-o variants",
+ .xml = ALTSUB(CV79) },
+ { "cv84", SCRIPT_ALL, .name = "small-t variants",
+ .xml = ALTSUB(CV84) },
+ { "cv96", SCRIPT_ALL, .name = "cedilla variants",
+ .xml = ALTSUB(CV96) },
{ "ss14", SCRIPT_ALL, ".sep4", .name = "4-cell separated graphics" },
{ "ss16", SCRIPT_ALL, ".sep6", .name = "6-cell separated graphics" },
};