Add 'ss05' which maps all of U+0020..U+007E to SAA5055 glyphs

This seems appropriate for something that wants to treat these as ASCII
glyphs with their ambiguous semantics.

This uses the existing apostrophe.curly, and also adds grave.curly (an
alias for quotereversed) and bar.broken (an alias for brokenbar).  Of
course there are also 'cvXX' features to enable each one individually as
well.
This commit is contained in:
Ben Harris 2025-01-18 20:54:21 +00:00
parent b5afc323ea
commit 39474c8fc0
2 changed files with 16 additions and 0 deletions

View File

@ -100,6 +100,7 @@
saa5051: 1;
saa5052: 2;
saa5054: 4;
saa5055: 5
}
@character-variant {
apostrophe-default: 6 1;
@ -123,12 +124,16 @@
L-narrow: 44 2;
ugrave-default: 61 1;
ugrave-roundjoined: 61 2;
grave-default: 64 1;
grave-curly: 64 2;
j-default: 74 1;
j-serif: 74 2;
o-default: 79 1;
o-large: 79 2;
t-default: 84 1;
t-small: 84 2;
bar-default: 92 1;
bar-broken: 92 2;
cedilla-default: 96 1;
cedilla-angular: 96 2;
}

View File

@ -552,6 +552,7 @@ static struct glyph {
ALIAS("Y.c2sc", "uni028F"),
ALIAS("Z.c2sc", "uni1D22"),
{"\10\04\02\00\00\00\00\00\00", 0x0060, "grave" },
ALIAS("grave.curly", "quotereversed"),
ALIAS("a.sc", "A.c2sc"),
ALIAS("b.sc", "B.c2sc"),
ALIAS("c.sc", "C.c2sc"),
@ -583,6 +584,7 @@ static struct glyph {
ALIAS("y.sc", "Y.c2sc"),
ALIAS("z.sc", "Z.c2sc"),
{"\04\04\04\04\04\04\04\00\00", 0x007c, "bar" },
ALIAS("bar.broken", "brokenbar"),
/* Latin-1 supplement */
{"\00\00\00\00\00\00\00\00\00", U(00A0) }, /* non-breaking space */
@ -2886,6 +2888,7 @@ static struct alt_sub_override {
V("Ldot", ".narrow") V("Ldot.c2sc", ".narrow") \
V("ldot.sc", ".narrow") V("uni029F", ".narrow")
#define CV61(V) V("ugrave",".roundjoined")
#define CV64(V) V("grave", ".curly")
#define CV74(V) V("j", ".serif") V("ij", ".serif") \
V("jcircumflex", ".serif") V("uni01F0", ".serif") \
V("uni0237", ".serif") V("uni029D", ".serif")
@ -2900,6 +2903,7 @@ static struct alt_sub_override {
V("uni02A7", ".small") V("uni1E6D", ".small") \
V("uni1E6F", ".small") V("uni1E71", ".small") \
V("uni1E97", ".small")
#define CV92(V) V("bar", ".broken")
#define CV96(V) V("cedilla", ".angular") \
V("ccedilla", ".angular") V("ccedilla.sc", ".angular") \
V("Ccedilla", ".angular") V("Ccedilla.c2sc", ".angular") \
@ -2958,6 +2962,9 @@ static struct gsub_feature {
{ "ss04", SCRIPT_ALL, .name = "SAA5054",
.xml = SINGLESUB(CV61(SUFFIXSUB1) CV79(SUFFIXSUB1)
CV96(SUFFIXSUB1)) },
{ "ss05", SCRIPT_ALL, .name = "SAA5055",
.xml = SINGLESUB(CV07(SUFFIXSUB1) CV64(SUFFIXSUB1)
CV92(SUFFIXSUB1)) },
#define ALT1(g) "<Alternate glyph='" g "'/>"
#define ALT2(a, b) ALT1(a) ALT1(b)
#define ALT3(a, b, c) ALT1(a) ALT2(b, c)
@ -2994,12 +3001,16 @@ static struct gsub_feature {
.xml = ALTSUB(CV44(CV)) },
{ "cv61", SCRIPT_ALL, .name = "small-u-grave variants",
.xml = ALTSUB(CV61(CV)) },
{ "cv64", SCRIPT_ALL, .name = "grave variants",
.xml = ALTSUB(CV64(CV)) },
{ "cv74", SCRIPT_ALL, .name = "small-j variants",
.xml = ALTSUB(CV74(CV)) },
{ "cv79", SCRIPT_ALL, .name = "small-o variants",
.xml = ALTSUB(CV79(CV)) },
{ "cv84", SCRIPT_ALL, .name = "small-t variants",
.xml = ALTSUB(CV84(CV)) },
{ "cv92", SCRIPT_ALL, .name = "vertical-bar variants",
.xml = ALTSUB(CV92(CV)) },
{ "cv96", SCRIPT_ALL, .name = "cedilla variants",
.xml = ALTSUB(CV96(CV)) },
{ "ss14", SCRIPT_ALL, ".sep4", .name = "4-cell separated graphics" },