shithub: freetype+ttf2subf

Download patch

ref: 04728a8bbeea7b6d73204f6a451b172ba68bbc60
parent: efa996155e80366bec17421d8777a2564db97d0e
author: Werner Lemberg <[email protected]>
date: Tue Apr 2 09:50:31 EST 2002

Fixes from the stable branch:

* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
Removed.
[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
[FT_CONFIG_OPTION_OLD_CALCS]: Removed.

* src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
output of FreeType 1.

* src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
bug that created un-even stem widths when hinting Postscript fonts.

formatting, updating copyright

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2002-04-02  Werner Lemberg  <[email protected]>
 
+	Fixes from the stable branch:
+
+	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
+	Removed.
+	[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
+	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
+	[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
+
+	* src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
+	output of FreeType 1.
+
+	* src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
+	bug that created un-even stem widths when hinting Postscript fonts.
+
 	* src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
 
 2002-04-01  Werner Lemberg  <[email protected]>
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -279,16 +279,6 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /* Computation Algorithms                                                */
-  /*                                                                       */
-  /*   Used for debugging, this configuration macro should disappear       */
-  /*   soon.                                                               */
-  /*                                                                       */
-#undef FT_CONFIG_OPTION_OLD_CALCS
-
-
-  /*************************************************************************/
-  /*                                                                       */
   /* The size in bytes of the render pool used by the scan-line converter  */
   /* to do all of its work.                                                */
   /*                                                                       */
--- a/include/freetype/internal/ftcalc.h
+++ b/include/freetype/internal/ftcalc.h
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Arithmetic computations (specification).                             */
 /*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
+/*  Copyright 1996-2001, 2002 by                                           */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -27,163 +27,9 @@
 FT_BEGIN_HEADER
 
 
-/* OLD 64-bits internal API */
-
-#ifdef FT_CONFIG_OPTION_OLD_CALCS
-
-#ifdef FT_LONG64
-
-  typedef FT_INT64  FT_Int64;
-
-#define ADD_64( x, y, z )  z = (x) + (y)
-#define MUL_64( x, y, z )  z = (FT_Int64)(x) * (y)
-#define DIV_64( x, y )     ( (x) / (y) )
-
-#define SQRT_64( z )  FT_Sqrt64( z )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Sqrt64                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the square root of a 64-bit value.  That sounds stupid,   */
-  /*    but it is needed to obtain maximal accuracy in the TrueType        */
-  /*    bytecode interpreter.                                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    l :: A 64-bit integer.                                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The 32-bit square-root.                                            */
-  /*                                                                       */
-  FT_EXPORT( FT_Int32 )
-  FT_Sqrt64( FT_Int64  l );
-
-
-#else /* !FT_LONG64 */
-
-
-  typedef struct  FT_Int64_
-  {
-    FT_UInt32  lo;
-    FT_UInt32  hi;
-
-  } FT_Int64;
-
-
-#define ADD_64( x, y, z )  FT_Add64( &x, &y, &z )
-#define MUL_64( x, y, z )  FT_MulTo64( x, y, &z )
-#define DIV_64( x, y )     FT_Div64by32( &x, y )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Add64                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Add two Int64 values.                                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    x :: A pointer to the first value to be added.                     */
-  /*    y :: A pointer to the second value to be added.                    */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    z :: A pointer to the result of `x + y'.                           */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Will be wrapped by the ADD_64() macro.                             */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Add64( FT_Int64*  x,
-            FT_Int64*  y,
-            FT_Int64  *z );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_MulTo64                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Multiplies two Int32 integers.  Returns an Int64 integer.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    x :: The first multiplier.                                         */
-  /*    y :: The second multiplier.                                        */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    z :: A pointer to the result of `x * y'.                           */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Will be wrapped by the MUL_64() macro.                             */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_MulTo64( FT_Int32   x,
-              FT_Int32   y,
-              FT_Int64  *z );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Div64by32                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Divides an Int64 value by an Int32 value.  Returns an Int32        */
-  /*    integer.                                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    x :: A pointer to the dividend.                                    */
-  /*    y :: The divisor.                                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `x / y'.                                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Will be wrapped by the DIV_64() macro.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Int32 )
-  FT_Div64by32( FT_Int64*  x,
-                FT_Int32   y );
-
-
-#define SQRT_64( z )  FT_Sqrt64( &z )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Sqrt64                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the square root of a 64-bits value.  That sounds stupid,  */
-  /*    but it is needed to obtain maximal accuracy in the TrueType        */
-  /*    bytecode interpreter.                                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    z :: A pointer to a 64-bit integer.                                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The 32-bit square-root.                                            */
-  /*                                                                       */
-  FT_EXPORT( FT_Int32 )
-  FT_Sqrt64( FT_Int64*  x );
-
-
-#endif /* !FT_LONG64 */
-
-#endif /* FT_CONFIG_OPTION_OLD_CALCS */
-
-
-
   FT_EXPORT( FT_Int32 )  FT_SqrtFixed( FT_Int32  x );
 
 
-#ifndef FT_CONFIG_OPTION_OLD_CALCS
-
 #define SQRT_32( x )  FT_Sqrt32( x )
 
 
@@ -204,9 +50,6 @@
   /*                                                                       */
   FT_EXPORT( FT_Int32 )
   FT_Sqrt32( FT_Int32  x );
-
-
-#endif /* !FT_CONFIG_OPTION_OLD_CALCS */
 
 
   /*************************************************************************/
--- a/src/base/ftcalc.c
+++ b/src/base/ftcalc.c
@@ -39,7 +39,6 @@
 
 
 /* we need to define a 64-bits data type here */
-#ifndef FT_CONFIG_OPTION_OLD_CALCS
 
 #ifdef FT_LONG64
 
@@ -56,9 +55,7 @@
 
 #endif /* FT_LONG64 */
 
-#endif /* !FT_CONFIG_OPTION_OLD_CALCS */
 
-
   /*************************************************************************/
   /*                                                                       */
   /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
@@ -70,7 +67,7 @@
 
 
   /* The following three functions are available regardless of whether */
-  /* FT_LONG64 or FT_CONFIG_OPTION_OLD_CALCS is defined.               */
+  /* FT_LONG64 is defined.                                             */
 
   /* documentation is in freetype.h */
 
@@ -102,27 +99,6 @@
   }
 
 
-#ifdef FT_CONFIG_OPTION_OLD_CALCS
-
-  static const FT_Long  ft_square_roots[63] =
-  {
-       1L,    1L,    2L,     3L,     4L,     5L,     8L,    11L,
-      16L,   22L,   32L,    45L,    64L,    90L,   128L,   181L,
-     256L,  362L,  512L,   724L,  1024L,  1448L,  2048L,  2896L,
-    4096L, 5892L, 8192L, 11585L, 16384L, 23170L, 32768L, 46340L,
-
-      65536L,   92681L,  131072L,   185363L,   262144L,   370727L,
-     524288L,  741455L, 1048576L,  1482910L,  2097152L,  2965820L,
-    4194304L, 5931641L, 8388608L, 11863283L, 16777216L, 23726566L,
-
-      33554432L,   47453132L,   67108864L,   94906265L,
-     134217728L,  189812531L,  268435456L,  379625062L,
-     536870912L,  759250125L, 1073741824L, 1518500250L,
-    2147483647L
-  };
-
-#else
-
   /* documentation is in ftcalc.h */
 
   FT_EXPORT_DEF( FT_Int32 )
@@ -152,11 +128,10 @@
     return root;
   }
 
