Allow hyphen and special characters in Feature File glyph names#5358
Allow hyphen and special characters in Feature File glyph names#5358skef merged 13 commits intofontforge:masterfrom
Conversation
|
This PR mostly affects The case The case |
|
I know I'm supposed to be reviewing this, and I have looked at it. It seems a bit hairy and more risky than some of the other recent PRs and I want to go over it a few more times before I approve. |
I agree with your reserved approach, this stuff is risky indeed. I'll think about some application of bulk runner to get more confidence in it. |
|
Ran Results (other than simple PASS): Failures seem unrelated, as these are crashes on both system and project code, but I'll take a look anyway. |
This crash is unrelated, but there is a simple fix in 3c9c621 - we are releasing SplineChar object we don't own, and trying to do it multiple times because the font contains multiple duplicate kerning pairs applied to this char. |
Unrelated crash, fixed in 30389c7 |
Unrelated crash - occurs both in master code and in the pull request. Stack: |
|
For me, the bulk tests are clear now. |
|
@iorsh how thoroughly is the CID path tested? If it's been tested well I'm ready to approve this. |
|
Tested CID path with the following with some tweaks. All tests passed except for Mothanna.sfd, which crashes on both system and project with unrelated stack. Tweaks:
|
|
@skef, I tested the CID path with the entire bulk test suite - see above. The results are ok, could you please merge? |
This PR implements support of hyphens in glyph names, per OpenType Feature File Specification 2.f.i. Specifically, hyphen (
-) and other special characters_.*+:^|~must be supported in glyph names, and whenever hyphen is encountered, the implementation shall first attempt to find a glyph with the respective name, and only upon failure the implementation shall regard the hyphen as a range specifier.Without hyphen support we incorrectly reject feature files for fonts with hyphens in glyph names (Iosevka being a one major example)
The entire issue of glyph names probably warrants some further discussion.
Type of change