From 39474c8fc02f526732ce7b3baf96e1e711485b8b Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Sat, 18 Jan 2025 20:54:21 +0000 Subject: [PATCH] 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. --- bedstead-faces.css | 5 +++++ bedstead.c | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/bedstead-faces.css b/bedstead-faces.css index 529faf5..9a1ffd8 100644 --- a/bedstead-faces.css +++ b/bedstead-faces.css @@ -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; } diff --git a/bedstead.c b/bedstead.c index c286f4f..06c493b 100644 --- a/bedstead.c +++ b/bedstead.c @@ -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) "" #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" }, -- 2.30.2