-#endif /* FT_CONFIG_OPTION_OLD_CALCS */
 
-
 #ifdef FT_LONG64
 
+
   /* documentation is in freetype.h */
 
   FT_EXPORT_DEF( FT_Long )
@@ -222,51 +197,6 @@
   }
 
 
-#ifdef FT_CONFIG_OPTION_OLD_CALCS
-
-  /* a helper function for FT_Sqrt64() */
-
-  static int
-  ft_order64( FT_Int64  z )
-  {
-    int  j = 0;
-
-
-    while ( z )
-    {
-      z = (unsigned FT_INT64)z >> 1;
-      j++;
-    }
-    return j - 1;
-  }
-
-
-  /* documentation is in ftcalc.h */
-
-  FT_EXPORT_DEF( FT_Int32 )
-  FT_Sqrt64( FT_Int64  l )
-  {
-    FT_Int64  r, s;
-
-
-    if ( l <= 0 ) return 0;
-    if ( l == 1 ) return 1;
-
-    r = ft_square_roots[ft_order64( l )];
-
-    do
-    {
-      s = r;
-      r = ( r + l / r ) >> 1;
-
-    } while ( r > s || r * r > l );
-
-    return (FT_Int32)r;
-  }
-
-#endif /* FT_CONFIG_OPTION_OLD_CALCS */
-
-
 #else /* FT_LONG64 */
 
 
