mirror of
https://bjh21.me.uk/bedstead/.git
synced 2026-07-10 05:53:05 -04:00
Don't emit multiple subtables for 'cv31'
I was accidentally emitting a separate <AlternateSubst> element for each base character, which worked but was unnecessary. A single <AlternateSubst> for the whole lookup will make for a smaller font file and probably faster lookups as well.
This commit is contained in:
parent
c36cea4b1e
commit
b0f67aa3ef
46
bedstead.c
46
bedstead.c
@ -2777,11 +2777,9 @@ static struct gsub_feature {
|
||||
#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
|
||||
@ -2790,20 +2788,32 @@ static struct gsub_feature {
|
||||
* 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" },
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user