TTF2PT1 -  CHANGES history

(Do not edit this file, it is generated from CHANGES.html!!!)

3.4.4 -- December 31, 2003
-------

New features:
- Improved the auto-vectoring (-OV) alrogithm.
- Allow use of any encoding table of format 4 in the ttf parser.
- Take the first available format 4 encoding table if no known
  table is found in the ttf parser.
- The ttf parser lists the available encodings if no supported
  encoding table is found. This can be used to list the encodings in
  any font by specifying a bogus explicit PID/EID, such as
  with option -l plane+pid=50,eid=50.

Bug fixes:
- Fix to build all the features on Windows MS C++, by Tomoo Amano.
- Fix for a null pointer in the encodings, bad inner loop variable.
- Unified the parsing of font name strings and improved the checks 
  against invalid characters.

3.4.3 -- December 2, 2002
-------

New features:
- scripts/forceiso got an optional argument to select the
  format of the names for glyphs without standard Latin-1 names.

Bug fixes:
- Changed the glyph names in scripts/forceiso to match those in ttf2pt1.
- Included the missing directory app/TeX.

3.4.2 -- August 30, 2002
-------

New features:
- New map for T2A_compat encoding (for Cyrillic LaTeX) by Mikhail
  Umorin.
- Scripts supporting font conversion for CJK-LaTeX, by Mike Fabian
  from SuSE.

Bug fixes:
- Explicit owner/group/permissions are used to install directories.
- In scripts/convert fixed the addition of encoding name to the font 
  name for the external encoding maps, was missing "/" at the start.
- Fixed the divergence between two copies of UniqueID.
- Fixed the recovery after defective empty contours.

3.4.1 -- June 13, 2002
-------

New features:
- Added Autotrace support for the bitmap fonts (-OZ). It's horrible.
- Added vectorization of bitmap fonts (-OV) - functionally the same thing as 
  autotrace but home-grown. Works mostly decently but still with large
  space for impprovement.
- Relaxed the conditions for warnings about long glyphs.

Bug fixes:
- Fix by Rob Kolstad for a crash in the new outline smoothing
  code (on small thin contours) and diagnostic for another crash.
- Fix by Holger Huesing for a crash on degenerate contours.
- Fix for bitmaps of zero dimensions.
- The BDF reader does not fail on redefintion of the properties.
- Fix for reading of BDF glyphs with 0 size.
- Fix for a hang when guessing the boldness of some fonts.
- Fix by Adriano Konzen for scaling coefficients in composite glyphs.

3.4.0 -- November 24, 2001
-------

New features:
- Parser for the BDF bitmap fonts.
- Vastly improved the smoothing of the outlines.
- The options are saved as a comment in the output file.
- New script other/showdf for visual comparison of the fonts.
- New option -G to select the file types to generate.
- Creation of the dvips encoding files (by Rigel).
- More glyphs in the Chinese maps (by Rigel).
- Made the assignment of ISO8859/1 glyph names to the glyphs in the
  fonts without PostScript names in them dependent on the original
  encoding: no change for the 8-bit encodings, for the Unicode encoding
  the names are assigned to the glyph with the codes 0-255 in Unicode,
  and for the other 16-bit encodings the 8859/1 names are not assigned
  at all.

Bug fixes:
- Added a check for spaces in the PostScript font name in the FreeType
  parser.
- Made "-" a valid character in the glyph names.
- Fixed handling of the Unicode names returned by FreeType, though
  not perfectly.
- Changed the build for FreeType-2.0.4.
- Fixed the handling and printing of bad glyph names.
- Fixed the bug with duplicated glyph names when more than 256 glyphs are 
  extracted from a font that has no PostScript glyph names defined.
- Added ability to map a glyph to more than one code when unisng the
  native parser (-pttf).

3.3.5 -- September 12, 2001
-------

Packaged by Sergey Babkin.

Bug fixes:
- Fixed the scaling of Ascender and Descender in the AFM file.
- Fixed the brekage of "-l adobestd".