@@ -498,7 +428,9 @@
 
   /* apparently, the second version of this code is not compiled correctly */
   /* on Mac machines with the MPW C compiler..  tsss, tsss, tss...         */
+
 #if 1
+
   FT_EXPORT_DEF( FT_Int32 )
   FT_Div64by32( FT_Int64*  x,
                 FT_Int32   y )
@@ -550,7 +482,9 @@
 
     return ( s < 0 ? -(FT_Int32)q : (FT_Int32)q );
   }
-#else
+
+#else /* 0 */
+
   FT_EXPORT_DEF( FT_Int32 )
   FT_Div64by32( FT_Int64*  x,
                 FT_Int32   y )
@@ -582,86 +516,8 @@
 
     return ( s < 0 ? -(FT_Int32)q : (FT_Int32)q );
   }
-#endif
 
-
-#ifdef FT_CONFIG_OPTION_OLD_CALCS
-
-
-  /* two helper functions for FT_Sqrt64() */
-
-  static void
-  FT_Sub64( FT_Int64*  x,
-            FT_Int64*  y,
-            FT_Int64*  z )
-  {
-    register FT_UInt32  lo, hi;
-
-
-    lo = x->lo - y->lo;
-    hi = x->hi - y->hi - ( (FT_Int32)lo < 0 );
-
-    z->lo = lo;
-    z->hi = hi;
-  }
-
-
-  static int
-  ft_order64( FT_Int64*  z )
-  {
-    FT_UInt32  i;
-    int        j;
-
-
-    i = z->lo;
-    j = 0;
-    if ( z->hi )
-    {
-      i = z->hi;
-      j = 32;
-    }
-
-    while ( i > 0 )
-    {
-      i >>= 1;
-      j++;
-    }
-    return j - 1;
-  }
-
-
-  /* documentation is in ftcalc.h */
-
-  FT_EXPORT_DEF( FT_Int32 )
-  FT_Sqrt64( FT_Int64*  l )
-  {
-    FT_Int64  l2;
-    FT_Int32  r, s;
-
-
-    if ( (FT_Int32)l->hi < 0          ||
-         ( l->hi == 0 && l->lo == 0 ) )
-      return 0;
-
-    s = ft_order64( l );
-    if ( s == 0 )
-      return 1;
-
-    r = ft_square_roots[s];
-    do
-    {
-      s = r;
-      r = ( r + FT_Div64by32( l, r ) ) >> 1;
-      FT_MulTo64( r, r,   &l2 );
-      FT_Sub64  ( l, &l2, &l2 );
-
-    } while ( r > s || (FT_Int32)l2.hi < 0 );
-
-    return r;
-  }
-
-
-#endif /* FT_CONFIG_OPTION_OLD_CALCS */
+#endif /* 0 */
 
 
 #endif /* FT_LONG64 */
