Extraneous rules in duplicate `ccmp` tables when using `Rename Glyphs` parameter

Hello,

We’re looking into an odd behavior when exporting binaries from a Glyphs file with alternate glyphs. We saw that certain instances have extra substitutions that we didn’t set up — specifically <Substitution in="Ldot" out="L,periodcentered.loclCAT.case"/> is appearing even though we don’t specify this. What’s more strange is that it only appears in some exports and not others. It only appears in exports that use the Rename Glyphs custom parameter. (We do have a locl open type feature setup for L periodcentered but not the substitution above — rules like sub l periodcentered' l by periodcentered.loclCAT;. The problematic substitution also lives in the ccmp table, not in the features, and is applied by default, unlike the locl open-type features.)

After looking at the tables, here is what we know:

  • This substitution rule lives in a duplicate ccmp tables
  • This extra rule only occurs in certain exports that use the Rename Glyphs parameter. This is to substitute complex forms such as the Oslash at certain points in the design space. There is no relation to the Ldot.

It feels like there may be some bug in the generation of the tables when the Rename Glyphs parameter is set up. The parameter itself (the Oslash substitution, for example) is working functionally. We’re just looking to figure out why there are those extraneous rules in our binaries and how to remove them.

We’ve tried applying, and disabling, the “Update Features” custom parameter at the font level as well as the exports level, but that did not have any effect.

This is the result from both Glyphs 3207 and Glyphs 3314.
Let us know if we can provide any additional information!

Is the locl feature set to “automatic”? When you have a Rename/Replace Glyphs parameter, all automatic features are updated to account for the changed glyphs.

Hi Georg, it looked like that did the trick. Automatic feature generation was unchecked for the locl feature, but it was checked for a few others — unchecking the checkbox for every rule resolved the issue. Thank you!