Skip to content
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

[makeotfexe] Bad font built when feature file has multiple languagesystems and feature parameters #1080

Closed
readroberts opened this issue Jan 17, 2020 · 6 comments
Assignees

Comments

@readroberts
Copy link
Contributor

readroberts commented Jan 17, 2020

Commit 5624e02 added a serious bug that causes makeotfexe to build a bad font when the feature file has both multiple languagesystems and feature parameters. The result of the bug is that in the layout table with a feature parameter, all lookups are suppressed.

@readroberts readroberts self-assigned this Jan 17, 2020
@josh-hadley
Copy link
Collaborator

josh-hadley commented Jan 17, 2020

If you're affected by this bug, there are 2 workarounds:

  1. revert to AFDKO version 3.0.1 with e.g. pip install afdko==3.0.1
  2. install the pre-release AFDKO version 3.2.0b with pip install --pre afdko==3.2.0b0 (note the version# and use of --pre directive)

Otherwise, wait for AFDKO 3.2.0 final release, which should become available very soon.

@benkiel
Copy link
Contributor

benkiel commented Jan 17, 2020

@readroberts could you explain further what you mean by feature parameters? I’m sure it’s obvious, but I’m drawing a blank

readroberts added a commit that referenced this issue Jan 17, 2020
…iple languagesystems and feature parameters #1080

Updated test file to fail the build tests with in versions of makeotf with this bug, and to pass in versions without this bug, by changing from one to three language system statements, and updating the expected ttx file.

This bug  was introduced in commit 5624e02, when fixing how feature parameter tables were ordered in the GSUB/GPOS tables. The bug in in otl.c after line 2035, where bug was in incrementing nFeatureParams for every feature param subtable, instead of skipping the ones that were just references. Fixed by reverting to the original code block for this. The wrong code was left over from my first pass at changing with the subtable organization, and I forgot to revert this code when I pulled that out and used a different approach.
@readroberts
Copy link
Contributor Author

Feature parameters are blocks of data referenced by the FeatParam field in a GSUB/GPOS Feature table. Current features which use this are optical size ('size'), stylistic names ('ssXX'), and Character Variant features ('cvXX'). The result of the bug is that in the layout table with a feature parameter, all lookups are suppressed.

@josh-hadley
Copy link
Collaborator

readroberts added a commit that referenced this issue Jan 17, 2020
…tiple languagesystems and feature parameters #1080

Updated test file to fail the build tests with in versions of makeotf with this bug, and to pass in versions without this bug, by changing from one to three language system statements, and updating the expected ttx file.

This bug  was introduced in commit 5624e02, when fixing how feature parameter tables were ordered in the GSUB/GPOS tables. The bug in in otl.c after line 2035, where bug was in incrementing nFeatureParams for every feature param subtable, instead of skipping the ones that were just references. Fixed by reverting to the original code block for this. The wrong code was left over from my first pass at changing with the subtable organization, and I forgot to revert this code when I pulled that out and used a different approach.
josh-hadley pushed a commit that referenced this issue Jan 17, 2020
…tiple languagesystems and feature parameters #1080

Updated test file to fail the build tests with in versions of makeotf with this bug, and to pass in versions without this bug, by changing from one to three language system statements, and updating the expected ttx file.

This bug  was introduced in commit 5624e02, when fixing how feature parameter tables were ordered in the GSUB/GPOS tables. The bug in in otl.c after line 2035, where bug was in incrementing nFeatureParams for every feature param subtable, instead of skipping the ones that were just references. Fixed by reverting to the original code block for this. The wrong code was left over from my first pass at changing with the subtable organization, and I forgot to revert this code when I pulled that out and used a different approach.
@josh-hadley
Copy link
Collaborator

josh-hadley commented Jan 17, 2020

fixed by #1081
[Note: Azure seems to be having issues; build failed by timeout, because it seems to keep repeating the build but never exits...ignoring for now which should be safe as other CI passes]

@benkiel
Copy link
Contributor

benkiel commented Jan 18, 2020

@readroberts @josh-hadley, thank you. this indeed caught me: I was thinking you may be meaning fonts with stylistic set names, but wasn't 100% sure. Thank you for taking the time to confirm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants