-
Notifications
You must be signed in to change notification settings - Fork 764
Allow hyphen and special characters in Feature File glyph names #5358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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