PageRenderTime 173ms CodeModel.GetById 121ms app.highlight 17ms RepoModel.GetById 2ms app.codeStats 1ms

/htdocs/pfaeditchangelog.html

https://bitbucket.org/sortsmill/sortsmill-tools
HTML | 8857 lines | 6443 code | 2409 blank | 5 comment | 0 complexity | 64a6545fda36b82e0d463b00ac9716e1 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   2    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   3
   4<html xmlns="http://www.w3.org/1999/xhtml">
   5<head>
   6  <meta name="generator" content=
   7  "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org" />
   8  <!-- Created with AOLpress/2.0 -->
   9  <!-- AP: Created on: 16-Sep-2001 -->
  10  <!-- AP: Last modified: 22-Aug-2006 -->
  11
  12  <title>Changes to pfaedit (predecessor to fontforge)</title>
  13  <link rel="icon" href="fftype16.png" />
  14  <link rel="stylesheet" type="text/css" href="FontForge.css" />
  15  <style type="text/css">
  16/*<![CDATA[*/
  17  p.c4 {text-align: center}
  18  td.c3 {background-color: #FFFF00}
  19  span.c2 {color: red; font-weight: bold}
  20  span.c1 {color: red}
  21  /*]]>*/
  22  </style>
  23</head>
  24
  25<body>
  26  <div id="in">
  27    <a href="changelog.html">Current fontforge changes</a><br />
  28    <a href="oldchangelog.html">Older fontforge changes</a>
  29
  30    <ul>
  31      <li>1-Mar-2004
  32
  33        <ul>
  34          <li>The Check directions option of Find Problems caused
  35          multilayer mode to crash.</li>
  36
  37          <li>Expand stroke would produce counter-clockwise paths
  38          when given an open contour and asked to fill it with a
  39          circular (or elliptical) pen</li>
  40
  41          <li>Try to do a better job of guessing the correct
  42          direction of a path in an eps file (or a type3 or svg
  43          font)</li>
  44
  45          <li>FontForge would crash when editing in the grid
  46          layer</li>
  47
  48          <li>When the control key is down, make the scroll wheel
  49          do a magnify/minify.</li>
  50
  51          <li>Various cosmetic changes to find problems
  52
  53            <ol>
  54              <li>Specify that "nearness" is measured in
  55              em-units</li>
  56
  57              <li>change "refs deeper than" to "refs nested deeper
  58              than"</li>
  59
  60              <li>make check dir be on by default</li>
  61            </ol>
  62          </li>
  63
  64          <li>Put in more comments about fontforge. We now have a
  65          domain under <a href=
  66          "http://fontforge.sf.net/">fontforge</a>, future releases
  67          will be found there.</li>
  68        </ul>
  69      </li>
  70
  71      <li>29-Feb-2004
  72
  73        <ul>
  74          <li>FontForge could crash if given a bad 'cmap'
  75          subtable</li>
  76
  77          <li>Clean up generation of OS/2 a bit</li>
  78
  79          <li>Pass motion events to windows even when a dlg is
  80          active (so that the mouse location will be shown in an
  81          outline window when the Point info dlg is active).</li>
  82
  83          <li>Put in a comment about changing to FontForge in the
  84          copyright notice the program prints at start up.</li>
  85
  86          <li>The "preflight" script on the mac had problems if the
  87          program had never been installed before</li>
  88        </ul>
  89      </li>
  90
  91      <li>27-Feb-2004
  92
  93        <ul>
  94          <li>Redid the way menus respond to arrow keys</li>
  95
  96          <li>a multilayer enabled FontForge would crash when
  97          editing a normal font.</li>
  98        </ul>
  99      </li>
 100
 101      <li>24-Feb-2004
 102
 103        <ul>
 104          <li>Remove the AddHint command and replace it with
 105          AddHHint and AddVHint.</li>
 106
 107          <li>FontForge would crash when generating a mac family
 108          with NFNT bitmaps.</li>
 109
 110          <li>Added support of exporting a character into PDF
 111          format.</li>
 112
 113          <li>Oh dear, I was figuring out hintmasks in the wrong
 114          direction (because PS splines get reversed before output,
 115          so I now reverse them during the hintmask calculation
 116          too).</li>
 117
 118          <li>At Werner's suggestion, added code to show what hints
 119          are currently active at a point.</li>
 120
 121          <li>At Werner's suggestion added code to show what points
 122          are affected by a hintmask</li>
 123
 124          <li>Added support for real editing of type3 (and svg)
 125          fonts. Support for editing stroked paths, different fill
 126          colors, multiple stroke/fill operations, etc. Because
 127          this involves a lot of extra overhead it is wrong for
 128          people who want to edit CJK fonts, so this mode is off by
 129          default. It may be turned on by
 130
 131            <blockquote>
 132              <pre>
 133$ configure --with-multilayer
 134</pre>
 135            </blockquote>
 136          </li>
 137
 138          <li>FontForge failed to interpret h/vstem3 commands
 139          properly when building a hintmask (when reading a type1
 140          font with hint substitution)</li>
 141        </ul>
 142      </li>
 143
 144      <li>11-Feb-2004
 145
 146        <ul>
 147          <li>FontForge would crash when saving a non-multi master
 148          font.</li>
 149
 150          <li>Adding new scripting commands ClearCharCounterMasks,
 151          SetCharCounterMask</li>
 152        </ul>
 153      </li>
 154
 155      <li>10-Feb-2004
 156
 157        <ul>
 158          <li>FontForge could produce bad tfm files.</li>
 159
 160          <li>Added CheckForAnchorClass scripting command</li>
 161
 162          <li>Added SetFontHasVerticalMetrics scripting
 163          command.</li>
 164
 165          <li>FontForge would crash if asked to generate a
 166          contextual lookup which refered to a lookup which only
 167          was activated by a character(s) which was not worth
 168          outputting.</li>
 169
 170          <li>FontForge did the wrong thing when evaluating the
 171          PostScript "index" command (it returned the wrong value
 172          from the stack (stack index off by one))</li>
 173
 174          <li>Added support for the PostScript "for" loop.</li>
 175
 176          <li>I have created a simple (1 axis) Multiple Master
 177          Type1 font with FontForge. It works with both ghostview
 178          and freetype.</li>
 179
 180          <li>FontForge would crash when generating a ttf file from
 181          an sfd file which contain an invalid script/lang index.
 182          Put in code to warn user about this, and in some cases to
 183          correct it.</li>
 184
 185          <li>FontForge had problems reading sfd files in the old
 186          point count format, this meant we still got bad point
 187          count errors.</li>
 188
 189          <li>FontForge wrote bad sfd files if there were
 190          countermasks (all the contours of the glyph would be
 191          lost)</li>
 192
 193          <li>I finally figured out why FontForge kept crashing
 194          when palettes were docked and an outline view was
 195          closed.</li>
 196
 197          <li>Fixed various crashes in Interpolate fonts</li>
 198
 199          <li>FontForge had problems with using subroutines to
 200          express references in PostScript (introduced 30-Jan)</li>
 201
 202          <li>Added a new scripting commands AddHint and
 203          ReplaceCharCounterMasks.</li>
 204        </ul>
 205      </li>
 206
 207      <li>4-Feb-2004
 208
 209        <ul>
 210          <li>Make it illegal to select both "Condense" and
 211          "Extend" in the mac style.</li>
 212        </ul>
 213      </li>
 214
 215      <li>3-Feb-2004
 216
 217        <ul>
 218          <li>Point Info dlg crashed on the mac</li>
 219
 220          <li>Add UI control over Mac Style through the Font Info
 221          dlg</li>
 222
 223          <li>more prep work for mm fonts</li>
 224        </ul>
 225      </li>
 226
 227      <li>2-Feb-2004
 228
 229        <ul>
 230          <li>Generating a postscript font from a database with
 231          quadratic splines didn't work</li>
 232
 233          <li>FontForge crashed on a font with two /CharStrings
 234          entries</li>
 235
 236          <li>Small tweak to menubar behavior given left/right
 237          arrow (for Werner)</li>
 238
 239          <li>Composite glyphs created with seac (type1) had the
 240          wrong transformation for the accent.</li>
 241
 242          <li>more prep work for mm fonts</li>
 243
 244          <li>Still have problems with ttf point counts</li>
 245
 246          <li>If a user loaded a ttf file and made it monospace and
 247          then generated it as ttf, all glyphs except the .notdef
 248          had an advance width of 0</li>
 249        </ul>
 250      </li>
 251
 252      <li>1-Feb-2004
 253
 254        <ul>
 255          <li>sfd reader had a bug. Went into an infinite loop if a
 256          hintmask contained any of the characters [a-fA-F].</li>
 257        </ul>
 258      </li>
 259
 260      <li>31-Jan-2004
 261
 262        <ul>
 263          <li>In Type2 output, when putting a glyph into a
 264          subroutine, if that glyph had no conflicts but had a
 265          hintmask fontforge produced a bad font (which crashed
 266          FontForge when it tried to read it in).</li>
 267
 268          <li>configure script still wasn't working on solaris (or
 269          mac with libiconv probably)</li>
 270        </ul>
 271      </li>
 272
 273      <li>30-Jan-2004
 274
 275        <ul>
 276          <li>The kerning state machine addition broke the indic
 277          state machine dialog</li>
 278
 279          <li>The mac docs claim that the 'feat' table should be
 280          sorted by feature id. But if you do this WorldText can't
 281          find features. All Apple fonts seem to be sorted by the
 282          order the features are used in the 'morx' table's chains.
 283          WorldText works if you do this.</li>
 284
 285          <li>Yannis proposed several extensions to the State
 286          Machine editor, most notably the ability to move the edit
 287          dialog with Up/Down/Left/Right buttons.</li>
 288
 289          <li>I had the feature settings for Linguistic
 290          Rearrangement and Vertical Subs. reversed.</li>
 291
 292          <li>In some cases I wasn't outputting anything to turn a
 293          feature off.</li>
 294
 295          <li>Fixed many problems with kerning state machine
 296          dlg</li>
 297
 298          <li>Fixed several problems with insertion state
 299          machines</li>
 300
 301          <li>Fixed several problems with reading in state
 302          machines.</li>
 303
 304          <li>Added SetMacStyle() to give the user control over how
 305          mac families are built.</li>
 306
 307          <li>Added a fflush after doing Print()s in scripting</li>
 308
 309          <li>FontForge would crash when given an extremely long
 310          real number in a cff dictionary (in this case the font
 311          itself was in error)</li>
 312
 313          <li>FontForge did not copy a bitmap character's width
 314          when it copied the bitmap.</li>
 315
 316          <li>Char Info didn't handle pairwise positioning
 317          properly.</li>
 318
 319          <li>Some more pangrams from <a href=
 320          "http://shair.net/misc/txt/pangram.en">http://shair.net/misc/txt/pangram.en</a>
 321          (link provided by David Shaal)</li>
 322
 323          <li>My old approach to hint substitution caused problems
 324          with multiple master fonts. So now I keep track of which
 325          points are substitution points and what the hint masks
 326          are at those points. There is a new command which will
 327          automatically figure out these points, and the user may
 328          control them directly through Point Info (Element-&gt;Get
 329          Info). At the same time I figured I might as well do the
 330          same thing for counter masks, so FontForge will read
 331          counter masks in from otf file (I did not implement this
 332          for type1s), there is a new command to try and make a
 333          guess as to what they should be, and the user may control
 334          them directly through Element-&gt;Char Info. (new
 335          scripting commands, SubstitutionPoints() and
 336          AutoCounter() do the obvious).</li>
 337
 338          <li>Added a Hints-&gt;Don't AutoHint command to mark a
 339          character as having hints the user likes which should not
 340          be modified until the user explicitly calls AutoHint().
 341          (and a matching scripting command).</li>
 342
 343          <li>Added ability to control whether a PostScript font
 344          (type1&amp;type2) is output with rounding.</li>
 345
 346          <li>FontForge could generate a bad 'post' table for
 347          bitmap only fonts.</li>
 348
 349          <li>FontForge didn't allow you to create two pairwise
 350          positioning items with the same tag.</li>
 351
 352          <li>Hungarian names for mac features and for some
 353          standard names like "Bold", etc. provided by Laszlo
 354          Karoly.</li>
 355
 356          <li>Pierre HANSER noticed that if FontForge mapped a
 357          single glyph to two encodings then bitmap generation
 358          through freetype got confused.</li>
 359
 360          <li>If a font contained a non-.notdef character at
 361          encoding 0, then generating an opentype font from it had
 362          a fair chance of crashing.</li>
 363
 364          <li>Added a couple of new select menu items:
 365          Select-&gt;Contours, Select-&gt;First Point, Next
 366          Contour</li>
 367
 368          <li>Added a new sub-menu to allow ordering contours
 369          within a glyph. This is almost totally useless (the final
 370          look of the character should not be affected by the order
 371          in which the contours are drawn), but for multiple master
 372          fonts, the contour list must have the same ordering in
 373          corresponding glyphs.</li>
 374        </ul>
 375      </li>
 376
 377      <li>11-Jan-2004
 378
 379        <ul>
 380          <li>A patch for reading broken mac tables got lost. I've
 381          reinstated it.</li>
 382        </ul>
 383      </li>
 384
 385      <li>10-Jan-2004
 386
 387        <ul>
 388          <li>FontForge would crash when asked to use the truetype
 389          debugger on fpgm</li>
 390
 391          <li>FontForge always coloured the background of debugger
 392          windows grey.</li>
 393
 394          <li>The Points window did not show any points.</li>
 395
 396          <li>Changed the Points window and the character view to
 397          show whether a point has a watch point set on it.</li>
 398
 399          <li>Display the code range ('fpgm'/'prep'/Glyph) in the
 400          character's info line when debugging.</li>
 401
 402          <li>When creating a 'fpgm'/'prep' table we created one
 403          with some garbage instructions in it.</li>
 404
 405          <li>Somehow I neglected to put in a dlg for editing the
 406          'cvt ' table. This has been rectified.</li>
 407
 408          <li>There was a bug in the postscript interpreter (the
 409          thing used for reading .eps files and type3 fonts) and
 410          transforming a point by a matrix with diagonal entries
 411          (rotation, skew, etc.) gave the wrong value.</li>
 412
 413          <li>Added code to preserve more of the PS graphic state
 414          when eps file does a gsave</li>
 415
 416          <li>Merge Fonts would crash when merging a font with
 417          references into an empty font</li>
 418
 419          <li>I wasn't providing default values for width/weight
 420          classes in the OS/2 table</li>
 421
 422          <li>The bitmap dlg could write one byte beyond the area
 423          allocated in some cases.</li>
 424
 425          <li>Changed the outline character popup menu to include
 426          an Add Anchor Point entry</li>
 427
 428          <li>The Ligature index wasn't correctly enabled in some
 429          cases.</li>
 430
 431          <li>Add little arrows near the first point of each
 432          contour (in the outline character view) showing the
 433          direction of the contour.</li>
 434
 435          <li>The mac's interpretation of the CFF spec is very
 436          picky, but correct. If a font contained no references
 437          then FontForge would generate an empty subroutine index.
 438          This is wrong. There should be no subroutine index,
 439          rather than an empty one. (Strangely, global subroutines
 440          have the reverse requirement. Stupid). Now if there are
 441          no references, then FontForge will not generate a local
 442          subroutine index.</li>
 443
 444          <li>Yannis Haralambous has corrected the French UI.</li>
 445
 446          <li>Three new scripting commands: AddAnchorClass,
 447          AddAnchorPoint, RemoveAnchorClass</li>
 448
 449          <li>Show ATT did not show glyph classes properly.</li>
 450
 451          <li>Made scripting dlg be resizable.</li>
 452
 453          <li>Save As &amp; Import dlgs looked bad in French.
 454          Various other improvements to make things look better on
 455          non-english systems.</li>
 456
 457          <li>Added the ability to set the glyph class from Char
 458          Info.</li>
 459
 460          <li>FontsInFile did not work on pfb files (nor on
 461          cff)</li>
 462
 463          <li>Opening a mac resource file with multiple FONDs from
 464          a script would crash.</li>
 465
 466          <li>In Font Info-&gt;TTF Names the languages now appear
 467          in unicode ordering no matter what the locale (used to be
 468          the langs were in alphabetical ordering for English, even
 469          if they were actually French)</li>
 470        </ul>
 471      </li>
 472
 473      <li>2-Jan-2004
 474
 475        <ul>
 476          <li>More accurate round joints in stroking.</li>
 477
 478          <li>Better approximations to splines which turn through
 479          180 degrees or more</li>
 480
 481          <li>Support for reading cff files.</li>
 482
 483          <li>Yet more problems counting ttf points</li>
 484
 485          <li>Update copyright notices.</li>
 486
 487          <li>Add code to protect FontForge against reading bad
 488          Apple lookup tables (I think the Zapfino.dfont that ships
 489          with 10.3 has two bad lookups, but perhaps I just don't
 490          understand them).</li>
 491
 492          <li>Try harder to avoid using 'DFLT' script when coming
 493          up with a default script for glyphs with no innate
 494          script.</li>
 495
 496          <li>Add a Find Problems to detect 'DFLT'</li>
 497
 498          <li>I've been generating bad Simple Positioning subtables
 499          for GPOS all along.</li>
 500
 501          <li>Be pickier about what glyph names I let the user
 502          choose.</li>
 503
 504          <li>On cygwin (perhaps elsewhere, but I was never able to
 505          find the bug elsewhere) if you invoked one command from
 506          the menu while another was still executing, then
 507          fontforge would probably crash.</li>
 508
 509          <li>Support for reading and writing bare cff files.</li>
 510
 511          <li>Build Accents crashed when asked to build accented
 512          chars for iacute, etc. in a font without dotlessi.</li>
 513        </ul>
 514      </li>
 515
 516      <li>28-Dec-2003
 517
 518        <ul>
 519          <li>RemoveATT scripting command didn't work if the third
 520          argument were "*"</li>
 521
 522          <li>FontForge's clipping in the character view left
 523          something to be desired.</li>
 524
 525          <li>Make Meta-Arrow move selected points by 10 times what
 526          Arrow would move them by.</li>
 527
 528          <li>Grabbed the feature ordering for GPOS/GSUB specified
 529          on the <a href=
 530          "http://www.microsoft.com/typography/specs/default.htm">microsoft
 531          site</a> and taught it to FontForge.</li>
 532
 533          <li>Change the Point Info dlg
 534
 535            <ul>
 536              <li>to allow the user to control the point type from
 537              there.</li>
 538
 539              <li>to enforce constraints on control points (ie. the
 540              control points of a curve point must be in line with
 541              the point itself)</li>
 542
 543              <li>by adding an alternated mode of entering data, by
 544              distance and angle (rather than just offset)</li>
 545            </ul>
 546          </li>
 547
 548          <li>Some MF fonts have glyph names with characters which
 549          aren't allowed in PostScript names</li>
 550
 551          <li>FontForge failed to set widthset when it read in
 552          glyphs from a windows FNT (FON) file. This meant that
 553          some glyphs might be ignored.</li>
 554
 555          <li>The context chaining dialog had a bad test for valid
 556          glyph names and complained about any name containing
 557          digits</li>
 558
 559          <li>The histogram dlg would crash if the mouse moved
 560          across it when the window was so wide that it could
 561          contain more stem widths than were actually in use.</li>
 562
 563          <li>Added three commands to the metrics view view menu to
 564          allow users to insert glyphs by name or encoding.</li>
 565
 566          <li>Yannis points out that afm files produced on fonts
 567          with vertical metrics did not contain "WY" values
 568          (vertical advance width), also that the vkerns in the
 569          file actually contained the values of horizontal
 570          kerns.</li>
 571
 572          <li>The 'kern' table did not contain pairwise vertical
 573          kerns (it did contain vertical kerning by class).</li>
 574
 575          <li>The View-&gt;Substitutions sub menu of the
 576          metricsview was not being cleared properly if the current
 577          glyph had no substitutions.</li>
 578
 579          <li>Yannis wants the View-&gt;Substitutions menu to have
 580          a way to return to the original glyph.</li>
 581
 582          <li>Yannis points out that the metricsview in vertical
 583          mode changed the top side bearing in an unexpected way.
 584          Also the vertical advance width did not refresh the
 585          display properly.</li>
 586
 587          <li>Thanks to David Opstad, I now have an example of a
 588          format 1 kerning table and have extended FontForge to
 589          support kerning by state machine.</li>
 590
 591          <li>The code for generating and loading otb (OpenType
 592          bitmap) fonts was broken.</li>
 593
 594          <li>And the code for generating my own weird bitmap only
 595          fonts for windows had some flaws too (different
 596          flaws).</li>
 597
 598          <li>If I typed a character into a fontview (or char view)
 599          and the font did not contain the character, fontforge
 600          would not select that slot that encoded the character,
 601          even if the character was in the encoding.</li>
 602
 603          <li>When loading a ps type3 font, make sure that the
 604          glyph name is available when parsing glyphs so we can
 605          produce reasonable error msgs. (mostly this means "Spline
 606          stroke is too big"</li>
 607
 608          <li>Only generate Spline stroke too big errors once per
 609          font.</li>
 610
 611          <li>Adam Goode tells me that the format 12 (32bit
 612          unicode) cmap was wrong, and provided a patch to fix
 613          it.</li>
 614
 615          <li>Pretty much rewrote the stroking command from
 616          scratch.</li>
 617
 618          <li>Merge fonts would crash when merging in a font
 619          containing either a ligature caret or a nested
 620          lookup.</li>
 621
 622          <li>Made FontForge cognizant of the proposed unicode
 623          dotlessj character (0237), it will now use either this or
 624          the dotlessj in adobe's private use area (depending on
 625          which is in the font)</li>
 626
 627          <li>FontForge would crash when trying to build an
 628          accented character based on inverted breve in pala.ttf
 629
 630            <ul>
 631              <li>It wrongly considered pala.ttf to be slightly
 632              italic (.0005°)</li>
 633
 634              <li>It would crash when doing this in an italic
 635              font</li>
 636            </ul>
 637            <hr />
 638          </li>
 639
 640          <li>When importing postscript (type3 fonts, eps files)
 641          counter-clockwise paths which are both stroked and filled
 642          cause problems</li>
 643
 644          <li>Changed the version stamp of otb fonts from 'OTTO' to
 645          1.0</li>
 646        </ul>
 647      </li>
 648
 649      <li>10-Dec-2003
 650
 651        <ul>
 652          <li>When there were multiple features with the same tag
 653          (different scripts with 'kern' for instance) FontForge
 654          would produce multiple copies of the same lookup instead
 655          of different lookups.</li>
 656
 657          <li>FontForge was not setting the right to left lookup
 658          flag bit properly for hebrew (and presumably arabic)
 659          kerning</li>
 660
 661          <li>Remove overlap was coalescing some splines that it
 662          should not have.</li>
 663
 664          <li>Typo in expand stroke meant that some round line
 665          joins were really weird</li>
 666        </ul>
 667      </li>
 668
 669      <li>5-Dec-2003
 670
 671        <ul>
 672          <li>When changing the ascent/descent with fontinfo or
 673          scaletoem some of the OS/2 fields did not get updated
 674          properly.</li>
 675
 676          <li>The OS/2 TypoDescent field was set positive instead
 677          of negative.</li>
 678
 679          <li>Added two scripting functions SetTTFName and
 680          GetTTFName to give scripts access to the truetype names
 681          as well as the PS ones</li>
 682
 683          <li>Patch from Kazuyuki. SetPanose didn't work when
 684          argument was an array.</li>
 685
 686          <li>New French translations from Pierre</li>
 687
 688          <li>$copyright didn't return the correct thing (Patch
 689          from Giuseppe Ghibo)</li>
 690
 691          <li>Kerning pair data for non-ASCII unicode characters
 692          did not get output properly into SVG fonts</li>
 693
 694          <li>The AddATT scripting command did not add ligatures
 695          correctly leading to problems when time came to generate
 696          a font.</li>
 697        </ul>
 698      </li>
 699
 700      <li>23-Nov-2003
 701
 702        <ul>
 703          <li>FontForge would crash if given an encoding for the
 704          locale which it didn't understand</li>
 705
 706          <li>Center/Thirds in width from the font view would
 707          change the width</li>
 708
 709          <li>There was a synchronization problem and the truetype
 710          debugger window could deadlock</li>
 711
 712          <li>FontForge failed to read a Contextual (but not
 713          Contextual chaining) Coverage lookup properly.</li>
 714        </ul>
 715      </li>
 716
 717      <li>10-Nov-2003
 718
 719        <ul>
 720          <li>FontForge was crashing when loading a bitmap font
 721          with encoded characters outside the range specified by
 722          the encoding (ie. a character 0x10000 in a unicode BMP
 723          font).</li>
 724
 725          <li>Fixes for several memory leaks provided by Kazuki
 726          Ohta</li>
 727
 728          <li>Slight improvements to the
 729          View-&gt;Combinations-&gt;Ligature dlg</li>
 730        </ul>
 731      </li>
 732
 733      <li>8-Nov-2003
 734
 735        <ul>
 736          <li>Bug introduced 6-Nov, FontForge generated a bad
 737          'loca' table when outputting a ttf outline font with
 738          bitmaps.</li>
 739
 740          <li>FontForge was getting the truetype point number wrong
 741          when reading outlines from an sfd file.</li>
 742
 743          <li>If the loca table was 2 or 4 bytes long, FontForge
 744          failed to warn about a bad glyph count.</li>
 745
 746          <li>FontForge got confused if two truetype glyphs had the
 747          same name.</li>
 748
 749          <li>When dumping out embedded ttf bitmaps, FontForge got
 750          confused by the extra glyphs (.null and return) and
 751          generated garbage.</li>
 752
 753          <li>Make View-&gt;Combinations-&gt;ligature dlg a bit
 754          better for non-latin glyphs</li>
 755        </ul>
 756      </li>
 757
 758      <li>6-Nov-2003
 759
 760        <ul>
 761          <li>The clut used for drawing anti-alias bitmaps in the
 762          metrics view was wrong.</li>
 763
 764          <li>In a bitmap only ttf file, FontForge was usually
 765          producing bad line spacing data as far as the mac was
 766          concerned.</li>
 767
 768          <li>When importing bitmaps into an empty font, we might
 769          as well change to font view to show the bitmaps rather
 770          than the empty outline data.</li>
 771
 772          <li>If glyph 0 was selected in the fontview then the
 773          File-&gt;Open Outline command was disabled.</li>
 774
 775          <li>With a user defined encoding we were again getting
 776          occasional crashes. (introduced by my work on
 777          bitmaps)</li>
 778
 779          <li>On certain glyphs, the optimizer introduced an slight
 780          error when calculating a spline's coefficients from its
 781          control point. Even though this error was on the order of
 782          7e-8 it was enough that the rasterizer produced grossly
 783          incorrect results. I have pulled the relevant routine out
 784          into its own file which is now compiled by itself without
 785          optimization.</li>
 786        </ul>
 787      </li>
 788
 789      <li>4-Nov-2003
 790
 791        <ul>
 792          <li>When FontForge removes glyphs with Font
 793          Info-&gt;Encoding-&gt;Number of characters, it will now
 794          run through the font and remove any ligatures,
 795          substitutions, etc. refering to non-existent glyph
 796          names.</li>
 797
 798          <li>Some improvements to remove overlap.</li>
 799
 800          <li>Added a warning message so that when user attempts to
 801          output a ttf file where no characters have unicode
 802          encodings, then the user at least gets warned that the
 803          result will probably not work. For fonts with fewer than
 804          256 glyphs it will offer the choice of a symbol
 805          encoding.</li>
 806
 807          <li>If a reference were copied in the outline character
 808          view and pasted into the font view, fontforge would
 809          crash.</li>
 810
 811          <li>the expand stroke patch on 29-Sept broke calligraphic
 812          and ellipse modes.</li>
 813
 814          <li>The mouse's scroll wheel did not work in the metrics
 815          view.</li>
 816
 817          <li>The metrics view resized very slowly under window
 818          managers which do continuous resizing.</li>
 819
 820          <li>Give the magnifying glass's rectangle mode a
 821          threshold so that it doesn't resize tiny rectangles which
 822          are really caused by mouse jitter.</li>
 823
 824          <li>Attempt to set a zoom size for character and bitmap
 825          windows, but modern window managers don't seem to support
 826          the old protocol, and I can't find docs on a new
 827          version.</li>
 828
 829          <li>Was not converting filenames to unicode properly for
 830          the open/generate progress dlgs.</li>
 831
 832          <li>FontForge would crash when attempting to draw a
 833          character for which in had no (X11) glyph when doing
 834          bidirectional text.</li>
 835        </ul>
 836      </li>
 837
 838      <li>29-Oct-2003
 839
 840        <ul>
 841          <li>When removing an ATT feature from a glyph using a
 842          script, FontForge would screw up memory. Leading to
 843          unpredictable results.</li>
 844        </ul>
 845      </li>
 846
 847      <li>28-Oct-2003
 848
 849        <ul>
 850          <li>FontForge would crash when converting from cubic to
 851          quadratic splines in a script</li>
 852
 853          <li>FontForge would leave a dangling pointer when
 854          converting from cubic to quadratic. This did not affect
 855          ttf generation, but would affect most other
 856          operations.</li>
 857        </ul>
 858      </li>
 859
 860      <li>27-Oct-2003
 861
 862        <ul>
 863          <li>FontForge would crash when changing the encoding of a
 864          font with a .notdef character to a user defined
 865          encoding.</li>
 866
 867          <li>If one had multiple ligatures for the same glyph with
 868          the same tag and script, FontForge would eat all but one
 869          of them.</li>
 870
 871          <li>When generating most kinds of font, of a font which
 872          had ligatures containing glyph names that were not in the
 873          font, then FontForge would often screw up memory and
 874          eventually crash.</li>
 875        </ul>
 876      </li>
 877
 878      <li>26-Oct-2003
 879
 880        <ul>
 881          <li>Simplify sometimes removed points at extrema even
 882          when it should not have</li>
 883
 884          <li>If one had a ttf font (with instructions) and merged
 885          in a postscript font and then generated a ttf font,
 886          FontForge would complain about an internal error, but go
 887          on to produce a valid font. It should no longer
 888          complain.</li>
 889
 890          <li>When generating fonts from a script, if the font were
 891          in compacted format the generated font would have a
 892          compact encoding (instead of the desired encoding).</li>
 893
 894          <li>Kanou provided a patch to speed up importing bitmap
 895          fonts.</li>
 896        </ul>
 897      </li>
 898
 899      <li>23-Oct-2003
 900
 901        <ul>
 902          <li>The change on the 20th to make custom encoding
 903          support 32bit unicode was incomplete and made custom
 904          encodings crash instead.</li>
 905
 906          <li>The File-&gt;Display dialog ignored the
 907          left-sidebearing of a glyph causing output of some fonts
 908          to look awful.</li>
 909
 910          <li>Was getting the AdobeStandardEncoding a bit wrong
 911          (after the 5-Oct change to the new unicode glyph list
 912          which does not contain "fi" nor "fl")</li>
 913
 914          <li>I used to set the "widthset" bit on .notdef
 915          characters, but there's really no point to that.</li>
 916
 917          <li>Maxim Iorsh tells me that U+fb4f should be a historic
 918          ligature.</li>
 919
 920          <li>On some displays right scrolling the Histogram dlg
 921          would leave black lines on the window.</li>
 922
 923          <li>AutoHint removed too many stems from consideration as
 924          hints on some very bold fonts</li>
 925
 926          <li>Make FontBBox of Type1 fonts be executable. Adobe
 927          says it doesn't have to be, but dvips expects it to
 928          be.</li>
 929        </ul>
 930      </li>
 931
 932      <li>20-Oct-2003
 933
 934        <ul>
 935          <li>Windows XP &amp; 2000 insist on having (what cygwin
 936          describes as) the execute bit of the file set. So
 937          FontForge now sets execute permissions on ttf, otf and
 938          pfb fonts on the cygwin platform.</li>
 939
 940          <li>If a menu was so big that it had to be positioned
 941          over the menubar (instead of above or below it), and the
 942          user clicked on the menubar to invoke it, then the mouse
 943          release would go to the new menu and invoke whatever item
 944          happened to be under the cursor. Not good.</li>
 945
 946          <li>Oops. The Effects sub-menu should have been disabled
 947          for quadratic (truetype) fonts.</li>
 948
 949          <li>Added a new configuration option --with-regular-link
 950          to disable my dlopening of libraries. I dislike this. I
 951          don't think it is anywhere near as flexible as the dlopen
 952          method. It makes it much harder to ship something that
 953          will work with freetype (detecting whether the bytecode
 954          interpreter is present must be done at link time rather
 955          than run time and that is a severe disadvantage. But I
 956          have been asked for it.</li>
 957
 958          <li>Change internal format so that custom encodings can
 959          handle 32 bit unicode.</li>
 960        </ul>
 961      </li>
 962
 963      <li>16-Oct-2003
 964
 965        <ul>
 966          <li>FontForge was still outputting a disordered name
 967          table.</li>
 968
 969          <li>The source tarball on the website included many files
 970          twice and some files that it should not have included at
 971          all. I should now be less than half the size it used to
 972          be.</li>
 973        </ul>
 974      </li>
 975
 976      <li>15-Oct-2003
 977
 978        <ul>
 979          <li>FontForge did not bother to open files in binary
 980          mode. If cygwin was configured with DOS linebreaks, then
 981          fontforge failed to generate valid font files on cygwin.
 982            <hr />
 983          </li>
 984
 985          <li>Added some more warnings to the default build list
 986          and fixed the problems they indicated.</li>
 987        </ul>
 988      </li>
 989
 990      <li>12-Oct-2003
 991
 992        <ul>
 993          <li>Several bad bugs in last night's build (name table
 994          was (usually) all screwed up, conversion from PS to TTF
 995          got incorrect Internal Error msgs)</li>
 996
 997          <li>Order tables in truetype output
 998            <hr />
 999          </li>
