The autohint command would sometimes reverse direction of a contour (bug
PfaEdit would sometimes generate internal errors when editing quadratic splines
When reading a font with an apple 'mort' table, pfaedit would often parse
marked substitions incorrectly.
When "cleaning up OS/2" on 29-Feb, I broke WinAscent/WinDescent
PfaEdit failed to convert the language when loading a mac unicode string
from the 'name' table
Fix an undefined variable in multiple font generation.
The Check directions option of Find Problems caused multilayer mode to crash.
Expand stroke would produce counter-clockwise paths when given an open contour
and asked to fill it with a circular (or elliptical) pen
Try to do a better job of guessing the correct direction of a path in an
eps file (or a type3 or svg font)
PfaEdit would crash when editing in the grid layer
When the control key is down, make the scroll wheel do a magnify/minify.
Various cosmetic changes to find problems
Specify that "nearness" is measured in em-units
change "refs deeper than" to "refs nested deeper than"
make check dir be on by default
Put in more comments about fontforge. We now have a domain under
fontforge, future releases will be
PfaEdit could crash if given a bad 'cmap' subtable
Clean up generation of OS/2 a bit
Pass motion events to windows even when a dlg is active (so that the mouse
location will be shown in an outline window when the Point info dlg is active).
Put in a comment about changing to FontForge in the copyright notice the
program prints at start up.
The "preflight" script on the mac had problems if the program had never been
Redid the way menus respond to arrow keys
a multilayer enabled PfaEdit would crash when editing a normal font.
Remove the AddHint command and replace it with AddHHint and AddVHint.
PfaEdit would crash when generating a mac family with NFNT bitmaps.
Added support of exporting a character into PDF format.
Oh dear, I was figuring out hintmasks in the wrong direction (because PS
splines get reversed before output, so I now reverse them during the hintmask
At Werner's suggestion, added code to show what hints are currently active
at a point.
At Werner's suggestion added code to show what points are affected by a hintmask
Added support for real editing of type3 (and svg) fonts. Support for editing
stroked paths, different fill colors, multiple stroke/fill operations, etc.
Because this involves a lot of extra overhead it is wrong for people who
want to edit CJK fonts, so this mode is off by default. It may be turned
$ configure --with-multilayer
PfaEdit failed to interpret h/vstem3 commands properly when building a hintmask
(when reading a type1 font with hint substitution)
PfaEdit would crash when saving a non-multi master font.
Adding new scripting commands ClearCharCounterMasks, SetCharCounterMask
PfaEdit would crash if asked to generate a contextual lookup which refered
to a lookup which only was activated by a character(s) which was not worth
PfaEdit did the wrong thing when evaluating the PostScript "index" command
(it returned the wrong value from the stack (stack index off by one))
Added support for the PostScript "for" loop.
I have created a simple (1 axis) Multiple Master Type1 font with PfaEdit.
It works with both ghostview and freetype.
PfaEdit would crash when generating a ttf file from an sfd file which contain
an invalid script/lang index. Put in code to warn user about this, and in
some cases to correct it.
PfaEdit had problems reading sfd files in the old point count format, this
meant we still got bad point count errors.
PfaEdit wrote bad sfd files if there were countermasks (all the countours
of the glyph would be lost)
I finally figured out why PfaEdit kept crashing when palettes were docked
and an outline view was closed.
Fixed various crashes in Interpolate fonts
PfaEdit had problems with using subroutines to express references in PostScript
Added a new scripting commands AddHint and ReplaceCharCounterMasks.
Make it illegal to select both "Condense" and "Extend" in the mac style.
Point Info dlg crashed on the mac
Add UI control over Mac Style through the Font Info dlg
more prep work for mm fonts
Generating a postscript font from a database with quadratic splines didn't
PfaEdit crashed on a font with two /CharStrings entries
Small tweak to menubar behavior given left/right arrow (for Werner)
Composite glyphs created with seac (type1) had the wrong transformation for
more prep work for mm fonts
Still have problems with ttf point counts
If a user loaded a ttf file and made it monospace and then generated it as
ttf, all gyphs except the .notdef had an advance width of 0
sfd reader had a bug. Went into an infinite loop if a hintmask contained
any of the characters [a-fA-F].
In Type2 output, when putting a glyph into a subroutine, if that glyph had
no conflicts but had a hintmask pfaedit produced a bad font (which crashed
PfaEdit when it tried to read it in).
configure script still wasn't working on solaris (or mac with libiconv probably)
The kerning state machine addition broke the indic state machine dialog
The mac docs claim that the 'feat' table should be sorted by feature id.
But if you do this WorldText can't find features. All Apple fonts seem to
be sorted by the order the features are used in the 'morx' table's chains.
WorldText works if you do this.
Yannis proposed several extensions to the State Machine editor, most notably
the ability to move the edit dialog with Up/Down/Left/Right buttons.
I had the feature settings for Linguistic Rearrangement and Vertical Subs.
In some cases I wasn't outputting anything to turn a feature off.
Fixed many problems with kerning state machine dlg
Fixed several problems with insertion state machines
Fixed several problems with reading in state machines.
Added SetMacStyle() to give the user control over how mac families are built.
Added a fflush after doing Print()s in scripting
PfaEdit would crash when given an extremely long real number in a cff dictionary
(in this case the font itself was in error)
PfaEdit did not copy a bitmap character's width when it copied the bitmap.
Char Info didn't handle pairwise positioning properly.
My old approach to hint substitution caused problems with multiple master
fonts. So now I keep track of which points are substitution points and what
the hint masks are at those points. There is a new command which will
automatically figure out these points, and the user may control them directly
through Point Info (Element->Get Info). At the same time I figured I might
as well do the same thing for counter masks, so PfaEdit will read counter
masks in from otf file (I did not implement this for type1s), there is a
new command to try and make a guess as to what they should be, and the user
may control them directly through Element->Char Info. (new scripting commands,
SubstitutionPoints() and AutoCounter() do the obvious).
Added a Hints->Don't AutoHint command to mark a character as having hints
the user likes which should not be modified until the user explicitly calls
AutoHint(). (and a matching scripting command).
Added ability to control whether a PostScript font (type1&type2) is output
PfaEdit could generate a bad 'post' table for bitmap only fonts.
PfaEdit didn't allow you to create two pairwise positioning items with the
Hungarian names for mac features and for some standard names like "Bold",
etc. provided by Laszlo Karoly.
Pierre HANSER noticed that if PfaEdit mapped a single glyph to two encodings
then bitmap generation through freetype got confused.
If a font contained a non-.notdef character at encoding 0, then generating
an opentype font from it had a fair chance of crashing.
Added a couple of new select menu items: Select->Contours, Select->First
Point, Next Contour
Added a new sub-menu to allow ordering contours within a glyph. This is almost
totally useless (the final look of the character should not be affected by
the order in which the contours are drawn), but for multiple master fonts,
the contour list must have the same ordering in corresponding glyphs.
A patch for reading broken mac tables got lost. I've reinstated it.
PfaEdit would crash when asked to use the truetype debugger on fpgm
PfaEdit always coloured the background of debugger windows grey.
The Points window did not show any points.
Changed the Points window and the character view to show whether a point
has a watch point set on it.
Display the code range ('fpgm'/'prep'/Glyph) in the character's info line
When creating a 'fpgm'/'prep' table we created one with some garbage instructions
Somehow I neglected to put in a dlg for editing the 'cvt ' table. This has
There was a bug in the postscript interpreter (the thing used for reading
.eps files and type3 fonts) and transforming a point by a matrix with diagonal
entries (rotation, skew, etc.) gave the wrong value.
Added code to preserve more of the PS graphic state when eps file does a
Merge Fonts would crash when merging a font with references into an empty
I wasn't providing default values for width/weight classes in the OS/2 table
The bitmap dlg could write one byte beyond the area allocated in some cases.
Changed the outline character popup menu to include an Add Anchor Point entry
The Ligature index wasn't correctly enabled in some cases.
Add little arrows near the first point of each contour (in the outline character
view) showing the direction of the contour.
The mac's interpretation of the CFF spec is very picky, but correct. If a
font contained no references then PfaEdit would generate an empty subroutine
index. This is wrong. There should be no subroutine index, rather than an
empty one. (Strangely, global subroutines have the reverse requirement. Stupid).
Now if there are no references, then PfaEdit will not generate a local subroutine
Yannis Haralambous has corrected the French UI.
Three new scripting commands: AddAnchorClass, AddAnchorPoint, RemoveAnchorClass
Show ATT did not show glyph classes properly.
Made scripting dlg be resizable.
Save As & Import dlgs looked bad in French. Various other improvements
to make things look better on non-english systems.
Added the ability to set the glyph class from Char Info.
FontsInFile did not work on pfb files (nor on cff)
Opening a mac resource file with multiple FONDs from a script would crash.
In Font Info->TTF Names the languages now appear in unicode ordering no
matter what the locale (used to be the langs were in alphabetical ordering
for English, even if they were actually French)
More accurate round joints in stroking.
Better approximations to splines which turn through 180 degrees or more
Support for reading cff files.
Yet more problems counting ttf points
Update copyright notices.
Add code to protect PfaEdit against reading bad Apple lookup tables (I think
the Zapfino.dfont that ships with 10.3 has two bad lookups, but perhaps I
just don't understand them).
Try harder to avoid using 'DFLT' script when coming up with a default script
for glyphs with no inate script.
Add a Find Problems to detect 'DFLT'
I've been generating bad Simple Positioning subtables for GPOS all along.
Be pickier about what glyph names I let the user choose.
On cygwin (perhaps elsewhere, but I was never able to find the bug elsewhere)
if you invoked one command from the menu while another was still executing,
then pfaedit would probably crash.
Support for reading and writing bare cff files.
Build Accents crashed when asked to build accented chars for iacute, etc.
in a font without dotlessi.
RemoveATT scripting command didn't work if the third argument were "*"
PfaEdit's clipping in the character view left something to be desired.
Make Meta-Arrow move selected points by 10 times what Arrow would move them
Grabbed the feature ordering for GPOS/GSUB specified on the
site and taught it to PfaEdit.
Change the Point Info dlg
to allow the user to control the point type from there.
to enforce constaints on control points (ie. the control points of a curve
point must be in line with the point itself)
by adding an alternated mode of entering data, by distance and angle (rather
than just offset)
Some MF fonts have glyph names with characters which aren't allowed in PostScript
PfaEdit failed to set widthset when it read in glyphs from a windows FNT
(FON) file. This meant that some glyphs might be ignored.
The context chaining dialog had a bad test for valid glyph names and complained
about any name containing digits
The histogram dlg would crash if the mouse moved across it when the window
was so wide that it could contain more stem widths than were actually in
Added three commands to the metrics view view menu to allow users to insert
glyphs by name or encoding.
Yannis points out that afm files produced on fonts with vertical metrics
did not contain "WY" values (vertical advance width), also that the vkerns
in the file actually contained the values of horizontal kerns.
The 'kern' table did not contain pairwise vertical kerns (it did contain
vertical kerning by class).
The View->Substitutions sub menu of the metricsview was not being cleared
properly if the current glyph had no substitutions.
Yannis wants the View->Substitutions menu to have a way to return to the
Yannis points out that the metricsview in vertical mode changed the top side
bearing in an unexpected way. Also the vertical advance width did not refresh
the display properly.
Thanks to David Opstad, I now have an example of a format 1 kerning table
and have extended PfaEdit to support kerning by state machine.
The code for generating and loading otb (OpenType bitmap) fonts was broken.
And the code for generating my own wierd bitmap only fonts for windows had
some flaws too (different flaws).
If I typed a character into a fontview (or char view) and the font did not
contain the character, pfaedit would not select that slot that encoded the
character, even if the character was in the encoding.
When loading a ps type3 font, make sure that the glyph name is available
when parsing glyphs so we can produce reasonable error msgs. (mostly this
means "Spline stroke is too big"
Only generate Spline stroke too big errors once per font.
Adam Goode tells me that the format 12 (32bit unicode) cmap was wrong, and
provided a patch to fix it.
Pretty much rewrote the stroking command from scratch.
Merge fonts would crash when merging in a font containing either a ligature
caret or a nested lookup.
Made PfaEdit cognizant of the proposed unicode dotlessj character (0237),
it will now use either this or the dotlessj in adobe's private use area
(depending on which is in the font)
PfaEdit would crash when trying to build an accented character based on inverted
breve in pala.ttf
It wrongly considered pala.ttf to be slightly italic (.0005°)
It would crash when doing this in an italic font
When importing postscript (type3 fonts, eps files) counter-clockwise paths
which are both stroked and filled cause problems
Changed the version stamp of otb fonts from 'OTTO' to 1.0
When there were multiple features with the same tag (different scripts with
'kern' for instance) PfaEdit would produce multiple copies of the same lookup
instead of different lookups.
PfaEdit was not setting the right to left lookup flag bit properly for hebrew
(and presumably arabic) kerning
Remove overlap was coalescing some splines that it should not have.
Typo in expand stroke meant that some round line joins were really weird
When changing the ascent/descent with fontinfo or scaletoem some of the OS/2
fields did not get updated properly.
The OS/2 TypoDescent field was set positive instead of negative.
Added two scripting functions SetTTFName and GetTTFName to give scripts access
to the truetype names as well as the PS ones
Patch from Kazuyuki. SetPanose didn't work when argument was an array.
New French translations from Pierre
$copyright didn't return the correct thing (Patch from Giuseppe Ghibo)
Kerning pair data for non-ASCII unicode characters did not get output properly
into SVG fonts
The AddATT scripting command did not add ligatures correctly leading to problems
when time came to generate a font.
PfaEdit would crash if given an encoding for the locale which it didn't
Center/Thirds in width from the font view would change the width
There was a synchronization problem and the truetype debugger window could
PfaEdit failed to read a Contextual (but not Contextual chaining) Coverage
PfaEdit was crashing when loading a bitmap font with encoded characters outside
the range specified by the encoding (ie. a character 0x10000 in a unicode
Fixes for several memory leaks provided by Kazuki Ohta
Slight improvements to the View->Combinations->Ligature dlg
Bug introduced 6-Nov, PfaEdit generated a bad 'loca' table when outputing
a ttf outline font with bitmaps.
PfaEdit was getting the truetype point number wrong when reading outlines
from an sfd file.
If the loca table was 2 or 4 bytes long, PfaEdit failed to warn about a bad
PfaEdit got confused if two truetype glyphs had the same name.
When dumping out embedded ttf bitmaps, PfaEdit got confused by the extra
glyphs (.null and return) and generated garbage.
Make View->Combinations->ligature dlg a bit better for non-latin glyphs
The clut used for drawing anti-alias bitmaps in the metrics view was wrong.
In a bitmap only ttf file, PfaEdit was usually producing bad line spacing
data as far as the mac was concerned.
When importing bitmaps into an empty font, we might as well change to font
view to show the bitmaps rather than the empty outline data.
If glyph 0 was selected in the fontview then the File->Open Outline command
With a user defined encoding we were again getting occasional crashes.
(introduced by my work on bitmaps)
On certain glyphs, the optimizer introduced an slight error when calculating
a spline's coefficients from its control point. Even though this error was
on the order of 7e-8 it was enough that the rasterizer produced grossly incorrect
results. I have pulled the relevant routine out into its own file which is
now compiled by itself without optimization.
When PfaEdit removes glyphs with Font Info->Encoding->Number of characters,
it will now run through the font and remove any ligatures, substitutions,
etc. refering to non-existant glyph names.
Some improvements to remove overlap.
Added a warning message so that when user attempts to output a ttf file where
no characters have unicode encodings, then the user at least gets warned
that the result will probably not work. For fonts with fewer than 256 glyphs
it will offer the choice of a symbol encoding.
If a reference were copied in the outline character view and pasted into
the font view, pfaedit would crash.
the expand stroke patch on 29-Sept broke caligraphic and elipse modes.
The mouse's scroll wheel did not work in the metrics view.
The metrics view resized very slowly under window managers which do continuous
Give the magnifying glass's rectangle mode a threshold so that it doesn't
resize tiny rectangles which are really caused by mouse gitter.
Attempt to set a zoom size for character and bitmap windows, but modern window
managers don't seem to support the old protocol, and I can't find docs on
a new version.
Was not converting filenames to unicode properly for the open/generate progress
PfaEdit would crash when attempting to draw a character for which in had
no (X11) glyph when doing bidirectional text.