FontForge Changelog

What's new in FontForge 2.0 Build 20141230

Jan 30, 2015
  • This fixes a few bugs and quirks and adds a few user interface enhancements.
  • The binary package for Windows is attached. A 2nd release version was made to ensure it runs on Windows XP.
  • The binary package for Mac is attached, fixing a major slowness problem in the previous release. Due to odd (but nonetheless very bad) problems using Carbon (which Apple has decided not to make available in a 64-bit version) in 64-bit mode on later versions of Mac OS X, FontForge no longer uses the Carbon event loop and is thus unable to accept file-drop events on Macintosh. See #1956 and #2004 for more information.
  • Binaries (and source packages) for Ubuntu and Debian are available from the official FontForge Launchpad archive here.
  • The source package for Red Hat is attached. Despite the generic name, it is only for Red Hat.
  • Binaries for Macintosh ought to arrive in the next few days.

New in FontForge 2.0 Build 20140101 (Jan 6, 2014)

  • Large overhaul of the Compile Make build system was moved over into Autoconf with much code updated to use this method of building FontForge - this is still a work in progress.
  • Large number of hard-to-find bugs and errors found and resolved.
  • Large review of bit mapping - with a more graceful/tolerant fail mode from errors.
  • Many improvements added for Python - Enabled for Python 2.x or Python 3.x
  • Many improvements added to Native Scripting.
  • File recovery added.
  • New features added, such as ReadLine, File Collaboration, and GUI options.
  • Several Languages updated.
  • New Tango Theme added, or you can continue to use the original 2012 GUI Theme.
  • Command-line options updated to be more familiar for open source such as making use of '--' or '-'
  • Many fixes to accommodate the new Macs.
  • Separation of libfontforgeexe and FontForge into it's own directory.
  • Make use of web-based code-checkers, such as travis ci during development.

New in FontForge 20081115 (Dec 8, 2008)

  • Displaying magnified bitmap strikes in the font view often caused a crash.
  • Non-English translations of "%d pixel bitmap" in the View menu of the font view came out garbled. There were interpreted as latin1 rather than utf8

New in FontForge 20080927 (Sep 28, 2008)

  • Implement a concept of "master counters" (similar to PS counter hints, but more flexibe). I. e. if there are two or more equal or similar counters in the glyph, then references pointing to stems forming the first counter are added to stems forming the subsequent counters. This can be used to implement a sort of counter control in the autoinstructor. Adjust the width to length ratio used to determine if a diagonal stem is acceptable.
  • There appears to be (what I consider to be) a bug in scim. If the Mod2Mask bit is set in the event then it returns a keysym of 0. Other input managers do not do this. And some input managers depend on having that bit set (it is used on the Mac for Option processing for example). The upshot is that if I want to do mnemonics (Alt/Meta key sets Mod2Mask) I must clear this bit when passing info to scim. Since I don't know what input manager is attached I must clear the bit for all managers. Which breaks some of them.
  • When doing completion in a textfield, if ff completed the entire string, then it would not select the unexpected stuff. The result would be that I would type "a", then "." and ff would complete to "a.sc" (rather than "a.sc") so when I typed the "s" I would get "a.scs" rather than "a.sc".
  • Add code to allow users to customize the font used in various dialogs and windows which previously could not be customized.
  • Multiple Master dlg was very broken.
  • Saving and Reading quadradic splines to the 'PfEd'.'layr' subtable didn't work. Also if we didn't save the background layer (layer=0) then a random layer would (inappropriately) become the background. Extend the 'layr' format to store a background/foreground flag per layer.
  • Still problems in importing lookups on 64bit machines.
  • A thread on typophile exposes my ignorance. The x-height of an italic font is usually a little less than that of it's companion roman font. (This is to correct for an optical illusion, because vertical stems are slanted in italic they will be longer than the corresponding stem in an upright font, and to the human eye they will look taller (even though they are not)). So add an option to the Italic dialog to make the x-height a little smaller.
  • Change the menu handler so it can draw mac menu icons (cloverleaf for command, up arrow for shift, ^ for control and weird squiggly for option). Remove the hack that if the modifier mask for the command key was set then we'd also set the control mask (this meant that the command key would work as control, but it meant it could only work as control). Let the command key work as itself, and put in special code to check whether X11 is going to give us the command key (or will that key be used in the X11's own menubar). If we get command then we load a special set of keymap bindings (which, presumably, will use command). If we don't find a special set of keymaps, then fall back on normal processing.
  • Make the pixelsize in anchor control be saved in prefs file (clean up prefs file for scripting, bring up to date).
  • We didn't have any way to remove an sfnt table (like 'fpgm') even though we tell the user to do exactly that in the auto instructor.
  • Was not allocating enough memory for comments in the cvt table structure when user did a [Change Length].
  • Patch by Thomas ?. When FF loaded a ufo font (actually any glyf file) it used integers for the coordinates instead of reals.
  • We used to move left and right point coordinates to the baseline for italic stems, so that they may well fall outside of the glyph bounding box. So prevent the situation where this could lead to a nan in spline creation. Also don't change the slope of italic stems when resizing a glyph.
  • Clear should only clear anchors, hints and tt instructions if it is the last foreground layer. We could get picky and clear hints when the last cubic foreground layer went, and instructions whent he last quadratic layer went, but I don't think it is worth the bother.
  • If we have a 'TYP1' sfnt with a kern table which kerns a glyph with no unicode encoding, then FF would likely crash.
  • Oops. Typo in Generic change function. Crashed when doing change glyph on a glyph with only references
  • Just as the paste command should only set the width in foreground layers if all other foreground layers are empty, so the clear command should only reset the width in similar conditions.
  • Internal conversion from fontforge splinesets to ff python contours would often leave interpolated points showing in the contour.
  • When FF generated a default name for a lookup when adding a new lookup from font info, that lookup index was always set to 0, which meant multiple lookups for the same feature would stand a good chance of getting the same default name. Do a little better.
  • Extend the small caps dlg to create petite caps if desired.
  • Fix an uninitialized variable in GXDrawGrabSelection.
  • FF would attach a mark to the first anchor point in the correct subtable in the base glyph. It would not check for the correct anchor class.
  • Python contour conversions would often introduce a control point on a linear order2 spline.
  • List of Panose letterforms was missing an entry from the middle so all later entries were off by one.
  • "Fore" and "Back" weren't localized in one significant place.
  • Add a few more checks (when reading in) on the validity of the 'MATH' table.
  • FF would generate a bad MATH table if given a glyph with assembly data but no variant sizes.
  • Dropping a drag and drop into the metricsview after the last character tried to insert the drop before the first character. Clean up drag and drop from the font view a bit.
  • I have been trying to attach marks to bases backwards. It is the mark which moves, so the attachment should happen when we get to the mark, and we should look backwards to find the base. I have been finding the base, and then walking forward to find the mark. My approach failed if the lookup contains multiple subtables and a base glyph has two marks being attached, one from each subtable -- I would attach the mark in the first subtable, but then having found a subtable that worked would stop, and the second mark never got attached.
  • When dragging and dropping lookups, allow dropping a lookup subtable into a different lookup of the same font (assuming it's got the right lookup type).
  • The recent patch to insure that [Imported] lookups from one font to another came across in the right order didn't work if there were nested lookups involved. The order of nested lookups is irrelevant -- unless they are also used in a non-nested context.
  • Add the ability to define a "Group" by glyph color.