1000
1001          <li>My 5-Oct-2003 libpng fix broke it completely. Should
1002          now be refixed.</li>
1003        </ul>
1004      </li>
1005
1006      <li>11-Oct-2003
1007
1008        <ul>
1009          <li>Another patch from Kanou to recognize encodings
1010          better in bdf files.</li>
1011
1012          <li>Various memory fixes found by valgrind</li>
1013
1014          <li>The Element-&gt;Find Problems-&gt;ATT-&gt;Missing
1015          glyph names fixup dlg had some formatting problems and
1016          failed to skip properly.</li>
1017
1018          <li>Draw an "x" through encodings which do not map to
1019          glyphs</li>
1020
1021          <li>If the user is in a compacted encoding and asks to
1022          print a font, then revert to the uncompacted encoding for
1023          the duration of the printing.</li>
1024
1025          <li>View-&gt;Show ATT would show ligatures (and
1026          substitutions) even if some of the glyphs in the glyph
1027          list were missing.</li>
1028
1029          <li>Fix a number of bugs found by the MS Font Validator
1030
1031            <ul>
1032              <li>I misunderstood (and the spec incorrectly
1033              documented) the behavior of the maxp table</li>
1034
1035              <li>I had a typo in figuring out the OS/2 table</li>
1036            </ul>
1037          </li>
1038
1039          <li>I had one more case where I was computing the point
1040          count of a glyph incorrectly.</li>
1041
1042          <li>Make the width line snap to zero when the user drags
1043          near it.</li>
1044        </ul>
1045      </li>
1046
1047      <li>6-Oct-2003
1048
1049        <ul>
1050          <li>Give the Metrics View a vertical mode in which it
1051          does vertical kerning, etc.</li>
1052
1053          <li>Add a hack to allow FontForge to parse a weird pfb
1054          file.</li>
1055        </ul>
1056      </li>
1057
1058      <li>6-Oct-2003
1059
1060        <ul>
1061          <li>Fixed a number of bugs in the new kerning class dlg
1062          including:
1063
1064            <ul>
1065              <li>Vertical kerning classes were displayed
1066              horizontally</li>
1067
1068              <li>When adding a new class the new offsets were
1069              garbage</li>
1070            </ul>
1071          </li>
1072
1073          <li>The routine to convert a horizontal kerning class to
1074          the equivalent vertical kerning class (of the vertical
1075          variants of the glyphs in the horizontal class) didn't
1076          work.</li>
1077
1078          <li>In Back and Lookup Classes of a contextual chaining
1079          substitution by class, the [New] button was never
1080          enabled. (it was disabled if []SameAs was on, and then
1081          never enabled).</li>
1082
1083          <li>My new 94x94 encodings were actually 93x93. Patch by
1084          kanou.</li>
1085        </ul>
1086      </li>
1087
1088      <li>5-Oct-2003
1089
1090        <ul>
1091          <li>Got rid of GreekFixup and added Interpretations of
1092          encodings to FontInfo</li>
1093
1094          <li>FontForge failed to output ligature substitutions
1095          nested under a context/chain sub</li>
1096
1097          <li>If a font had more than about 5 nested ligatures,
1098          fontforge would screw up its memory and (likely)
1099          crash</li>
1100
1101          <li>Fixed various problems pertaining to adding a kerning
1102          class to an empty font</li>
1103
1104          <li>Add a runtime check for the case where the user's
1105          system has a dynamic libpng installed without libz</li>
1106
1107          <li>If a character had ligature carets then FontForge
1108          could crash when determining its script</li>
1109
1110          <li>FontForge was reading mac 'kern' format 3
1111          incorrectly.</li>
1112
1113          <li>Rewrote the Kerning class creation dialog. I hope it
1114          is clearer now.</li>
1115        </ul>
1116      </li>
1117
1118      <li>2-Oct-2003
1119
1120        <ul>
1121          <li>got rid of my strange 94x94 encodings for JIS/KSC/GB
1122          (based on the kuten array) and used instead the much more
1123          obvious encoding that everyone else uses.</li>
1124
1125          <li>BDF files were output with the wrong encoding name
1126          for JISX0208 (I was outputting "JISX208" instead--
1127          missing a "0").</li>
1128
1129          <li>Autotrace failed to read potrace output properly if
1130          there were more than one contour in a given glyph.</li>
1131
1132          <li>Upgraded psunicodenames to the current Adobe Glyph
1133          List for New Fonts.</li>
1134
1135          <li>Simplify now works for quadratic splines. If one uses
1136          the []Allow Slopes to Change checkbox then results are
1137          not good. I need a better algorithm.</li>
1138
1139          <li>If asked to generate a type0 postscript font for a
1140          font encoded with an extended 1byte encoding (ie. one
1141          that had about 300 characters) FontForge would probably
1142          crash.</li>
1143        </ul>
1144      </li>
1145
1146      <li>29-Sept-2003
1147
1148        <ul>
1149          <li>When a path was both stroked and filled (in a
1150          postscript/eps file), fontforge would ignore the
1151          stroke.</li>
1152
1153          <li>I forgot that the stroke linewidth needs to be
1154          transformed by the current transformation matrix. This
1155          meant that when a path should have been stroked by an
1156          ellipse (when reading a ps/eps file) fontforge would
1157          blithely stroke it with a circle.</li>
1158
1159          <li>Added some support for reading the /Metrics
1160          array.</li>
1161
1162          <li>If there were a sharp corner (where the "radius of
1163          curvature" of the corner was less than the radius of the
1164          pen used to stroke the path) then FontForge would
1165          generate an incorrect path.</li>
1166
1167          <li>Round line joins were not a good approximation to
1168          circular arcs.</li>
1169
1170          <li>When filling the outline character view, rounding
1171          errors caused the fill bitmap to stray from the
1172          outline.</li>
1173
1174          <li>Extend the functionality of the magnifying (or
1175          minifying) tool so that if the user drags out a rectangle
1176          with it then the view will be shifted and scaled so that
1177          rectangle fits in the window.</li>
1178
1179          <li>FontForge will no longer auto-generate hints on
1180          non-integral boundaries. In Type1 fonts such hints become
1181          meaningless and just confuse things.</li>
1182
1183          <li>FontForge will now draw a halo around points which
1184          will be part of a flex hint. See the <a href=
1185          "prefs.html#UpdateFlex">UpdateFlex</a> preference
1186          item.</li>
1187
1188          <li>FontForge now has as set of commands for manipulating
1189          typographic features in large lumps rather than one at a
1190          time.
1191
1192            <ul>
1193              <li>Copy features from one font to another</li>
1194
1195              <li>Remove certain features</li>
1196
1197              <li>Give features a new tag</li>
1198            </ul>
1199          </li>
1200
1201          <li>I have greatly rewritten the code for dealing with
1202          AAT fonts
1203
1204            <ul>
1205              <li>FontForge now supports mac feature/setting values
1206              to be used as feature tags as well as opentype 4
1207              letter tags</li>
1208
1209              <li>FontForge will now read any feature in even if it
1210              doesn't map to an opentype tag</li>
1211
1212              <li>FontForge understands the most of the state
1213              machines in the morx/mort tables (it does not
1214              understand ligature state machines, it parses these
1215              for all unconditional ligatures, but it will miss any
1216              conditional ones).</li>
1217
1218              <li>FontForge now lets you edit apple state
1219              machines</li>
1220
1221              <li>FontForge lets you specify feature/setting names
1222              in the font to override the default values specified
1223              in preferences</li>
1224            </ul>
1225          </li>
1226
1227          <li>Added support for reading Apple's format 3 kern
1228          sub-table format (another way of storing a kerning
1229          class)</li>
1230
1231          <li>Oops. SVG didn't read relative movetos properly in a
1232          path option. Patch by Kengo Ichiki.</li>
1233
1234          <li>Simplify had a bug when passed a path which consisted
1235          of a single point with a zero length spline connecting it
1236          to itself</li>
1237
1238          <li>Simplify was not greyed out properly in quadratic
1239          fonts</li>
1240
1241          <li>Some of the low-level error routines consumed massive
1242          amounts of cpu time while waiting for events</li>
1243
1244          <li>The PostScript parsing routines would sometimes think
1245          that "noaccess" was part of the value of something in the
1246          private dictionary.</li>
1247
1248          <li>Several other patches to importing images by
1249          templates from scripts. By Kengo Ichiki</li>
1250
1251          <li>Importing pcf bitmaps into the background had some
1252          problems.</li>
1253        </ul>
1254      </li>
1255
1256      <li>4-Sept-2003
1257
1258        <ul>
1259          <li>the 17-Aug addition of context/chaining broke anchor
1260          classes. Should be fixed now.</li>
1261
1262          <li>Károly László has added Hungarian translations for
1263          the style codes to Font Info-&gt;TTF Names</li>
1264
1265          <li>If a font had comments, an svg file generated from it
1266          had syntax errors.</li>
1267
1268          <li>Add support for generating multilingual strings (in
1269          'name') for the apple platform.</li>
1270
1271          <li>Add support for the packed gb2312 which mac and
1272          windows seem to use.</li>
1273
1274          <li>Make a UniqueID of -1 in Font Info mean that the font
1275          has no UniqueID.</li>
1276        </ul>
1277      </li>
1278
1279      <li>31-Aug-2003
1280
1281        <ul>
1282          <li>Add problems for maximum number of hints (96) and
1283          maximum number of subroutine nests (references) ~10.</li>
1284
1285          <li>I looked at AppleChancery again and figured out why I
1286          was having trouble parsing its 'mort' ligature tables,
1287          and put in code to make it easy to parse tables of this
1288          type.</li>
1289
1290          <li>After figuring that out, I realized there was a bug
1291          in my own table generation. Suppose we have two ligatures
1292          "f l =&gt; fl" and "s t =&gt; st", and are given "fst".
1293          Then my table would fail to find the "st" ligature. The
1294          state of 'read "f" waiting for "l"' would see that it
1295          didn't get an "l" and revert back to the initial state.
1296          It should instead have checked to see if "s" could start
1297          a ligature in its own right, and if so jump to the 'got
1298          "s" waiting for "t"' state.</li>
1299
1300          <li>The same fix needs to be done for contextual glyph
1301          substitution.</li>
1302        </ul>
1303      </li>
1304
1305      <li>29-Aug-2003
1306
1307        <ul>
1308          <li>FontForge failed to display the morx table if all it
1309          contained were simple substitutions.</li>
1310
1311          <li>FontForge generated incorrect simple substitution
1312          (AAT) tables if it found a substitution with no valid
1313          elements</li>
1314
1315          <li>New problem for find problems. Check for characters
1316          with more than 1500 points in them.</li>
1317
1318          <li>FontForge will now draw selected points in a
1319          different color (currently yellow), and draws them
1320          bolder. This makes them stand out better for Find
1321          Problems (but also makes it harder to distinguish between
1322          corner and curved points).</li>
1323
1324          <li>Redid the way FontForge handled arabic forms in AAT.
1325          Old method was cleaner but depended on behavior which is
1326          unspecified in Apple's docs.</li>
1327        </ul>
1328      </li>
1329
1330      <li>27-Aug-2003
1331
1332        <ul>
1333          <li><span class="c1"><strong><big>The preference dlg has
1334          been broken since about 12 July. Anything on the
1335          Preference-&gt;Font Info tab is probably
1336          wrong.</big></strong></span></li>
1337
1338          <li>FontForge wasn't always getting the script/lang right
1339          when filling in the fields of the New Substitution
1340          dlg.</li>
1341
1342          <li>The newly generated apple state machines for
1343          context/chaining were quite wrong. I hope I've got them
1344          right now.</li>
1345
1346          <li>The []PSNames checkbox (in Generate Font, Options
1347          dlg) did the opposite of what it was documented to do.
1348          Behavior has been changed to conform to the documentation
1349          (and expectations).</li>
1350
1351          <li>FontForge would crash when loading some sfd files
1352          from a few months ago.</li>
1353        </ul>
1354      </li>
1355
1356      <li>26-Aug-2003
1357
1358        <ul>
1359          <li>When I added metadata to svg fonts (20-Aug) I
1360          inadvertently put in two closing metadata tags. Which
1361          broke the font.</li>
1362
1363          <li>Fixed a bug conversion of context/chain coverage
1364          sub-table into a morx subtable.</li>
1365
1366          <li>Figured out in what cases I could generate a morx
1367          subtable from context/chain glyph or class format
1368          subtables.</li>
1369
1370          <li>Fixed problems reading required features from ttf
1371          files.</li>
1372
1373          <li>Updated French UI</li>
1374        </ul>
1375      </li>
1376
1377      <li>25-Aug-2003
1378
1379        <ul>
1380          <li>View-&gt;Show ATT didn't show contextual/chaining
1381          tables even if they would be put in the 'morx' table</li>
1382
1383          <li>View-&gt;Show ATT had problems showing anything in
1384          'morx'</li>
1385
1386          <li>Make it possible to edit contextual/chaining lookups
1387          that are formatted by class</li>
1388
1389          <li>parsing/generating ttf files with class format
1390          context/chaining had problems</li>
1391
1392          <li>loading a class format context/chaining lookup caused
1393          memory problems when closing the file.</li>
1394
1395          <li>FontForge would sometimes lose track of
1396          script/languages of lookups when reading from a ttf
1397          file</li>
1398
1399          <li>Added a conversion routine from glyph to class format
1400          context/chain</li>
1401
1402          <li>Kanou points out that not all encodings available in
1403          Font Info-&gt;Encoding are present in the scripting
1404          interface, and fixes that.</li>
1405        </ul>
1406      </li>
1407
1408      <li>22-Aug-2003
1409
1410        <ul>
1411          <li>Fix simplify again</li>
1412
1413          <li>Patch from Andrey V. Panov to improve bluevalues</li>
1414
1415          <li>KDE refused to make the find problems explanation
1416          window visible, so now I shan't make it invisible in the
1417          first place.</li>
1418
1419          <li>Generate mac family crashed instead (introduced
1420          2-July)</li>
1421        </ul>
1422      </li>
1423
1424      <li>20-Aug-2003
1425
1426        <ul>
1427          <li>Support for <a href=
1428          "http://potrace.sf.net/">potrace</a></li>
1429
1430          <li>Fix some bugs with simplify more</li>
1431
1432          <li>Mac build was badly configured and linked with a
1433          shared library it should not have.</li>
1434
1435          <li>When compiled with -O2 fontforge had rounding errors
1436          which resulted in a bad bezier order3=&gt;order2
1437          conversion (PS-&gt;TTF)</li>
1438
1439          <li>SetPanose sometimes didn't</li>
1440
1441          <li>Patch from KANOU to set ulUnicodeRange for version
1442          4</li>
1443        </ul>
1444      </li>
1445
1446      <li>18-Aug-2003
1447
1448        <ul>
1449          <li><span class="c1"><strong><big>FontForge did not
1450          interpret SVG relative paths properly, and did not
1451          generate correct SVG output because of
1452          this</big></strong></span>. FontForge was mistak…

Large files files are truncated, but you can click here to view the full file