3.3.4 -- June 4, 2001
-------

Packaged by Sergey Babkin.

New features:
- Cyrillic (full set of glyphs) language tables (by Zvezdan Petkovic).
  Now the languages "russian" and "bulgarian" are provided for compatibility
  only, use the common language "cyrillic" instead.
- More information in FONTS on using Cyrillic fonts with 
  Netscape (by Zvezdan Petkovic)
- In the Netscape print filter added removal of the clipping path command:
  otherwise Netscape tends to cut off a large piece of the rightmost column
  of the tables.
- One more script for printing from Netscape (by Zvezdan Petkovic).
- Added selection of the base TTF encoding by pid/eid in the external maps.
- Improved the recognition of substituted stems for intersecting contours.
- Improved the substituted hints to make the horizontal positioning of
  the points at the same height more uniform at small pixel sizes.
- Made the algorithm for calculation of standard stem widths more
  selective.
- Added link to the GnuWin32 project.

Bug fixes:
- TH: Print out metrics of un-encoded glyphs even without "-a" option.
- Added missing "/" in Fontmap generation in convert (by Zvezdan Petkovic).
- Removed unneccessary "\n" in messages in x2gs.
- Removed the broken overoptimisation of "0 0 rmoveto".
- Removed the useless warnings about multiple codes for a glyph.
- Changed the FreeType2 include directory in the Makefile to match the
  FreeType's default.

3.3.3 -- March 4, 2001
-------

Packaged by Sergey Babkin.

New features:
- TH: Added printing of front-end parser in the header of the font file.
- Tested build with FreeType 2.0 Release.

Bug fixes:
- Changed the installation script which on some versions of bash
  copied all files into the share directory.
- Fixed the close sequences of html2man comments in the HTML files, 
  now they should display correctly with lynx.
- Restored the ability to include un-encoded characters into the
  customised maps (those with codes over 255).
- Fixed the Unicode mapping of the Cyrillic letters "YO" and  "yo" 
  (by Yuri Shemanin).
- Fixed the spurious aborts when the conversion-by-plane function
  gets called for auto-guessing of encoding.

3.3.2 -- November 20, 2000
--------------------------

Packaged by Sergey Babkin.

New features:
- Added generation of man pages.
- Added "make install" and "make uninstall".
- Added language option "-l plane".
- In other/showg added better support of comparison files:
  - printing of the comparison file legend;
  - guessing of missing glyph names in a comparison file by code;
  - bounding boxes of all comparison files are used for page layout.
- Added ability to use external t1asm instead of compiling it in.
- Renamed the fonts installation guide from INSTALL*html to FONTS*html
  to avoid confusion with installation of ttf2pt1 itself.

Bug fixes:
- Removed erroneous extra fclose(pfa_file).
- Fixed random memory corruption that manifested with crash on Linux
  when converting fonts not containing glyph names.
- Removed from the output file the comments that confused dvips. Changed 
  other/showg to work without them.
- In other/showg added better checks for missing glyphs, now it
  gives warnings about them and the output file does not crash PostScript.

Other:
- ttf2pfa is no longer included, people interested in history 
  should look for it in the older versions. 

3.3.1 -- October 22, 2000
-------------------------

Packaged by Sergey Babkin.

New features:
- Added front-end parser based on the FreeType-2 library. See Makefile
for build instructions.
- Changed the handling of encodings to accomodate the FreeType model.
- Further cleaned up the front-end parser interface.

Bug fixes:
- Fixed a bug that caused core dump on Alpha machines.
- Fixed a bug in the outline smoothing that occasionally caused core dump.
- Cleaned up warnings from picky compilers
- Fixed more bugs in the Windows port (by Stefan Bauer).
- Fixed the RPM spec file (suggested by Brian Armstrong).

3.3.0 -- September 22, 2000
---------------------------

Packaged by Sergey Babkin.

