From ae6caa5bd86ab5c81a634d27921a5b6cf25c2f75 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Sun, 2 Jun 2024 20:16:27 +0100 Subject: [PATCH] Re-organise Latin small caps (no functional change) I liked the approach I took with 'rtlm' of putting variant glyphs next to the standard ones in the glyph array. So I've tried doing the same with small caps. Each small cap appears at least twice. For ones with real Unicode code points, the 'c2sc' version is an alias for the native one. For small caps without Unicode code points, the 'c2sc' version is the actual small cap glyph. In either case, the 'smcp' version is an alias for the 'c2sc' one. This is a change from the previous setup, where the 'c2sc' version was an alias for the 'smcp' one instead. I've swapped them because the small cap glyph is generally based on the full cap, so putting them together seems sensible. --- bedstead.c | 99 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 37 deletions(-) diff --git a/bedstead.c b/bedstead.c index ccd88a0..be94582 100644 --- a/bedstead.c +++ b/bedstead.c @@ -511,7 +511,59 @@ static struct glyph { */ /* Basic Latin */ + ALIAS("A.c2sc", "uni1D00"), + ALIAS("B.c2sc", "uni0299"), + ALIAS("C.c2sc", "uni1D04"), + ALIAS("D.c2sc", "uni1D05"), + ALIAS("E.c2sc", "uni1D07"), + ALIAS("F.c2sc", "uniA730"), + ALIAS("G.c2sc", "uni0262"), + ALIAS("H.c2sc", "uni029C"), + ALIAS("I.c2sc", "uni026A"), + ALIAS("J.c2sc", "uni1D0A"), + ALIAS("K.c2sc", "uni1D0B"), + ALIAS("L.c2sc", "uni029F"), + ALIAS("M.c2sc", "uni1D0D"), + ALIAS("N.c2sc", "uni0274"), + ALIAS("O.c2sc", "uni1D0F"), + ALIAS("P.c2sc", "uni1D18"), + ALIAS("Q.c2sc", "uniA7AF"), + ALIAS("R.c2sc", "uni0280"), + ALIAS("S.c2sc", "uniA731"), + ALIAS("T.c2sc", "uni1D1B"), + ALIAS("U.c2sc", "uni1D1C"), + ALIAS("V.c2sc", "uni1D20"), + ALIAS("W.c2sc", "uni1D21"), + {{000,000,021,012,004,012,021,000,000}, 0xf1c0, "X.c2sc" }, + ALIAS("Y.c2sc", "uni028F"), + ALIAS("Z.c2sc", "uni1D22"), {{010,004,002,000,000,000,000,000,000}, 0x0060, "grave" }, + ALIAS("a.sc", "A.c2sc"), + ALIAS("b.sc", "B.c2sc"), + ALIAS("c.sc", "C.c2sc"), + ALIAS("d.sc", "D.c2sc"), + ALIAS("e.sc", "E.c2sc"), + ALIAS("f.sc", "F.c2sc"), + ALIAS("g.sc", "G.c2sc"), + ALIAS("h.sc", "H.c2sc"), + ALIAS("i.sc", "I.c2sc"), + ALIAS("j.sc", "J.c2sc"), + ALIAS("k.sc", "K.c2sc"), + ALIAS("l.sc", "L.c2sc"), + ALIAS("m.sc", "M.c2sc"), + ALIAS("n.sc", "N.c2sc"), + ALIAS("o.sc", "O.c2sc"), + ALIAS("p.sc", "P.c2sc"), + ALIAS("q.sc", "Q.c2sc"), + ALIAS("r.sc", "R.c2sc"), + ALIAS("s.sc", "S.c2sc"), + ALIAS("t.sc", "T.c2sc"), + ALIAS("u.sc", "U.c2sc"), + ALIAS("v.sc", "V.c2sc"), + ALIAS("w.sc", "W.c2sc"), + ALIAS("x.sc", "X.c2sc"), + ALIAS("y.sc", "Y.c2sc"), + ALIAS("z.sc", "Z.c2sc"), {{004,004,004,004,004,004,004,000,000}, 0x007c, "bar" }, /* Latin-1 supplement */ @@ -544,6 +596,7 @@ static struct glyph { {{004,012,016,021,037,021,021,000,000}, 0x00c2, "Acircumflex" }, {{005,012,016,021,037,021,021,000,000}, 0x00c3, "Atilde" }, {{017,024,024,026,034,024,027,000,000}, 0x00c6, "AE" }, + ALIAS("AE.c2sc", "uni1D01"), {{016,021,020,020,020,021,016,004,010}, 0x00c7, "Ccedilla" }, {{010,004,037,020,036,020,037,000,000}, 0x00c8, "Egrave" }, {{004,012,037,020,036,020,037,000,000}, 0x00ca, "Ecircumflex" }, @@ -553,6 +606,7 @@ static struct glyph { {{004,012,000,016,004,004,016,000,000}, 0x00ce, "Icircumflex" }, {{012,000,016,004,004,004,016,000,000}, 0x00cf, "Idieresis" }, {{016,011,011,035,011,011,016,000,000}, 0x00d0, "Eth" }, + ALIAS("Eth.c2sc", "uni1D06"), {{005,012,000,031,025,023,021,000,000}, 0x00d1, "Ntilde" }, {{010,004,016,021,021,021,016,000,000}, 0x00d2, "Ograve" }, {{002,004,016,021,021,021,016,000,000}, 0x00d3, "Oacute" }, @@ -565,11 +619,15 @@ static struct glyph { {{004,012,000,021,021,021,016,000,000}, 0x00db, "Ucircumflex" }, {{002,004,021,012,004,004,004,000,000}, 0x00dd, "Yacute" }, {{020,036,021,021,036,020,020,000,000}, 0x00de, "Thorn" }, + {{000,000,020,036,021,036,020,000,000}, 0xf1c2, "Thorn.c2sc" }, + ALIAS("germandbls.sc", "uni1E9E.c2sc"), {{002,004,016,001,017,021,017,000,000}, 0x00e1, "aacute" }, {{005,012,016,001,017,021,017,000,000}, 0x00e3, "atilde" }, {{000,000,012,005,017,024,016,000,000}, 0x00e6, "ae" }, + ALIAS("ae.sc", "AE.c2sc"), {{002,004,000,014,004,004,016,000,000}, 0x00ed, "iacute" }, {{032,004,012,001,017,021,016,000,000}, 0x00f0, "eth" }, + ALIAS("eth.sc", "Eth.c2sc"), {{005,012,036,021,021,021,021,000,000}, 0x00f1, "ntilde" }, {{002,004,000,016,021,021,016,000,000}, 0x00f3, "oacute" }, {{004,012,000,016,021,021,016,000,000}, 0x00f4, "ocircumflex" }, @@ -578,6 +636,7 @@ static struct glyph { {{002,004,021,021,021,021,017,000,000}, 0x00fa, "uacute" }, {{002,004,021,021,021,021,017,001,016}, 0x00fd, "yacute" }, {{020,020,036,021,021,021,036,020,020}, 0x00fe, "thorn" }, + ALIAS("thorn.sc", "Thorn.c2sc"), {{012,000,021,021,021,021,017,001,016}, 0x00ff, "ydieresis" }, /* Latin extended-A */ @@ -640,7 +699,9 @@ static struct glyph { {{016,000,016,021,021,021,016,000,000}, 0x014c, "Omacron" }, {{000,016,000,016,021,021,016,000,000}, 0x014d, "omacron" }, {{017,024,024,026,024,024,017,000,000}, 0x0152, "OE" }, + ALIAS("OE.c2sc", "uni0276"), {{000,000,012,025,027,024,013,000,000}, 0x0153, "oe" }, + ALIAS("oe.sc", "OE.c2sc"), {{002,004,036,021,036,022,021,000,000}, 0x0154, "Racute" }, {{001,002,013,014,010,010,010,000,000}, 0x0155, "racute" }, {{012,004,036,021,036,022,021,000,000}, 0x0158, "Rcaron" }, @@ -1167,6 +1228,7 @@ static struct glyph { {{020,020,036,021,021,021,021,000,016}, U(1E96) }, /* Hmacronbelow */ {{025,004,016,004,004,004,002,000,000}, U(1E97) }, /* tdieresis */ {{016,021,022,022,021,021,026,000,000}, U(1E9E) }, /* Germandbls */ + {{000,000,016,021,022,021,026,000,000}, 0xf1c1, "uni1E9E.c2sc" }, {{004,012,021,021,037,021,021,000,004}, U(1EA0) }, /* Adotbelow */ {{000,000,016,001,017,021,017,000,004}, U(1EA1) }, /* adotbelow */ {{037,020,020,036,020,020,037,000,004}, U(1EB8) }, /* Edotbelow */ @@ -2277,43 +2339,6 @@ static struct glyph { {{004,012,012,004,037,012,021,037,012}, U(1FBC9) }, /* ... wearing dress */ {{004,012,021,021,025,033,021,000,000}, U(1FBCA) }, /* white chevron up */ - /* Latin small caps */ - ALIAS("a.sc", "uni1D00"), ALIAS("A.c2sc", "a.sc"), - ALIAS("b.sc", "uni0299"), ALIAS("B.c2sc", "b.sc"), - ALIAS("c.sc", "uni1D04"), ALIAS("C.c2sc", "c.sc"), - ALIAS("d.sc", "uni1D05"), ALIAS("D.c2sc", "d.sc"), - ALIAS("e.sc", "uni1D07"), ALIAS("E.c2sc", "e.sc"), - ALIAS("f.sc", "uniA730"), ALIAS("F.c2sc", "f.sc"), - ALIAS("g.sc", "uni0262"), ALIAS("G.c2sc", "g.sc"), - ALIAS("h.sc", "uni029C"), ALIAS("H.c2sc", "h.sc"), - ALIAS("i.sc", "uni026A"), ALIAS("I.c2sc", "i.sc"), - ALIAS("j.sc", "uni1D0A"), ALIAS("J.c2sc", "j.sc"), - ALIAS("k.sc", "uni1D0B"), ALIAS("K.c2sc", "k.sc"), - ALIAS("l.sc", "uni029F"), ALIAS("L.c2sc", "l.sc"), - ALIAS("m.sc", "uni1D0D"), ALIAS("M.c2sc", "m.sc"), - ALIAS("n.sc", "uni0274"), ALIAS("N.c2sc", "n.sc"), - ALIAS("o.sc", "uni1D0F"), ALIAS("O.c2sc", "o.sc"), - ALIAS("p.sc", "uni1D18"), ALIAS("P.c2sc", "p.sc"), - ALIAS("q.sc", "uniA7AF"), ALIAS("Q.c2sc", "q.sc"), - ALIAS("r.sc", "uni0280"), ALIAS("R.c2sc", "r.sc"), - ALIAS("s.sc", "uniA731"), ALIAS("S.c2sc", "s.sc"), - ALIAS("t.sc", "uni1D1B"), ALIAS("T.c2sc", "t.sc"), - ALIAS("u.sc", "uni1D1C"), ALIAS("U.c2sc", "u.sc"), - ALIAS("v.sc", "uni1D20"), ALIAS("V.c2sc", "v.sc"), - ALIAS("w.sc", "uni1D21"), ALIAS("W.c2sc", "w.sc"), - {{000,000,021,012,004,012,021,000,000}, 0xf1c0, "x.sc" }, - ALIAS("X.c2sc", "x.sc"), - ALIAS("y.sc", "uni028F"), ALIAS("Y.c2sc", "y.sc"), - ALIAS("z.sc", "uni1D22"), ALIAS("Z.c2sc", "z.sc"), - {{000,000,016,021,022,021,026,000,000}, 0xf1c1, "germandbls.sc" }, - ALIAS("uni1E9E.c2sc", "germandbls.sc"), - - ALIAS("ae.sc", "uni1D01"), ALIAS("AE.c2sc", "ae.sc"), - ALIAS("eth.sc", "uni1D06"), ALIAS("Eth.c2sc", "eth.sc"), - ALIAS("oe.sc", "uni0276"), ALIAS("OE.c2sc", "oe.sc"), - {{000,000,020,036,021,036,020,000,000}, 0xf1c2, "thorn.sc" }, - ALIAS("Thorn.c2sc", "thorn.sc"), - /* * Backward compatibility aliases. These are glyphs whose name has * changed and where we want to keep the old name working. All of -- 2.30.2