--- a/src/base/fttrigon.c
+++ b/src/base/fttrigon.c
@@ -417,7 +417,11 @@
     ft_trig_pseudo_polarize( &v );
 
     v.x = ft_trig_downscale( v.x );
-    return ( shift >= 0 ) ? ( v.x >> shift ) : ( v.x << -shift );
+
+    if ( shift > 0 )
+      return ( v.x + ( 1 << ( shift - 1 ) ) ) >> shift;
+
+    return v.x << -shift;
   }
 
 
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -380,10 +380,10 @@
           root->num_glyphs = cff->charstrings_index.count;
 
         /* set global bbox, as well as EM size */
-        root->bbox.xMin =  dict->font_bbox.xMin >> 16;
-        root->bbox.yMin =  dict->font_bbox.yMin >> 16;
-        root->bbox.xMax = (dict->font_bbox.xMax + 0xFFFFU) >> 16;
-        root->bbox.yMax = (dict->font_bbox.yMax + 0xFFFFU) >> 16;
+        root->bbox.xMin =   dict->font_bbox.xMin             >> 16;
+        root->bbox.yMin =   dict->font_bbox.yMin             >> 16;
+        root->bbox.xMax = ( dict->font_bbox.xMax + 0xFFFFU ) >> 16;
+        root->bbox.yMax = ( dict->font_bbox.yMax + 0xFFFFU ) >> 16;
 
 
         root->ascender  = (FT_Short)( root->bbox.yMax );
--- a/src/cid/cidobjs.c
+++ b/src/cid/cidobjs.c
@@ -378,10 +378,10 @@
         root->num_fixed_sizes = 0;
         root->available_sizes = 0;
 
-        root->bbox.xMin =  face->cid.font_bbox.xMin >> 16;
-        root->bbox.yMin =  face->cid.font_bbox.yMin >> 16;
-        root->bbox.xMax = (face->cid.font_bbox.xMax + 0xFFFFU) >> 16;
-        root->bbox.yMax = (face->cid.font_bbox.yMax + 0xFFFFU) >> 16;
+        root->bbox.xMin =   face->cid.font_bbox.xMin             >> 16;
+        root->bbox.yMin =   face->cid.font_bbox.yMin             >> 16;
+        root->bbox.xMax = ( face->cid.font_bbox.xMax + 0xFFFFU ) >> 16;
+        root->bbox.yMax = ( face->cid.font_bbox.yMax + 0xFFFFU ) >> 16;
 
         if ( !root->units_per_EM )
           root->units_per_EM  = 1000;
--- a/src/pshinter/pshglob.c
+++ b/src/pshinter/pshglob.c
@@ -45,13 +45,35 @@
     PSH_Widths     stdw  = &dim->stdw;
     FT_UInt        count = stdw->count;
     PSH_Width      width = stdw->widths;
+    PSH_Width      stand = width;               /* standard width/height */
     FT_Fixed       scale = dim->scale_mult;
 
 
-    for ( ; count > 0; count--, width++ )
+    if ( count > 0 )
     {
       width->cur = FT_MulFix( width->org, scale );
       width->fit = FT_RoundFix( width->cur );
+
+      width++;
+      count--;
+
+      for ( ; count > 0; count--, width++ )
+      {
+        FT_Pos  w, dist;
+
+
+        w    = FT_MulFix( width->org, scale );
+        dist = w - stand->cur;
+
+        if ( dist < 0 )
+          dist = -dist;
+
+        if ( dist < 128 )
+          w = stand->cur;
+
+        width->cur = w;
+        width->fit = FT_RoundFix( w );
+      }
     }
   }
 
--- a/src/sfnt/ttcmap0.c
+++ b/src/sfnt/ttcmap0.c
@@ -1599,7 +1599,7 @@
   /* in the current face                                                */
   /*                                                                    */
   FT_LOCAL_DEF( FT_Error )
