static void dopanose(void);
static void docmap(int pid, int eid, int format);
static void dogsub(void);
-static void doaltsubs(void);
+static void doaltsubs(int noverrides,
+ const struct alt_sub_override[noverrides]);
static void dosinglesubs(char const *suffix);
static void dogpos(void);
static void glyph_complement(void);
TTXI("LookupType", 3);
TTXI("LookupFlag", 0);
printf(" <AlternateSubst>\n");
- doaltsubs();
+ doaltsubs(gsub_features[i].noverrides,
+ gsub_features[i].overrides);
printf(" </AlternateSubst>\n");
}
printf(" </Lookup>\n");
/* Find all the mappings from normal to alternative glyphs. */
static void
-doaltsubs(void)
+doaltsubs(int noverrides, const struct alt_sub_override overrides[noverrides])
{
- int i;
+ int i, j;
for (i = 1; i < nglyphs; i++) {
#define HASDOT(x) (strchr(glyphs_by_name[x]->name, '.') != NULL)
printf("</AlternateSet>\n");
}
}
+
+ for (i = 0; i < noverrides; i++) {
+ printf(" <AlternateSet glyph='%s'>", overrides[i].base);
+ for (j = 0; j < MAX_ALT_SUB_OVERRIDE &&
+ overrides[i].alt[j] != NULL; j++)
+ printf("<Alternate glyph='%s'/>",
+ overrides[i].alt[j]);
+ printf("</AlternateSet>\n");
+ }
}
/* Find all mappings for a single feature. */