New features:
- Converted most of the outlines' processing to floating point
arithmetic.
- Added splitting of curves crossing the quadrant boundaries (no gross 
damage is done any more to the Marvosym font and others like it).
- Added modular interface for front-end font parsers and option to control
their selection at run time.
- Grouped the outline processing control options into one to reduce the
options namespace pollution.
- Thomas moved the Chinese maps into a separate module, chinese-maps.
- Thomas added option -V to print version number. In addition, the version
number is put in the header of the font file.
- Added long option names (suggested by Thomas).
- Added support for multi-level composite glyphs.
- TH: Made <fontname> command-line argument optional; default to <ttf-file>
with suffix replaced.
- In other/showg added more ways to specify glyphs and the comparison option.

Bug fixes:
- Fixed the VC++ batch file, added batch file for Cygnus GCC on Windows.
- Removed parentheses from the Version string in AFM files because it does
not help StarOffice anyway. StarOffice 5.2 has been reported to have this
bug fixed. Added paragraph on StarOffice in FONTS.html.
- Made messages on the '?' option parameter more meaningful (by Johan Vromans).
- Changed the latin1 encoding table to include the Euro sign, Z and z with
caron (by Thomas Henlich).
- Improved the smoothing code which occasionally had problems with
joining curves. Also fixed a few minor bugs in it.

3.22 -- May 23, 2000
--------------------

Packaged by Sergey Babkin.

New features:
- Included windows support by Frank Siegert (somewhat amended)
- Added control over verbosity of warnings.
- Added arguments and initialization functions to the language
translation routines.
- Added support of planes determined by arguments to the external
maps.
- Added compact external maps format (primarily for Eastern fonts).
- Added external maps for Chinese GBK and Big5 encodings (converted
from ttf2pfb) as well as maps for other Chinese encodings by Wang Lei.
- Added the idea of buckets to speed up the search in external maps.
- Changed the grouping algorithm for substituted hints: now it creates
a bit bigger files but requires smaller hint stack when being rendered.
- Added maximal limit of hint stack depth, glyphs requiring bigger 
stack get generation of substituted hints disabled. This makes substituted 
hints safe to use, no more lost glyphs due to hint stack overflow.
- Added the font dump program other/dumpf.
- Changed the testing HTML generator other/lst.pl to use tables.
- Added debugging script other/cntstems.pl to count required hint
stack depth for the glyphs.

Bug fixes:
- Fixed printing of UID in script/trans. Changed the auto-generated UID to
be in range 4000000-4999999 which is reserved by Adobe for private use.
- Fixed handling of "cleartomark" in built-in t1asm.
- Added handling of "can't happen" case in straighten() routine
which actually happened on strange fonts and caused failure on assertion.
- Made it always include the glyph .notdef in the resulting font.
- Placed the version string in AFM file in parentheses, hopefully
that would fix the problem with StarOffice.
- Improved the smoothing code which occasionally had problems with
joining curves.

3.21 -- March 1, 2000
---------------------

Sergey Babkin: committed the changes by Petr Titera and
my bugfixes.

New features:
- New Unicode map format with glyph names, by Petr Titera.
- Option to force the Unicode encoding by Petr Titera
 (I changed it to work on any MS encoding, not only Symbol).
- Slightly tweaked the calculation of hints, should be better now.

Bug fixes:
- The unicode-sample.map with description of the map formats
 was lost in the release process, restored and enhanced.
- Renamed the table ISOLatin1Encoding to Fmt3Encoding to reflect
 the way it is used. Saved the original one for reference
 purposes. In the new table renamed "quoteright" to "quotesingle"
 as Thomas Henlich suggested (and he were right).
- In the ISOLatinEncoding table renamed the glyph "grave"
 at octal 0140 to "quoteleft", "quotesingle" at octal 047 to
 "quoteright" to conform to the standard as suggested by 
 Martin Trautner).
- Fixed bug in scripts/trans that corrupted the UniqueID record
 in the translated fonts.
- Fixed bug in interaction of substituted hints with BlueZones.
 Now the fonts with hint substitution seem to be always at least
 not worse than without it (well, when they fit in the X11
 file size limit).


