*DrawBot bug alert*:

While running out extensive proofing texts, I realized that GSUB and GPOS are not being applied to FormattedString() if it runs to more than three pages.

OTFeatures and, most importantly, *kerning* only get applied to the last few pages, and not the initial pages.

Issue filed and confirmed: https://github.com/typemytype/drawbot/issues/585

@justvanrossum identified the bug as part of CoreText.

FormattedString(openTypeFeatures) not applied consistently · Issue #585 · typemytype/drawbot

If I have a text that lays out on three pages or less, then the OT Features (ex. {liga}) get applied throughout. If the text is longer than three pages, then only the last three pages have features...

GitHub
@kentlew @justvanrossum I love it when computers just get bored and give up.
@simoncozens @justvanrossum The weird thing is that otfeatures are only applied at the end. So it’s like it finally gets tired of *ignoring* and goes ahead and does what you want for the last few pages. Weird.
@kentlew @simoncozens the bug occurs when the total length of the text you feed to textBox exceeds a certain value. With each page you output, the remaining text gets shorter. So at some point you reach the short-enough length.
@justvanrossum @kentlew I saw something similar (but not the same) a few years back. Certainly CoreText does have a maximum number of rule applications that it's prepared to do. But when I saw it, it was stopping early.