-  TT_Build_CMaps( TT_Face   face )
+  TT_Build_CMaps( TT_Face  face )
   {
     FT_Byte*           table = face->cmap_table;
     FT_Byte*           limit = table + face->cmap_size;
--- a/src/type1/t1objs.c
+++ b/src/type1/t1objs.c
@@ -391,8 +391,8 @@
       root->num_fixed_sizes = 0;
       root->available_sizes = 0;
 
-      root->bbox.xMin =   face->type1.font_bbox.xMin >> 16;
-      root->bbox.yMin =   face->type1.font_bbox.yMin >> 16;
+      root->bbox.xMin =   face->type1.font_bbox.xMin             >> 16;
+      root->bbox.yMin =   face->type1.font_bbox.yMin             >> 16;
       root->bbox.xMax = ( face->type1.font_bbox.xMax + 0xFFFFU ) >> 16;
       root->bbox.yMax = ( face->type1.font_bbox.yMax + 0xFFFFU ) >> 16;
 
--- a/src/winfonts/descrip.mms
+++ b/src/winfonts/descrip.mms
@@ -3,7 +3,7 @@
 #
 
 
-# Copyright 2001 by
+# Copyright 2001, 2002 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
--- a/src/winfonts/rules.mk
+++ b/src/winfonts/rules.mk
@@ -3,7 +3,7 @@
 #
 
 
-# Copyright 1996-2000 by
+# Copyright 1996-2000, 2001 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
--- a/src/winfonts/winfnt.c
+++ b/src/winfonts/winfnt.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType font driver for Windows FNT/FON files                       */
 /*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
+/*  Copyright 1996-2001, 2002 by                                           */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -112,7 +112,7 @@
 
 
   static void
-  fnt_font_done( FNT_Font  font,
+  fnt_font_done( FNT_Font   font,
                  FT_Stream  stream )
   {
     if ( font->fnt_frame )
@@ -124,10 +124,10 @@
 
 
   static FT_Error
-  fnt_font_load( FNT_Font  font,
+  fnt_font_load( FNT_Font   font,
                  FT_Stream  stream )
   {
-    FT_Error        error;
+    FT_Error       error;
     WinFNT_Header  header = &font->header;
 
 
@@ -169,10 +169,10 @@
   static void
   fnt_face_done_fonts( FNT_Face  face )
   {
-    FT_Memory  memory = FT_FACE(face)->memory;
-    FT_Stream  stream = FT_FACE(face)->stream;
-    FNT_Font  cur    = face->fonts;
-    FNT_Font  limit  = cur + face->num_fonts;
+    FT_Memory  memory = FT_FACE( face )->memory;
+    FT_Stream  stream = FT_FACE( face )->stream;
+    FNT_Font   cur    = face->fonts;
+    FNT_Font   limit  = cur + face->num_fonts;
 
 
     for ( ; cur < limit; cur++ )
@@ -186,9 +186,9 @@
   static FT_Error
   fnt_face_get_dll_fonts( FNT_Face  face )
   {
-    FT_Error      error;
-    FT_Stream     stream = FT_FACE(face)->stream;
-    FT_Memory     memory = FT_FACE(face)->memory;
+    FT_Error         error;
+    FT_Stream        stream = FT_FACE( face )->stream;
+    FT_Memory        memory = FT_FACE( face )->memory;
     WinMZ_HeaderRec  mz_header;
 
 
@@ -310,10 +310,10 @@
   }
 
 
-
 #ifdef FT_CONFIG_OPTION_USE_CMAPS
 
-  typedef struct FNT_CMapRec_
+
+  typedef struct  FNT_CMapRec_
   {
     FT_CMapRec  cmap;
     FT_UInt32   first;
@@ -325,12 +325,13 @@
   static FT_Error
   fnt_cmap_init( FNT_CMap  cmap )
   {
-    FNT_Face  face = (FNT_Face) FT_CMAP_FACE(cmap);
+    FNT_Face  face = (FNT_Face)FT_CMAP_FACE( cmap );
     FNT_Font  font = face->fonts;
 
-    cmap->first = (FT_UInt32) font->header.first_char;
-    cmap->count = (FT_UInt32)(font->header.last_char - cmap->first + 1);
 
+    cmap->first = (FT_UInt32)  font->header.first_char;
+    cmap->count = (FT_UInt32)( font->header.last_char - cmap->first + 1 );
+
     return 0;
   }
 
@@ -341,6 +342,7 @@
   {
     FT_UInt  gindex = 0;
 
+
     char_code -= cmap->first;
     if ( char_code < cmap->count )
       gindex = char_code + 1;
@@ -350,13 +352,14 @@
 
 
   static FT_UInt
-  fnt_cmap_char_next( FNT_CMap   cmap,
-                      FT_UInt32 *pchar_code )
+  fnt_cmap_char_next( FNT_CMap    cmap,
+                      FT_UInt32  *pchar_code )
   {
     FT_UInt    gindex = 0;
     FT_UInt32  result = 0;
     FT_UInt32  char_code = *pchar_code + 1;
 
+
     if ( char_code <= cmap->first )
     {
       result = cmap->first;
@@ -376,19 +379,23 @@
     return gindex;
   }
 
+
   static FT_CMap_ClassRec  fnt_cmap_class_rec =
   {
-    sizeof( FNT_CMapRec ),
-    (FT_CMap_InitFunc)        fnt_cmap_init,
-    (FT_CMap_DoneFunc)        NULL,
-    (FT_CMap_CharIndexFunc)   fnt_cmap_char_index,
-    (FT_CMap_CharNextFunc)    fnt_cmap_char_next
+    sizeof ( FNT_CMapRec ),
+
+    (FT_CMap_InitFunc)     fnt_cmap_init,
+    (FT_CMap_DoneFunc)     NULL,
+    (FT_CMap_CharIndexFunc)fnt_cmap_char_index,
+    (FT_CMap_CharNextFunc) fnt_cmap_char_next
   };
 
-  static FT_CMap_Class   fnt_cmap_class = &fnt_cmap_class_rec;
+  static FT_CMap_Class  fnt_cmap_class = &fnt_cmap_class_rec;
 
+
 #else /* !FT_CONFIG_OPTION_USE_CMAPS */
 
+
   static FT_UInt
   FNT_Get_Char_Index( FT_CharMap  charmap,
                       FT_Long     char_code )
@@ -399,8 +406,8 @@
     if ( charmap )
     {
       FNT_Font  font  = ((FNT_Face)charmap->face)->fonts;
-      FT_Long    first = font->header.first_char;
-      FT_Long    count = font->header.last_char - first + 1;
+      FT_Long   first = font->header.first_char;
+      FT_Long   count = font->header.last_char - first + 1;
 
 
       char_code -= first;
@@ -422,7 +429,7 @@
     if ( charmap )
     {
       FNT_Font  font  = ((FNT_Face)charmap->face)->fonts;
-      FT_Long    first = font->header.first_char;
+      FT_Long   first = font->header.first_char;
 
 
       if ( char_code < first )
@@ -473,6 +480,7 @@
       /* this didn't work, now try to load a single FNT font */
       FNT_Font  font;
 
+
       if ( FT_NEW( face->fonts ) )
         goto Exit;
 
@@ -490,7 +498,7 @@
     /* all right, one or more fonts were loaded; we now need to */
     /* fill the root FT_Face fields with relevant information   */
     {
-      FT_Face    root  = FT_FACE( face );
+      FT_Face   root  = FT_FACE( face );
       FNT_Font  fonts = face->fonts;
       FNT_Font  limit = fonts + face->num_fonts;
       FNT_Font  cur;
@@ -592,7 +600,7 @@
   FNT_Size_Set_Pixels( FNT_Size  size )
   {
     /* look up a font corresponding to the current pixel size */
-    FNT_Face   face  = (FNT_Face)FT_SIZE_FACE( size );
+    FNT_Face  face  = (FNT_Face)FT_SIZE_FACE( size );
     FNT_Font  cur   = face->fonts;
     FNT_Font  limit = cur + face->num_fonts;
 
@@ -624,7 +632,7 @@
                   FT_UInt       glyph_index,
                   FT_Int        load_flags )
   {
-    FNT_Font   font  = size->font;
+    FNT_Font    font  = size->font;
     FT_Error    error = 0;
     FT_Byte*    p;
     FT_Int      len;
@@ -653,12 +661,12 @@
     /* jump to glyph entry */
     p = font->fnt_frame + 118 + len * glyph_index;
 
-    bitmap->width = FT_NEXT_SHORT_LE(p);
+    bitmap->width = FT_NEXT_SHORT_LE( p );
 
     if ( new_format )
-      offset = FT_NEXT_ULONG_LE(p);
+      offset = FT_NEXT_ULONG_LE( p );
     else
-      offset = FT_NEXT_USHORT_LE(p);
+      offset = FT_NEXT_USHORT_LE( p );
 
     /* jump to glyph data */
     p = font->fnt_frame + /* font->header.bits_offset */ + offset;
@@ -730,32 +738,32 @@
     sizeof( FNT_SizeRec ),
     sizeof( FT_GlyphSlotRec ),
 
-    (FT_Face_InitFunc)     FNT_Face_Init,
-    (FT_Face_DoneFunc)     FNT_Face_Done,
-    (FT_Size_InitFunc)     0,
-    (FT_Size_DoneFunc)     0,
-    (FT_Slot_InitFunc)     0,
-    (FT_Slot_DoneFunc)     0,
+    (FT_Face_InitFunc)        FNT_Face_Init,
+    (FT_Face_DoneFunc)        FNT_Face_Done,
+    (FT_Size_InitFunc)        0,
+    (FT_Size_DoneFunc)        0,
+    (FT_Slot_InitFunc)        0,
+    (FT_Slot_DoneFunc)        0,
 
     (FT_Size_ResetPointsFunc) FNT_Size_Set_Pixels,
-    (FT_Size_ResetPixelsFunc)FNT_Size_Set_Pixels,
-    (FT_Slot_LoadFunc)    FNT_Load_Glyph,
+    (FT_Size_ResetPixelsFunc) FNT_Size_Set_Pixels,
+    (FT_Slot_LoadFunc)        FNT_Load_Glyph,
 
 #ifdef FT_CONFIG_OPTION_USE_CMAPS
-    (FT_CharMap_CharIndexFunc) 0,
+    (FT_CharMap_CharIndexFunc)0,
 #else
-    (FT_CharMap_CharIndexFunc) FNT_Get_Char_Index,
+    (FT_CharMap_CharIndexFunc)FNT_Get_Char_Index,
 #endif
     
 
-    (FT_Face_GetKerningFunc)   0,
-    (FT_Face_AttachFunc)   0,
-    (FT_Face_GetAdvancesFunc)  0,
+    (FT_Face_GetKerningFunc)  0,
+    (FT_Face_AttachFunc)      0,
+    (FT_Face_GetAdvancesFunc) 0,
 
 #ifdef FT_CONFIG_OPTION_USE_CMAPS
-    (FT_CharMap_CharNextFunc)  0
+    (FT_CharMap_CharNextFunc) 0
 #else
-    (FT_CharMap_CharNextFunc)  FNT_Get_Next_Char
+    (FT_CharMap_CharNextFunc) FNT_Get_Next_Char
 #endif    
   };
 
--- a/src/winfonts/winfnt.h
+++ b/src/winfonts/winfnt.h
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType font driver for Windows FNT/FON files                       */
 /*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
+/*  Copyright 1996-2001, 2002 by                                           */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */