FontForge is a free and open source font editor for all major platforms. This account announces new features as they land in developer builds and new releases.

#fontforge @ irc.libera.chat
Joined September 2012
If you work a lot with SFD files, there is now a tested Python library for encoding/decoding the quoted strings in them. sfdutf7·py — github.com/ctrlcctrlv/sfdutf… PyPI: pypi.org/project/sfdutf7/ ~ @fr_brennan
This is the most horrifying code I've ever written. Thanks for the IMAPClient implementation @mjs0 lol github.com/ctrlcctrlv/sfdutf…
2
5
Meanwhile 'pres' lookup 11 looks alright to me, although you probably can cut latn{dflt}. You can't mix dev2 and deva like this and expect it to work. Also, I must caution you, Indic shaping is likely broken in MetricsView. Please rely on HarfBuzz. Cf github.com/fontforge/fontfor….
2
1
Replying to @RatanKarna
I took a look. Sorry to tell you I'm not an expert in Indic shaping, which uses very different (script-dependent) rules than normal OpenType shaping. However I still may know what's wrong. Only the lookup marked 'pres' Pre Base Substitutions lookup 19 has this strange metadata:
1
1
1
By "SVG font", FontForge means the outmoded SVG 1.1 standard, *not* SVG-in-OpenType, a type of OpenType font which contains SVG files for its glyphs, which it cannot yet create. And, even its SVG 1.1 support has issues, cf. e.g. github.com/fontforge/fontfor…. Workarounds below.
1
1
1
You may not want to put such a path in a TrueType font, however, as while some rasterizers might handle it correctly (left), others, may handle it incorrectly (right).
5
This is one reason you should avoid self-intersecting paths in your final outputs. Althugh, certain self intersecting paths can all be valid, especially in variable fonts. For example:
1
4
The reason for this is that a single self-intersecting contour actually has multiple directions. Therefore, to ask, "what direction is this contour in", is an unanswerable question. Both and neither.
1
1
But sometimes a contour is of indeterminate direction. Any self-intersecting contour, for example, is of indeterminate direction, and the options to set clockwise or counter-clockwise will be greyed out.
1
1
⋆˚。⋆ ˚ Why FontForge can't set every contour Clockwise/Counter-clockwise ˚ ⋆。˚⋆ It's a simple fact of math that not every contour has a clockwise or counter-clockwise winding direction. Some contours are simple. This one is clearly clockwise. Point 0 is at 9 o'clock.
1
2
9