diff --git a/bedstead.c b/bedstead.c index 1bfe8a5..c25e3e8 100644 --- a/bedstead.c +++ b/bedstead.c @@ -3668,7 +3668,7 @@ dogsub(void) static void doaltsubs(int noverrides, const struct alt_sub_override overrides[noverrides]) { - int i, j; + int i, j, next_override = 0; for (i = 1; i < nglyphs; i++) { #define HASDOT(x) (strchr(glyphs_by_name[x]->name, '.') != NULL) @@ -3680,15 +3680,22 @@ doaltsubs(int noverrides, const struct alt_sub_override overrides[noverrides]) * name comes immediately after the unqualified one. */ if (HASDOT(i)) { - printf(" ", + bool overridden = next_override < noverrides && + strcmp(glyphs_by_name[i-1]->name, + overrides[next_override].base) == 0; + printf(" %s", + overridden ? "" : ""); + next_override += overridden; } } + printf(" \n"); for (i = 0; i < noverrides; i++) { printf(" ", overrides[i].base); for (j = 0; j < MAX_ALT_SUB_OVERRIDE &&