From 1be864fb48a7c0bbe2843a5e341bccbe2d1c09da Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Thu, 2 Jan 2025 00:53:02 +0000 Subject: [PATCH] Don't emit AlternateSets that will be overridden Just in case TTX changes its behaviour in this area in the future. --- bedstead.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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 && -- 2.30.2