misc/libfreetype/docs/CHANGES
changeset 5172 88f2e05288ba
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misc/libfreetype/docs/CHANGES	Mon Apr 25 01:46:54 2011 +0200
@@ -0,0 +1,3539 @@
+CHANGES BETWEEN 2.4.4 and 2.4.5
+
+  I. IMPORTANT BUG FIXES
+
+    - A rendering regression  for second-order Bézier curves  has been
+      fixed, introduced in 2.4.3.
+
+
+  II. IMPORTANT CHANGES
+
+    - If autohinting  is not  explicitly disabled,  FreeType now  uses
+      the autohinter if  a TrueType based font doesn't  contain native
+      hints.
+
+    - The load flag FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH  has been made
+      redundant and  is simply ignored;  this means that FreeType  now
+      ignores the global advance width value in TrueType fonts.
+
+
+  III. MISCELLANEOUS
+
+    - `FT_Sfnt_Table_Info' can now return the number of SFNT tables of
+      a font.
+
+    - Support for PCF files compressed with bzip2 has been contributed
+      by Joel  Klinghed.  To  make this  work, the  OS must  provide a
+      bzip2 library.
+
+    - Bradley  Grainger  contributed  project  and  solution  files in
+      Visual Studio 2010 format.
+
+    - Again some fixes to better handle broken fonts.
+
+    - Some improvements to the B/W rasterizer.
+
+    - Fixes to the cache module to improve robustness.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.4.3 and 2.4.4
+
+  I. IMPORTANT BUG FIXES
+
+    - UVS support (TrueType/OpenType cmap format 14) support is fixed.
+      This regression has been introduced in version 2.4.0.
+
+
+  II. MISCELLANEOUS
+
+    - Detect tricky fonts (e.g. MingLiU)  by the lengths and checksums
+      of Type42-persistent subtables (`cvt ', `fpgm', and `prep') when
+      a TrueType font without family name is given.  The previous fix,
+      introduced in 2.4.3,  was too rigorous,  causing many  subsetted
+      fonts (mainly  from PDF files) displayed badly  because FreeType
+      forced  rendering with  the TrueType bytecode engine  instead of
+      the autohinter.
+
+    - Better support for 64bit platforms.
+
+    - More fixes to improve handling of broken fonts.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.4.2 and 2.4.3
+
+  I. IMPORTANT BUG FIXES
+
+    - Fix rendering of certain cubic, S-shaped arcs.   This regression
+      has been introduced in version 2.4.0.
+
+
+  II. MISCELLANEOUS
+
+    - To  fix  the  above  mentioned  rendering  issue,  a  new spline
+      flattening algorithm  has been  introduced which  speeds up both
+      conic and cubic arcs.
+
+    - Handling of broken fonts has been further improved.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.4.1 and 2.4.2
+
+  I. IMPORTANT BUG FIXES
+
+    - A stack overflow in CFF Type2 CharStrings interpreter is fixed.
+
+    - Handling Type 42 font deallocation was broken; additionally, the
+      library is now more robust against malformed Type 42 fonts.
+
+
+  II. MISCELLANEOUS
+
+    - Two new functions,  `FT_Reference_Library' (in FT_MODULE_H)  and
+      `FT_Reference_Face'  (in  FT_FREETYPE_H),  have  been  added  to
+      simplify life-cycle management.  A counter gets initialized to 1
+      at the  time an  FT_Library (or  FT_Face) structure  is created.
+      The  two  new   functions  increment  the  respective   counter.
+      `FT_Done_Library' and `FT_Done_Face' then only destroy a library
+      or face if the counter is 1, otherwise they simply decrement the
+      counter. 
+
+
+======================================================================
+
+CHANGES BETWEEN 2.4.0 and 2.4.1
+
+  I. IMPORTANT CHANGES
+
+    - A serious bug in the  CFF font module prevented  display of many
+      glyphs in CFF fonts like `MinionPro-Regular.otf'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.12 and 2.4.0
+
+  I. IMPORTANT CHANGES
+
+    - Since May  2010, all  patents  regarding  the TrueType  bytecode
+      interpreter have expired worldwide.  Consequently, we now define
+      TT_CONFIG_OPTION_BYTECODE_INTERPRETER by  default (and  undefine
+      TT_CONFIG_OPTION_UNPATENTED_HINTING).
+
+    - A new function `FT_Library_SetLcdFilterWeights' is available  to
+      adjust the filter weights set by `FT_Library_SetLcdFilter'.
+
+
+  II. MISCELLANEOUS
+
+    - Thanks to many reports from Robert Święcki, FreeType's stability
+      in handling broken or damaged fonts is much improved.
+
+    - Support  for LCD  filter  control has  been  added to  the  demo
+      programs `ftdiff' and `ftview'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.11 and 2.3.12
+
+  I. IMPORTANT CHANGES
+
+    - For  `FT_Open_Face',  new  parameters  are  available  to ignore
+      preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and
+      FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY.
+
+
+  II. MISCELLANEOUS
+
+    - Support  for  incremental  font  loading  (controlled  with  the
+      FT_CONFIG_OPTION_INCREMENTAL macro) is now active by default.
+
+    - Better support for vertical metrics.
+
+    - Various minor bug fixes.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.10 and 2.3.11
+
+  I. IMPORTANT BUG FIXES
+
+    - Version 2.3.10 broke PCF support.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.10 and 2.3.9
+
+  I. IMPORTANT BUG FIXES
+
+    - If all  ASCII digits in a  font have the  same (unscaled) width,
+      the autohinter respects this and won't change it.
+
+    - TrueType fonts  are now  rasterized correctly  if the horizontal
+      and vertical resolution differ.
+
+    - Type 1 fonts are now handled with increased precision internally
+      to avoid serious rounding issues if non-integral coordinates are
+      encountered.
+
+    - Horizontally  condensed CFF  fonts (using the font  matrix) were
+      rendered  incorrectly.   This  bug  has  been  introduced  after
+      release 2.3.5.
+
+
+  II. IMPORTANT CHANGES
+
+    - Support for the SFNT cmap 13 table format (as defined by the new
+      OpenType 1.6 specification) has been added.
+
+    - B/W rasterization  of well-hinted TrueType  fonts at small sizes
+      has been greatly improved.
+
+    - Calculation  of  vertical  metrics in  OpenType  fonts has  been
+      improved.
+
+
+  III. MISCELLANEOUS
+
+    - It  is now  possible to  change  the emboldening  factor in  the
+      `ftview' demo program with keys `e' and `E'.
+
+    - It is  now possible  to change the  slant value in  the `ftview'
+      demo program with keys `s' and `S'.
+
+    - The  5-levels  grayscale  mode of  the `ftraster'  module (which
+      FreeType doesn't use by default) was broken since version 2.3.0.
+
+    - Compilation of the  `ftgrays' and `ftraster' modules  was broken
+      in stand-alone mode.
+
+    - Various fixes for compilation on 64bit and 16bit architectures.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.9 and 2.3.8
+
+  I. IMPORTANT BUG FIXES
+
+    - Very unfortunately, FreeType 2.3.8 contained a change that broke
+      its  official ABI.  The  end result  is  that programs  compiled
+      against previous versions of the library, but dynamically linked
+      to  2.3.8 can  experience  memory corruption  if  they call  the
+      `FT_Get_PS_Font_Info' function.
+
+      We recommend all users to  upgrade to 2.3.9 as soon as possible,
+      or to downgrade to a previous  release of the library if this is
+      not an option.
+
+      The  origin of the  bug is  that a  new field  was added  to the
+      publicly  defined  `PS_FontInfoRec'  structure.   Unfortunately,
+      objects of this  type can be stack or  heap allocated by callers
+      of   `FT_Get_PS_Font_Info',  resulting   in   a  memory   buffer
+      overwrite with its implementation in 2.3.8.
+
+      If  you want to  know whether  your code  is vulnerable  to this
+      issue,  simply  search  for  the  substrings  `PS_FontInfo'  and
+      `PS_Font_Info' in your source code.  If none is found, your code
+      is safe and is not affected.
+
+      The FreeType team apologizes for the problem.
+
+    - The POSIX support  of MacOS resource-fork fonts  (Suitcase fonts
+      and LaserWriter Type1 PostScript fonts) was broken in 2.3.8.  If
+      FreeType2 is built without Carbon framework, these fonts are not
+      handled correctly.  Version 2.3.7 didn't have this bug.
+
+    - `FT_Get_Advance' (and `FT_Get_Advances') returned bad values for
+      almost all font formats except TrueType fonts.
+
+    - Fix a bug  in the SFNT  kerning table  loader/parser which could
+      crash the engine if certain malformed tables were encountered.
+
+    - Composite SFNT bitmaps are now handled correctly.
+
+
+  II. IMPORTANT CHANGES
+
+    - The   new  functions   `FT_Get_CID_Is_Internally_CID_keyed'  and
+      `FT_Get_CID_From_Glyph_Index'  can be  used to  access CID-keyed
+      CFF fonts  via CID  values.  This code  has been  contributed by
+      Michael Toftdal.
+
+
+  III. MISCELLANEOUS
+
+    - `FT_Outline_Get_InsideBorder'  returns   FT_STROKER_BORDER_RIGHT
+      for empty outlines.  This was incorrectly documented.
+
+    - The `ftview' demo program now supports UTF-8 encoded strings.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.8 and 2.3.7
+
+  I. IMPORTANT BUG FIXES
+
+    - CID-keyed fonts in an SFNT wrapper were not handled correctly.
+
+    - The smooth renderer produced truncated images (on the right) for
+      outline parts with negative horizontal values.  Most fonts don't
+      contain outlines left  to the y coordinate axis, but  the effect
+      was very noticeable for outlines processed with FT_Glyph_Stroke,
+      using thick strokes.
+
+    - `FT_Get_TrueType_Engine_Type'  returned a  wrong  value if  both
+      configuration  macros  TT_CONFIG_OPTION_BYTECODE_INTERPRETER and
+      TT_CONFIG_OPTION_UNPATENTED_HINTING were defined.
+
+    - The  `face_index'  field  in   the  `FT_Face'  structure  wasn't
+      initialized properly after calling FT_Open_Face and friends with
+      a positive face index for CFFs,  WinFNTs, and, most importantly,
+      for TrueType Collections (TTCs).
+
+
+  II. IMPORTANT CHANGES
+
+    - Rudimentary support for Type 1  fonts and CID-keyed Type 1 fonts
+      in an SFNT wrapper has been  added -- such fonts are used on the
+      Mac.  The core  SFNT tables `TYP1' and `CID '  are passed to the
+      PS Type 1  and CID-keyed PS font drivers;  other tables (`ALMX',
+      `BBOX', etc.) are not supported yet.
+
+    - A  new interface  to extract  advance values  of glyphs  without
+      loading their outlines has been added.  The functions are called
+      `FT_Get_Advance' and `FT_Get_Advances'; they are defined in file
+      `ftadvanc.h' (to be accessed as FT_ADVANCES_H).
+
+    - A new function `FT_Get_FSType_Flags' (in FT_FREETYPE_H) has been
+      contributed  by   David  Bevan  to  access   the  embedding  and
+      subsetting restriction information of fonts.
+
+
+  III. MISCELLANEOUS
+
+    - FT_MulFix is now an inlined function; by default, assembler code
+      is provided for x86 and ARM.  See FT_CONFIG_OPTION_INLINE_MULFIX
+      and FT_CONFIG_OPTION_NO_ASSEMBLER (in ftoption.h) for more.
+
+    - The handling of `tricky' fonts  (this is, fonts which don't work
+      with the  autohinter, needing the font  format's hinting engine)
+      has been generalized and changed slightly:
+
+      . A new  face flag  FT_FACE_FLAG_TRICKY indicates that  the font
+        format's  hinting engine is  necessary for  correct rendering.
+        The macro FT_IS_TRICKY can be used to check this flag.
+
+      . FT_LOAD_NO_HINTING is now ignored for tricky fonts.  To really
+        force  raw  loading  of  such fonts  (without  hinting),  both
+        FT_LOAD_NO_HINTING  and FT_LOAD_NO_AUTOHINT  must  be used  --
+        this is something which you probably never want to do.
+
+      . Tricky  TrueType fonts  always use  the  bytecode interpreter,
+        either the patented or unpatented version.
+
+    - The  function  `FT_GlyphSlot_Own_Bitmap'  has  been  moved  from
+      FT_SYNTHESIS_H to FT_BITMAP_H; it  is now part of the `official'
+      API.   (The functions  in  FT_SYNTHESIS_H are  still subject  to
+      change, however.)
+
+    - In the  `ftdiff'  demo  program you  can now  toggle the  use of
+      FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH with key `a'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.7 and 2.3.6
+
+  I. IMPORTANT BUG FIXES
+
+    - If the library  was compiled on an i386  platform using gcc, and
+      compiler  option -O3 was  given, `FT_MulFix'  sometimes returned
+      incorrect  results   which  could  have   caused  problems  with
+      `FT_Request_Metrics'   and  `FT_Select_Metrics',   returning  an
+      incorrect descender size.
+
+    - Pure CFFs without  subfonts were scaled incorrectly  if the font
+      matrix  was  non-standard.  This  bug  has  been  introduced  in
+      version 2.3.6.
+
+    - The  `style_name'  field  in  the  `FT_FaceRec'  structure often
+      contained  a wrong  value for  Type 1  fonts.  This misbehaviour
+      has been  introduced  in  version  2.3.6  while  trying  to  fix
+      another   problem.   [Note,  however,   that   this   value   is
+      informative only  since  the  used  algorithm to  extract  it is
+      very simplistic.]
+
+
+  II. IMPORTANT CHANGES
+
+    - Two      new      macros,      FT_OUTLINE_SMART_DROPOUTS     and
+      FT_OUTLINE_EXCLUDE_STUBS,  have been introduced.   Together with
+      FT_OUTLINE_IGNORE_DROPOUTS (which  was ignored previously) it is
+      now possible to control the dropout mode  of the `raster' module
+      (for B&W rasterization),   using  the   `flags'  field   in  the
+      `FT_Outline' structure.
+
+    - The TrueType bytecode interpreter now passes the dropout mode to
+      the B&W rasterizer.  This greatly increases the output for small
+      ppem values of many fonts like `pala.ttf'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.6 and 2.3.5
+
+  I. IMPORTANT BUG FIXES
+
+    - A  bunch of  potential security  problems have  been found.  All
+      users should update.
+
+    - Microsoft  Unicode  cmaps  in  TrueType  fonts  are  now  always
+      preferred over Apple cmaps.  This is not a bug per se, but there
+      exist some buggy  fonts created for MS which  have broken  Apple
+      cmaps.  This affects  only the automatic  selection of FreeType;
+      it's always possible to manually select an Apple Unicode cmap if
+      desired.
+
+    - Many bug fixes to the TrueType bytecode interpreter.
+
+    - Improved Mac support.
+
+    - Subsetted CID-keyed CFFs are now supported correctly.
+
+    - CID-keyed CFFs with subfonts which are scaled in a  non-standard
+      way are now handled correctly.
+
+    - A call to FT_Open_Face with `face_index' < 0 crashed FreeType if
+      the font was a Windows (bitmap) FNT/FON.
+
+
+  II. IMPORTANT CHANGES
+
+    - The new function `FT_Get_CID_Registry_Ordering_Supplement' gives
+      access to  those fields in a CID-keyed font.  The code  has been
+      contributed by Derek Clegg.
+
+    - George Williams  contributed  code  to validate  the new  `MATH'
+      OpenType  table (within  the `otvalid'  module).  The  `ftvalid'
+      demo program has been extended accordingly.
+
+    - An API for cmap 14 support  (for Unicode Variant Selectors, UVS)
+      has been contributed by George Williams.
+
+    - A new face flag FT_FACE_FLAG_CID_KEYED has been added,  together
+      with a macro FT_IS_CID_KEYED which evaluates to 1 if the font is
+      CID-keyed.
+
+
+  III. MISCELLANEOUS
+
+    - Build support for symbian has been contributed.
+
+    - Better WGL4 glyph name support, contributed by Sergey Tolstov.
+
+    - Debugging output of the  various FT_TRACEX macros is now sent to
+      stderr.
+
+    - The `ftview' demo program now provides artificial slanting too.
+
+    - The `ftvalid' demo  program has a new  option `-f' to select the
+      font index.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.5 and 2.3.4
+
+  I. IMPORTANT BUG FIXES
+
+    - Some subglyphs in TrueType fonts were handled incorrectly due to
+      a missing graphics state reinitialization.
+
+    - Large .Z files  (as distributed with some X11  packages) weren't
+      handled correctly, making FreeType increase the heap stack in an
+      endless loop.
+
+    - A large  number of  bugs have  been fixed  to avoid  crashes and
+      endless loops with invalid fonts.
+
+
+  II. IMPORTANT CHANGES
+
+    - The  two new  cache functions  `FTC_ImageCache_LookupScaler' and
+      `FTC_SBit_Cache_LookupScaler' have been added to allow lookup of
+      glyphs using an  `FTC_Scaler' object;  this makes it possible to
+      use fractional pixel sizes in the cache.  The demo programs have
+      been updated accordingly to use this feature.
+
+    - A new API  `FT_Get_CMap_Format' has been added to  get the  cmap
+      format  of a  TrueType font.   This  is useful  in handling  PDF
+      files.  The code has been contributed by Derek Clegg.
+
+    - The  auto-hinter  now  produces  better  output  by  default for
+      non-Latin scripts  like Indic.   This was done by  using the CJK
+      hinting module  as the default instead of the Latin one.  Thanks
+      to Rahul Bhalerao for this suggestion.
+
+    - A new API `FT_Face_CheckTrueTypePatents'  has been added to find
+      out  whether  a  given  TrueType  font  uses  patented  bytecode
+      instructions.   The  `ft2demos' bundle  contains a  new  program
+      called `ftpatchk' which demonstrates its usage.
+
+    - A  new  API  `FT_Face_SetUnpatentedHinting'  has  been  added to
+      enable or disable the unpatented hinter.
+
+    - Support for Windows FON files in PE format  has been contributed
+      by Dmitry Timoshkov.
+
+
+  III. MISCELLANEOUS
+
+    - Vincent Richomme contributed Visual C++ project files for Pocket
+      PCs.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.4 and 2.3.3
+
+  I. IMPORTANT BUG FIXES
+
+    - A serious  bug  in  the  handling  of bitmap  fonts (and  bitmap
+      strikes of outline fonts) has been introduced in 2.3.3.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.3 and 2.3.2
+
+  I. IMPORTANT BUG FIXES
+
+    - Remove a serious regression in the TrueType bytecode interpreter
+      that was introduced  in version 2.3.2.  Note that  this does not
+      disable  the  improvements  introduced  to  the  interpreter  in
+      version 2.3.2,  only some ill  cases that occurred  with certain
+      fonts (though a few popular ones).
+
+    - The auto-hinter now  ignores single-point contours for computing
+      blue zones.   This bug  created `wavy' baselines  when rendering
+      text  with  various  fonts  that  use these  contours  to  model
+      mark-attach points  (these are points that  are never rasterized
+      and are placed outside of the glyph's real outline).
+
+    - The `rsb_delta' and `lsb_delta' glyph slot fields are now set to
+      zero for mono-spaced fonts.  Otherwise code that uses them would
+      essentially ruin the fixed-advance property.
+
+    - Fix  CVE-2007-1351 which  can  cause an  integer overflow  while
+      parsing  BDF fonts,  leading to  a potentially  exploitable heap
+      overflow condition.
+
+
+  II. MISCELLANEOUS
+
+    - Fixed compilation issues on some 64-bit platforms (see ChangeLog
+      for details).
+
+    - A new demo  program `ftdiff' has been added  to compare TrueType
+      hinting, FreeType's auto  hinting, and rendering without hinting
+      in three columns.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.2 and 2.3.1
+
+  I. IMPORTANT BUG FIXES
+
+    - FreeType  returned incorrect  kerning information  from TrueType
+      fonts when the bytecode  interpreter was enabled.  This happened
+      due to a typo introduced in version 2.3.0.
+
+    - Negative  kerning  values  from   PFM  files  are  now  reported
+      correctly  (they were read  as 16-bit  unsigned values  from the
+      file).
+
+    - Fixed  a small  memory leak  when `FT_Init_FreeType'  failed for
+      some reason.
+
+    - The Postscript hinter placed and sized very thin and ghost stems
+      incorrectly.
+
+    - The TrueType bytecode  interpreter has been fixed to  get rid of
+      most of the  rare differences seen in comparison  to the Windows
+      font loader.
+
+
+  II. IMPORTANT CHANGES
+
+    - The auto-hinter  now better deals  with serifs and  corner cases
+      (e.g.,  glyph '9'  in Arial  at 9pt,  96dpi).  It  also improves
+      spacing  adjustments and doesn't  change widths  for non-spacing
+      glyphs.
+
+    - Many   Mac-specific   functions   are  deprecated   (but   still
+      available);  modern replacements  have been  provided  for them.
+      See the documentation in file `ftmac.h'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.1 and 2.3.0
+
+  I. IMPORTANT BUG FIXES
+
+    - The TrueType interpreter sometimes returned incorrect horizontal
+      metrics due to a bug in the handling of the SHZ instruction.
+
+    - A typo  in  a  security  check  introduced  after  version 2.2.1
+      prevented FreeType to render some glyphs in CFF fonts.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.3.0 and 2.2.1
+
+  I. IMPORTANT BUG FIXES
+
+    - The  PCF font  loader  is  now much  more  robust while  loading
+      malformed font files.
+
+    - Various memory leaks have been found and fixed.
+
+    - The TrueType name loader now deals properly with some fonts that
+      encode their  names in UTF-16 (the specification  was vague, and
+      the code incorrectly assumed UCS-4).
+
+    - Fixed the TrueType bytecode  loader to deal properly with subtle
+      monochrome/gray  issues  when   scaling  the  CVT.   Some  fonts
+      exhibited bad rendering artifacts otherwise.
+
+    - `FT_GlyphSlot_Embolden' now  supports vertical layouts correctly
+      (it mangled the vertical advance height).
+
+    - Fixed byte  endian issues  of `ftmac.c' to  support Mac OS  X on
+      i386.
+
+    - The  PFR  font loader  no  longer  erroneously  tags font  files
+      without any outlines as FT_FACE_FLAG_SCALABLE.
+
+
+  II. NEW API FUNCTIONS
+
+    - `FT_Library_SetLcdFilter' allows you  to select a special filter
+      to be  applied to the bitmaps generated  by `FT_Render_Glyph' if
+      one of the FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V modes has
+      been  selected.  This filter  is used  to reduce  color fringes;
+      several  settings are  available  through the  FT_LCD_FILTER_XXX
+      enumeration.
+
+      Its  declaration   and  documentation  can  be   found  in  file
+      `include/freetype/ftlcdfil.h'   (to  be   accessed   with  macro
+      FT_LCD_FILTER_H).
+
+      *IMPORTANT*:     This      function     returns     an     error
+      (FT_Err_Unimplemented_Feature) in default  builds of the library
+      for patent reasons.  See below.
+
+    - `FT_Get_Gasp'  allows you  to query  the flags  of  the TrueType
+      `gasp' table for  a given character pixel size.   This is useful
+      to duplicate  the text rendering  of MS Windows when  the native
+      bytecode  interpreter is  enabled (which  isn't the  default for
+      other patent reasons).
+
+      Its  declaration   and  documentation  can  be   found  in  file
+      `include/freetype/ftgasp.h'   (to   be   accessed   with   macro
+      FT_GASP_H).
+
+
+  III. IMPORTANT CHANGES
+
+    - The auto-hinter has been tuned a lot to improve its results with
+      serif fonts, resulting in much better font rendering of many web
+      pages.
+
+    - The unpatented  hinter is now part  of the default  build of the
+      library; we  have added  code to automatically  support `tricky'
+      fonts that need it.
+
+      This means  that FreeType should `just work'  with certain Asian
+      fonts, like  MingLiU, which cannot properly be  loaded without a
+      bytecode interpreter,  but which fortunately  do not use  any of
+      the patented  bytecode opcodes.  We detect these  fonts by name,
+      so please  report any font file  that doesn't seem  to work with
+      FreeType, and  we shall do what we  can to support it  in a next
+      release.
+
+      Note  that  the API  hasn't  changed,  so  you can  still  force
+      unpatented hinting with a special parameter to `FT_Open_Face' as
+      well.  This  might be useful in  same cases; for  example, a PDF
+      reader might present  a user option to activate  it to deal with
+      certain  `tricky'   embedded  fonts  which   cannot  be  clearly
+      identified.
+
+      If you are  a developer for embedded systems,  you might want to
+      *disable*  the   feature  to  save  code   space  by  undefining
+      TT_CONFIG_OPTION_UNPATENTED_HINTING in file `ftoption.h'.
+
+    - LCD-optimized rendering is now  *disabled* in all default builds
+      of  the  library,  mainly   due  to  patent  issues.   For  more
+      information see:
+
+      http://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html
+
+      A  new  configuration macro  FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+      has been introduced in  `ftoption.h'; manually define it in this
+      file if you want to re-enable the feature.
+
+      The  change only  affects the  implementation, not  the FreeType
+      API.  This means that clients don't need to be modified, because
+      the library still generates  LCD decimated bitmaps, but with the
+      added constraint that R=G=B on each triplet.
+
+      The  displayed result  should  be equal  to normal  anti-aliased
+      rendering.
+
+      Additionally,  if   FT_CONFIG_OPTION_SUBPIXEL_RENDERING  is  not
+      defined, the new  `FT_Library_SetLcdFilter' function returns the
+      FT_Err_Unimplemented_Feature error code.
+
+    - Some computation bugs in  the TrueType bytecode interpreter were
+      found,  which  allow us  to  get rid  of  very  subtle and  rare
+      differences we had experienced with the Windows renderer.
+
+    - It is now possible to cross-compile the library easily.  See the
+      file `docs/INSTALL.CROSS' for details.
+
+    - The file `src/base/ftmac.c' now contains code for Mac OS X only;
+      its  deprecated function  `FT_GetFile_From_Mac_Font_Name' always
+      returns an  error even if the QuickDraw  framework is available.
+      The previous version has been moved to `builds/mac/ftmac.c'.
+
+      Selecting  configure option `--with-quickdraw-carbon'  makes the
+      build process use the original `ftmac.c' file instead of the Mac
+      OS X-only version.
+
+
+  IV. MISCELLANEOUS
+
+    - Various performance and memory footprint optimizations have been
+      performed on  the TrueType and CFF font  loaders, sometimes with
+      very drastic  benefits (e.g., the  TrueType loader is  now about
+      25% faster;  FreeType should use  less heap memory  under nearly
+      all conditions).
+
+    - The anti-aliased rasterizer has been optimized and is now 15% to
+      25%  percent  faster than  in  previous  versions, depending  on
+      content.
+
+    - The Type 1 loader has been improved; as an example, it now skips
+      top-level dictionaries properly.
+
+    - Better support for Mac  fonts on POSIX systems, plus compilation
+      fixes for Mac OS X on ppc64 where `ftmac.c' cannot be built.
+
+    - Configuration  without `--with-old-mac-fonts'  does  not include
+      `ftmac.c' (this was the behaviour in FreeType version 2.1.10).
+
+    - The TrueTypeGX validator (gxvalid) checks the order of glyph IDs
+      in the kern table.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.2.1 and 2.2
+
+  I. IMPORTANT BUG FIXES
+
+    - Various integer overflows have been fixed.
+
+    - PFB fonts with MacOS resource fork weren't  handled correctly on
+      non-MacOS platforms.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.2 and 2.1.10
+
+(not released officially)
+
+  I. IMPORTANT BUG FIXES
+
+    - Vertical metrics for SFNT fonts were incorrect sometimes.
+
+    - The FT_HAS_KERNING macro always returned 0.
+
+    - CFF OpenType  fonts didn't  return correct vertical  metrics for
+      glyphs with outlines.
+
+    - If FreeType was compiled without hinters, all font formats based
+      on PS outlines weren't scaled correctly.
+
+
+  II. IMPORTANT CHANGES
+
+    - Version 2.2 no longer exposes its internals, this is, the header
+      files  located in  the `include/freetype/internal'  directory of
+      the source package are not  copied anymore by the `make install'
+      command.  Consequently, a number of rogue clients which directly
+      access  FreeType's  internal   functions  and  structures  won't
+      compile without modification.
+
+      We provide  patches for  most of those  rogue clients.   See the
+      following page for more information:
+
+        http://www.freetype.org/freetype2/patches/rogue-patches.html
+
+      Note that, as  a convenience to our Unix  desktop users, version
+      2.2 is *binary* compatible with FreeType 2.1.7, which means that
+      installing this  release on  an existing distribution  shall not
+      break any working desktop.
+
+    - FreeType's build  mechanism has been redesigned.   With GNU make
+      it  is  now  sufficient  in   most  cases  to  edit  two  files:
+      `modules.cfg',  to  select   the  library  components,  and  the
+      configuration  file  `include/freetype/config/ftoption.h' (which
+      can be copied to the objects directory).  Removing unused module
+      directories   to    prevent   its   compilation    and   editing
+      `include/freetype/config/ftmodule.h' is no longer necessary.
+
+    - The  LIGHT  hinting algorithm  produces  more pleasant  results.
+      Also, using the  FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph
+      always forces auto-hinting, as a special exception.  This allows
+      you to experiment with it  even if you have enabled the TrueType
+      bytecode interpreter in your build.
+
+    - The auto hinter now employs a new algorithm for CJK fonts, based
+      on Akito  Hirai's patch.   Note that this  only works  for fonts
+      with a Unicode charmap at the moment.
+
+    - The following callback function  types have changed slightly (by
+      adding the `const' keyword where appropriate):
+
+        FT_Outline_MoveToFunc
+        FT_Outline_LineToFunc
+        FT_Outline_ConicToFunc
+        FT_Outline_CubicToFunc
+        FT_SpanFunc
+        FT_Raster_RenderFunc
+
+        FT_Glyph_TransformFunc
+        FT_Renderer_RenderFunc
+        FT_Renderer_TransformFunc
+
+      Note that this doesn't affect binary backward compatibility.
+
+    - On MacOS,  new APIs have  been added as replacements  for legacy
+      APIs:  `FT_New_Face_From_FSRef'  for  `FT_New_Face_From_FSSpec',
+      and              `FT_GetFile_From_Mac_ATS_Name'              for
+      `FT_GetFile_From_Mac_Name'.  Legacy APIs are still available, if
+      FreeType is built without disabling them.
+
+    - A new  API `FT_Select_Size'  has been added  to select  a bitmap
+      strike  by its  index.   Code using  other  functions to  select
+      bitmap strikes should be updated to use this function.
+
+    - A  new API  `FT_Get_SubGlyph_Info'  has been  added to  retrieve
+      subglyph data.  This can be  used by rogue clients which used to
+      access the internal headers to get the corresponding data.
+
+    - In 2.1.10, the behaviour of `FT_Set_Pixel_Sizes' was changed for
+      BDF/PCF fonts,  and only  for them.  This  causes inconsistency.
+      In this release,  we undo the change.  The  intent of the change
+      in 2.1.10  is to allow  size selection through  real dimensions,
+      which can now be done through `FT_Request_Size'.
+
+    - Some security  issues were discovered  and fixed in the  CFF and
+      Type  1 loader, causing  crashes of  FreeType by  malformed font
+      files.
+
+
+  III. MISCELLANEOUS
+
+    - The documentation  for FT_LOAD_TARGET_XXX and FT_RENDER_MODE_XXX
+      values now better reflects its usage and differences: One set is
+      used to specify the hinting algorithm, the other to specify  the
+      pixel rendering mode.
+
+    - `FT_New_Face' and `FT_New_Face_From_FSSpec' in ftmac.c have been
+      changed to count supported scalable faces (sfnt, LWFN) only, and
+      to  return the  number of  available faces  via face->num_faces.
+      Unsupported bitmap faces (fbit, NFNT) are ignored.
+
+    - builds/unix/configure  has been  improved for  MacOS X.   It now
+      automatically checks available  functions in Carbon library, and
+      prepare to use newest  functions by default.  Options to specify
+      the  dependencies of  each Carbon  APIs (FSSpec,  FSRef, old/new
+      QuickDraw, ATS)  are available too.  By manual  disabling of all
+      QuickDraw   functionality,  FreeType   can   be  built   without
+      `deprecated   function'   warnings    on   MacOS   10.4.x,   but
+      FT_GetFile_Mac_Name  in  ftmac.c  then  is changed  to  a  dummy
+      function, and returns an `unimplemented' error.  For details see
+      builds/mac/README.
+
+    - SFNT cmap handling has been  improved, mainly to run much faster
+      with CJK fonts.
+
+    - A   new  function   `FT_Get_TrueType_Engine_Type   (declared  in
+      `FT_MODULE_H')  is  provided  to  determine the  status  of  the
+      TrueType   bytecode  interpreter   compiled  into   the  library
+      (patented, unpatented, unimplemented).
+
+    - Vertical metrics of glyphs are  synthesized if the font does not
+      provide such information.  You can tell whether  the metrics are
+      synthesized or not by checking the FT_FACE_FLAG_VERTICAL flag of
+      the face.
+
+    - The demo programs  `ftview' and  `ftstring' have been  rewritten
+      for better readability.   `ftview' has a new switch `-p' to test
+      FT_New_Memory_Face (instead of FT_New_Face).
+
+    - FreeType now honours bit 1 in the `head' table of TrueType fonts
+      (meaning `left sidebearing point at x=0').  This helps with some
+      buggy fonts.
+
+    - Rudimentary support for Adobe's new `SING Glyphlet' format.  See
+
+        http://www.adobe.com/products/indesign/sing_gaiji.html
+
+      for more information.
+
+    - The `ftdump'  program from the `ft2demos' bundle  now shows some
+      information about charmaps.  It  also supports a new switch `-v'
+      to increase verbosity.
+
+    - Better AFM support.  This includes track kerning support.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.10 and 2.1.9
+
+  I. IMPORTANT BUG FIXES
+
+    - The size comparison for BDF and PCF files could fail sometimes.
+
+    - Some  CFF files  were still not  loaded  correctly.   Patch from
+      Derek Noonburg.
+
+    - The stroker still had some serious bugs.
+
+    - Boris  Letocha  fixed a  bug in  the  TrueType interpreter:  The
+      NPUSHW instruction wasn't skipped correctly in IF clauses.  Some
+      fonts like `Helvetica 75 Bold' failed.
+
+    - Another  serious  bug  in  handling  TrueType hints  caused many
+      distortions.  It has been introduced in version 2.1.8, and it is
+      highly recommended to upgrade.
+
+    - FreeType didn't properly parse empty Type 1 glyphs.
+
+    - An unbound dynamic buffer growth was fixed in the PFR loader.
+
+    - Several bugs have been fixed in the cache sub-system.
+
+    - FreeType behaved incorrectly when resizing two distinct but very
+      close character pixel sizes through `FT_Set_Char_Size' (Savannah
+      bug #12263).
+
+    - The auto-hinter didn't work properly for fonts without a Unicode
+      charmap -- it even refused to load the glyphs.
+
+
+  II. IMPORTANT CHANGES
+
+    - Many fixes have been applied to drastically reduce the amount of
+      heap   memory   used   by   FreeType,   especially   when  using
+      memory-mapped font files  (which is the default on Unix  systems
+      which support them).
+
+    - The auto-hinter  has been replaced with a new module, called the
+      `auto-fitter'.  It consumes  less memory  than its  predecessor,
+      and it is  prepared to support non-latin scripts  better in next
+      releases.
+
+    - George Williams  contributed code to read  kerning data from PFM
+      files.
+
+    - FreeType   now   uses    the   TT_NAME_ID_PREFERRED_FAMILY   and
+      TT_NAME_ID_PREFERRED_SUBFAMILY   strings   (if   available)  for
+      setting  family  and  style in SFNT  fonts  (patch from Kornfeld
+      Eliyahu Peter).
+
+    - A  new  API `FT_Sfnt_Table_Info'  (in FT_TRUETYPE_TABLES_H)  has
+      been added to retrieve name and size information of SFNT tables.
+
+    - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has
+      been added to validate OpenType tables  (BASE, GDEF, GPOS, GSUB,
+      JSTF).   After validation  it is  no longer  necessary to  check
+      for errors in those tables while accessing them.
+
+      Note that  this module might  be moved to another library in the
+      future  to avoid  a tight  dependency between  FreeType and  the
+      OpenType specification.
+
+    - A new API in FT_BITMAP_H  (`FT_Bitmap_New', `FT_Bitmap_Convert',
+      `FT_Bitmap_Copy',  `FT_Bitmap_Embolden',  `FT_Bitmap_Done')  has
+      been added.   Its  use is  to convert an  FT_Bitmap structure in
+      1bpp, 2bpp,  4bpp, or 8bpp  format into  another 8bpp FT_Bitmap,
+      probably using a different pitch, and to further manipulate it.
+
+    - A new  API `FT_Outline_Embolden'  (in FT_OUTLINE_H) gives  finer
+      control how  outlines are embolded.
+
+    - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H)  now handles bitmaps
+      also (code contributed  by Chia I Wu).  Note that this  function
+      is still experimental and may be replaced with a better API.
+
+    - The method  how BDF and PCF  bitmap fonts  are accessed has been
+      refined.   Formerly,   FT_Set_Pixel_Sizes  and  FT_Set_Char_Size
+      were  synonyms in  FreeType's  BDF and PCF interface.  This  has
+      changed now.  FT_Set_Pixel_Sizes  should be  used to  select the
+      actual  font dimensions  (the `strike',  which is the sum of the
+      `FONT_ASCENT'    and    `FONT_DESCENT'    properties),     while
+      FT_Set_Char_Size  selects  the  `nominal' size  (the `PIXELSIZE'
+      property).  In both functions, the width parameter is ignored.
+
+
+  III. MISCELLANEOUS
+
+    - The BDF driver  no longer converts  all returned bitmaps  with a
+      depth of 2bpp or 4bpp to a depth of 8bpp.  The documentation has
+      not  mentioned  this  explicitly,  but  implementors  might have
+      relied on this after looking into the source files.
+
+    - A new option `--ftversion' has been  added to freetype-config to
+      return the FreeType version.
+
+    - The  memory  debugger  has  been  updated   to  dump  allocation
+      statistics on  all allocation  sources in the library.   This is
+      useful to  spot greedy  allocations when  loading and processing
+      fonts.
+
+    - We removed a huge array of constant pointers to constant strings
+      in the `psnames' module.   The problem was that  compilations in
+      PIC mode (i.e.,  when generating a  Unix shared object/dll)  put
+      the array  into the non-shared  writable section of  the library
+      since absolute pointers are not relocatable by nature.
+
+      This reduces the memory consumption by approximately 16KByte per
+      process linked  to FreeType.   We now also store  the array in a
+      compressed form (as a trie) which saves about 20KByte of code as
+      well.
+
+    - Kirill  Smelkov provided  patches to make  src/raster/ftraster.c
+      compile stand-alone again.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.9 and 2.1.8
+
+  I. IMPORTANT BUG FIXES
+
+    - The function  `FT_Get_CharMap_Index' was only declared,  without
+      any  real  code.   For  consistency,  it  has  been  renamed  to
+      `FT_Get_Charmap_Index'.   (This function is needed  to implement
+      cmap caches.)
+
+    - `FT_Outline_Get_BBox'  sometimes returned  incorrect values  for
+      conic outlines (e.g., for TrueType fonts).
+
+    - Handling of `bhed' table has been fixed.
+
+    - The TrueType driver with enabled byte code interpreter sometimes
+      returned artifacts due to incorrect rounding.  This bug has been
+      introduced after version 2.1.4.
+
+    - The BDF driver dropped the last glyph in the font.
+
+    - The BDF driver now uses the DEFAULT_CHAR property (if available)
+      to select a glyph shape for the undefined glyph.
+
+    - The stroker failed for closed outlines and single points.
+
+
+  II. IMPORTANT CHANGES
+
+    - George  Williams   contributed  code  to   handle  Apple's  font
+      distortion technology found in GX fonts (`avar', `cvar', `fvar',
+      and `gvar' tables;  the Multiple Masters  API has been  slightly
+      extended to cope with the new functionality).
+
+    - The `FT_GlyphSlotRec' structure has been extended:  The elements
+      `lsb_delta' and  `rsb_delta' give the difference  between hinted
+      and  unhinted  left and right  side bearings  if autohinting  is
+      active.  Using those values can improve the inter-letter spacing
+      considerably.   See the documentation of  `FT_GlyphSlotRec'  and
+      the `ftstring' demo program how to use it.
+
+    - Loading TrueType and Type 1 fonts has been made much faster.
+
+    - The stroker is  no longer experimental (but the  cache subsystem
+      still is).
+
+
+  III. MISCELLANEOUS
+
+    - A new  documentation file  `formats.txt' describes various  font
+      formats supported (and not supported) by FreeType.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.8 and 2.1.7
+
+  I. IMPORTANT BUG FIXES
+
+    - The native  TrueType hinter contained some  bugs which prevented
+      some fonts to be rendered correctly, most notably Legendum.otf.
+
+    - The PostScript hinter now produces improved results.
+
+    - The  linear advance  width  and height  values were  incorrectly
+      rounded,  making  them virtually  unusable  if  not loaded  with
+      FT_LOAD_LINEAR_DESIGN.
+
+    - Indexing CID-keyed CFF fonts is  now working: The glyph index is
+      correctly  treated as a  CID, similar  to FreeType's  CID driver
+      module.  Note that CID CMap support is still missing.
+
+    - The FT_FACE_FLAGS_GLYPH_NAMES flag is now  set correctly for all
+      font formats.
+
+    - Some subsetted Type 1  fonts weren't parsed correctly.  This bug
+      has been introduced in 2.1.7.  In summary, the Type 1 parser has
+      become more robust.
+
+    - Non-decimal numbers weren't parsed correctly in PS fonts.
+
+    - The WinFNT driver now correctly reports FT_ENCODING_NONE for all
+      but one encoding.  Use  the new FT_WinFNT_ID_XXX values together
+      with `FT_Get_WinFNT_Header' to get the WinFNT charset ID.
+
+    - The descender metrics (face->size->metrics.descender) for WinFNT
+      bitmap fonts had the wrong sign.
+
+    - The (emulated) `seac' support for CFF fonts was broken.
+
+    - The `flex' operator didn't work for CFF fonts.
+
+    - PS glyphs  which  use  the   `hintmask'  operator  haven't  been
+      rendered correctly in some cases.
+
+    - Metrics for BDF and PCF bitmap font formats have been fixed.
+
+    - Autohinting  is now  disabled for  glyphs  which  are vertically
+      distorted  or mirrored  (using a  transformation matrix).   This
+      fixes a bug which produced zero-height glyphs.
+
+    - The   `freetype-config'   script   now  handles   --prefix   and
+      --exec-prefix correctly; it also  returns the proper --rpath (or
+      -R) value if FreeType has been built as a shared library.
+
+
+  II. IMPORTANT CHANGES
+
+    - Both  PCF  and BDF  drivers  now  handle  the SETWIDTH_NAME  and
+      ADD_STYLE_NAME    properties.     Values    are   appended    to
+      face->style_name; example: `Bold SemiCondensed'.
+
+    - The PCF driver now handles bitmap  fonts compressed with the LZW
+      algorithm (extension .pcf.Z, compressed with `compress').
+
+    - A  new  API   function  `FT_Get_CMap_Language_ID'  (declared  in
+      `tttables.h')  is  available  to   get  the  language  ID  of  a
+      TrueType/SFNT cmap.
+
+    - The hexadecimal format of  data after the `StartData' command in
+      CID-keyed Type 1 fonts is now supported.  While this can't occur
+      in  file-based   fonts,  it  can   happen  in  document-embedded
+      resources of PostScript documents.
+
+    - Embedded bitmaps in SFNT-based CFF fonts are now supported.
+
+    - A simple  API is  now available  to control  FreeType's  tracing
+      mechanism if compiled  with FT_DEBUG_LEVEL_TRACE.   See the file
+      `ftdebug.h' for more details.
+
+    - YAMATO Masatake contributed improved  handling of MacOS resource
+      forks on non-MacOS platforms (for example, Linux can mount MacOS
+      file systems).
+
+    - Support for MacOS has been improved; there is now a new function
+      `FT_New_Face_From_FSSpec'  similar to `FT_New_Face'  except that
+      it accepts an FSSpec instead of a path.
+
+    - The cache sub-system has been rewritten.
+
+      - There is now support for deinstallation of faces.
+
+      - A new  API function `FTC_Manager_RemoveFaceID'  has been added
+        to  delete  all  `idle'  nodes  that  correspond  to  a  given
+        FTC_FaceID.  All `locked' nodes  (i.e., those with a reference
+        count > 0), will be modified to prevent them from appearing in
+        further  lookups (they  will  be cleaned  normally when  their
+        reference count reaches 0).
+
+      - There  is  now  support  for point  scaling  (i.e.,  providing
+        character sizes in points + dpis, instead of pixels).
+
+      - Three abstract cache classes are now available:
+
+          FTC_GCache:  Used to store  one glyph  item per  cache node,
+                      with the ability to group common attributes into
+                      `families'.      This    replaces     the    old
+                      FTC_GlyphCache class.
+
+          FTC_ICache: Used to store one FT_Glyph per cache node.  This
+                      extends  FTC_GCache.  Family  definition, family
+                      comparison, and  glyph loading are  however left
+                      to sub-classes.
+
+          FTC_SCache: Used to  store up to 16 small  bitmaps per cache
+                      node.    This    extends   FTC_GCache.    Family
+                      definition, family  comparison and glyph loading
+                      are however left to sub-classes.
+
+      - The file `src/cache/ftcbasic.c' implements:
+
+          FTC_ImageCache: Extends    FTC_ICache;   implements   family
+                          definitions and glyph loading similar to the
+                          old API.
+
+          FTC_SBitCache: Extends    FTC_SCache,    implements   family
+                         definitions and glyph  loading similar to the
+                         old API
+
+        Client  applications  should  be  able to  extend  FTC_GCache,
+        FTC_ICache, or FTC_SCache much more easily (i.e., less code to
+        write, and  less callbacks).  For example,  one could envision
+        caches  that are  capable of  storing  transformed (obliqued),
+        stroked,   emboldened,   or   colored   glyph   images.    Use
+        `ftcbasic.c' as an example.
+
+      - All public  APIs are now  in `include/freetype/ftcache.h', (to
+        be    accessed   as    `FT_CACHE_H').     The   contents    of
+        `include/freetype/cache/' is only  needed by applications that
+        wish to implement their own caches.
+
+      - There were some major performance improvements through the use
+        of  various programming  tricks.   Cache hits  are  up to  70%
+        faster than in the old code.
+
+      - The  FTC_CMapCache has  been simplified.  Charmaps can only be
+        accessed by  index right now.  There  is also a  new API named
+        `FT_Charmap_GetIndex' for this purpose.
+
+      - The  demo programs  have been  updated to  the new  code.  The
+        previous versions will not work with the current one.
+
+      - Using  an invalid face  index in FT_Open_Face and friends  now
+        causes an error even if the font contains a single face only.
+
+
+  III. MISCELLANEOUS
+
+    - Wolfgang Domröse contributed support files for building FreeType
+      on the Atari using the PureC compiler.  Note that the Atari is a
+      16bit platform.
+
+    - Vitaliy Pasternak contributed project files for VS.NET 2003.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.7 and 2.1.6
+
+  I. IMPORTANT BUG FIXES
+
+    - Updated  to newest  libtool  version, fixing  build problems  on
+      various platforms.
+
+    - On  Unix  platforms,  `make  install' didn't  copy  the  correct
+      `ftconfig.h' file.
+
+  Note that version 2.1.7  contains the same library  C source code as
+  version 2.1.6.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.6 and 2.1.5
+
+  I. IMPORTANT BUG FIXES
+
+    - The PFR  font driver didn't  load kerning tables  correctly, and
+      the functions in FT_PFR_H didn't work at all.
+
+    - Type 1 font  files in  binary format  (PFB) with  an end-of-file
+      indicator weren't accepted by the FreeType engine.
+
+    - Fonts which contain /PaintType  and /StrokeWidth no longer cause
+      a segfault.  This bug has been introduced in version 2.1.5.
+
+    - Fonts  loaded  with   FT_LOAD_RENDER  no  longer  cause  strange
+      results.  This bug has been introduced in version 2.1.5.
+
+    - Some  Windows   (bitmap)  FNT/FON  files   couldn't  be  handled
+      correctly.
+
+
+  II. IMPORTANT CHANGES
+
+    - The internal  module API  has been heavily  changed in  favor of
+      massive simplifications within the font engine.  This also means
+      that authors of third-party modules must adapt their code to the
+      new scheme.
+
+      NOTE:  THE NEW SCHEME IS NOT COMPLETED YET.  PLEASE WAIT UNTIL A
+      FINAL ANNOUNCEMENT!
+
+    - The PostScript  parser has been enhanced to  handle comments and
+      strings   correctly.   Additionally,   more  syntax   forms  are
+      recognized.
+
+    - Added the  optional unpatented hinting system  for TrueType.  It
+      allows  typefaces which  need hinting  to produce  correct glyph
+      forms (e.g., Chinese typefaces  from Dynalab) to work acceptably
+      without infringing Apple patents.   This system is compiled only
+      if  TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING  is  defined  in
+      ftoption.h (activated by default).
+
+
+  III. MISCELLANEOUS
+
+    - There  is now  a guard  in the  public header  files  to protect
+      against inclusion of freetype.h from FreeType 1.
+
+    - Direct inclusion of freetype.h  and other public header files no
+      longer works.  You have to use the documented scheme
+
+        #include <ft2build.h>
+        #include FT_FREETYPE_H
+
+      to load freetype.h with  a symbolic name.  This protects against
+      renaming  of public  header  files (which  shouldn't happen  but
+      actually  has, avoiding two  public header  files with  the same
+      name).
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.5 and 2.1.4
+
+  I. IMPORTANT BUG FIXES
+
+    - Parsing the /CIDFontName field  now removes the leading slash to
+      be in sync with other font drivers.
+
+    - gzip support was buggy.  Some fonts could not be read.
+
+    - Fonts which  have nested subglyphs  more than one level  deep no
+      longer cause a segfault.
+
+    - Creation of synthetic  cmaps for fonts in CFF  format was broken
+      partially.
+
+    - Numeric  font  dictionary entries  for  synthetic  fonts are  no
+      longer overwritten.
+
+    - The font matrix  wasn't applied to the advance  width for Type1,
+      CID, and  CFF fonts.  This caused problems  when loading certain
+      synthetic Type 1 fonts like `Helvetica Narrow'.
+
+    - The test  for the charset registry  in BDF and PCF  fonts is now
+      case-insensitive.
+
+    - FT_Vector_Rotate  sometimes  returned   strange  values  due  to
+      rounding errors.
+
+    - The  PCF  driver  now  returns  the  correct  number  of  glyphs
+      (including an artificial `notdef' glyph at index 0).
+
+    - FreeType now  supports buggy CMaps  which are contained  in many
+      CJK fonts from Dynalab.
+
+    - Opening  an invalid  font  on a  Mac  caused a  segfault due  to
+      double-freeing memory.
+
+    - BDF  fonts  with  more   than  32768  glyphs  weren't  supported
+      properly.
+
+
+  II. IMPORTANT CHANGES
+
+    - Accessing bitmap font formats has been synchronized.  To do that
+      the FT_Bitmap_Size  structure has  been extended to  contain new
+      fields `size', `x_ppem', and `y_ppem'.
+
+    - The FNT driver now returns multiple faces, not multiple strikes.
+
+    - The `psnames'  module has been  updated to the Adobe  Glyph List
+      version 2.0.
+
+    - The `psnames' module now understands `uXXXX[X[X]]' glyph names.
+
+    - The algorithm for guessing the font style has been improved.
+
+    - For fonts in SFNT format, root->height is no longer increased if
+      the line gap  is zero.  There exist fonts  (containing e.g. form
+      drawing  characters) which  intentionally have  a zero  line gap
+      value.
+
+    - ft_glyph_bbox_xxx  flags   are  now  deprecated   in  favour  of
+      FT_GLYPH_BBOX_XXX.
+
+    - ft_module_xxx   flags   are   now   deprecated  in   favour   of
+      FT_MODULE_XXX.
+
+    - FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB}      are     now
+      deprecated               in               favour              of
+      FT_ENCODING_{SJIS,GB2312,GIB5,WANSONG,JOHAB}  -- those encodings
+      are not specific to Microsoft.
+
+
+  III. MISCELLANEOUS
+
+    - The  autohinter  has been  further  improved;  for example,  `m'
+      glyphs now retain its vertical symmetry.
+
+    - Partial support of Mac fonts on non-Mac platforms.
+
+    - `make   refdoc'   (after   first   `make')   builds   the   HTML
+      documentation.  You need Python for this.
+
+    - The make build system should  now work more reliably on DOS-like
+      platforms.
+
+    - Support for  EMX gcc  and Watson C/C++  compilers on  MS-DOS has
+      been added.
+
+    - Better VMS build support.
+
+    - Support for the pkg-config  package by providing a `freetype.pc'
+      file.
+
+    - New configure option --with-old-mac-fonts for Darwin.
+
+    - Some source files have been  renamed (mainly to fit into the 8.3
+      naming scheme).
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.4 and 2.1.3
+
+  I. IMPORTANT BUG FIXES
+
+    - Updated  to newest  libtool  version, fixing  build problems  on
+      various platforms.
+
+    - A fix  in the Gzip stream  reader: It couldn't  read certain .gz
+      files properly due to a  small typo.  In certain cases, FreeType
+      could  also loop  endlessly  when trying  to  load tiny  gzipped
+      files.
+
+    - The configure script now tries  to use the system-wide zlib when
+      it  finds one  (instead of  the  copy found  in src/gzip).   And
+      `freetype-config' has  been updated to return  relevant flags in
+      this case when invoked with `--libs' (e.g. `-lzlib').
+
+    - Certain fonts couldn't be loaded  by 2.1.3 because they lacked a
+      Unicode   charmap  (e.g.   SYMBOL.TTF).    FreeType  erroneously
+      rejected them.
+
+    - The CFF loader was modified to accept fonts which only contain a
+      subset of  their reference charset.  This  prevented the correct
+      use of PDF-embedded fonts.
+
+    - The logic to detect Unicode charmaps has been modified.  This is
+      required to  support fonts which include both  16-bit and 32-bit
+      charmaps (like very  recent asian ones) using the  new 10 and 12
+      SFNT formats.
+
+    - The TrueType  loader now limits  the depth of  composite glyphs.
+      This is necessary to prevent broken fonts to break the engine by
+      blowing the stack with recursive glyph definitions.
+
+    - The CMap cache is now  capable of managing UCS-4 character codes
+      that   are   mapped   through   extended  charmaps   in   recent
+      TrueType/OpenType fonts.
+
+    - The   cache  sub-system   now  properly   manages  out-of-memory
+      conditions  instead of  blindly  reporting them  to the  caller.
+      This means that it will try to empty the cache before restarting
+      its allocations to see if that can help.
+
+    - The  PFR driver  didn't return  the list  of  available embedded
+      bitmaps properly.
+
+    - There was  a nasty  memory leak when  using embedded  bitmaps in
+      certain font formats.
+
+
+  II. IMPORTANT CHANGES
+
+    - David Chester  contributed some enhancements  to the auto-hinter
+      that  significantly increase  the  quality of  its output.   The
+      Postscript hinter was also improved in several ways.
+
+    - The FT_RENDER_MODE_LIGHT render mode was implemented.
+
+    - A new  API function called `FT_Get_BDF_Property'  has been added
+      to FT_BDF_H to  retrieve BDF properties from BDF  _and_ PCF font
+      files.   THIS  IS  STILL  EXPERIMENTAL,  since  it  hasn't  been
+      properly tested yet.
+
+    - A Windows FNT specific API has been added, mostly to access font
+      headers.  This is used by Wine.
+
+    - TrueType tables  without an `hmtx' table are  now tolerated when
+      an  incremental interface  is  used.  This  happens for  certain
+      Type42 fonts passed from Ghostscript to FreeType.
+
+    - The PFR font driver is  now capable of returning the font family
+      and style  names when  they are available  (instead of  the sole
+      `FontID').   This  is  performed  by parsing  an  *undocumented*
+      portion of the font file!
+
+
+  III. MISCELLANEOUS
+
+    - The path stroker in FT_STROKER_H has entered beta stage.  It now
+      works very  well, but  its interface might  change a bit  in the
+      future.  More on this in later releases.
+
+    - The documentation for  FT_Size_Metrics didn't appear properly in
+      the API reference.
+
+    - The file docs/VERSION.DLL has been updated to explain versioning
+      with FreeType  (i.e., comparing release/libtool/so  numbers, and
+      how to use them in autoconf scripts).
+
+    - The  installation  documentation  has been  seriously  revamped.
+      Everything is now in the `docs' directory.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.3 and 2.1.2
+
+  I. IMPORTANT BUG FIXES
+
+    - FT_Vector_Transform  had  been  incorrectly modified  in  2.1.2,
+      resulting  in  incorrect   transformations  being  applied  (for
+      example, rotations were processed in opposite angles).
+
+    - The format  8 and 12 TrueType charmap  enumeration routines have
+      been fixed (FT_Get_Next_Char returned invalid values).
+
+    - The  PFR font driver  returned incorrect  advance widths  if the
+      outline  and metrics resolution  defined in  the font  file were
+      different.
+
+    - FT_Glyph_To_Bitmap now returns  successfully when called with an
+      FT_BitmapGlyph argument (it previously returned an error).
+
+    - A bug  in the Type 1  loader that prevented  valid font bounding
+      boxes to be loaded from multiple master fonts.
+
+    - The SFNT  validation code has been rewritten.   FreeType can now
+      load `broken'  fonts that were  usable on Windows, but  not with
+      previous versions of the library.
+
+    - The computation of bearings in the BDF driver has been fixed.
+
+    - The Postscript hinter crashed when trying to hint certain glyphs
+      (more precisely,  when trying to  apply hints to an  empty glyph
+      outline).
+
+    - The  TrueType glyph  loader  now supports  composites in  `Apple
+      format'  (they differ slightly  from Microsoft/OpenType  ones in
+      the way transformation offsets are computed).
+
+    - FreeType was  very slow at opening certain  asian CID/CFF fonts,
+      due to  fixed increment  in dynamic array  re-allocations.  This
+      has  been changed  to  exponential behaviour  to get  acceptable
+      performance.
+
+
+
+  II. IMPORTANT CHANGES
+
+    - The PCF driver now supports gzip-compressed font files natively.
+      This means that  you will be able to use  all these bitmap fonts
+      that  come with  XFree86 with  FreeType (and  libXft/libXft2, by
+      extension).
+
+    - The  automatic and  postscript hinters  have both  been updated.
+      This  results in  a relatively  important increase  of rendering
+      quality since  many nasty defaults have been suppressed.  Please
+      visit the web page:
+
+        http://www.freetype.org/hinting/smooth-hinting.html
+
+      for additional details on this topic.
+
+    - The `load_flags' parameter of `FT_Load_Glyph' is now an FT_Int32
+      (instead  of just  being  an FT_Int).   This  breaks source  and
+      binary  compatibility for  16bit systems  only,  while retaining
+      both of them for 32 and 64 bit ones.
+
+      Some new flags have been added consequently:
+
+        FT_LOAD_NO_AUTOHINT   :: Disable the use of the auto-hinter
+                                 (but not native format hinters).
+
+        FT_LOAD_TARGET_NORMAL :: Hint and render for normal
+                                 anti-aliased displays.
+
+        FT_LOAD_TARGET_MONO   :: Hint and render for 1-bit displays.
+
+        FT_LOAD_TARGET_LCD    :: Hint and render for horizontal RGB or
+                                 BGR sub-pixel displays (like LCD
+                                 screens).  THIS IS STILL
+                                 EXPERIMENTAL!
+
+        FT_LOAD_TARGET_LCD_V  :: Same as FT_LOAD_TARGET_LCD, for
+                                 vertical sub-pixel displays (like
+                                 rotated LCD screens).  THIS IS STILL
+                                 EXPERIMENTAL!
+
+      FT_LOAD_MONOCHROME   is  still   supported,  but   only  affects
+      rendering, not the hinting.
+
+      Note that the `ftview'  demo program available in the `ft2demos'
+      package  has been  updated to  support LCD-optimized  display on
+      non-paletted displays (under Win32 and X11).
+
+    - The  PFR  driver  now  supports embedded  bitmaps  (all  formats
+      supported), and returns correct kerning metrics for all glyphs.
+
+    - The TrueType charmap loader  now supports certain `broken' fonts
+      that load under Windows without problems.
+
+    - The cache API has been slightly modified (it's still a beta!):
+
+       - The type  FTC_ImageDesc has been removed; it  is now replaced
+         by  FTC_ImageTypeRec.   Note that  one  of  its  fields is  a
+         `load_flag' parameter for FT_Load_Glyph.
+
+       - The  field  `num_grays' of  FT_SBitRec  has  been changed  to
+         `max_grays'  in  order to  fit  within  a  single byte.   Its
+         maximum value is thus 255 (instead of 256 as previously).
+
+
+  III. MISCELLANEOUS
+
+    - Added support  for the  DESTDIR variable during  `make install'.
+      This simplifies packaging of FreeType.
+
+    - Included modified  copies of the  ZLib sources in  `src/gzip' in
+      order to support  gzip-compressed PCF fonts.  We do  not use the
+      system-provided  zlib  for  now,   though  this  is  a  probable
+      enhancement for future releases.
+
+    - The DocMaker tool used to generate the on-line API reference has
+      been   completely    rewritten.    It   is    now   located   in
+      `src/tools/docmaker/docmaker.py'.  Features:
+
+        - better cross-referenced output
+        - more polished output
+        - uses Python regular expressions  (though it didn't speed the
+          program)
+        - much  more  modular structure,  which  allows for  different
+          `backends'  in  order to  generate  HTML,  XML, or  whatever
+          format.
+
+      One can regenerate the API reference by calling:
+
+         python src/tools/docmaker/docmaker.py \
+                --prefix=ft2 \
+                --title=FreeType-2.1.3 \
+                --output=<outputdirectory>
+                include/freetype/*.h \
+                include/freetype/config/*.h \
+                include/freetype/cache/*.h
+
+    - A new, experimental, support for incremental font loading (i.e.,
+      loading  of fonts  where the  glyphs are  not in  the  font file
+      itself, but provided by an external component, like a Postscript
+      interpreter) has been added by Graham Asher.  This is still work
+      in progress, however.
+
+    - A new,  EXPERIMENTAL, path stroker  has been added.   It doesn't
+      suffer  from  severe  rounding  errors  and  treat  bezier  arcs
+      directly.  Still work in progress (i.e. not part of the official
+      API).   See  the file  <freetype/ftstroker.h>  for  some of  the
+      details.
+
+    - The massive  re-formatting of sources and  internal re-design is
+      still under-way.  Many  internal functions, constants, and types
+      have been renamed.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.2 and 2.1.1
+
+  I. IMPORTANT BUG FIXES
+
+    - Many  font drivers didn't  select a  Unicode charmap  by default
+      when a new face  was opened (with the FT_CONFIG_OPTION_USE_CMAPS
+      options enabled),  causing many applications  to not be  able to
+      display text correctly with the 2.1.x releases.
+
+    - The  PFR driver had  a bug  in its  composite loading  code that
+      produces incorrectly placed accents with many fonts.
+
+    - The Type42 driver crashed sometimes due to a nasty bug.
+
+    - The Type 1 custom encoding  charmap didn't handle the case where
+      the first glyph index wasn't 0.
+
+    - A  serious  typo  in  the  TrueType  composite  loader  produced
+      incorrectly placed  glyphs in fonts  like `Wingdings' and  a few
+      others.
+
+
+  II. MISCELLANEOUS
+
+    - The Win32  Visual C++ project  file has been updated  to include
+      the PFR driver as well.
+
+    - `freetype.m4' is  now installed by default by  `make install' on
+      Unix systems.
+
+    - The function  FT_Get_PS_Font_Info now works with  CID and Type42
+      fonts as well.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.1 and 2.1.0
+
+  I. IMPORTANT BUG FIXES
+
+    - The  `version_info'  returned   by  `freetype-config'  in  2.1.0
+      returned an invalid value.  It now returns 9:1:3 (2.0.9 returned
+      9:0:3).
+
+    - Version 2.1.0  couldn't be linked against  applications on Win32
+      and  Amiga systems  due  to  a new  debug  function that  wasn't
+      properly   propagated  to   the  system-specific   directory  in
+      `builds'.
+
+    - Various MacOS and Mac OS X specific fixes.
+
+    - Fixed  a bug in  the TrueType  charmap validation  routines that
+      made version  2.1.0 too restrictive  -- many popular  fonts have
+      been rejected.
+
+    - There was  still a very small difference  between the monochrome
+      glyph bitmaps produced by FreeType 1.x and FreeType 2.x with the
+      bytecode  interpreter enabled.   This was  caused by  an invalid
+      flag setting in the TrueType glyph loader, making the rasterizer
+      change  its  drop-out   control  mode.   Now  the results should
+      _really_ be completely identical.
+
+    - The TrueType name table loader has been improved to support many
+      popular  though buggy Asian  fonts.  It  now ignores  empty name
+      entries,  invalid  pointer offsets  and  a  few other  incorrect
+      subtleties.  Moreover,  name strings  are now loaded  on demand,
+      which reduces the memory load  of many faces (e.g. the ARIAL.TTF
+      font file contains a 10kByte name table with 70 names).
+
+    - Fixed a bug in the Postscript hinter that prevented family blues
+      substitution to happen correctly.
+
+
+  II. NEW FEATURES
+
+    - Three new font drivers in this release:
+
+      * A  BDF  font driver,  contributed  by  Franco Zappa  Nardelli,
+        heavily  modified   by  Werner  Lemberg.    It  also  supports
+        anti-aliased bitmaps (using a slightly extended BDF format).
+
+      * A Type42  font driver, contributed by Roberto  Alameda.  It is
+        still experimental but seems to work relatively well.
+
+      * A PFR  font driver, contributed  by David Turner  himself.  It
+        doesn't  support PFR  hinting --  note that  BitStream  has at
+        least two patents on this format!
+
+
+  III. MISCELLANEOUS
+
+    - The  cache  sub-system has  been  optimized  in important  ways.
+      Cache hits are now significantly faster.  For example, using the
+      CMap cache is about  twice faster than calling FT_Get_Char_Index
+      on most platforms.  Similarly, using an SBit cache is about five
+      times faster  than loading the  bitmaps from a bitmap  file, and
+      300 to  500 times  faster than generating  them from  a scalable
+      format.
+
+      Note that  you should recompile  your sources if you  designed a
+      custom  cache  class for  the  FT2  Cache  subsystem, since  the
+      changes performed are source, but not binary, compatible.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.1.0 and 2.0.9
+
+  I. IMPORTANT BUG FIXES
+
+    - The  TrueType bytecode  interpreter  has been  fixed to  produce
+      _exactly_ the same output as FreeType 1.x.  Previous differences
+      were due  to slightly distinct  fixed-point computation routines
+      used to perform dot products and vector length measurements.
+
+      It seems  that native TrueType hinting  is _extremely_ sensitive
+      to  rounding errors.  The  required vector  computation routines
+      have been optimized and placed within the `ttinterp.c' file.
+
+    - Fixed the parsing of accelerator tables in the PCF font driver.
+
+    - Fixed the Type1 glyph loader  routine used to compute the font's
+      maximum advance width.
+
+
+  II. NEW FEATURES
+
+    - The `configure' script used on Unix systems has been modified to
+      check  that  GNU  Make  is  being used  to  build  the  library.
+      Otherwise,  it  will display  a  message  proposing  to use  the
+      GNUMAKE environment variable to name it.
+
+      The Unix-specific file README.UNX has been modified accordingly.
+
+
+  III. MISCELLANEOUS
+
+    - The  FreeType  License in  `docs/FTL.TXT'  has  been updated  to
+      include  a  proposed preferred  disclaimer.   If  you are  using
+      FreeType in your products, you are encouraged (but not mandated)
+      to use the following text in your documentation:
+
+      """
+        Portions of this software are copyright © 1996-2002 The
+        FreeType Project (www.freetype.org).  All rights reserved.
+      """
+
+    - The default size of the render pool has been reduced to 16kByte.
+      This  shouldn't result  in any  noticeable  performance penalty,
+      unless you are  using the engine as-is to  render very large and
+      complex glyphs.
+
+    - The  FreeType 2  redesign has  begun.  More  information  can be
+      found at this URL:
+
+        http://www.freetype.org/freetype2/redesign.html
+
+      The following  internal changes  have been performed  within the
+      sources of this release:
+
+        - Many   internal  types   have  been   renamed   to  increase
+          consistency.   The  following  should  be true,  except  for
+          public types:
+
+            * All structure  types have a name ending  in `Rec' (short
+              for `record').
+
+            * A  pointer-to-structure type  has the  same name  as the
+              structure, _without_ the `Rec' suffix.
+
+              Example:
+
+                typedef struct FooRec_
+                {
+                  ...
+
+                } FooRec, *Foo;
+
+        - Many   internal  macros  have   been  renamed   to  increase
+          consistency.  The following should be true:
+
+            * All  macros  have a  name  beginning  with `FT_'.   This
+              required a few changes like
+
+                ALLOC   => FT_ALLOC
+                FREE    => FT_FREE
+                REALLOC => FT_REALLOC
+
+            * All  macros are completely  UPPERCASE.  This  required a
+              few changes like:
+
+                READ_Short  => FT_READ_SHORT
+                NEXT_Short  => FT_NEXT_SHORT
+                GET_ULongLE => FT_GET_ULONG_LE
+                MEM_Set     => FT_MEM_SET
+                MEM_Copy    => FT_MEM_COPY
+                etc.
+
+            * Whenever   possible,   all   macro  names   follow   the
+              FT_<OBJECT>_<METHOD> pattern.  For example
+
+                ACCESS_Frame   => FT_FRAME_ENTER
+                FORGET_Frame   => FT_FRAME_EXIT
+                EXTRACT_Frame  => FT_FRAME_EXTRACT
+                RELEASE_Frame  => FT_FRAME_RELEASE
+
+                FILE_Pos       => FT_STREAM_POS
+                FILE_Seek      => FT_STREAM_SEEK
+                FILE_Read      => FT_STREAM_READ
+                FILE_ReadAt    => FT_STREAM_READ_AT
+                READ_Fields    => FT_STREAM_READ_FIELDS
+
+        - Many  internal functions  have  been renamed  to follow  the
+          FT_<Object>_<Method> pattern.  For example:
+
+            FT_Seek_Stream       => FT_Stream_Seek
+            FT_Read_Stream_At    => FT_Stream_ReadAt
+            FT_Done_Stream       => FT_Stream_Close
+            FT_New_Stream        => FT_Stream_Open
+            FT_New_Memory_Stream => FT_Stream_OpenMemory
+            FT_Extract_Frame     => FT_Stream_ExtractFrame
+
+          Note that method names do not contain `_'.
+
+        - The FT_ALLOC_ARRAY  and FT_REALLOC_ARRAY have  been replaced
+          with  FT_NEW_ARRAY and  FT_RENEW_ARRAY which  do not  take a
+          type  as the  fourth argument.   Instead, the  array element
+          type  size is computed  automatically from  the type  of the
+          target pointer used.
+
+        - A  new object  class, FT_CMap,  has been  introduced.  These
+          internal  objects are  used to  model character  maps.  This
+          eases  the support  of additional  charmap types  within the
+          engine.
+
+        - A new  configuration file named `ftstdlib.h'  has been added
+          to `include/freetype/config'.  It  is used to define aliases
+          for  _every_ routine  of the  ISO  C library  that the  font
+          engine   uses.    Each    aliases   has   a   `ft_'   prefix
+          (e.g. `ft_strlen' is an alias for `strlen').
+
+          This is  used to  ease the porting  of FreeType 2  to exotic
+          runtime environments where the ISO C Library isn't available
+          (e.g.  XFree86 extension modules).
+
+      More details are available in the `ChangeLog' file.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.9 and 2.0.8
+
+  I. IMPORTANT BUG FIXES
+
+    - Certain fonts like `foxjump.ttf' contain broken name tables with
+      invalid entries and wild offsets.  This caused FreeType to crash
+      when trying to load them.
+
+      The  SFNT `name'  table  loader has  been  fixed to  be able  to
+      support these strange fonts.
+
+      Moreover, the code  in charge of processing this  table has been
+      changed  to always favour  Windows-formatted entries  over other
+      ones.  Hence,  a font that works  on Windows but not  on the Mac
+      will  load cleanly in  FreeType and  report accurate  values for
+      Family & PostScript names.
+
+    - The CID font driver has been fixed.  It unfortunately returned a
+      Postscript   Font   name   with   a   leading   slash,   as   in
+      `/MunhwaGothic-Regular'.
+
+    - FreeType  2 should now  compile fine  on AIX  4.3.3 as  a shared
+      library.
+
+    - A  bug  in the  Postscript  hinter  has  been found  and  fixed,
+      removing un-even stem widths at small pixel sizes (like 14-17).
+
+      This  improves the  quality of  a certain  number  of Postscript
+      fonts.
+
+
+  II. NEW FEATURES
+
+    - A  new function  named  `FT_Library_Version' has  been added  to
+      return  the current  library's major,  minor, and  patch version
+      numbers.   This is  important since  the  macros FREETYPE_MAJOR,
+      FREETYPE_MINOR,  and  FREETYPE_PATCH  cannot  be used  when  the
+      library is dynamically linked by a program.
+
+    - Two   new  APIs   have  been   added:   `FT_Get_First_Char'  and
+      `FT_Get_Next_Char'.
+
+      Together,  these can  be used  to iterate  efficiently  over the
+      currently  selected  charmap of  a  given  face.   Read the  API
+      reference for more details.
+
+
+  III. MISCELLANEOUS
+
+    - The FreeType sources are  under heavy internal re-factoring.  As
+      a consequence,  we have created  a branch named `STABLE'  on the
+      CVS to hold all future releases/fixes in the 2.0.x family.
+
+      The  HEAD  branch  now  contains  the  re-factored  sources  and
+      shouldn't  be used for  testing or  packaging new  releases.  In
+      case you  would like  to access the  2.0.9 sources from  our CVS
+      repository, use the tag `VER-2-0-9'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.8 and 2.0.7
+
+  I. IMPORTANT BUG FIXES
+
+    - There was  a small but  nasty bug in  `freetype-config.in' which
+      caused the `freetype-config' script to fail on Unix.
+
+      This didn't prevent the installation  of the library or even its
+      execution, but caused problems  when trying to compile many Unix
+      packages that depend on it.
+
+    - Some TrueType or OpenType fonts embedded in PDF documents do not
+      have  a  'cmap',  'post'  and  'name'  as  is  required  by  the
+      specification.  FreeType no longer refuses to load such fonts.
+
+    - Various fixes to the PCF font driver.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.7 and 2.0.6
+
+  I. IMPORTANT BUG FIXES
+
+    - Fixed  two  bugs in  the  Type 1  font  driver.   The first  one
+      resulted in a memory leak in subtle cases.  The other one caused
+      FreeType to crash when  trying to load `.gsf' files (Ghostscript
+      so-called Postscript fonts).
+
+      (This  made _many_  KDE applications  crash on  certain systems.
+       FreeType _is_ becoming a critical system component on Linux :-)
+
+    - Fixed a memory leak in the CFF font driver.
+
+    - Fixed a memory leak in the PCF font driver.
+
+    - Fixed       the        Visual       C++       project       file
+      `builds/win32/visualc/freetype.dsp' since  it didn't include the
+      Postscript hinter component, causing errors at build time.
+
+    - Fixed a  small rendering bug  in the anti-aliased  renderer that
+      only  occurred when  trying to  draw  thin (less  than 1  pixel)
+      strokes.
+
+    - Fixed  `builds/unix/freetype2.a4' which  is used  to  generate a
+      valid `freetype2.m4' for use with autoconf.
+
+    - Fixed the OpenVMS Makefiles.
+
+
+  II. MISCELLANEOUS
+
+    - Added  `configure'  and   `install'  scripts  to  the  top-level
+      directory.  A GNU-style installation is thus now easily possible
+      with
+
+        ./configure  <options>
+        make
+        make install
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.6 and 2.0.5
+
+  I. IMPORTANT BUG FIXES
+
+    - It wasn't possible to load embedded bitmaps when the auto-hinter
+      was used.  This is now fixed.
+
+    - The TrueType  font driver  didn't load some  composites properly
+      (the  sub-glyphs  were  slightly  shifted,  and  this  was  only
+      noticeable when using monochrome rendering).
+
+    - Various  fixes  to the  auto-hinter.   They  merely improve  the
+      output of sans-serif fonts.   Note that there are still problems
+      with serifed fonts and composites (accented characters).
+
+    - All scalable  font drivers erroneously  returned un-fitted glyph
+      advances when hinting was  requested.  This created problems for
+      a number  of layout applications.  This  is a very  old bug that
+      got  undetected mainly  because most  test/demo  program perform
+      rounding explicitly or implicitly (through the cache).
+
+    - `FT_Glyph_To_Bitmap' did erroneously  modify the source glyph in
+      certain cases.
+
+    - `glnames.py'  still contained  a bug  that made  FreeType return
+      invalid names for certain glyphs.
+
+    - The  library crashed  when  loading certain  Type  1 fonts  like
+      `sadn.pfb'  (`Stalingrad  Normal'),   which  appear  to  contain
+      pathetic font info dictionaries.
+
+    - The TrueType glyph  loader is now much more  paranoid and checks
+      everything when loading a given glyph image.  This was necessary
+      to avoid problems (crashes and/or memory overwrites) with broken
+      fonts that came from a really buggy automatic font converter.
+
+
+  II. IMPORTANT UPDATES AND NEW FEATURES
+
+    - Important updates to the Mac-specific parts of the library.
+
+    - The caching sub-system has  been completely re-designed, and its
+      API has  evolved (the  old one is  still supported  for backward
+      compatibility).
+
+      The documentation for it is  not yet completed, sorry.  For now,
+      you are encouraged to continue  using the old API.  However, the
+      ftview  demo program in  the ft2demos  package has  already been
+      updated to use the new caching functions.
+
+    - A new charmap cache is provided too.  See `FTC_CMapCache'.  This
+      is useful to perform  character code -> glyph index translations
+      quickly, without the need for an opened FT_Face.
+
+    - A NEW POSTSCRIPT HINTER module  has been added to support native
+      hints in  the following  formats: PostScript Type  1, PostScript
+      CID, and CFF/CEF.
+
+      Please test!  Note that  the auto-hinter produces better results
+      for a number of  badly-hinted fonts (mostly auto-generated ones)
+      though.
+
+    - A memory debugger is now  part of the standard FreeType sources.
+      To      enable      it,      define      FT_DEBUG_MEMORY      in
+      <freetype/config/ftoption.h>, and recompile the library.
+
+      Additionally, define  the _environment_ variable FT_DEBUG_MEMORY
+      and run any program using FreeType.  When the library is exited,
+      a  summary  of memory  footprints  and  possible  leaks will  be
+      displayed.
+
+      This works transparently with  _any_ program that uses FreeType.
+      However, you  will need a lot  of memory to  use this (allocated
+      blocks are never  released to the heap to  detect double deletes
+      easily).
+
+
+  III. MISCELLANEOUS
+
+    - We  are  aware  of  subtle  differences between  the  output  of
+      FreeType  versions   1  and  2  when  it   comes  to  monochrome
+      TrueType-hinted glyphs.   These are  most probably due  to small
+      differences in the monochrome rasterizers and will be worked out
+      in an upcoming release.
+
+    - We have decided to fork the sources in a `stable' branch, and an
+      `unstable' one, since FreeType  is becoming a critical component
+      of many Unix systems.
+
+      The next  bug-fix releases of  the library will be  named 2.0.7,
+      2.0.8, etc.,  while the `2.1'  branch will contain a  version of
+      the sources where we will start major reworking of the library's
+      internals, in order to produce FreeType 2.2.0 (or even 3.0) in a
+      more distant future.
+
+      We  also hope  that this  scheme will  allow much  more frequent
+      releases than in the past.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.5 and 2.0.4
+
+  NOTE THAT 2.0.5 DOES NOT CONTAIN THE POSTSCRIPT HINTER.  THIS MODULE
+  WILL BE PART OF THE NEXT RELEASE (EITHER 2.0.6 or 2.1)
+
+  - Fixed a bug that made  certain glyphs, like `Cacute', `cacute' and
+    `lslash'  unavailable from Unicode  charmaps of  Postscript fonts.
+    This prevented the correct display of Polish text, for example.
+
+  - The kerning table of Type 1 fonts was loaded by FreeType, when its
+    AFM    file    was    attached    to    its    face,    but    the
+    FT_FACE_FLAG_HAS_KERNING   bit  flags   was  not   set  correctly,
+    preventing FT_Get_Kerning to return meaningful values.
+
+  - Improved  SFNT (TrueType  & OpenType)  charmap  support.  Slightly
+    better performance, as well as support for the new formats defined
+    by the OpenType 1.3 specification (8, 10, and 12)
+
+  - Fixed a  serious typo in `src/base/ftcalc.c'  which caused invalid
+    computations in certain rare cases, producing ugly artefacts.
+
+  - The  size  of the  EM  square is  computed  with  a more  accurate
+    algorithm for Postscript fonts.   The old one caused slight errors
+    with embedded fonts found in PDF documents.
+
+  - Fixed  a  bug in  the  cache  manager  that prevented  normal  LRU
+    behaviour  within the cache  manager, causing  unnecessary reloads
+    (for FT_Face and FT_Size objects only).
+
+  - Added  a new  function named  `FT_Get_Name_Index' to  retrieve the
+    glyph index of a given glyph name, when found in a face.
+
+  - Added  a new function  named `FT_Get_Postscript_Name'  to retrieve
+    the `unique' Postscript font name of a given face.
+
+  - Added   a   new   public   header  size   named   FT_SIZES_H   (or
+    <freetype/ftsizes.h>) providing  new FT_Size-management functions:
+    FT_New_Size, FT_Activate_Size, FT_Done_Size.
+
+  - Fixed a  reallocation bug that  generated a dangling  pointer (and
+    possibly    memory    leaks)    with    Postscript    fonts    (in
+    src/psaux/psobjs.c).
+
+  - Many fixes for 16-bit correctness.
+
+  - Removed many pedantic compiler warnings from the sources.
+
+  - Added an Amiga build directory in `builds/amiga'.
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.4 and 2.0.3
+
+  - Fixed a rather annoying bug that was introduced in 2.0.3.  Namely,
+    the font  transformation set through  FT_Set_Transform was applied
+    twice to auto-hinted glyphs, resulting in incorrectly rotated text
+    output.
+
+  - Fixed _many_  compiler warnings.   FT2 should now  compile cleanly
+    with Visual  C++'s most pedantic warning level  (/W4).  It already
+    compiled fine with GCC and a few other compilers.
+
+  - Fixed a bug  that prevented the linear advance  width of composite
+    TrueType glyphs to be correctly returned.
+
+  - Fixed    the    Visual    C++    project    files    located    in
+    `builds/win32/visualc' (previous versions  used older names of the
+    library).
+
+  - Many  32-bit constants  have an  `L' appended  to their  value, in
+    order to improve the 16-bitness  of the code.  Someone is actually
+    trying to use FT2 on an Atari ST machine!
+
+  - Updated  the  `builds/detect.mk' file  in  order to  automatically
+    build FT2  on AIX systems.   AIX uses `/usr/sbin/init'  instead of
+    `/sbin/init' and wasn't previously  detected as a Unix platform by
+    the FreeType build system.
+
+  - Updated  the  Unix-specific  portions  of the  build  system  (new
+    libtool version, etc.).
+
+  - The  SFNT kerning  loader now  ensures  that the  table is  sorted
+    (since some problem fonts do not meet this requirement).
+
+
+=======================================================================
+
+CHANGES BETWEEN 2.0.3 and 2.0.2
+
+  I. CHANGES TO THE MODULES / FONT DRIVERS
+
+    - THE  AUTO-HINTER HAS  BEEN SLIGHTLY  IMPROVED, in  order  to fix
+      several annoying artefacts, mainly:
+
+        - Blue  zone alignment  of  horizontal stems  wasn't performed
+          correctly, resulting in artefacts  like the `d' being placed
+          one pixel below the `b' in some fonts like Time New Roman.
+
+        - Overshoot thresholding  wasn't performed correctly, creating
+          unpleasant artefacts at large character pixel sizes.
+
+        - Composite glyph loading has  been simplified.  This gets rid
+          of  various artefacts  where the  components of  a composite
+          glyphs were not correctly spaced.
+
+      These are  the last changes to the  current auto-hinting module.
+      A new  hinting sub-system is currently  in the work  in order to
+      support native hints  in Type 1 / CFF /  OpenType fonts, as well
+      as globally improve rendering.
+
+    - The  PCF  driver has  been  fixed.   It  reported invalid  glyph
+      dimensions for the fonts available on Solaris.
+
+    - The Type  1, CID and CFF  drivers have been modified  to fix the
+      computation of the EM size.
+
+    - The Type 1  driver has been fixed to avoid  a dangerous bug that
+      crashed the library with non-conforming fonts (i.e. ones that do
+      not place the .notdef glyph at position 0).
+
+    - The TrueType  driver had a  rather subtle bug  (dangling pointer
+      when loading  composite glyphs) that could crash  the library in
+      rare occasions!
+
+
+  II. HIGH-LEVEL API CHANGES
+
+    - The error  code enumeration values have been  changed.  An error
+      value  is decomposed  in  a  generic error  code,  and a  module
+      number.  see <freetype/fterrors.h> for details.
+
+    - A   new  public   header   file  has   been  introduced,   named
+      FT_TRIGONOMETRY_H     (include/freetype/fttrig.h),     providing
+      trigonometric functions to  compute sines, cosines, arctangents,
+      etc. with 16.16 fixed precision.  The implementation is based on
+      the CORDIC  algorithm and is very fast  while being sufficiently
+      accurate.
+
+
+  III. INTERNALS
+
+    - Added  BeOS-specific files  in the  old build  sub-system.  Note
+      that no changes were required to compile the library with Jam.
+
+    - The  configuration  is now  capable  of automatically  detecting
+      64-bit integers  on a set  of predefined compilers  (GCC, Visual
+      C++, Borland C++) and will use them by default.  This provides a
+      small performance boost.
+
+    - A  small memory leak  that happened  when opening  0-sized files
+      (duh!)  have been fixed.
+
+    - Fixed bezier  stack depth  bug in the  routines provided  by the
+      FT_BBOX_H  header   file.   Also  fixed  similar   bugs  in  the
+      rasterizers.
+
+    - The outline bounding  box code has been rewritten  to use direct
+      computations,  instead of  bezier sub-division,  to  compute the
+      exact bounding box of glyphs.   This is slightly slower but more
+      accurate.
+
+    - The build system has been  improved and fixed, mainly to support
+      `make'  on Windows  2000  correctly, avoid  problems with  `make
+      distclean' on non Unix systems, etc.
+
+    - Hexadecimal  constants  have been  suffixed  with  `U' to  avoid
+      problems with certain compilers on 64-bit platforms.
+
+    - A new directory named `src/tools' has been created.  It contains
+      Python scripts and simple unit test programs used to develop the
+      library.
+
+    - The DocMaker tool has been  moved from `docs' to `src/tools' and
+      has been updated with the following:
+
+         - Now accepts the `--title=XXXX' or `-t XXXX' option from the
+           command line to set the project's name in the generated API
+           reference.
+
+         - Now accepts the `--output=DIR'  or `-o DIR' option from the
+           command line to set  the output directory for all generated
+           HTML files.
+
+         - Now accepts the `--prefix=XXXX' or `-p XXX' option from the
+           command  line  to  set  the  file prefix  to  use  for  all
+           generated HTML files.
+
+         - Now generates the current  time/data on each generated page
+           in order to distinguish between versions.
+
+      DocMaker  can be  used with  other  projects now,  not only  FT2
+      (e.g. MLib, FTLayout, etc.).
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.2 and 2.0.1
+
+  I. CHANGES TO THE MODULES / FONT DRIVERS
+
+    - THE TRUETYPE BYTECODE INTERPRETER IS NOW TURNED OFF, in order to
+      avoid legal problems  with the Apple patents.  It  seems that we
+      mistakenly  turned this option  on in  previous releases  of the
+      build.
+
+      Note that if  you want to use the  bytecode interpreter in order
+      to get high-quality TrueType  rendering, you will need to toggle
+      by        hand        the        definition        of        the
+      TT_CONFIG_OPTION_BYTECODE_INTERPRETER   macro    in   the   file
+      `include/freetype/config/ftoption.h'.
+
+    - The CFF driver has been improved by Tom Kacvinsky and Sander van
+      der Wal:
+
+      * Support for `seac' emulation.
+      * Support for `dotsection'.
+      * Support for retrieving glyph names through
+        `FT_Get_Glyph_Name'.
+
+      The first two items are necessary to correctly a large number of
+      Type 1 fonts converted to the CFF formats by Adobe Acrobat.
+
+    - The Type 1 driver was also improved by Tom & others:
+
+      * Better EM size computation.
+      * Better support for synthetic (transformed) fonts.
+      * The  Type 1  driver returns  the charstrings  corresponding to
+        each glyph in the  `glyph->control_data' field after a call to
+        `FT_Load_Glyph' (thanks Ha Shao).
+
+    - Various other bugfixes, including the following:
+
+      * Fixed a nasty memory leak in the Type 1 driver.
+      * The autohinter  and the pcf  driver used static  writable data
+        when they shouldn't.
+      * Many casts were added to  make the code more 64-bits safe.  It
+        also now compiles on Windows XP 64-bits without warnings.
+      * Some incorrect writable statics were removed in the `autohint'
+        and `pcf' drivers.  FreeType 2 now compiles on Epoc again.
+
+
+  II. CHANGES TO THE HIGH-LEVEL API
+
+    - The library header files inclusion scheme has been changed.  The
+      old scheme looked like:
+
+        #include <freetype/freetype.h>
+        #include <freetype/ftglyph.h>
+        #include <freetype/ftcache.h>
+        #include <freetype/cache/ftimage.h>
+
+      Now you should use:
+
+        #include <ft2build.h>
+        #include FT_FREETYPE_H
+        #include FT_GLYPH_H
+        #include FT_CACHE_H
+        #include FT_CACHE_IMAGE_H
+
+      NOTE THAT  THE OLD  INCLUSION SCHEME WILL  STILL WORK  WITH THIS
+      RELEASE.  HOWEVER, WE  DO NOT GUARANTEE THAT THIS  WILL STILL BE
+      TRUE IN THE NEXT ONE (A.K.A. FREETYPE 2.1).
+
+      The  file <ft2build.h>  is used  to define  the  header filename
+      macros.  The complete and  commented list of macros is available
+      in the API reference under the section name `Header File Macros'
+      in Chapter I.
+
+      For more information, see section I of the following document:
+
+        http://www.freetype.org/
+          freetype2/docs/tutorial/step1.html
+
+      or
+
+        http://freetype.sourceforge.net/
+          freetype2/docs/tutorial/step1.html
+
+    - Many, many comments have been added to the public source file in
+      order to  automatically generate  the API Reference  through the
+      `docmaker.py' Python script.
+
+      The latter has been updated  to support the grouping of sections
+      in chapters and better index sort.  See:
+
+        http://www.freetype.org/freetype2/docs/reference/ft2-toc.html
+
+
+  III. CHANGES TO THE BUILD PROCESS
+
+    - If you  are not  building FreeType 2  with its own  build system
+      (but with your own Makefiles or project files), you will need to
+      be  aware that  the  build  process has  changed  a little  bit.
+
+      You don't  need to put the  `src' directory in  the include path
+      when  compiling  any FT2  component.   Instead,  simply put  the
+      component's directory in the current include path.
+
+      So, if you were doing something like:
+
+        cc -c -Iinclude -Isrc src/base/ftbase.c
+
+      change the line to:
+
+        cc -c -Iinclude -Isrc/base src/base/ftbase.c
+
+      If you were doing something like:
+
+        cd src/base
+        cc -c -I../../include -I.. ftbase.c
+
+      change it to:
+
+        cd src/base
+        cc -c -I../../include ftbase.c
+
+
+======================================================================
+
+CHANGES BETWEEN 2.0.1 and 2.0
+
+  2.0.1 introduces a few changes:
+
+    - Fixed many bugs related to  the support of CFF / OpenType fonts.
+      These  formats are  now much  better supported  though  there is
+      still work planned to  deal with charset tables and PDF-embedded
+      CFF files that use the old `seac' command.
+
+    - The  library could not  be compiled  in debug  mode with  a very
+      small  number   of  C  compilers   whose  pre-processors  didn't
+      implement the `##'  directive correctly (i.e. per se  the ANSI C
+      specification!)  An elegant fix was found.
+
+    - Added  support for  the  free Borland  command-line C++  Builder
+      compiler.   Use `make  setup bcc32'.   Also fixed  a  few source
+      lines that generated new warnings with BCC32.
+
+    - Fixed a bug in FT_Outline_Get_BBox when computing the extrema of
+      a conic Bezier arc.
+
+    - Updated the INSTALL file to add IDE compilation.
+
+    - Other  minor bug  fixes,  from  invalid Type  1  style flags  to
+      correct   support   of  synthetic   (obliqued)   fonts  in   the
+      auto-hinter, better support for embedded bitmaps in a SFNT font.
+
+    - Fixed some problems with `freetype-config'.
+
+  Finally, the `standard' scheme for including FreeType headers is now
+  gradually changing,  but this will  be explained in a  later release
+  (probably 2.0.2).
+
+  And very  special thanks to Tom Kacvinsky  and YAMANO-UCHI Hidetoshi
+  for their contributions!
+
+
+======================================================================
+
+CHANGES BETWEEN beta8 and 2.0
+
+  - Changed  the default  installation  path for  public headers  from
+    `include/freetype' to `include/freetype2'.
+
+    Also added a new `freetype-config' that is automatically generated
+    and installed  on Unix and  Cygwin systems.  The script  itself is
+    used to retrieve the current  install path, C compilation flags as
+    well as linker flags.
+
+  - Fixed several small bugs:
+
+    * Incorrect max advance width for fixed-pitch Type 1 fonts.
+    * Incorrect glyph names for certain TrueType fonts.
+    * The  glyph advance  was not  copied when  FT_Glyph_To_Bitmap was
+      called.
+    * The  linearHoriAdvance  and  linearVertAdvance  fields  were not
+      correctly returned for glyphs processed by the auto-hinter.
+    * `type1z'  renamed back to  `type1'; the  old `type1'  module has
+      been removed.
+
+  - Revamped the  build system  to make it  a lot more  generic.  This
+    will  allow us  to  re-use  nearly un-modified  in  lots of  other
+    projects (including FreeType Layout).
+
+  - Changed `cid' to use `psaux' too.
+
+  - Added the  cache sub-system.  See <freetype/ftcache.h>  as well as
+    the sources  in `src/cache'.  Note  that it compiles but  is still
+    untested for now.
+
+  - Updated `docs/docmaker.py', a draft  API reference is available at
+    http://www.freetype.org/ft2api.html.
+
+  - Changed `type1' to use `psaux'.
+
+  - Created a  new module named  `psaux' to hold  the Type 1 &  Type 2
+    parsing routines.  It should be  used by `type1', `cid', and `cff'
+    in the future.
+
+  - Fixed an important bug in `FT_Glyph_Get_CBox'.
+
+  - Fixed  some compiler  warnings  that happened  since the  TrueType
+    bytecode decoder was deactivated by default.
+
+  - Fixed two memory leaks:
+
+    * The    memory   manager   (16    bytes)   isn't    released   in
+      FT_Done_FreeType!
+    * Using custom input streams, the  copy of the original stream was
+      never released.
+
+  - Fixed the  auto-hinter by performing automatic  computation of the
+    `filling direction' of each glyph.   This is done through a simple
+    and  fast approximation, and  seems to  work (problems  spotted by
+    Werner though).  The Arphic fonts are a lot nicer though there are
+    still a lot of things to do to handle Asian fonts correctly.
+
+
+======================================================================
+
+BETA-8 (RELEASE CANDIDATE) CHANGES
+
+  - Deactivated the TrueType bytecode interpreter by default.
+
+  - Deactivated the `src/type1' font driver.  Now `src/type1z' is used
+    by default.
+
+  - Updates to the build system.  We now compile the library correctly
+    under  Unix  system  through  `configure' which  is  automatically
+    called on the first `make' invocation.
+
+  - Added the auto-hinting module!  Fixing some bugs here and there.
+
+  - Found some bugs in the  composite loader (seac) of the Type1-based
+    font drivers.
+
+  - Renamed the directory `freetype2/config' to `freetype2/builds' and
+    updated all relevant files.
+
+  - Found a memory leak in the `type1' driver.
+
+  - Incorporated Tom's patches to  support flex operators correctly in
+    OpenType/CFF fonts.  Now all I need is to support pure CFF and CEF
+    fonts to be done with this driver :-)
+
+  - Added the  Windows FNT/FON driver in `src/winfonts'.   For now, it
+    always  `simulates'   a  Unicode  charmap,  so   it  shouldn't  be
+    considered completed right now.
+
+    It  is there  to be  more a  proof of  concept than  anything else
+    anyway.  The driver is a single  C source file, that compiles to 3
+    Kb of code.
+
+    I'm  still working on  the PCF/BDF  drivers, but  I'm too  lazy to
+    finish them now.
+
+  - CHANGES TO THE HIGH-LEVEL API
+
+    * FT_Get_Kerning has a new parameter that allows you to select the
+      coordinates of the kerning  vector (font units, scaled, scaled +
+      grid-fitted).
+    * The  outline functions are  now in <freetype/ftoutln.h>  and not
+      part of <freetype/freetype.h> anymore.
+    * <freetype/ftmodule.h>    now     contains    declarations    for
+       FT_New_Library, FT_Done_Library, FT_Add_Default_Modules.
+    * The so-called convenience  functions have moved from `ftoutln.c'
+      to  `ftglyph.c',  and  are  thus available  with  this  optional
+      component    of   the   library.     They   are    declared   in
+      <freetype/ftglyph.h> now.
+    * Anti-aliased  rendering is now  the default  for FT_Render_Glyph
+      (i.e. corresponds to render_mode == 0 == ft_render_mode_normal).
+      To generate a monochrome bitmap, use ft_render_mode_mono, or the
+      FT_LOAD_MONOCHROME     flag    in    FT_Load_Glyph/FT_Load_Char.
+      FT_LOAD_ANTI_ALIAS is still defined, but values to 0.
+    * <freetype/freetype.h>  now include <freetype/config/ftconfig.h>,
+      solving a few headaches :-)
+    * The type FT_GlyphSlotRec has now a `library' field.
+
+  - CHANGES TO THE `ftglyph.h' API
+
+    This API has  been severely modified in order  to make it simpler,
+    clearer, and more  efficient.  It certainly now looks  like a real
+    `glyph factory'  object, and allows client  applications to manage
+    (i.e.  transform,  bbox  and  render) glyph  images  without  ever
+    knowing their original format.
+
+  - Added  support  for CID-keyed  fonts  to  the  CFF driver.   Maybe
+    support for pure CFF + CEF fonts should come in?
+
+  - Cleaned up  source code in order  to avoid two  functions with the
+    same name.  Also  changed the names of the  files in `type1z' from
+    `t1XXXX' to `z1XXXX' in order to avoid any conflicts.
+
+    `make multi' now works well :-)
+
+    Also removed the use of `cidafm' for now, even if the source files
+    are  still there.  This  functionality will  certainly  go into  a
+    specific module.
+
+  - ADDED SUPPORT FOR THE AUTO-HINTER
+
+    It  works :-) I  have a  demo program  which simply  is a  copy of
+    `ftview'       that      does       a      `FT_Add_Module(library,
+    &autohinter_module_class)' after  library initialization, and Type
+    1 & OpenType/CFF fonts are now hinted.
+
+    CID  fonts are  not hinted,  as they  include no  charmap  and the
+    auto-hinter doesn't include  `generic' global metrics computations
+    yet.
+
+    Now, I need to release this thing to the FreeType 2 source.
+
+  - CHANGES TO THE RENDERER MODULES
+
+    The  monochrome  and smooth  renderers  are  now  in two  distinct
+    directories, namely `src/raster1' and `src/smooth'.  Note that the
+    old `src/renderer' is now gone.
+
+    I ditched  the 5-gray-levels renderers.  Basically,  it involved a
+    simple #define toggle in 'src/raster1/ftraster.c'.
+
+    FT_Render_Glyph,  FT_Outline_Render  &  FT_Outline_Get_Bitmap  now
+    select the best renderer  available, depending on render mode.  If
+    the current renderer for a  given glyph image format isn't capable
+    of supporting  the render mode, another  one will be  found in the
+    library's list.   This means that client applications  do not need
+    to  switch or  set  the  renderers themselves  (as  in the  latest
+    change), they'll get what they want automatically.  At last.
+
+    Changed the demo programs accordingly.
+
+  - MAJOR INTERNAL REDESIGN:
+
+    A lot of internal modifications  have been performed lately on the
+    source in order to provide the following enhancements:
+
+    * More generic module support:
+
+      The FT_Module  type is  now defined to  represent a handle  to a
+      given  module.   The  file  <freetype/ftmodule.h>  contains  the
+      FT_Module_Class definition, as well as the module-loading public
+      API.
+
+      The  FT_Driver type  is still  defined, and  still  represents a
+      pointer to  a font driver.  Note that  FT_Add_Driver is replaced
+      by FT_Add_Module, FT_Get_Driver by FT_Get_Module, etc.
+
+    * Support for generic glyph image types:
+
+      The FT_Renderer  type is a pointer  to a module  used to perform
+      various operations on glyph image.
+
+      Each renderer is  capable of handling images in  a single format
+      (e.g. ft_glyph_format_outline).  Its functions are used to:
+
+      - transform an glyph image
+      - render a glyph image into a bitmap
+      - return the control box (dimensions) of a given glyph image
+
+      The scan converters `ftraster.c' and `ftgrays.c' have been moved
+      to the new directory `src/renderer', and are used to provide two
+      default renderer modules.
+
+      One corresponds  to the `standard' scan-converter,  the other to
+      the `smooth' one.
+
+      he  current  renderer  can  be  set  through  the  new  function
+      FT_Set_Renderer.
+
+      The old raster-related function FT_Set_Raster, FT_Get_Raster and
+      FT_Set_Raster_Mode have now disappeared, in favor of the new:
+
+        FT_Get_Renderer
+        FT_Set_Renderer
+
+      See the file <freetype/ftrender.h> for more details.
+
+      These  changes  were  necessary  to properly  support  different
+      scalable formats in the future, like bi-color glyphs, etc.
+
+    * Glyph loader object:
+
+      A  new  internal  object,  called  a  'glyph  loader'  has  been
+      introduced in the base layer.  It is used by all scalable format
+      font drivers to load glyphs and composites.
+
+      This object  has been  created to reduce  the code size  of each
+      driver,  as  each  one  of  them  basically  re-implemented  its
+      functionality.
+
+      See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
+      more information.
+
+    * FT_GlyphSlot has new fields:
+
+      In  order   to  support  extended  features   (see  below),  the
+      FT_GlyphSlot structure has a few new fields:
+
+      linearHoriAdvance:
+
+        This  field  gives  the   linearly  scaled  (i.e.  scaled  but
+        unhinted) advance  width for the  glyph, expressed as  a 16.16
+        fixed pixel value.  This is useful to perform WYSIWYG text.
+
+      linearVertAdvance:
+        This field  gives the linearly  scaled advance height  for the
+        glyph  (relevant in  vertical  glyph layouts  only).  This  is
+        useful to perform WYSIWYG text.
+
+        Note that  the two above field replace  the removed `metrics2'
+        field in the glyph slot.
+
+      advance:
+        This field is a vector  that gives the transformed advance for
+        the glyph.   By default, it corresponds to  the advance width,
+        unless  FT_LOAD_VERTICAL_LAYOUT  was  specified  when  calling
+        FT_Load_Glyph or FT_Load_Char.
+
+      bitmap_left:
+        This  field gives  the  distance in  integer  pixels from  the
+        current pen position  to the left-most pixel of  a glyph image
+        IF IT IS  A BITMAP.  It is only valid  when the `format' field
+        is set to `ft_glyph_format_bitmap', for example, after calling
+        the new function FT_Render_Glyph.
+
+      bitmap_top:
+        This  field gives  the  distance in  integer  pixels from  the
+        current pen position (located on the baseline) to the top-most
+        pixel of the  glyph image IF IT IS  A BITMAP.  Positive values
+        correspond to upwards Y.
+
+      loader:
+        This  is a  new  private  field for  the  glyph slot.   Client
+        applications should not touch it.
+
+
+    * Support for transforms and direct rendering in FT_Load_Glyph:
+
+      Most of the functionality found in <freetype/ftglyph.h> has been
+      moved to the core library.  Hence, the following:
+
+      - A   transform   can   be   specified  for   a   face   through
+        FT_Set_Transform.  this transform  is applied by FT_Load_Glyph
+        to  scalable glyph  images (i.e.  NOT TO  BITMAPS)  before the
+        function returns, unless the bit flag FT_LOAD_IGNORE_TRANSFORM
+        was set in the load flags.
+
+      - Once  a  glyph image  has  been  loaded,  it can  be  directly
+        converted  to  a  bitmap  by  using  the  new  FT_Render_Glyph
+        function.  Note that this  function takes the glyph image from
+        the glyph slot,  and converts it to a  bitmap whose properties
+        are returned  in `face.glyph.bitmap', `face.glyph.bitmap_left'
+        and `face.glyph.bitmap_top'.  The  original native image might
+        be lost after the conversion.
+
+      - When using the new  bit flag FT_LOAD_RENDER, the FT_Load_Glyph
+        and   FT_Load_Char   functions   will   call   FT_Render_Glyph
+        automatically when needed.
+
+  - Reformatted all  modules source  code in order  to get rid  of the
+    basic data types redifinitions (i.e. `TT_Int' instead of `FT_Int',
+    `T1_Fixed'  instead  of  `FT_Fixed').  Hence  the  format-specific
+    prefixes like  `TT_', `T1_',  `T2_' and `CID_'  are only  used for
+    relevant structures.
+
+
+======================================================================
+
+OLD CHANGES FOR BETA 7
+
+  - bug-fixed the  OpenType/CFF parser.  It  now loads and displays my
+    two  fonts nicely,  but I'm  pretty certain  that more  testing is
+    needed :-)
+
+  - fixed the crummy Type 1 hinter, it now handles accented characters
+    correctly (well, the accent is  not always well placed, but that's
+    another problem..)
+
+  - added the CID-keyed Type 1 driver in `src/cid'.  Works pretty well
+    for only 13 Kb of code  ;-) Doesn't read AFM files though, nor the
+    really useful CMAP files..
+
+  - fixed  two  bugs  in  the  smooth  renderer  (src/base/ftgrays.c).
+    Thanks to Boris Letocha for spotting them and providing a fix.
+
+  - fixed potential `divide by zero' bugs in ftcalc.c.
+
+  - added source  code for  the OpenType/CFF driver  (still incomplete
+    though..)
+
+  - modified the  SFNT driver slightly  to perform more  robust header
+    checks  in TT_Load_SFNT_Header.  This prevents certain  font files
+    (e.g.  some  Type  1  Multiple  Masters)  from  being  incorrectly
+    `recognized' as TrueType font files..
+
+  - moved a lot of stuff from  the TrueType driver to the SFNT module,
+    this   allows   greater   code   re-use   between   font   drivers
+    (e.g. TrueType, OpenType, Compact-TrueType, etc..)
+
+  - added a tiny segment cache to the SFNT Charmap 4 decoder, in order
+    to minimally speed it up..
+
+  - added  support for  Multiple Master  fonts in  `type1z'.  There is
+    also a new file named <freetype/ftmm.h> which defines functions to
+    manage them from client applications.
+
+    The new file `src/base/ftmm.c' is also optional to the engine..
+
+  - various  formatting changes (e.g.  EXPORT_DEF ->  FT_EXPORT_DEF) +
+    small bug fixes in FT_Load_Glyph, the `type1' driver, etc..
+
+  - a minor fix to the Type 1 driver to let them apply the font matrix
+    correctly (used for many oblique fonts..)
+
+  - some fixes for 64-bit systems (mainly changing some FT_TRACE calls
+    to use %p instead of %lx).  Thanks to Karl Robillard.
+
+  - fixed  some bugs  in  the sbit  loader (src/base/sfnt/ttsbit.c)  +
+    added  a new flag,  FT_LOAD_CROP_BITMAP to  query that  bitmaps be
+    cropped when  loaded from a file  (maybe I should  move the bitmap
+    cropper to the base layer ??).
+
+  - changed the default  number of gray levels of  the smooth renderer
+    to 256  (instead of  the previous 128).  Of course, the  human eye
+    can't see any difference ;-)
+
+  - removed TT_MAX_SUBGLYPHS,  there is no static limit  on the number
+    of subglyphs in a TrueType font now..
+
+
+======================================================================
+
+OLD CHANGES 16 May 2000
+
+  - tagged `BETA-6'  in the  CVS tree.  This one is a  serious release
+    candidate even though it doesn't incorporate the auto-hinter yet..
+
+  - various obsolete files were removed, and copyright header updated
+
+  - finally  updated  the  standard   raster  to  fix  the  monochrome
+    rendering bug + re-enable  support for 5-gray levels anti-aliasing
+    (suck, suck..)
+
+  - created new header files, and modified sources accordingly:
+
+     <freetype/fttypes.h>
+       - simple FreeType types, without the API
+     <freetype/internal/ftmemory.h>
+       - definition of memory-management macros
+
+  - added   the   `DSIG'   (OpenType   Digital   Signature)   tag   to
+    <freetype/tttags.h>
+
+  - light update/cleaning of the build system + changes to the sources
+    in  order  to  get  rid  of _all_  compiler  warnings  with  three
+    compilers, i.e:
+
+    gcc with `-ansi -pedantic -Wall -W', Visual C++ with `/W3 /WX' and
+    LCC
+
+    IMPORTANT NOTE FOR WIN32-LCC USERS:
+    |
+    |  It seems the C pre-processor  that comes with LCC is broken, it
+    |  doesn't  recognize  the  ANSI  standard  directives  #  and  ##
+    |  correctly   when  one  of   the  argument  is  a  macro.  Also,
+    |  something like:
+    |
+    |     #define F(x)  print##x
+    |
+    |     F(("hello"))
+    |
+    |  will get incorrectly translated to:
+    |
+    |     print "hello")
+    |
+    |  by its pre-processor.  For this reason, you simply cannot build
+    |  FreeType 2 in debug mode with this compiler..
+
+  - yet  another massive grunt work.  I've  changed the  definition of
+    the EXPORT_DEF,  EXPORT_FUNC, BASE_DEF &  BASE_FUNC macros.  These
+    now take an argument, which is the function's return value type.
+
+    This  is necessary to  compile FreeType  as a  DLL on  Windows and
+    OS/2.  Depending on the compiler used, a compiler-specific keyword
+    like  __export or __system  must be  placed before  (VisualC++) or
+    after (BorlandC++) the type..
+
+    Of course, this needed a lot of changes throughout the source code
+    to make it compile again...  All cleaned up now, apparently..
+
+    Note also  that there is a  new EXPORT_VAR macro  defined to allow
+    the   _declaration_    of   an   exportable    public   (constant)
+    variable.  This  is  the   case  of  the  raster  interfaces  (see
+    ftraster.h and ftgrays.h), as well as each module's interface (see
+    sfdriver.h, psdriver.h, etc..)
+
+  - new feature: it  is now possible to pass  extra parameters to font
+                 drivers  when creating  a new  face object.  For now,
+                 this capability is unused.  It could however prove to
+                 be useful in a near future..
+
+      the FT_Open_Args structure was  changes, as well as the internal
+      driver interface  (the specific `init_face'  module function has
+      now a different signature).
+
+  - updated the tutorial (not finished though).
+
+  - updated the top-level BUILD  document
+
+  - fixed  a  potential memory  leak  that  could  occur when  loading
+    embedded bitmaps.
+
+  - added     the     declaration     of     FT_New_Memory_Face     in
+    <freetype/freetype.h>, as  it was  missing from the  public header
+    (the implementation was already in `ftobjs.c').
+
+  - the file <freetype/fterrors.h> has been seriously updated in order
+    to allow  the automatic generation  of error message tables.   See
+    the comments within it for more information.
+
+  - major directory  hierarchy re-organisation.  This was done for two
+    things:
+
+      * first,  to ease  the `manual'  compilation of  the  library by
+        requiring at lot less include paths :-)
+
+      * second,  to  allow  external  programs to  effectively  access
+        internal  data  fields.  For example,  this  can be  extremely
+        useful if  someone wants  to write a  font producer or  a font
+        manager on top of FreeType.
+
+    Basically, you  should now use  the 'freetype/' prefix  for header
+    inclusion, as in:
+
+        #include <freetype/freetype.h>
+        #include <freetype/ftglyph.h>
+
+    Some new include sub-directories are available:
+
+     a. the  `freetype/config' directory,  contains two files  used to
+        configure  the  build  of  the  library.  Client  applications
+        should  not need  to look  at these  normally, but they can if
+        they want.
+
+        #include <freetype/config/ftoption.h>
+        #include <freetype/config/ftconfig.h>
+
+     b. the `freetype/internal'  directory, contains header files that
+        describes library  internals.  These are the header files that
+        were  previously  found  in  the `src/base'  and  `src/shared'
+        directories.
+
+
+    As  usual, the build  system and  the demos  have been  updated to
+    reflect the change..
+
+    Here's a layout of the new directory hierarchy:
+
+    TOP_DIR
+      include/
+         freetype/
+            freetype.h
+            ...
+            config/
+              ftoption.h
+              ftconfig.h
+              ftmodule.h
+
+            internal/
+              ftobjs.h
+              ftstream.h
+              ftcalc.h
+              ...
+
+      src/
+         base/
+            ...
+
+         sfnt/
+         psnames/
+         truetype/
+         type1/
+         type1z/
+
+
+    Compiling a module is now  much easier, for example, the following
+    should work when in the TOP_DIR directory on an ANSI build:
+
+       gcc -c -I./include -I./src/base src/base/ftbase.c
+       gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c
+       etc..
+
+    (of course, using -Iconfig/<system> if you provide system-specific
+     configuration files).
+
+  - updated the structure of FT_Outline_Funcs in order to allow direct
+    coordinate scaling within  the outline decomposition routine (this
+    is  important for virtual  `on' points  with TrueType  outlines) +
+    updates to the rasters to support this..
+
+  - updated  the OS/2  table  loading code  in `src/sfnt/ttload.c'  in
+    order to support version 2 of the table (see OpenType 1.2 spec)
+
+  - created  `include/tttables.h'  and  `include/t1tables.h' to  allow
+    client applications to access some of  the SFNT and T1 tables of a
+    face  with  a  procedural  interface (see  `FT_Get_Sfnt_Table')  +
+    updates to internal source files to reflect the change..
+
+  - some  cleanups in  the source  code to  get rid  of  warnings when
+    compiling with the `-Wall -W -ansi -pedantic' options in gcc.
+
+  - debugged and moved the smooth renderer to `src/base/ftgrays.c' and
+    its header to `include/ftgrays.h'
+
+  - updated TT_MAX_SUBGLYPHS  to 96 as some CJK  fonts have composites
+    with up to 80 sub-glyphs !! Thanks to Werner
+
+
+======================================================================
+
+OLD CHANGES - 14-apr-2000
+
+  - fixed  a bug  in  the  TrueType glyph  loader  that prevented  the
+    correct loading of some CJK glyphs in mingli.ttf
+
+  - improved the standard Type 1 hinter in `src/type1'
+
+  - fixed two bugs  in the experimental Type 1  driver in `src/type1z'
+    to handle the new XFree86 4.0 fonts (and a few other ones..)
+
+  - the smooth  renderer is now  complete and supports  sub-banding to
+    render large glyphs  at high speed.  However, it is still  located
+    in `demos/src/ftgrays.c' and should move to the  library itself in
+    the next  beta.  NOTE: The  smooth  renderer  doesn't  compile  in
+    stand-alone mode anymore, but this should be fixed RSN..
+
+  - introduced convenience  functions to  more easily deal  with glyph
+    images, see  `include/ftglyph.h' for more details, as  well as the
+    new  demo program  named `demos/src/ftstring.c'  that demonstrates
+    its use
+
+  - implemented  FT_LOAD_NO_RECURSE in  both the  TrueType and  Type 1
+    drivers  (this  is required  by  the  auto-hinter  to improve  its
+    results).
+
+  - changed   the  raster   interface,  in   order  to   allow  client
+    applications  to   provide  their   own  span-drawing   callbacks.
+    However,   only   the   smooth   renderer   supports   this.   See
+    `FT_Raster_Params' in the file `include/ftimage.h'.
+
+  - fixed  a small bug  in FT_MulFix  that caused  incorrect transform
+    computation!
+
+  - Note: The tutorial is out-of-date.
+
+
+======================================================================
+
+OLD CHANGES - 12-mar-2000
+
+  - changed  the  layout  of  configuration  files  :  now,  all  ANSI
+    configuration         files         are         located         in
+    `freetype2/config'.  System-specific over-rides  can be  placed in
+    `freetype2/config/<system>'.
+
+  - moved all configuration macros to `config/ftoption.h'
+
+  - improvements in the Type 1 driver with AFM support
+
+  - changed the fields  in the FT_Outline structure :  the old `flags'
+    array is re-named `tags', while all ancient flags are encoded into
+    a single unsigned int named `flags'.
+
+  - introduced     new      flags     in     FT_Outline.flags     (see
+    ft_outline_.... enums in `ftimage.h').
+
+  - changed outline functions to `FT_Outline_<action>' syntax
+
+  - added a smooth anti-alias renderer to the demonstration programs
+
+  - added Mac graphics driver (thanks Just)
+
+  - FT_Open_Face  changed  in  order   to  received  a  pointer  to  a
+    FT_Open_Args descriptor..
+
+  - various  cleanups,  a  few  more API  functions  implemented  (see
+    FT_Attach_File)
+
+  - updated some docs
+
+
+======================================================================
+
+OLD CHANGES - 22-feb-2000
+
+  - introduced the `psnames' module.  It is used to:
+
+      o convert  a Postscript glyph  name into the  equivalent Unicode
+        character code (used by the  Type 1 driver(s) to synthesize on
+        the fly a Unicode charmap).
+
+      o provide an  interface to retrieve the Postscript  names of the
+        Macintosh,  Adobe  Standard &  Adobe  Expert character  codes.
+        (the Macintosh  names are  used by the  SFNT-module postscript
+        names support routines, while the other two tables are used by
+        the Type 1 driver(s)).
+
+  - introduced the `type1z' alternate Type 1 driver.  This is a (still
+    experimental) driver  for the Type  1 format that  will ultimately
+    replace the one  in `src/type1'.  It uses pattern matching to load
+    data from the font, instead of a finite  state analyzer.  It works
+    much better than the `old' driver with `broken' fonts.  It is also
+    much smaller (under 15 Kb).
+
+  - the  Type 1  drivers (both  in `src/type1'  and  `src/type1z') are
+    nearly  complete.  They  both  provide automatic  Unicode  charmap
+    synthesis through  the `psnames' module.  No re-encoding vector is
+    needed.  (note  that they  still  leak  memory  due to  some  code
+    missing, and I'm getting lazy).
+
+    Trivial AFM support has been added to read kerning information but
+    wasn't exactly tested as it should ;-)
+
+  - The TrueType  glyph loader has  been seriously rewritten  (see the
+    file  `src/truetype/ttgload.c'.  It is now  much, much  simpler as
+    well as  easier to read,  maintain and understand  :-) Preliminary
+    versions introduced a  memory leak that has been  reported by Jack
+    Davis, and is now fixed..
+
+  - introduced  the new  `ft_glyph_format_plotter', used  to represent
+    stroked outlines  like Windows `Vector' fonts, and  certain Type 1
+    fonts  like `Hershey'.  The corresponding  raster will  be written
+    soon.
+
+  - FT_New_Memory_Face  is  gone.  Likewise,  FT_Open_Face has  a  new
+    interface that uses a structure  to describe the input stream, the
+    driver (if required), etc..
+
+
+TODO
+
+  - Write FT_Get_Glyph_Bitmap and FT_Load_Glyph_Bitmap
+
+  - Add a function like FT_Load_Character(face, char_code, load_flags)
+    that  would   really  embed  a  call   to  FT_Get_Char_Index  then
+    FT_Load_Glyph to ease developer's work.
+
+  - Update the tutorial!
+
+  - consider adding  support for Multiple  Master fonts in the  Type 1
+    drivers.
+
+  - Test the AFM routines of the  Type 1 drivers to check that kerning
+    information is returned correctly.
+
+  - write a decent auto-gridding component  !! We need this to release
+    FreeType 2.0 gold !
+
+
+less urgent needs:
+
+  - add a CFF/Type2 driver
+  - add a BDF driver
+  - add a FNT/PCF/HBF driver
+  - add a Speedo driver from the X11 sources
+
+
+======================================================================
+
+OLDER CHANGES - 27-jan-2000
+
+  - updated the  `sfnt' module  interface to allow  several SFNT-based
+    drivers to co-exist peacefully
+
+  - updated  the `T1_Face'  type  to better  separate Postscript  font
+    content  from the  rest of  the FT_Face  structure.  Might be used
+    later by the CFF/Type2 driver..
+
+  - added an experimental replacement Type 1 driver featuring advanced
+    (and speedy) pattern matching to retrieve the data from postscript
+    fonts.
+
+  - very minor  changes in the implementation  of FT_Set_Char_Size and
+    FT_Set_Pixel_Sizes (they now implement default to lighten the font
+    driver's code).
+
+
+======================================================================
+
+OLD MESSAGE
+
+This file summarizes the changes  that occurred  since the last `beta'
+of FreeType 2. Because the list is important, it has been divided into
+separate sections:
+
+Table Of Contents:
+
+    I   High-Level Interface (easier !)
+   II   Directory Structure
+  III   Glyph Image Formats
+   IV   Build System
+    V   Portability
+   VI   Font Drivers
+
+
+----------------------------------------------------------------------
+
+High-Level Interface:
+
+  The high-level API has been considerably simplified.  Here is how:
+
+    - resource objects have disappeared.  this means that face objects
+      can now be created with  a single function call (see FT_New_Face
+      and FT_Open_Face)
+
+    - when calling  either FT_New_Face  & FT_Open_Face, a  size object
+      and a glyph slot object  are automatically created for the face,
+      and can  be accessed  through `face->glyph' and  `face->size' if
+      one really  needs to.   In most cases,  there's no need  to call
+      FT_New_Size or FT_New_Glyph.
+
+    - similarly,  FT_Load_Glyph  now  only  takes  a  `face'  argument
+      (instead  of a  glyph  slot  and a  size).  Also,  its  `result'
+      parameter is  gone, as the glyph  image type is  returned in the
+      field `face->glyph.format'
+
+    - the list  of available  charmaps is directly  accessible through
+      `face->charmaps', counting `face->num_charmaps'  elements.  Each
+      charmap  has an  'encoding'  field which  specifies which  known
+      encoding it deals with.  Valid values are, for example:
+
+          ft_encoding_unicode      (for ASCII, Latin-1 and Unicode)
+          ft_encoding_apple_roman
+          ft_encoding_sjis
+          ft_encoding_adobe_standard
+          ft_encoding_adobe_expert
+
+      other  values may  be added  in the  future.  Each charmap still
+      holds  its `platform_id'  and `encoding_id'  values in  case the
+      encoding is too exotic for the current library
+
+
+----------------------------------------------------------------------
+
+Directory Structure:
+
+  Should seem obvious to most of you:
+
+     freetype/
+         config/        -- configuration sub-makefiles
+            ansi/
+            unix/       -- platform-specific configuration files
+            win32/
+            os2/
+            msdos/
+
+         include/       -- public header  files, those to  be included
+                           directly by client apps
+
+         src/           -- sources of the library
+           base/        -- the base layer
+           sfnt/        -- the sfnt `driver'  (see the drivers section
+                           below)
+           truetype/    -- the truetype driver
+           type1/       -- the type1 driver
+           shared/      -- some header files shared between drivers
+
+         demos/         -- demos/tools
+
+         docs/          -- documentation (a bit empty for now)
+
+
+----------------------------------------------------------------------
+
+Glyph Image Formats:
+
+  Drivers are now able to  register new glyph image formats within the
+  library.  For  now, the  base layer supports  of course  bitmaps and
+  vector  outlines, but  one  could imagine  something different  like
+  colored bitmaps, bi-color vectors or whatever else (Metafonts anyone
+  ??).
+
+  See  the   file  `include/ftimage.h'.   Note  also  that   the  type
+  FT_Raster_Map  is gone,  and  is now  replaced  by FT_Bitmap,  which
+  should encompass all known bitmap types.
+
+  Each new  image format  must provide at  least one `raster',  i.e. a
+  module capable of  transforming the glyph image into a bitmap.  It's
+  also possible  to change the default  raster used for  a given glyph
+  image format.
+
+  The default outline  scan-converter now uses 128 levels  of grays by
+  default,  which tends  to smooth  many  things.  Note that the  demo
+  programs have been updated significantly in order to display these..
+
+
+----------------------------------------------------------------------
+
+Build system:
+
+  You still need  GNU Make to build the library.  The build system has
+  been very seriously re-vamped in order to provide things like :
+
+   - automatic host platform  detection (reverting to 'config/ansi' if
+     it is not detected, with pseudo-standard compilation flags)
+
+   - the ability to compile from the Makefiles with very different and
+     exotic compilers.  Note that linking the library can be difficult
+     for some platforms.
+
+     For example, the file `config/win32/lcclib.bat' is invoked by the
+     build system to create the `.lib' file with LCC-Win32 because its
+     librarian  has too  many flaws  to be  invoked directly  from the
+     Makefile.
+
+  Here's how it works:
+
+  - the first time you type `make',  the build system runs a series of
+    sub-makefiles  in order  to detect  your host  platform.  It  then
+    dumps what it found, and creates a file called `config.mk' in  the
+    current  directory.  This is a  sub-Makefile used  to  define many
+    important Make variables used to build the library.
+
+  - the second time, the build system detects the `config.mk' then use
+    it  to  build the  library.  All object  files  go  into 'obj'  by
+    default,  as well  as the  library file,  but this  can  easily be
+    changed.
+
+  Note that  you can run `make  setup' to force  another host platform
+  detection  even   if  a  `config.mk'  is  present   in  the  current
+  directory.  Another solution  is  simply to  delete  the file,  then
+  re-run make.
+
+  Finally, the  default compiler  for all platforms  is gcc  (for now,
+  this will hopefully changed in the future).  You can however specify
+  a different  compiler by specifying  it after the 'setup'  target as
+  in:
+
+      gnumake setup lcc         on Win32 to use the LCC compiler
+      gnumake setup visualc     on Win32 to use Visual C++
+
+  See  the file  `config/<system>/detect.mk' for  a list  of supported
+  compilers for your platforms.
+
+  It should be relatively easy  to write new detection rules files and
+  config.mk..
+
+  Finally, to  build the demo programs,  go to `demos'  and launch GNU
+  Make, it will use the `config.mk'  in the top directory to build the
+  test programs..
+
+
+----------------------------------------------------------------------
+
+Portability:
+
+  In  the  previous  beta,  a  single FT_System  object  was  used  to
+  encompass  all  low-level  operations like  thread  synchronisation,
+  memory management and i/o access.  This has been greatly simplified:
+
+    - thread synchronisation  has been dropped, for  the simple reason
+      that the library  is already re-entrant, and that  if you really
+      need  two  threads accessing  the  same  FT_Library, you  should
+      really synchronize access to it yourself with a simple mutex.
+
+    - memory  management is  performed  through a  very simple  object
+      called `FT_Memory',  which really is a table  containing a table
+      of pointers to  functions like malloc, realloc and  free as well
+      as some user data (closure).
+
+    - resources have disappeared (they created more problems than they
+      solved), and  i/o management have  been simplified greatly  as a
+      result.  Streams are  defined through  FT_Stream objects,  which
+      can be either memory-based or disk-based.
+
+      Note that  each face  has its own  stream, which is  closed only
+      when  the  face object  is  destroyed.  Hence,  a function  like
+      TT_Flush_Face in 1.x cannot be directly  supported.  However, if
+      you really need something like  this, you can easily tailor your
+      own streams  to achieve the same  feature at a  lower level (and
+      use FT_Open_Face instead of FT_New_Face to create the face).
+
+  See the file  `include/ftsystem.h' for more details, as  well as the
+  implementations found in `config/unix' and `config/ansi'.
+
+
+----------------------------------------------------------------------
+
+Font Drivers:
+
+  The  Font Driver  interface has  been modified  in order  to support
+  extensions & versioning.
+
+
+  The  list of  the font  drivers that  are statically  linked  to the
+  library at compile time is  managed through a new configuration file
+  called `config/<platform>/ftmodule.h'.
+
+  This  file is  autogenerated  when  invoking  `make modules'.   This
+  target  will  parse  all  sub-directories  of  'src', looking  for a
+  `module.mk' rules  file, used  to describe  the driver to  the build
+  system.
+
+  Hence, one  should call  `make modules' each  time a font  driver is
+  added or removed from the `src' directory.
+
+  Finally, this  version  provides  a `pseudo-driver'  in  `src/sfnt'.
+  This  driver  doesn't  support  font  files  directly, but  provides
+  services used by all TrueType-like font drivers.  Hence, its code is
+  shared between  the TrueType & OpenType  font formats,  and possibly
+  more formats to come if we're lucky..
+
+
+----------------------------------------------------------------------
+
+Extensions support:
+
+  The extensions support is inspired by the one found in 1.x.
+
+  Now, each font driver has  its own `extension registry', which lists
+  which extensions  are available  for the font  faces managed  by the
+  driver.
+
+  Extension ids are  now strings, rather than 4-byte  tags, as this is
+  usually more readable.
+
+  Each extension has:
+    - some data, associated to each face object
+    - an interface (table of function pointers)
+
+  An extension  that is format-specific should  simply register itself
+  to the correct font driver.  Here is some example code:
+
+   // Registering an extensions
+   //
+   FT_Error  FT_Init_XXXX_Extension( FT_Library  library )
+   {
+     FT_DriverInterface*  tt_driver;
+
+     driver = FT_Get_Driver( library, "truetype" );
+     if (!driver) return FT_Err_Unimplemented_Feature;
+
+     return FT_Register_Extension( driver, &extension_class );
+   }
+
+
+   // Implementing the extensions
+   //
+   FT_Error  FT_Proceed_Extension_XXX( FT_Face  face )
+   {
+     FT_XXX_Extension            ext;
+     FT_XXX_Extension_Interface  ext_interface;
+
+     ext = FT_Get_Extension( face, "extensionid", &ext_interface );
+     if (!ext) return error;
+
+     return ext_interface->do_it(ext);
+   }
+
+------------------------------------------------------------------------
+
+Copyright 2000-2011 by
+David Turner, Robert Wilhelm, and Werner Lemberg.
+
+This  file  is  part  of the  FreeType  project, and may  only be  used,
+modified,  and  distributed  under  the  terms of  the FreeType  project
+license, LICENSE.TXT.   By continuing to use, modify, or distribute this
+file you  indicate that  you have  read the  license and understand  and
+accept it fully.
+
+
+Local Variables:
+version-control: never
+coding: utf-8
+End:
+
+--- end of CHANGES ---