3.2 -- January 15, 2000
-----------------------

Sergey Babkin: combined my changes with the changes by
Thomas Henlich. The result deserves a not-so-minor version
increase.

New features:
- Support of the external Unicode re-encoding maps
  (by Thomas).
- Support for inclusion of all the glyphs from the
  source file into the resulting file (inspired by
  Thomas but I re-implemented it to remove the limitation
  of his implementation: not more than 1024 glyphs).
- The hints substitution. It's an experimental feature
  yet and needs further work.
- Support for UniqueID and its auto-generation.
- Support for the name-based conversions from Unicode
  in general and the adobestd "language" in particular.
- Started the split of the source code into multiple
  files. This needs more work to do it in a cleaner
  way.
- Better framework for the debugging printout
  in the converter.
- Utilities to install the fonts in Netscape 
  Navigator/Communicator 4.x.
- Patches for bigger font files in the X11 rasterizer.
- Linux RPM spec-file (by Johan Vromans).
- Added the COPYRIGHT file (BSD-style, as we discussed
  on the mailing list earlier) and the CHANGES file.
- Creation of the .pfb files from the convert
  script.
- Changed the .notdef-s in the built-in
  ISOLatin1Encoding table to some valid names (by Thomas).
  Thomas also suggested replacing `quoteright' by
  `quotesingle' but this seems to be against the
  Adobe ISOLatin1 table.
- New aliases windows-1251 and cp-866 for
  the Russian encodings: those are expected by Netscape
  navigator.
- The font comparison program other/cmpf.
- The "magnifying glass" program for glyph outlines:
  other/showg.
- Other updates of the tools in the `other' subdirectory.
- Added a link to T1LIB in README.
- A few new options in convert.cfg.

Bux fixes:
- A bug in the outline smoothing code that corrupted some
  of the fonts (for example, Microsoft Verdana).
- Added explicit `cleartomark' to the end of file,
  this seems to be compatible with both old and new version
  of t1asm (suggested by Thomas).
- Added the FontEncoding statement to the AFM files
  (techincally this was not a bug because this statement
  is optional but some programs want it).
- A coredump when the converter tried to print a warning
  (rather ironically) about a weird glyph width.
- Changed the underscores in the font names to dashes (this
  has been proposed long time ago by Johan Vromans).
- No more glyph names of font names staring with a digit.
- The names of the fonts in font and AFM files are now the
  same as in the generated Ghostscript Fontmap file.
  Warning: the names in Fontmap have been
  changed.
- The forceiso script does not corrupt the character
  and kerning pairs counts any more, and is optional at all.
- Fix for a loop going to 254 instead of 255 (by Thomas).
- Added ':' in the font header (by Thomas).
- A coredump when wrong language name is given (this was
  also fixed by Thomas but I noticed it too late, after
  I already fixed it by myself).
- Fixed the links to the Adobe documents in README.


3.13 -- October 18, 1999
------------------------

Packaged by Sergey Babkin.

New features:
- New option -v for automatic re-scaling based on the vertical size of the font 
- Changed the code to use getopt() instead of a home-made version of it.
- Latin2 language support by Szalay Tamas. 

Bux fixes:
- Fix for the bug that made possible calls of malloc(0). 
- Refinement of the option -w to prevent extra wide spacing 

3.12 -- October 2, 1999
-----------------------

Packaged by Sergey Babkin.

New features:
- Added support for the Bulgarian language (actually, for now just an alias
of Russian).                                                                    
- Added option -w that tries to make sure that the character widths are not
too narrow.                                                                     
- Added the concept of aliased encodings.
- Now the conversion scripts create and install the .afm files too.
- The conversion script removes the intermediate files after installation.
- Added tunables to the conversion script.
- Installation of the Ghostscript fonts can now be done automatically
together with the X11 fonts.

