forked from fontforge/fontforge.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchangelog.html
More file actions
2632 lines (2632 loc) · 112 KB
/
Copy pathchangelog.html
File metadata and controls
2632 lines (2632 loc) · 112 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<HTML>
<HEAD>
<!-- Created with AOLpress/2.0 -->
<!-- AP: Created on: 27-Aug-2002 -->
<!-- AP: Last modified: 21-Feb-2011 -->
<TITLE>Change log for FontForge</TITLE>
<LINK REL="icon" href="fftype16.png">
<LINK REL="stylesheet" TYPE="text/css" HREF="/assets/css/old/FontForge.css">
</HEAD>
>
<div style="margin:0; height: 4 em; padding: 0.5em; background: red; color:yellow; text-align:center; font-size:1em; font-family: sans-serif;">
<p><a href="http://fontforge.github.io" style="padding: 0.5em; color: yellow; font-weight: bold; text-decoration: none;" onmouseover="this.style.background='black';" onmouseout="this.style.background='red';" >This is part of the old website. New website begins at fontforge.github.io</a></p>
<p><a href="https://github.com/fontforge/fontforge.github.io" style="padding: 0.5em; color: yellow; font-weight: bold; text-decoration: none;" onmouseover="this.style.background='black';" onmouseout="this.style.background='red';" >Are you a web developer? Help us migrate this page on Github</a></p>
</div>
<DIV id="in">
<H1 ALIGN=Center>
<A NAME="change-log">Changes</A> <SMALL>(Enhancements & Bug Fixes)</SMALL>
</H1>
<P>
Changes since the last release may be found by performing a "cvs log" command
on the file stamp.c.
<BLOCKQUOTE ID="lit">
<TABLE>
<TR>
<TD><B><SMALL>TEGEUS:</SMALL></B><BR>
Tell me,<BR>
What is your opinion of Progress? Does it, for example,<BR>
Exist? Is there ever progression without retrogression?<BR>
Therefore is it not true that mankind<BR>
Can more justly be said increasingly to Gress?</TD>
<TD>
</TD>
<TD VALIGN="Bottom"><P ALIGN=Right>
-- <SMALL>A Phoenix too Frequent<BR>
Christopher Fry, 1950</SMALL></TD>
</TR>
<TR>
<TD COLSPAN=3>
<HR>
</TD>
</TR>
<TR>
<TD>"The trouble is," he said, "is that things <I>never</I> get better,<BR>
they just stay the same, only more so.</TD>
<TD> </TD>
<TD VALIGN="Bottom"><P ALIGN=Right>
-- <SMALL><STRIKE>Faust</STRIKE> <FONT COLOR="Red">Eric</FONT><BR>
Terry Pratchett, 1990</SMALL></TD>
</TR>
</TABLE>
</BLOCKQUOTE>
<UL>
<LI>
31-Jul-2012
<UL>
<LI>
<B>General:</B>
<LI>
Thanks to Matthew Petroff, we have now a binary package for
MS/Windows available.
<LI>
Thanks to Jose Da Silva, Unicode utils are now partially sanitized
(which means less possible buffer overruns and memory allocation
failures) and better documented.
<LI>
FontForge now takes x-www-browser, Google Chrome and Konqueror
into account when trying to open help pages.
<LI>
Improved compatibility with UFO workflow with Robofab based apps
by preserving letter cases in *.glif names.
<LI>
Fixed some crashes on X resource loading and saving that occurred
because of bad image path or pixmap directory.
<LI>
Georg Duffner reported and helped to isolate a bug in parsing OS/2
Version in Font Info in case the string "Automatic" was not localised.
<LI>
Configure works on mac again.
<LI>
Fixed compilation with XCode 4.3 on Max OS X Lion.
<LI>
Fixed a crash for fonts with kerning entries containing negative values.
<LI>
Patch by Sourceforge user serval2412 to fix some resource leaks.
<LI>
Patch by Khaled Hosny for calculating wrong x and cap height for some fonts.
If glyphs checked don't have flat surfaces at the top, FontForge takes the
mean. But it was dividing by the wrong value.
<LI>
FontForge didn't build on some systems where /bin/sh is synonymous with dash,
yet the usual user shell is bash. Configure and libtool were thus using
different shells, that turned out to be incompatible. Luigi Scarso suggested
patching the makefiles with explicitly setting the SHELL variable.
<LI>
Path by Steve White to enable support for ASMO 708 codepage.
<LI>
<a href="http://sourceforge.net/mailarchive/forum.php?thread_name=4F37E48C.4020508%40newtypography.co.uk&forum_name=fontforge-devel">We needed to go back to old implementation of the fsType table.</a>
<LI>
Patch by Michael Terry to fix crashes for pngs having NULL for trans_alpha;
<LI>
Patches by Daniel Kahn Gillmor and Paul Flo Williams to add support for libpng 1.5.
<LI>
The names 'alefmaksurainitialarabic' and 'alefmaksuramedialarabic' in the Adobe Glyph
List disagree with Unicode. The use of these glyph names is therefore discouraged.
Patch by Steve White.
<LI>
Encoding ID should be set to 10 for fonts containing unicode characters outside of BMP.
Patch by Steve White.
<LI>
Hunh. We aren't adding libintl to the library list when we find out that we need it.
<LI>
Patch from Johan Winge to fix outputting of 24-bit BMP images.
<LI>
Patch from Maxim Iorsh to fix a crash for very long lines in UI.
Specifically, crash occurs when putting a very long list of glyphs
(~300 characters) in chaining substitution dialog.
<LI>
Patch by Pierre Hanser to fix a segfault in validation code
when there was an empty line in PS private dictionary.
<LI>
Patch from Paul Flo Williams to Fedora bug 694986.
See https://bugzilla.redhat.com/show_bug.cgi?id=694986
<LI>
Patch by Khaled Hosny to fix a crash when cancelling a warning
about glyph name or encoding already being in use.
<LI>
Patch from Matthew Skala to fix PS "Stack got too big" error.
<LI>
Matthew Skala pointed out, that featurefile.c line 94 tests the
pointer sc for being null *after* dereferencing it, thus segfaulting
if it does happen to be null.
<LI>
Patch from Steve White, to fix various issues in the Unicode Ranges panel in the Font Info dialog.
<LI>
Khaled Hosny forwarded a tweaked patch from Werner Fink of LuaTEX team,
fixing a warning on line 400 and 401 within ioescapestopped() of psread.c
<LI>
When reading a kerning class we did not check to see if we got back an erroneous coverage table.
<LI>
At some point, FF only compiled if configured for type3 fonts.
<LI>
Fixed handling PDF opacity and patterns/gradients behaviour with
respect to the current transformation matrix.
<LI>
Kerning pairs associated with a glyph weren't properly reinstantiated when
reverting that glyph from the original SFD file. This could result to crashes
(e. g. when attempting to save the font).
<LI>
When displaying a pair of kerned glyphs in a tooltip box, FF would
actually ignore the left bearing of the second glyph. If bearing was
negative (e. g. in case of a combining mark) this could even result
into a crash.
<LI>
A wrong Descender value has been written into generated afm files, if
the font lacked typical glyphs with descenders.
<LI>
The gasp table version was ignored when writing and opening SFD files.
<LI>
Fixed a bug when loading a type3 font with references.
<LI>
Patch by Alexey Kryukov to fix a crash in matrix edit controls.
<LI>
FF wasn't reading cmap AT ALL for cid keyed files.
<LI>
FF's CID menu now allows 256 cid sub-fonts - it used to be 42.
<LI>
Fixed a crash when a context chaining lookup glyph-based subtable had
no glyphs in the backtrack section.
<LI>
The routine which (re)calculated the line height of a matrix edit had
a bug which caused it to look at (random garbage) characters after the
end of a string. This often produced warnings about "bad utf8 string"
or some such.
<LI>
Fixed handling of he symetrical smoothing flag bits for gasp.
<LI>
FontForge checks at configure to see if libintl and libintl.h are on
the system. It did NOT check whether msgfmt was in the path. So if
a user has installed macports/fink but not added the appropriate bin
directory to their path the configure script would think all was well
and would create a makefile for .po files. Unfortunately the make file
would die because msgfmt would not run.
<LI>
The charview hint routines used a routine which could try to store
5 points in an array that only held 4. The resultant memory corruption
could cause crashes. Patch by Paul Flo Williams.
<LI>
Fixed a crash in Expand Stroke.
<LI>
Fixed some bugs in deletion of mark classes and mark sets in font info.
<LI>
<B>Python scripting fixes and additions:</B>
<LI>
'altuni' member of glyph object in Python API was not documented.
<LI>
Patches by Akiro Sakigawa to fix setting and changing os2_unicoderanges and os2_codepages.
<LI>
Patch by GUST Team to fix a resource leak in python scripting.
<LI>
Patch by Khaled Hosny to fix a memory corruption crash in python scripting.
<LI>
When loading an encoding from Python, one need to know the name of the
encoding in order to use it, so it makes sense for loadEncodingFile() to
return that name. Patch by Khaled Hosny.
<LI>
'fontlog' and 'comment' members of font object in Python API were not documented.
Patch by Khaled Hosny.
<LI>
Patch from Andrew Miller to make python "addLookup" function actually work.
<LI>
A patch from Khaled, fixing a memory issue in python interface.
<LI>
Assign the correct meaning to the symmetrical smoothing GASP flags in the Python interface.
<LI>
Changing the unicode value of a code point with python did not mark
the font's encoding as changed which lead to subtle errors later.
<LI>
New python command: <CODE>font.addContextualSubtable</CODE>
<LI>
Adxded a python entry to the "Change Glyph" dlg.
<LI>
<B>Opentype Features fixes and additions, mostly by Khaled Hosny:</B>
<LI>
Fixed a (probably) misplaced warning reported by Matthew Skala,
displayed on openning an OpenType file with a design size and
design range but no stylename.
<LI>
Optical size now gets actually included into fonts built.
<LI>
In contextual chaining substitution lookups the backtrack classes are
ordered in reverse way, but feature file syntax expects them to be in
natural order, as confirmed by Adobe. FF does this from now, but this
breaks any feature files that expect the old, incorrect behaviour.
<LI>
Added support for feature files containing kerning classes with value
records that can't be handled by classes. They will get converted into
kerning pairs, like with AFDKO's makeotf.
<LI>
Changed behaviour of kerning right to left characters. Now it's the user
who is responsible for specifying the kerning in the right order and for
adjusting the right values. But this makes things predictable.
<LI>
FontForge was trying to output "pos" rules for the marks themselves,
not base glyphs. It was also outputting the mark once for the base
anchor (correct) and once for the mark anchor (wrong).
<LI>
FontForge will, from now, handle new, unescaped syntax for mark lookup
tags in feature files.
<LI>
FontForge escaped 'mark' feature tag when exporting feature files.
According to the specification, escaping is only for glyph names
and CID indices.
<LI>
Ligature caret handling in feature files was broken; only first
LigatureCaret declaration worked as expected, all subsequent ones was
accumulating all previous ones.
<LI>
Sometimes GDEF definitions in feature file were being formatted wrongly.
<LI>
Fixes by Alexey Kryukov to some issues reported by Adam Twardoch:
<UL>
<LI>
In the 'size' feature the parameters were written with a locale-dependent
decimal separator, while the decimal dotis only allowed by the spec;
<LI>
FF used to generate empty definitions for standard GDEF classes if there
were no glyphs to assign to them, while they should have been omitted
according to the spec. Although the class names in GlyphClassDef should be
comma-separated, and the positions for omitted classes still should be
indicated with commas.
<LI>
Moreover, FF would put some glyphs into wrong classes due to a difference
between its internal standard class IDs and ones used in the feature file
syntax.
</UL>
<LI>
Any operation which required temporary expansion of kerning classes
(such as displaying the "Kern Pairs" dialog) could result into a complete
loss of pairwise (not class based) kerning data.
<LI>
Eric Schrijver requested that GLIF output be more similar to that of RoboFab's
to make diffing files easier.
<LI>
Patch by Khaled to fix a bug in ff's featurefile processing
of UseMarkFilteringSet.
<LI>
If a feature contained both multiple and single substitutions, then FF
would lose the single subs. Instead change the single subs to multiples.
<LI>
<B>UI fixes and additions:</B>
<LI>
Zvi Gilboa pointed out that for FontForge to be listed under "show other
applications", the <CODE>exec=</CODE> line in .desktop file needs to be
terminated by <CODE>%U</CODE>.
<LI>
Tried to improve integration with EWMH. Not guaranteed to work at all!
<LI>
Fixed handling of HV Group Box (actually GGroup) in X resource editor.
<LI>
<img src="fftype32.png" height="32" width="32" style="display:inline"></td></tr>
New application icons by Severin Meyer.
<LI>
Layers palette changes by Tom Lechner. It's now possible to manage
layers without leaving the glyph view.
<LI>
Added support for UI icons with alpha-channel. Not enabled for Mac,
because it happens to crash on some builds. This is still under
investigation.
<LI>
New GGadget and new X resources for interface styling:
<UL>
<LI>
<CODE>GVisibilityBoxOn.Image</CODE>
<LI>
<CODE>GVisibilityBoxOn.DisabledImage</CODE>
<LI>
<CODE>GVisibilityBoxOff.Image</CODE>
<LI>
<CODE>GVisibilityBoxOff.DisabledImage</CODE>
<LI>
<CODE><i>GGadget</i>.Box.BorderInnerCol</CODE>
<LI>
<CODE><i>GGadget</i>.Box.BorderOuterCol</CODE>
<LI>
<CODE>FontView.GlyphInfoColor</CODE>
<LI>
<CODE>FontView.EmptySlotFgColor</CODE>
<LI>
<CODE>FontView.HintingNeededColor</CODE>
</UL>
<LI>
Fixed styling of scrollbar border.
Also made possible a different color for thumb's bed
(using depressed background).
<LI>
Widget gradients changed.
<LI>
Palette buttons in Glyph View, point type icons in Point Info dialog,
icons for TTF debugger and file chooser are now loadable from external
files, like icons for menu items.
<LI>
Fixed <CODE>Box.ShadowOuter</CODE> and <CODE>Box.Padding</CODE> handling in resource editor.
<LI>
New and updated translations:
<UL>
<LI>
New Catalan translation, from Rafael Ferran i Peralta.
<LI>
New Ukrainian translation from Yuri Chornoivan.
<LI>
Lee Chenhwa Simplified Chinese translation.
<LI>
Wei-Lun Chao updated Traditional Chinese translation.
<LI>
Michal Nowakowski updated Polish translation.
<LI>
Updated Russian translation from Alexandre Proukodine.
<LI>
Spelling Fixes by Yuri Chornoivan, Steve White and Michal Nowakowski.
</UL>
<LI>
Make message about bad anchor point more informative.
Patch by Steve White.
<LI>
Allow user to customize frequency of autosaving (or turn off entirely).
<LI>
Patch from Khaled Hosny, to disable automatic setting "Is offset" field on
in the font metrics. This confused users.
<LI>
Patch from Khaled Hosny not to set NeedsXUIDChange if UseXUID is not set.
<LI>
The CharView->Element->Order submenu did not enable its menu items properly if an image were selected.
<LI>
If a glyph had more than one background image then selecting one and scaling it would ignore the selection and scale all images.
<LI>
It was impossible to import more than one background image due to a typo.
<LI>
When closing a gradient window, ff tended to crash.
<LI>
Patch by Alexey Kryukov to make possible selecting control points without moving them.
Later its glitch were fixed by George Williams.
<LI>
It was not possible to cut or delete bitmap references from bitmap view.
<LI>
Patch by Alexey Kryukov to center glyphs in charview by default
(but not yet vertically).
<LI>
Patch by Alexey Kryukov to tweak rules on when to refit charview contents
within window after pasting new content there.
<LI>
A few tweaks by Alexey Kryukov to metrics view.
<UL>
<LI>
If the displayed kerning value comes from a kerning file, assume this pair should
take a precedence over any possible kern class entries and don't bother user asking
what exactly (s)he wants to modify;
<LI>
If user sets a kerning offset to zero and this offset is defined by a kerning pair,
then clean up that kerning pair automatically;
<LI>
The kerning subtable selection combo box was practically useless as its value was
reset each time a glyph was selected. So first check if the selected subtable is
relevant, and, if so, don't change it.
</UL>
<LI>
Patch by Alexey Kryukov to make it possible again to reorder classes and rules in the
contextual substitutions dialog. Also the dialog was initialized with zero classes,
but, as soon as the first class was created, FF was starting to treat it as an
"Everything else" class, no matter how it was defined by user. So make sure this
magick class is always present to avoid any confusion.
<LI>
FF will remember the last font(s) open (at the last quit) and reopen them
on a start-up with no named fonts on the command line.
Starting up with the flag --open will avoid this code.
<LI>
On glyph rename, all places the name is referenced (substitutions,
etc.) are supposed to be updated. But glyph and coverage table
contextual (chaining) substitutions were not being renamed.
<LI>
In the new context chain dlg, simple glyph page had a bug which failed
to remove the parenthesised unicode character after a glyph name (and
complained about it).
<LI>
Change the context chaining dialog. I hope it will be easier to use.
Unfortunately there are lookups which can't be expressed in the new format
so retain the old format as a fall-back. (Adobe's feature files don't
support these exceptions either, so I doubt anyone actually uses them).
<LI>
The lookup panes of font info didn't refresh when someone changed the name
(Edit metadata) of a lookup or subtable.
<LI>
It used to be that long menus which didn't fit on the screen had up/down
arrows at the top and bottom. But for very long menus scrolling using this
method was slow. So this code puts in a scrollbar instead.
<LI>
Changed the Size pane of Font Info to use a matrix edit for font style names.
<LI>
People didn't like the way Glyph Info behaved (They wanted the "Done" button
to do a "Cancel". So make it so.
</UL>
<LI>
21-Feb-2011
<UL>
<LI>
Did a lot of work to improve the accuracy in remove overlap. Improved accuracy
means that it is less likely to do the wrong thing. Problems happen when
there are points or intersections very close to each other. (So quadratic
glyphs are more likely to have problems than cubics simply because they have
more points, on average).
<LI>
Fix various error messages.
<LI>
Remove some obsolete documentation.
<LI>
Technical fixes to stroking code.
<LI>
Add a miterlimit to stroking code.
<LI>
FontForge was using the wrong MIME type for svg files. W3C has changed it
and it's now "image/svg+xml" not "image/svg-xml" or "image/svg".
<LI>
Since Inkscape images tend to be at unexpected y positions, force the view
to rescale/recenter itself if the result after a paste/import is outside
the current window. (Inkscape tends to put things at the top of a page, but
the origin is at the bottom, and FF looks at the origin.
<LI>
A line joint of 180 degrees (which shouldn't have happened in stroking, but
did) caused an infinite loop.
<LI>
Typo in add extrema code (again).
<LI>
Patch from Khaled Hosny: sets correct version of OS/2 tf table.
<LI>
Patch from Khaled Hosny: instead of dumping all OtfFeatName's into a single
line, dump each on a line of its own, this make VCS diffs more readable.
<LI>
Commas in the list of bitmap strikes could be recognized as a decimal separators
when generating fonts with bitmap strikes and this caused broken fonts to
be generated.
<LI>
In various places FF was supposed to temporary set LC_NUMERIC to `C', but
the original locale was actually never restored.
<LI>
Add a python reverseDirection() method to Layer.
<LI>
Make the head_optimized_for_cleartype flag accessible via Python interface.
<LI>
Patch by Khaled Hosny to allow setting default font file base name from python.
<LI>
Patch by Khaled Hosny: adds <font>.texparameters member to access TeX
font parameters from Python, readonly for now. The returned values can be
different from what is present in FF UI due to different rounding methods.
<LI>
Patch from Khaled Hosny: python's addAnchorPoint() function does now check
if a similar anchor point exists or not, and behaves accordingly.
<LI>
When we open an sfd file it can contain flags asking us to open charviews
for some glyphs. But on the mac, if we open more than one charview X11 (usually)
crashes. So, on the mac, put in a hook that only opens one.
<LI>
valgrind found a place where I was looking at freed memory.
<LI>
In the metrics view list index was not properly updated when user was manually
selecting an item from the word list. So wromg items were selected if (s)he
then used up/down arrow keys to navigate the list.
<LI>
Matthias Kilian spotted a buffer overflow in svg processing.
<LI>
The fix for LastResort.ttf had an undesired effect: each time an sfd file
was opened all AltUni entries were duplicated.
<LI>
Fixed validation crash for references to empty glyphs (Fedora bug 536920);
patch by Paul Flo Williams
<LI>
Patch by Paul Flo Williams to fix a crash when resizing toolbox while editing
bitmap glyphs.
<LI>
Try to get compilation working with multiple versions of libpng on the system.
<LI>
Khaled Hosny found that deleting the last anchor in a glyph causes a crash.
<LI>
Khaled Hosny fixed a crash in multiline text editing widget.
<LI>
Patch by Paul Flo Williams to fix a crash when attempting to edit glyphs
in Unicode Plane 16.
<LI>
Patch by Werner Lemberg to make FF compile with Python 2.7.
<LI>
Patch by Khaled Hosny to prevent crash when adding certain lookup types.
<LI>
If one try to compile with -Wall -Wextra, lots of warnings show up. The first
to fix are nested comments. As a result, a value that got, commented out
in gxdrawtxt.c, probably by accident, is now active.
<LI>
Notice from Andrey Panov: FF did not compile with gcc 4.4.4
<LI>
Khaled Hosny made gtk stub compile again.
<LI>
Some typos and new comments in autoinstr code.
<LI>
Khaled Hosny provided an option in preferences/edit to turn off automatic
openning of autokern window for any new horizontal kerning subtable.
<LI>
Patch by Khaled Hosny to fix wrong type conversion when assigning GASP values
from python script. Spotted by Adam Twardoch.
<LI>
Make ligature carets accessible from python scripts.
<LI>
Khaled Hosny noticed that deleting anchors from Anchor Info dialog didn't
mark glyphs affected as changed.
<LI>
Patch by Khaled Hosny, who noticed that OpenType glyph positioning is applied
from left to right even for right to left scripts. As he writes:
<BLOCKQUOTE>
'This patch fixes the kerning pairs dialog to render kerning as close to
what OpenType engines does, also makes sure FF activates by default and adjusts
the correct fields. There are other places in the code that need to be checked
too, but I think the code affected by this patch is self contained.'
</BLOCKQUOTE>
<LI>
Fixed a crash when FontForge was given NULL glyph name in python script.
<LI>
Fixed misinterpretation of '+-' in UTF-7 strings read from sfd files. Spotted
by Paul Flo Williams.
<LI>
Fixed misinterpretation of '//' at end of lines read from sfd files. Spotted
by Paul Flo Williams.
<LI>
The statemachine table uses a matrix gadget, but some of the code was still
expecting a list gadget, causing a crash. The patch, by Keith Stribley, also
fixes a couple of typos and round tripping of the glyphnames
<LI>
Patch by Keith Stribley, to fix crashing lookup metadata that don't have
scripts specified - he points that AAT doesn't need them.
<LI>
Patch by Keith Stribley, to fix corrupting of single substitution lookups
used in the state table after generating are corrupted.
<LI>
Patch by Keith Stribley, to fix export of Mac features, though it may not
cover every case.
<LI>
Patch by Khaled Hosny, to update Unicode support to Unicode 6.0.0
<LI>
One point in code forgot to check if unicode number is in range before testing
for alternatives.
<LI>
Removed two infinite loops in overlap code. Turned out to be a floating point
accurracy issue.
<LI>
Zoom by mouse scroll scales around mouse pointer now.
<LI>
Ctrl+A in background layer (in charview window) picked up anchor points from
foreground layers, too.
<LI>
Fontforge forgot to categorize points after importing a svg font.
<LI>
Patch by Philipp Stephani, to fix wrong interpretation of most top accent
data for newer versions of Cambria Math.
<LI>
Patch by Louis Simard: fixes multiple stack based buffer overflows in BDF
processing routine. Ref: https://bugzilla.redhat.com/show_bug.cgi?id=659359
<LI>
Patch by Barry Schwartz to fix error in handling of glyph name ranges in
feature files, reported by Matthew Skala:
<LI>
Fixed crashes on pasting splines into guide layer in the glyph view window,
reported by Andrey Panov.
<LI>
Remove one source of rounding errors in solving cubics, clean up function
calls to match new calling conventions.
<LI>
Matthias Kilian notices that previous patch to fvimportbdf.c made unterminated
strings.
<LI>
Khaled Hosny spots a paragraph in the docs that's no longer valid.
<LI>
Cleanup the fontforge desktop file.
<LI>
Freehand tool was very broken.
<LI>
When doing remove overlap on quadratic beziers (truetype) ff converted them
to cubics and then did the ro. This introduced slight rounding errors which
gave ro canniptions. Just as easy to make remove overlap work on quadratics
too.
<LI>
See if we can improve conversion from quadratic beziers to cubic. There are
rounding errors involved in finding the "cubic" control points which mean
that the cubic term of the spline will be non-zero when it should be zero.
See if we can find better approximations to the control points, and be prepared
to force a small third order term to 0.
<LI>
"Make arc" didn't work as expected for connected points (it actually produced
a straight line).
<LI>
The previous patch for matrixedit was incomplete: although the function indicator
box was always drawn at the visible area of the control, it actually didn't
work. Moreover, the box was being duplicated multiple times during horizontal
scrolling. So this is one more attempt to make the whole GUI for editing
OT glyph classes functional again. Note that now the special handling is
applied only to the last column of a matrix edit control: if this column
contains text fields with function indicators, then those indicators are
always drawn at the top of the field by a such way that they should always
be visible.
<LI>
Daniel Dumitriu has provided Romanian translations for style names.
<LI>
Daniel Johnson sent me a print sample of Mayan in the K'iche' dialect used
in Guatemala from the prolog to the Popol Wuj.
<LI>
Expand stroke didn't work if the intial spline in a contour had a length
of 0.
<LI>
Khaled points out that if the subtable dlg for a single substitution is
[Populated] then hovering the mouse cursor over an empty cell will cause
a crash. (the thing that pops up an image of the sustitution failed here).
<LI>
Legacy scripting did not support importing pdf files.
<LI>
There used to be two preference item controling autohinting. That does not
seem a good idea, so coelesce them into one preference item.
<LI>
_strtod could munch the stack if given a long string. This caused crashes,
etc.
<LI>
Fixed a number of problems with the mm dlg:
<OL>
<LI>
of the design vector were bigger than 60 characters then ff would crash (happened
if there were more than 2 axes)
<LI>
default values for the Slant access were backwards
<LI>
Convert-Design-Vector functions were wrong for 3 & 4 axis designs.
</OL>
<LI>
The freehand dlg did not retain the previous shape of a polygonal nib. It
always used the default shape each time it was invoked.
<LI>
More problems with zero length splines in expand stroke. Biggest problem
was that the routine which was suppposed to remove them didn't (at least
in some cases).
<LI>
Add a link to the panose docs from the panose pane of fontinfo.
<LI>
Add strings and support for other latin panose families.
<LI>
Patch by Werner Lemberg to improve rasterization accuracy in TTF debugger.
<LI>
Trying to create a new kerning subtable from font info would often crash.
<LI>
Brian Zick wanted a preference item so that if one end of a spline were moved
and the other were not then the control points would be interpolated (rather
than being moved by the same amount as the adjacent end point).
<P>
Note that this will have problems if the moving end point ever ends up on
the same horizontal/vertical line as the stationary end point. Then the control
point may vanish and never reappear.
<LI>
Add a bit more info to the version string (whether compiled for doubles,
etc.)
<LI>
When modifying OT classes by inserting glyphs from a fontview-based window,
the add_char_to_name_list preference item was not respected.
<LI>
FF used to allow modifying the width (and vwidth) of a bitmap glyph only
in bitmap-only fonts. This seems to make no sense for TTF, where widths of
rasterized glyphs can be set independently for each PPEM.
<LI>
Use FT_LOAD_TARGET_MONO instead of FT_LOAD_MONOCHROME for spline rasterization
with freetype. This guarantees more accurate rendering of hinted fonts in
monochrome mode.
<LI>
If a font contains several sets of kerning classes (e. g. for different scripts),
and a particular glyph is present in more than one set, then attempting to
find a matching kerning value between this glyph and a subsequent glyph might
result in selecting the combination with the {Everything Else} class from
the first set being processed, even if there are better matches in other
sets.
<P>
Also FF would still complain that the "{Everythin Else}" string in the kern
class dialog represents a missing glyph.
<LI>
Two small corrections for metrics view:
<OL>
<LI>
Since the {Everything Else} class is now recognized by FF as a valid glyph
class, it was possible to occasionally modify a kerning value involving this
class in the metrics view. So when asking user if he is going to modify a
class-based kerning value or create a new kerning pair, inform him if one
of the glyphs from this pair has been actually matched by the {Everything
Else} class.
<LI>
Make it possible to easily deselect all glyphs in the metrics view by pressing
[Escape].
</OL>
<LI>
Pasting bitmaps from fontview didn't work.
<LI>
Allow a user to enter values for the PS private dictionary in his/her own
locale but convert them to the "C"==PostScript locale when storing them.
That is a French user could enter [3,5 20] for BlueValues, but it needs to
be converted to [3.5 20] when put in the sfd file (or PS font file).
<LI>
Change the Histogram dialog to use boxes (cosmetic change, shouldn't matter
to English speakers, dlg won't have fields overrunning other fields in French).
<LI>
Redo the "PS Private" pane of the Font Info dialog so that it uses a matrix
edit rather than the old clumsy list with editing area kludge.
<LI>
Patch by Khaled Hosny to fix crash when importing svg with linked image.
<LI>
The scripting function "FontsInFile" did not support pdf files, and always
returned an empty array when asking if they contained fonts.
<LI>
Scripting didn't let anyone pick a subfont within a pdf file. (did not support:
filename(fontname) notation for pdf).
<LI>
Update cidmap to CNS-1.6.
<LI>
My cidmap files have always been a one to one mapping of cid to unicode.
But that's not what Adobe does. Many cids get mapped to several code points
each. So I've revamped the format to support this. The new map files need
the new code (obviously) so don't download one without the other.
<LI>
An earlier patch added support for horizontal scrolling (shift trackwheel)
in the outline glyph window. This builds on that and supports it in (I hope)
all windows. Also adds support for apple's wheel which can do both horizontal
and vertical motion.
<LI>
When ff calculated the size of a kerning subtable it was off by two bytes
per glyph in the coverage table. This meant that it would sometimes make
a table that was slightly too big to be supported and not realize it. I've
fixed the bug, and put in checks so that if there's yet another problem like
this, at list it will be reported to the user.
<LI>
It is now possible to differentiate stems by width (rather than by direction)
in the "Change glyph" dialog. This approach produces better results for glyphs
like "N" or "g", and thus seems more logical even for the Latin script, where
vertical stems are normally "thick" and horizontal ones are "thin".
<P>
This patch also affects some gdraw internals, since the new layout of the
"Change glyph" dialog makes it necessary to dynamically switch the captions
of some labels, and the text strings should fit to the space initially reserved
for those labels. So it is now possible to assign a list of strings to a
label, just like if it was a list button.
<LI>
Fix some issues with hv points.
<LI>
Do some internal cleanup.
<LI>
User doesn't like that ff does a "fit to window" ever time the user resizes
the window. So... let's try not doing that.
<LI>
Someone complained that when the fontview was maximized it would make itself
one cell smaller than it should have. Well that's screen size and window
manager dependant. It did allow 10 pixels of horizontal border (not knowing
what the WM would give it). That's probably too much. And even if a tiny
bit of the window is off the screen, it probably doesn't matter much.
<LI>
When ff was started with a .ufo fontdirectory on the command line, it would
fail to open it (and produce a garbage error message). I suspect the underlying
problem would cause other problems too, but haven't found any yet.
<LI>
Barry points out that FF incorrectly loaded an opentype font with an empty
bluevalues array (FF showed it as not having a bluevalues array at all, the
two are different). (pfb files with empty arrays worked as expected).
<LI>
Correct two "bugs" in UFO output. I believe that I was following the spec
in both cases, but since the reference implimentation does not follow the
spec I shall do what it does instead.
<OL>
<LI>
The spec gives a complex algorithm for converting a glyph name to a filename.
The proper behavior appears to be "add an underscore immediately after every
capital letter" and leave it at that.
<LI>
The spec says for OS2 fsType we should output bit numbers. It doesn't mean
the numbers of the bits (0..15) but rather the values (0..1).
</OL>
<LI>
Retain the UFO ascender and descender fields.
<LI>
Werner found a place where apple kerning output didn't work if glyphs which
weren't being output had kerning pairs associated with them.
<LI>
Richard Gitschlag and Khaled complain that the Glyph Info dlg says "Done"
rather than "Cancel".
<P>
There is a reason for this. The button does not do a cancel. It only cancels
changes to the current glyph, but the dlg can be applied to several glyphs
one after another, and any changes made to previous glyphs are committed
when the user changes glyphs. So the "Done" button only cancels the current
glyph.
<P>
However, I can change it so that it says "Cancel" until the user changes
glyphs. And in most cases the user is only interested in one glyph so this
will solve most of the problem...
<LI>
Richard Gitshlag suggests that the buttons in the "non-integral coordinates"
question of validation are confusing and suggests they be relabeled.
<LI>
More fixes needed where *printf expects a double and gets a long double if
--enabel-longdouble.
<LI>
According to the spec there are two different types of GPOS 'size' feature.
One specifies a design size and nothing else, the other specifies a design
size, a design range a style name and a magic number used to associate all
fonts in the same family with the same weight and style but with different
design sizes.
<P>
Fontforge was not very good about warning the user when s/he created something
which had some but not all of these attributes. (ie. a design range but no
style name). So add some error messages to the fontinfo dlg which makes these
checks.
<P>
FF would also not read in a 'size' feature unless it were in one of these
formats. So if the user created a 'size' feature with a design size, and
a design range but no style name, then FF would not complain, would happily
output it, but would not read it back in again. So be a little more lenient
in what we read in.
<LI>
Sort human-readable stylistic set names (first by feature tag, then by
language) both in the FontInfo dialog and in SFD output.
</UL>
<LI>
13-Feb-2011
<UL>
<LI>
Switched from cvs to git.
</UL>
<LI>
29-Apr-2010
<UL>
<LI>
A new algorithm for stroking splines. Allows the user to specify arbetrary
convex polygons as pens as well as more traditional circles (ellipses) and
slanted rectangles (calligraphic pens). (It should also produce better results
and each resultant contour will have no self-intersections)
<P>
Extended the python interface so you can specify a polygon pen.
<LI>
Add support for the
<A href="http://people.mozilla.com/~jkew/woff/woff-2009-09-16.html">Web Open
Font Format</A> (woff) which is basically just an sfnt with its tables compressed
and some extra metadata. New pane in Font Info dlg, and python support for
that info.
<LI>
Redo Auto Kerning. Add support for automagically generating kerning classes
and auto kerning those classes. Rework most of the kerning related dialogs.
Provide python interfaces to all this.
<LI>
Compile with libpng1.4.
<LI>
Add two python methods:
<UL>
<LI>
contour.similar
<LI>
layer.similar
</UL>
<P>
which allow you to compare two contours (or layers) and specify an error
bound on how far they may diverge.
<LI>
Khaled would like access to the math constant table from python. Add a set
of fields<BR>
font.math.<math-constant-name> to the font, and a set of fields to
the glyph for math kerning, variants and composition.
<LI>
If the method of approximating a cubic spline by subdivision fails, then
relax the precision requirements for a match, and try again.
<LI>
Add support for the "style" attribute from svg 1.2.
<LI>
python glyph.ImportOutlines would crash if it were not given a flags argument.
<LI>
Barry reports that the metrics view crashes for him because things in the
pairwise kerning subtable pulldown list are sometimes garbage. Mmm. This
can happen if the user has a metrics view open and then uses font info to
delete a kerning subtable (or lookup). (And presses [OK] in fontinfo).
<LI>
Suppress warnings about 'showpage' operator when importing PS files.
<LI>
I have been trying for years to figure out how to apply least-squares to
this problem. I kept having 4 equations and 2 unknowns. An over specified
system with no solutions. I realized last night that I was looking at the
problem wrong (of course). Instead of seperating it into x and y components
and minimizing errors in each, I should have been minimizing the sum of the
x and y errors. Simple. Worked first try. Makes stroking about 10-15 times
faster.
<LI>
When doing square pens or polygons then long bendy splines will be broken
up roughly every 90 degrees (every time we switch verteces, actually). That
turns out to be a good thing (makes it easier to approximate the curve).
It doesn't happen automagically for circle pens, so add a little bit of code
that detects 90 degree slope transitions and inserts a point there. Results
are more accurate now.
<LI>
The various dialogs involving the fontview did not resize properly when the
user changed the display size.
<LI>
FF failed to put a trailing NUL on some strings for glyph classes resulting
in strange displays (and complaints from pango about bad utf8 strings).
<LI>
Patch by François Charette to allow UTF8 to be spelled as "utf8" in
locales.
<LI>
Some users don't like having the character representation of a glyph name
showing up in lists of glyph names, so add a preference item: Prefs->Font
Info->AddCharToNameList to let them turn that off.
<LI>
If you have freetype rasterizing in the metrics view, and if you are working
on a cubic layer, nd if you are editing a glyph in a char view and looking
at it in the metrics view, and if you make a change to the glyph -- then
Undo doesn't do what you expect. Instead the glyph gets autohinted (by default)
before a font is generated for freetype, and a hint undo gets added to the
undo list. Undo undoes the hint change (which the user probably isn't aware
of) and leaves his/her changes untouched.
<LI>
Andrew Robbins points out that when generating an svg font the unicode-range
attribute should look like U+0020-0E4A rather than U+0020-U+0E4A (no second
U+).
<LI>
d binderman points out a missing closedir.<BR>
Also d binderman points out that I was missing an fclose in archive processing.
<LI>
FontForge failed to handle archives with double extensions (like ".tar.bz2").
<LI>
Typo in code for parsing extenders in tfm file.
<LI>
The python operators which tested if two contours were equivalent would crash
when called.
<LI>
Add a "dup()" member to Points, Layers and Contours to produce a deep copy
of the object.
<LI>
The default __iter__ for a selection type (in python) didn't work. It was
supposed to return all the selected encoding slots (that is, numbers) instead
it returned the empty set (when I tested it, actually it's return would be
random depending on an uninitialized variable).
<LI>
Some seemingly valid bdf fonts were rejected. Thanks to Andrey V. Panov for
providing a sample.
<LI>
Patch from Alan Coopersmith to fix "showttf -verbose filename" behavior.
<LI>
Khaled Hosny spots duplicate "Descent" fields written to sfd files.
<LI>
When generating a cursive attachment anchor lookup fontforge did two passes
through the glyph list. The first did everything needed. And the second thought
it was handling marks (rather than cursives) and produced garbage.
<LI>
The clockwise check sometimes gave up when it should not have.
<LI>
When generating a feature file for a mark to mark lookup fontforge could
generate gibberish.
<LI>
Three bugs in reading feature files:
<OL>
<LI>