Finally... I got around to using Graphite to add rules to resolve letter + diacritic pairs into precomposed glyphs (unfortunately, this requires one to use a Graphite-capable program like
SILA to see the precomposed characters; the diacritics will still be placed wrong on stock browsers).
Here's the updated font, and
this is what it looks like under SILA.
These are the Graphite rules I added:
Code: Select all
#define ps postscript
#define comp(c1, c2, r) ps(c1) ps(c2) > ps(r):(1 2) _
#define lenge(c1, r) comp(c1, "lenge", r)
#define vuae(c1, r) comp(c1, "vuae", r)
#define mole(c1, r) comp(c1, "mole", r)
#define lengc(c1, r) comp(c1, "lengecuzea", r)
#define elom(c1, r) comp(c1, "elom", r)
Bidi = false;
table(substitution)
// u
lenge("Uverd", "Ulenge"); lenge("uverd", "ulenge");
vuae ("Uverd", "Uvuae"); vuae ("uverd", "uvuae");
mole ("Uverd", "Umole"); mole ("uverd", "umole");
lengc("Uverd", "Ulengecuzea"); lengc("uverd", "ulengecuzea");
elom ("Uverd", "Uelom"); elom ("uverd", "uelom");
// a
lenge("Averd", "Alenge"); lenge("averd", "alenge");
vuae ("Averd", "Avuae"); vuae ("averd", "avuae");
mole ("Averd", "Amole"); mole ("averd", "amole");
lengc("Averd", "Alengecuzea"); lengc("averd", "alengecuzea");
// o
lenge("Overd", "Olenge"); lenge("overd", "olenge");
vuae ("Overd", "Ovuae"); vuae ("overd", "ovuae");
mole ("Overd", "Omole"); mole ("overd", "omole");
lengc("Overd", "Olengecuzea"); lengc("overd", "olengecuzea");
// e
lenge("Everd", "Elenge"); lenge("everd", "elenge");
vuae ("Everd", "Evuae"); vuae ("everd", "evuae");
mole ("Everd", "Emole"); mole ("everd", "emole");
lengc("Everd", "Elengecuzea"); lengc("everd", "elengecuzea");
// i
lenge("Iverd", "Ilenge"); lenge("iverd", "ilenge");
vuae ("Iverd", "Ivuae"); vuae ("iverd", "ivuae");
mole ("Iverd", "Imole"); mole ("iverd", "imole");
lengc("Iverd", "Ilengecuzea"); lengc("iverd", "ilengecuzea");
elom ("Iverd", "Ielom"); elom ("iverd", "ielom");
// y (i breve)
vuae ("Yverd", "Yvuae"); vuae ("yverd", "yvuae");
// kodh
vuae ("Kodh", "Kodhvuae"); vuae ("kodh", "kodhvuae");
// chen ismae
vuae ("Chenismae", "Chenismaevuae");
vuae ("chenismae", "chenismaevuae");
endtable;