Bux fixes:
- (FINALLY!!!) A correct fix for the infamous Red Hat 6.0 stdio "feature".
- A number of little bugs discovered by a picky SGI compiler (well, maybe
some day I'll try to run it through the UnixWare lint and see what happens).    
- A diagnostic message about the empty encodings in the convert script was
made less cryptic and a bug in the awk sub-script was fixed.                    
- The .afm creation code now considers the option -t. 

3.11 -- May 24, 1999
--------------------

Packaged by Sergey Babkin.

New features:
- It includes the Turkish (Latin5, ISO8859/9) 
language support by Turgut Uyar and Baltic (ISO8859/4) languages support by
Rihardas Hepas. 
- Also the installation script got updated: the configuration parameters 
are moved to a separate file and the generated fonts.dir files should now be
compatible with Xfsft.

3.1 -- March 28, 1999
---------------------

Packaged by Sergey Babkin.

New features:
- Improved the interaction of the character-level hints and font-level hints


3.0 -- March 6, 1999
--------------------

Packaged by Sergey Babkin.

New features:
- Added HTML documents.

3.0beta2 -- February 14, 1999
-----------------------------

Packaged by Sergey Babkin.

New features:
- Added ability to print the .afm file instead of the font to STDOUT.
- Added the guessing of the /ForceBold parameter that proved to be useful.

Bux fixes:
- Removed the force-fixed option that proved to be troublesome.

3.0beta1 -- December 11, 1998
-----------------------------

By Andrew Weeks.

New features:
- Added option (passed to t1asm) to create a compressed binary
version of the font (A PFB file).

Bux fixes:
- Versions of handle_post and handle_cmap that deal with some
problems with buggy fonts.
- Minor Bug Fixes.

3.0beta-afm -- December 5, 1998
-------------------------------

By Thomas Henlich.

New features:
- Integration of AFM file creation.

3.0beta -- November 15, 1998
----------------------------

By Sergey Babkin.

New features:
- Added the auto-calculation of the italic angle.

Bux fixes:
- Fixed a couple of bugs.

3.0alpha -- October 19, 1998
----------------------------

By Sergey Babkin.

New features:
- Improved (although still not perfect) handling of
scaling in composite glyphs
- Automatic correction of outlines to make them more
smooth (to correct both rounding errors introduced
during conversion and present in the original font)
- Automatic generation of hints (still has lots of
space for improvement)
- Automatic generation of BlueValues etc.

Bux fixes:
- Scaling of fonts to 1000x1000 M-square required by
Type1 standard
- Printing out the contours in reverse direction, because
TTF directions are different from Type1 ones (that was
the major reason why the fonts generated by
version 2.2 were rendered so badly in small sizes)

June 22, 1998 (AKA 2.2)
-------------

By Thomas Henlich.

Bux fixes:
- "width" should be "short int" because otherwise:
characters with negative widths (e.g. -4) become *very* wide (65532)
- The number of /CharStrings is numglyphs and not numglyphs+1

February 13, 1998
-----------------

By Mark Heath.

Bux fixes:
- An original Bug Reported by Frank, which was just incorrect syntax in the 
Type 1 header, managed to creep back into the Feb 04 Version. This has been
Fixed in the Feb 13 Version.

February 4, 1998
----------------

By Mark Heath.

Bux fixes:
- A workaround was implemented in ttf2pfa by altering the matrix. I suspect 
I will have to calculate the correct values, as matrix ops are probably not
allowed in Type 1 format.

---------------------------------------------
The older history seems to be lost.

(S.B.: The story how we got the version numbers is rather funny. Initially
there were no version umbers, the releases were marked by dates. The version
from June 22 1998 untarred itself into a directory "ttf2pt1-22". When I
made my changes to it I assumed that this was the version number meaning
version 2.2. Since Mark asked me to send him a complete archive I supposed 
that I have to bump the version number. And I bumped it to 3.0 because the
changes were rather extensive. Mark silently agreed and released the new
version as 3.0. And that's the end of the story about how we got this
Microsoft-like high version number.)

