> Perhaps the following?
> (1) If glyph A is in the 'cmap' table, and glyph B is not, prefer
> glyph A.
> (2) If one glyph needs X lookups and another glyph needs Y, and X < Y,
> prefer glyph X.
> I'm not sure whether (2) makes sense, though.
> Can you give one or more examples for such cases?
To repeat what I said in an email that I accidentally didn't send to the mailing list:
> I simply noticed that it's possible for 2 characters to map to the same glyph, which means that a glyph would map to 2 characters. I don't have any examples in mind for when this would actually happen. I was planning on either ignoring the situation to let it be resolved arbitrarily, or removing both entries.
The situation is resolved arbitrarily for now. I want to have a reason for the rule that I choose before I choose a rule for such cases. (1) seems to generally make sense because the cmap table is more "direct".
Also: what else needs to be done for the project to be complete and ready to become a part of freetype? The remaining tasks I can think of are:
- Fill in, or find someone to fill in the rest of the adjustment database.
- properly address the 'salt' table and similar cases in the glyph alternative finding algorithm.
- Test everything more thoroughly.
At this point, I know that the segment removal + vertical stretch is definitely the best approach, and the latest commit applies that to all the characters with tildes rather than a comparison of approaches. I previously thought that it caused some regressions, but I now know that the examples I had were just preexisting quirks in either the font or the autohinter.
> To help people understand the non-trivial algorithm I
> suggest that you add a big comment that shows it working step by step
> for an example font, using a reduced set of features and glyphs.
This comment has been added.