Changes (Enhancements & Bug Fixes)
Changes since the last release may be found by performing a "cvs log" command
on the file stamp.c.
-
14-Jan-2006
-
5-Dec-2005
-
Creating the first bitmap view might cause a crash -- depending on how the
linker organized memory.
-
Loading an sfd file now checks to see if there are any glyphs with splines
in them, and if there are not turns on the onlybitmaps flag. Someone pointed
out that if you inadvertantly edit in the outline view -- even if it is nothing
significant, then the font is forever after marked as outline. This isn't
a perfect fix, but it will prevent the worst from happening.
-
1-Dec-2005
-
Use GNU gettext rather than my nomen routines to handle translation of the
UI..
-
Add support for plugins.
-
I added a check in parsing tfm files to make sure I didn't read outside the
bounds of the kern table. But the table size was expressed in ints (32 bit
units), and my index was in bytes, so I frequently exceded it.
-
If we used Get Info on a reference in a ttf font, and that reference did
NOT do point matching we would generate an inappropriate error.
-
My support for using endchar as seac in type2 fonts only worked in bare cff
fonts, it did not work if the cff were inside an sfnt wrapper (opentype).
-
I have decided that I will now store all postscript strings in utf8 (copyright,
weight, familyname, etc.) They SHOULD all be ascii. But the occasional copyright
mark would sneak in. We went into an infinite loop on one such because that
was an illegal utf8 string. So fix a number of problems related to this.
-
Switch from using an internal routine to using freetype to rasterize b&w
bitmaps when debugging ttf instructions.
-
Make the gridfit/debug settings sticky across invocations (store in prefs).
-
Add popup info showing the level of greyness in a truetype font being debugged
in anti-alias mode.
-
Werner suggests altering the dynamic range of anti-aliased rasters in the
charview so that the outlines remain visible behind them.
-
Make the background color of the debugger raster window configurable by the
user
-
If a curved point had no control point in one direction, then ff thought
it had no direction and felt free to change it. It should inherit the direction
from the other side of the point. This was even more confusing if the point
went through a two step process, first simplifying one side into a line (losing
the cp) then simplifying the line away (losing the direction).
-
Use a better algorithm to indicate changed pixels. (in debug window)
-
Screwed up View->Show Grid Fit... in Mono mode.
-
Werner wants to be able to see grey scale rasters while debugging truetype.
He also points out that if the instruction before the end of instructions
changes pixels, ff would leave them marked "changed" even after finishing
the instructions.
-
We were getting multiple error windows.
-
Don't allow users to add instructions to a glyph containing both a reference
and contours. Or a glyph where a reference is scaled more than 200%. (tt
doesn't allow these combinations so the references need to be copied inline)
-
Typo in remove overlap caused bad bug in feta26. Error introduced 15 Sept.
-
Further work on what makes a spline linear.
-
The utf7 output routine in sfd did not convert from utf8 properly.
-
Panov has found yet another error in simplify. Be really exuberant about
turning splines that trace out lines into lines.
-
Panov finds another bug:
-
If we change the unicode value of a glyph, then we also need to change
-
the unicode value of any references to that glyph.
-
Panov presents four more bugs:
-
If an sfd file contains an unencoded glyph, it will crash
-
Force Encoding->Original will crash if there's a bdf font missing some
characters (ie. the piecemeal display font)
-
Goto Dlg tried to free an uninit value
-
Goto Dlg contained a string initialized by latin1 rather than utf8.
-
Hmm. the changedsincelasthinted flag doesn't apply to truetype. The equivalent
thing (I guess) is not having any instructions on a glyph with splines.
-
Panov wants a way to build up arrays using easier syntax than: create array,
assign each element.
-
Sometimes we would get both an EUC-CN and a GB2312packed entry in the Encoding
menu.
-
Create a plugin for GB12345, and treat it (in sfnt tables) as GB2312.
-
Add a new scripting funtion: NearlyLines to convert almost linear splines
to linear.
-
Tweak AddExtrema so that it doesn't create Extrema points which are too close
to the endpoints.
-
Didn't terminate an array of answer strings to a question dialog.
-
Fixed a crash in stem database.
-
28-Oct-2005
-
More work on the mac install procdure.
-
Redo the install documentation on the website & in the readmes
-
Add a hack to the directory browser so that on cygwin getting a directory
listing of "/" will include the magic (fake) directory /cygdrive (which gives
access to the rest of the PC)
-
Add a new scripting funtion: NearlyLines to convert almost linear splines
to linear.
-
Tweak AddExtrema so that it doesn't create Extrema points which are too close
to the endpoints.
-
I was dumping all opentype ligatures into an ofm(tfm) file. But I should
probably only add 'liga' and 'rlig' ligatures.
-
Omega has a bug where it thinks 0 width glyphs do not exist. Which means
it thinks none of the combining accents, etc. exist. So force the width of
any zero width glyphs to be the smallest positive width.
-
When reading ttf/otf fonts, FF gave alternate substitutions (and multiple
subs?) a tag of 0.
-
Add two scripting routines to allow people to read & write strings from
and to files. One string per file.
-
The ClearTable scripting command parsed the table's tag incorrectly.
-
23-Oct-2005
-
18-Oct-2005
-
KANOU points out that I was using too strict a rule for parsing svg polygons.
-
OFM output was not working in fonts with lots of kerning combinations.
-
16-Oct-2005
-
A number of fixes for ofm files.
-
Add default 'nukt' "ligature" substitutions to appropriate Devanagari characters
-
15-Oct-2005
-
The patch to the routine determining what glyphs got output broke bitmap
only fonts.
-
Ofm files didn't contain ligatures.
-
The ofm patch broke tfm output.
-
12-Oct-2005
-
29-Sept-2005
-
Add utf8 entry points for many (ucs2) routines. Minimal ability to draw non-BMP
glyphs now with bdf fonts with encodings:
*-UnicodePlane-1 (for plane 1), *-UnicodePlane-2 (for plane 2), etc.
-
Add a menu command to add values from the private dict into the cvt table
(BlueValues, StemSnaps).
-
The Edit cvt window usually failed to draw anything in itself when it popped
up (subsequent refreshes were ok).
-
Patch from Michal Nowakowski to improve memory usage in auto instr.
-
Printing sample text was broken in fonts with no kerning classes.
-
cygwin does very weird things with shared libaries, and we didn't support
them at all.
-
FontForge did not support the depreciated usage of endchar to mean (almost)
seac in type2 charstrings. It should now.
-
os2 typo linegap was not read out of sfd files.
-
Display 'gai' files in the open dlg.
-
I got some mnemonics wrong. Fix 'em up.
-
bdftopcf will use the glyph encoded at 0 as the default glyph if there is
no explicit DEFAULT_CHAR. It seems happy with a DEFAULT_CHAR of -1 to mean
no default, so use that if we don't want glyph 0 to be the default.
-
when outputting bdf, fnt or pt3 bitmap fonts with no outline font generated,
we'd get filenames like foo-*-13.bdf. Get rid of the "-*".
-
Support point numbering of composites even when not debugging.
-
Michal Nowakowski points out that the cvt editor crashed if we changed the
length of the table.
-
Provide two new scripting functions:
-
MoveReference(xoff,yoff,[ref-name/ref-unicode]+)
-
PositionReference(x,y,[ref-name/ref-unicode]+)
These search all selected glyphs, looking for any references in those glyphs
with the given name/unicode value, and then translating the reference by
(xoff,yoff) or positioning the reference absolutely at (x,y).
-
ff failed to read horizontal metrics properly from a type2 CFF CID font.
In most cases this would be masked by the fact that ff would correct the
bad width values by reading the hmtx table. But if one had a bare CFF font,
or a 'gai' font where there is no external source of widths, ff would get
things wrong.
-
Alexej Kryukov points out that most entries in the private dict should be
scaled when we do a ScaleToEm.
-
Fix a couple of problems with cid font display that "gai" fonts expose.
-
Michal Nowakowski points out that I generated truetype instructions --- and
then forgot to attach them to the glyph. Whoops.
-
Loading extensible glyph information from a tfm file was broken by the encoding
change.
-
19-Sept-2005
-
ff did not read AAT classes (kerning classes, etc) properly. It read one
extra element which could cause problems
-
Cleanup svg output for kerning classes with no members.
-
Out of bounds array reference in OS2FigureCodePages caused a crash on the
mac.
-
When loading a type1 font we failed to set the unicode encoding on seac
references. This probably broke lots of things, it certainly broke replace
with reference.
-
Add a DefaultRoundToGrid scripting function to set the Round-to-Grid truetype
reference bit (basically set it whenever we have a reference which isn't
point matched).
-
Add support for truetype point matching in references and anchor points
-
Improve the debugging heuristic that notices when we've jumpped to a new
routine to work better with composites
-
If I attempted to debug a glyph with no instructions there was a race condition
and if the race was won one way, ff would hang.
-
We weren't numbering points in a composite. This was only obvious when we
did a View->Show Grid Fit on a composite glyph.
-
When debugging a composite glyph, ff forgot that some references are translated
(or scaled or rotated), and failed to display this.
-
FF failed to keep track of the truetype "RoundToGrid" bit which applies to
references.
-
In the Points window of truetype debugging, if the penultimate point of a
contour was interpolated, then the contour boundary was drawn in the wrong
place.
-
Use to store debugging dpi/pointsize in the charview. Werner suggests that
it be global (so different glyphs will all share the same defaults).
-
Some Unicode code blocks have moved (probably those which only in the pipeline
or some such), and some others have been added to the pipeline.
-
15-Sept-2005
-
Can't use a subroutine to refer to a translated glyph which contains flex
hints in type1 output.
-
Hide another problem with rounding errors in remove overlap.
-
Don't produce multiple warnings about the local encoding.
-
In quadratic fonts the Remove Overlap menu item is disabled, but if you use
the hotkey the command is invoked (with disasterous results).
-
Typo in point info code to determine whether a hint mask contains conflicts
(matched vertical hints against horizontal ones)
-
12-Sept-2005
-
Added a scripting command DefaultUseMyMetrics() to set the use_my_metrics
bit in old fonts.
-
11-Sept-2005
-
When ff pastes refs from one font to another it tries to figure
out the width of a glyph containing references from the width of what appears
to be the base glyph. (because if you paste Aacute from one font to another,
the size of the "A" glyph may be quite different in the new font. Using the
width of the glyph in the original font would be wrong).
There are two problems with this:
-
It didn't take forward references into account, and would use the original
width rather than the modified width of the reference.
-
It would (probably) be confused by an Alphatonos where the width of Alphatonos
is not the same as that of Alpha.
instead figure widths out after all pastes have completed, looking at the
use_my_metrics bit to get things right.
-
Handle forward references to glyphs which will be pasted into by the current
command (used to work, broken by the encoding change)
-
Various fixes for pasting references from a font which has since been closed.
-
Support the ttf "_USE_MY_METRICS" bit on composite glyphs. This entails:
-
Retaining it when reading a truetype font
-
Setting properly when generating one
-
Storing it in sfd files
-
Giving the user a way to set it with the Element->GetInfo command
-
9-Sept-2005
-
ff crashed when given a bdf font with multiple glyphs with the same name
-
Try to avoid generating bdf fonts with multiple glyphs with the same name.
This happened when a single glyph was mapped to several encodings, a concept
bdf doesn't support. Now when it looks like this will happen we rename the
glyph.
-
Uninitialized variable in dependant sub-menu (broken by encoding change)
-
Pasting a reference into a font which did not contain the referred glyph
did not give you the option of copying the original outlines any more. (broken
by the encoding change)
-
Merging fonts where glyphs had multiple encodings caused crashes.
-
I'm very old fashioned. I like having error messages on stderr. But far too
many people don't see them there. I guess they invoke fontforge directly
from X with stderr directed to some invisible console window. Well create
a little window to contain warning messages about font errors (for instance
when reading an otf font we might complain about glyphs out of bounds, etc.)
-
Add support for postscript bitmap fonts. This means:
-
Ability to parse (simple forms of) the imagemask ps operator
-
Code to detect that a type3 is a ps bitmap, and convert it into a normal
bitmap font that people can edit.
-
Bitmap output as a ps type3 font (using imagemask)
-
Fixing a bug in my output routines which worked fine for images in eps files,
but failed horribly if that same code was stuffed into a charproc and executed
on demand.
-
-
ff could not handle an encoding specified as a simple array. (Not allowed
in typ e1 spec, but obvious for a type3)
-
And ff's handling of any type3s was broken by the encoding patch.
-
If a font contained fewer than 256 glyphs, then ff failed to load a format0
cmap subtable properly.
-
4-Sept-2005
-
In fontinfo, changed the tab "TTF Values" to be "OS/2", consolidated the
Panose tab underneath it. Added many more fields, almost all of OS/2.
-
Fixed a number of uninitialized variables, at the instigation of Pavel Roskin.
-
Applied several patches from Pavel Roskin.
-
The scripting WorthOutputting command insisted on an argument, even when
it should not have.
-
Scripting SetCharCnt command has been broken since the encoding change.
Earlier Changes
Changes to PfaEdit (predecessor to
FontForge)