shithub: freetype+ttf2subf

Download patch

ref: d0c36e3b5a1087eff8b88b3bac1106e3cd46844c
parent: d18388e44b0052a7ad8b14453fd74a248ddf1e8f
author: Werner Lemberg <[email protected]>
date: Mon Jul 3 12:45:15 EDT 2000

Formatting; fixing documentation.

git/fs: mount .git/fs: mount/attach disallowed
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -27,6 +27,7 @@
 
 #include <string.h>     /* for strncpy(), strncmp(), strlen() */
 
+
   /*************************************************************************/
   /*                                                                       */
   /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
--- a/src/type1/t1objs.c
+++ b/src/type1/t1objs.c
@@ -1,20 +1,21 @@
-/*******************************************************************
- *
- *  t1objs.c                                                     1.0
- *
- *    Type1 Objects manager.
- *
- *  Copyright 1996-1998 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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  t1objs.c                                                               */
+/*                                                                         */
+/*    Type 1 objects manager (body).                                       */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/***************************************************************************/
 
+
 #include <freetype/internal/ftdebug.h>
 #include <freetype/internal/ftstream.h>
 
@@ -28,116 +29,122 @@
 
 #include <freetype/internal/psnames.h>
 
-/* Required by tracing mode */
-#undef   FT_COMPONENT
-#define  FT_COMPONENT  trace_t1objs
 
-/*******************************************************************
- *                                                                 *
- *                         SIZE  FUNCTIONS                         *
- *                                                                 *
- *                                                                 *
- *******************************************************************/
 
-/*******************************************************************
- *
- * <Function>  T1_Done_Size
- *
- * <Description>
- *    The TrueDoc instance object destructor. Used to discard
- *    a given instance object..
- *
- * <Input>
- *    instance   :: handle to the target instance object
- *
- * <Return>
- *    TrueDoc error code. 0 means success
- *
- ******************************************************************/
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
+  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
+  /* messages during execution.                                            */
+  /*                                                                       */
+#undef  FT_COMPONENT
+#define FT_COMPONENT  trace_t1objs
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /*                           SIZE  FUNCTIONS                             */
+  /*                                                                       */
+  /*************************************************************************/
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Done_Size                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The Type 1 size object destructor.  Used to discard a given size   */
+  /*    object.                                                            */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    size :: A handle to the target size object.                        */
+  /*                                                                       */
   LOCAL_FUNC
   void  T1_Done_Size( T1_Size  size )
   {
-    if (size)
+    if ( size )
     {
+
 #ifndef T1_CONFIG_OPTION_DISABLE_HINTER
       T1_Done_Size_Hinter( size );
 #endif
+
       size->valid = 0;
     }
   }
 
 
-/*******************************************************************
- *
- *  <Function> T1_Init_Size
- *
- *  <Description>
- *     The instance object constructor
- *
- *  <Input>
- *     instance  : handle to new instance object
- *     face      : pointer to parent face object
- *
- *  <Return>
- *     TrueDoc error code. 0 means success.
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Init_Size                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The size object initializer.                                       */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    size :: A handle to the target size object.                        */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    FreeTrue error code.  0 means success.                             */
+  /*                                                                       */
   LOCAL_DEF
   FT_Error  T1_Init_Size( T1_Size  size )
   {
-    FT_Error    error;
+    FT_Error  error;
 
+
     size->valid = 0;
 
 #ifndef T1_CONFIG_OPTION_DISABLE_HINTER
     error = T1_New_Size_Hinter( size );
+
     return error;
 #else
-    (void)error;
+
+    UNUSED( error );
+
     return T1_Err_Ok;
+
 #endif
   }
 
 
-/*******************************************************************
- *
- *  <Function> T1_Reset_Size
- *
- *  <Description>
- *     Resets an instance to a new pointsize/transform.
- *     This function is in charge of resetting the blue zones,
- *     As well as the stem snap tables for a given size..
- *
- *  <Input>
- *     instance   the instance object to destroy
- *
- *  <Output>
- *     Error code.
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Reset_Size                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Resets an instance to a new pointsize/transform.  This function is */
+  /*    in charge of resetting the blue zones,a s well as the stem snap    */
+  /*    tables for a given size.                                           */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    size :: The target size object.                                    */
+  /*                                                                       */
+  /* <Output>                                                              */
+  /*    FreeType error code.  0 means success.                             */
+  /*                                                                       */
   LOCAL_FUNC
   FT_Error  T1_Reset_Size( T1_Size  size )
   {
-    /* recompute ascender, descender, etc.. */
+    /* recompute ascender, descender, etc. */
     T1_Face           face    = (T1_Face)size->root.face;
     FT_Size_Metrics*  metrics = &size->root.metrics;
 
+
     if ( metrics->x_ppem < 1 || metrics->y_ppem < 1 )
       return FT_Err_Invalid_Argument;
 
     /* Compute root ascender, descender, test height, and max_advance */
-    metrics->ascender = ( FT_MulFix( face->root.ascender,
-                                     metrics->y_scale ) + 32 ) & -64;
-
-    metrics->descender = ( FT_MulFix( face->root.descender,
-                                      metrics->y_scale ) + 32 ) & -64;
-
-    metrics->height = ( FT_MulFix( face->root.height,
-                                   metrics->y_scale ) + 32 ) & -64;
-
+    metrics->ascender    = ( FT_MulFix( face->root.ascender,
+                                        metrics->y_scale ) + 32 ) & -64;
+    metrics->descender   = ( FT_MulFix( face->root.descender,
+                                        metrics->y_scale ) + 32 ) & -64;
+    metrics->height      = ( FT_MulFix( face->root.height,
+                                        metrics->y_scale ) + 32 ) & -64;
     metrics->max_advance = ( FT_MulFix( face->root.max_advance_width,
                                         metrics->x_scale ) + 32 ) & -64;
 
@@ -149,28 +156,25 @@
   }
 
 
-/*******************************************************************
- *                                                                 *
- *                         FACE  FUNCTIONS                         *
- *                                                                 *
- *                                                                 *
- *******************************************************************/
+  /*************************************************************************/
+  /*                                                                       */
+  /*                            FACE  FUNCTIONS                            */
+  /*                                                                       */
+  /*                                                                       */
+  /*************************************************************************/
 
-/*******************************************************************
- *
- *  <Function> T1_Done_Face
- *
- *  <Description>
- *     The face object destructor.
- *
- *  <Input>
- *     face  :: typeless pointer to the face object to destroy
- *
- *  <Return>
- *     Error code.
- *
- ******************************************************************/
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Done_Face                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The face object destructor.                                        */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    face :: A typeless pointer to the face object to destroy.          */
+  /*                                                                       */
   LOCAL_FUNC
   void  T1_Done_Face( T1_Face  face )
   {
@@ -177,7 +181,8 @@
     FT_Memory  memory;
     T1_Font*   type1 = &face->type1;
 
-    if (face)
+
+    if ( face )
     {
       memory = face->root.memory;
 
@@ -185,6 +190,7 @@
       {
         T1_FontInfo*  info = &type1->font_info;
 
+
         FREE( info->version );
         FREE( info->notice );
         FREE( info->full_name );
@@ -209,7 +215,7 @@
 
 #ifndef T1_CONFIG_OPTION_NO_AFM
       /* release afm data if present */
-      if ( face->afm_data)
+      if ( face->afm_data )
         T1_Done_AFM( memory, (T1_AFM*)face->afm_data );
 #endif
 
@@ -222,22 +228,29 @@
     }
   }
 
-/*******************************************************************
- *
- *  <Function>  T1_Init_Face
- *
- *  <Description>
- *     The face object constructor.
- *
- *  <Input>
- *     face  ::  face record to build
- *     Input ::  input stream where to load font data
- *
- *  <Return>
- *     Error code.
- *
- ******************************************************************/
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>  T1_Init_Face                                              */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The face object constructor.                                       */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    stream     ::  input stream where to load font data.               */
+  /*                                                                       */
+  /*    face_index :: The index of the font face in the resource.          */
+  /*                                                                       */
+  /*    num_params :: Number of additional generic parameters.  Ignored.   */
+  /*                                                                       */
+  /*    params     :: Additional generic parameters.  Ignored.             */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    face       :: The face record to build.                            */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    FreeType error code.  0 means success.                             */
+  /*                                                                       */
   LOCAL_FUNC
   FT_Error  T1_Init_Face( FT_Stream      stream,
                           T1_Face        face,
@@ -249,18 +262,20 @@
     FT_Error            error;
     PSNames_Interface*  psnames;
 
-    UNUSED(num_params);
-    UNUSED(params);
-    UNUSED(face_index);
-    UNUSED(face);
+    UNUSED( num_params );
+    UNUSED( params );
+    UNUSED( face_index );
+    UNUSED( face );
 
+
     face->root.num_faces = 1;
 
     psnames = (PSNames_Interface*)face->psnames;
-    if (!psnames)
+    if ( !psnames )
     {
       psnames = (PSNames_Interface*)
-                 FT_Get_Module_Interface( FT_FACE_LIBRARY(face), "psnames" );
+                 FT_Get_Module_Interface( FT_FACE_LIBRARY( face ),
+                                          "psnames" );
                  
       face->psnames = psnames;
     }
@@ -267,16 +282,17 @@
     
     /* open the tokenizer, this will also check the font format */
     error = New_Tokenizer( stream, &tokenizer );
-    if (error) goto Fail;
+    if ( error )
+      goto Fail;
 
     /* if we just wanted to check the format, leave successfully now */
-    if (face_index < 0)
+    if ( face_index < 0 )
       goto Leave;
 
     /* check the face index */
     if ( face_index != 0 )
     {
-      FT_ERROR(( "T1.Init_Face : invalid face index\n" ));
+      FT_ERROR(( "T1_Init_Face: invalid face index\n" ));
       error = T1_Err_Invalid_Argument;
       goto Leave;
     }
@@ -285,16 +301,19 @@
     {
       T1_Parser  parser;
 
+
       Init_T1_Parser( &parser, face, tokenizer );
       error = Parse_T1_FontProgram( &parser );
-      if (error) goto Leave;
+      if ( error )
+        goto Leave;
 
       /* Init the face object fields */
       /* Now set up root face fields */
       {
-        FT_Face  root  = (FT_Face)&face->root;
-        T1_Font* type1 = &face->type1;
+        FT_Face   root  = (FT_Face)&face->root;
+        T1_Font*  type1 = &face->type1;
 
+
         root->num_glyphs   = type1->num_glyphs;
         root->num_charmaps = 1;
 
@@ -306,16 +325,17 @@
         if ( type1->font_info.is_fixed_pitch )
           root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
 
-        /* XXX : TO DO - add kerning with .afm support */
+        /* XXX: TODO -- add kerning with .afm support */
 
         /* get style name - be careful, some broken fonts only */
-        /* have a /FontName dictionary entry .. !!             */
+        /* have a `/FontName' dictionary entry!                */
         root->family_name = type1->font_info.family_name;
-        if (root->family_name)
+        if ( root->family_name )
         {
           char*  full   = type1->font_info.full_name;
           char*  family = root->family_name;
 
+
           while ( *family && *full == *family )
           {
             family++;
@@ -322,11 +342,11 @@
             full++;
           }
 
-          root->style_name = ( *full == ' ' ? full+1 : "Regular" );
+          root->style_name = ( *full == ' ' ? full + 1 : "Regular" );
         }
         else
         {
-          /* do we have a /FontName ?? */
+          /* do we have a `/FontName'? */
           if (type1->font_name)
           {
             root->family_name = type1->font_name;
@@ -342,7 +362,8 @@
         root->units_per_EM = 1000;
         root->ascender     =  (FT_Short)type1->font_bbox.yMax;
         root->descender    = -(FT_Short)type1->font_bbox.yMin;
-        root->height       = ((root->ascender + root->descender)*12)/10;
+        root->height       = ( ( root->ascender + root->descender) * 12 )
+                             / 10;
 
         /* now compute the maximum advance width */
 
@@ -349,14 +370,15 @@
         root->max_advance_width = type1->private_dict.standard_width[0];
 
         /* compute max advance width for proportional fonts */
-        if (!type1->font_info.is_fixed_pitch)
+        if ( !type1->font_info.is_fixed_pitch )
         {
           FT_Int  max_advance;
 
+
           error = T1_Compute_Max_Advance( face, &max_advance );
 
           /* in case of error, keep the standard width */
-          if (!error)
+          if ( !error )
             root->max_advance_width = max_advance;
           else
             error = 0;   /* clear error */
@@ -374,21 +396,25 @@
 
     /* charmap support - synthetize unicode charmap when possible */
     {
-      FT_Face      root    = &face->root;
-      FT_CharMap   charmap = face->charmaprecs;
+      FT_Face     root    = &face->root;
+      FT_CharMap  charmap = face->charmaprecs;
 
-      /* synthesize a Unicode charmap if there is support in the "psnames" */
+
+      /* synthesize a Unicode charmap if there is support in the `PSNames' */
       /* module..                                                          */
-      if (face->psnames)
+      if ( face->psnames )
       {
         PSNames_Interface*  psnames = (PSNames_Interface*)face->psnames;
-        if (psnames->unicode_value)
+
+
+        if ( psnames->unicode_value )
         {
-          error = psnames->build_unicodes( root->memory,
-                                           face->type1.num_glyphs,
-                                           (const char**)face->type1.glyph_names,
-                                           &face->unicode_map );
-          if (!error)
+          error = psnames->build_unicodes(
+                    root->memory,
+                    face->type1.num_glyphs,
+                    (const char**)face->type1.glyph_names,
+                    &face->unicode_map );
+          if ( !error )
           {
             root->charmap        = charmap;
             charmap->face        = (FT_Face)face;
@@ -408,28 +434,28 @@
       charmap->face        = (FT_Face)face;
       charmap->platform_id = 7;  /* a new platform id for Adobe fonts ?? */
 
-      switch (face->type1.encoding_type)
+      switch ( face->type1.encoding_type )
       {
-        case t1_encoding_standard:
-          charmap->encoding    = ft_encoding_adobe_standard;
-          charmap->encoding_id = 0;
-          break;
+      case t1_encoding_standard:
+        charmap->encoding    = ft_encoding_adobe_standard;
+        charmap->encoding_id = 0;
+        break;
 
-        case t1_encoding_expert:
-          charmap->encoding    = ft_encoding_adobe_expert;
-          charmap->encoding_id = 1;
-          break;
+      case t1_encoding_expert:
+        charmap->encoding    = ft_encoding_adobe_expert;
+        charmap->encoding_id = 1;
+        break;
 
-        default:
-          charmap->encoding    = ft_encoding_adobe_custom;
-          charmap->encoding_id = 2;
-          break;
+      default:
+        charmap->encoding    = ft_encoding_adobe_custom;
+        charmap->encoding_id = 2;
+        break;
       }
 
-      root->charmaps = face->charmaps;
+      root->charmaps     = face->charmaps;
       root->num_charmaps = charmap - face->charmaprecs + 1;
-      face->charmaps[0] = &face->charmaprecs[0];
-      face->charmaps[1] = &face->charmaprecs[1];
+      face->charmaps[0]  = &face->charmaprecs[0];
+      face->charmaps[1]  = &face->charmaprecs[1];
     }
 
   Leave:
@@ -440,51 +466,57 @@
   }
 
 
-/*******************************************************************
- *
- *  Function    :  Glyph_Destroy
- *
- *  Description :  The glyph object destructor.
- *
- *  Input  :  _glyph  typeless pointer to the glyph record to destroy
- *
- *  Output :  Error code.
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Done_GlyphSlot                                                  */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The glyph slot object destructor.                                  */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    glyph :: The glyph slot handle to destroy.                         */
+  /*                                                                       */
   LOCAL_FUNC
   void  T1_Done_GlyphSlot( T1_GlyphSlot  glyph )
   {
 #ifndef T1_CONFIG_OPTION_DISABLE_HINTER
+
     T1_Done_Glyph_Hinter( glyph );
+
 #else
-    UNUSED(glyph)    
+
+    UNUSED( glyph );
+
 #endif
   }
 
 
-/*******************************************************************
- *
- *  Function    :  Glyph_Create
- *
- *  Description :  The glyph object constructor.
- *
- *  Input  :  glyph   glyph record to build.
- *            face    the glyph's parent face.
- *
- *  Output :  Error code.
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Init_GlyphSlot                                                  */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The glyph slot object constructor.                                 */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    glyph :: The glyph slot handle to initialize.                      */
+  /*                                                                       */
   LOCAL_FUNC
   FT_Error  T1_Init_GlyphSlot( T1_GlyphSlot  glyph )
   {
     FT_Error    error = FT_Err_Ok;
 
+
 #ifndef T1_CONFIG_OPTION_DISABLE_HINTER
+
     error = T1_New_Glyph_Hinter( glyph );
+
 #else
-    UNUSED(glyph);    
+
+    UNUSED( glyph );
+
 #endif
 
     return error;
--- a/src/type1/t1objs.h
+++ b/src/type1/t1objs.h
@@ -1,20 +1,21 @@
-/*******************************************************************
- *
- *  t1objs.h                                                    1.0
- *
- *    Type1 objects definition.
- *
- *  Copyright 1996-1999 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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  t1objs.h                                                               */
+/*                                                                         */
+/*    Type 1 objects manager (specification).                              */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/***************************************************************************/
 
+
 #ifndef T1OBJS_H
 #define T1OBJS_H
 
@@ -28,71 +29,77 @@
   extern "C" {
 #endif
 
+
   /* The following structures must be defined by the hinter */
   typedef struct T1_Size_Hints_   T1_Size_Hints;
   typedef struct T1_Glyph_Hints_  T1_Glyph_Hints;
 
-  /***********************************************************************/
-  /*                                                                     */
-  /* <Type> T1_Driver                                                    */
-  /*                                                                     */
-  /* <Description>                                                       */
-  /*    A handle to a Type 1 driver object.                              */
-  /*                                                                     */
-  typedef struct T1_DriverRec_   *T1_Driver;
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Type>                                                                */
+  /*    T1_Driver                                                          */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A handle to a Type 1 driver object.                                */
+  /*                                                                       */
+  typedef struct T1_DriverRec_*  T1_Driver;
 
-  /***********************************************************************/
-  /*                                                                     */
-  /* <Type> T1_Size                                                      */
-  /*                                                                     */
-  /* <Description>                                                       */
-  /*    A handle to a Type 1 size object.                                */
-  /*                                                                     */
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Type>                                                                */
+  /*    T1_Size                                                            */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A handle to a Type 1 size object.                                  */
+  /*                                                                       */
   typedef struct T1_SizeRec_*  T1_Size;
 
 
-  /***********************************************************************/
-  /*                                                                     */
-  /* <Type> T1_GlyphSlot                                                 */
-  /*                                                                     */
-  /* <Description>                                                       */
-  /*    A handle to a Type 1 glyph slot object.                          */
-  /*                                                                     */
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Type>                                                                */
+  /*    T1_GlyphSlot                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A handle to a Type 1 glyph slot object.                            */
+  /*                                                                       */
   typedef struct T1_GlyphSlotRec_*  T1_GlyphSlot;
 
 
-  /***********************************************************************/
-  /*                                                                     */
-  /* <Type> T1_CharMap                                                   */
-  /*                                                                     */
-  /* <Description>                                                       */
-  /*    A handle to a Type 1 character mapping object.                   */
-  /*                                                                     */
-  /* <Note>                                                              */
-  /*    The Type 1 format doesn't use a charmap but an encoding table.   */
-  /*    The driver is responsible for making up charmap objects          */
-  /*    corresponding to these tables..                                  */
-  /*                                                                     */
-  typedef struct T1_CharMapRec_*   T1_CharMap;
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Type>                                                                */
+  /*    T1_CharMap                                                         */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A handle to a Type 1 character mapping object.                     */
+  /*                                                                       */
+  /* <Note>                                                                */
+  /*    The Type 1 format doesn't use a charmap but an encoding table.     */
+  /*    The driver is responsible for making up charmap objects            */
+  /*    corresponding to these tables.                                     */
+  /*                                                                       */
+  typedef struct T1_CharMapRec_*  T1_CharMap;
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /*                  HERE BEGINS THE TYPE1 SPECIFIC STUFF                 */
+  /*                                                                       */
+  /*************************************************************************/
 
- /**************************************************************************/
- /*                                                                        */
- /*    NOW BEGINS THE TYPE1 SPECIFIC STUFF ..............................  */
- /*                                                                        */
- /**************************************************************************/
 
-
-  /***************************************************/
-  /*                                                 */
-  /*  T1_Size :                                      */
-  /*                                                 */
-  /*    Type 1 size record..                         */
-  /*                                                 */
-
-  typedef struct T1_SizeRec_
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Type>                                                                */
+  /*    T1_SizeRec                                                         */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Type 1 size record.                                                */
+  /*                                                                       */
+  typedef struct  T1_SizeRec_
   {
     FT_SizeRec      root;
     FT_Bool         valid;
@@ -99,19 +106,19 @@
     T1_Size_Hints*  hints;  /* defined in the hinter. This allows */
                             /* us to experiment with different    */
                             /* hinting schemes without having to  */
-                            /* change 't1objs' each time..        */
+                            /* change `t1objs' each time.         */
   } T1_SizeRec;
 
 
-
-  /***************************************************/
-  /*                                                 */
-  /*  T1_GlyphSlot :                                 */
-  /*                                                 */
-  /*    TrueDoc glyph record..                       */
-  /*                                                 */
-
-  typedef struct T1_GlyphSlotRec_
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Type>                                                                */
+  /*    T1_GlyphSlotRec                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Type 1 glyph slot record.                                          */
+  /*                                                                       */
+  typedef struct  T1_GlyphSlotRec_
   {
     FT_GlyphSlotRec  root;
 
@@ -129,136 +136,30 @@
   } T1_GlyphSlotRec;
 
 
-/*******************************************************************
- *
- *  <Function>  T1_Init_Face
- *
- *  <Description>
- *     Initialise a given Type 1 face object
- *
- *  <Input>
- *     face_index :: index of font face in resource
- *     resource   :: source font resource
- *     face       ::  face record to build
- *
- *  <Return>
- *     Error code.
- *
- ******************************************************************/
-
   LOCAL_DEF
-  FT_Error  T1_Init_Face( FT_Stream     stream,
-                          T1_Face       face,
-                          FT_Int        face_index,
-                          FT_Int        num_params,
-                          FT_Parameter* params );
+  FT_Error  T1_Init_Face( FT_Stream      stream,
+                          T1_Face        face,
+                          FT_Int         face_index,
+                          FT_Int         num_params,
+                          FT_Parameter*  params );
 
-
-
-/*******************************************************************
- *
- *  <Function> T1_Done_Face
- *
- *  <Description>
- *     Finalise a given face object
- *
- *  <Input>
- *     face  :: handle  to the face object to destroy
- *
- ******************************************************************/
-
   LOCAL_DEF
   void  T1_Done_Face( T1_Face  face );
 
-
-
-/*******************************************************************
- *
- *  <Function> T1_Init_Size
- *
- *  <Description>
- *     Initialise a new Type 1 size object
- *
- *  <Input>
- *     size  :: handle to size object
- *
- *  <Return>
- *     Type 1 error code. 0 means success.
- *
- ******************************************************************/
-
   LOCAL_DEF
   FT_Error  T1_Init_Size( T1_Size  size );
 
-
-
-/*******************************************************************
- *
- * <Function>  T1_Done_Size
- *
- * <Description>
- *    The Type 1 size object finaliser.
- *
- * <Input>
- *    size   :: handle to the target size object.
- *
- ******************************************************************/
-
   LOCAL_DEF
   void  T1_Done_Size( T1_Size  size );
 
-
-/*******************************************************************
- *
- * <Function>  T1_Reset_Size
- *
- * <Description>
- *    Reset a Type 1 size when resolutions and character dimensions
- *    have been changed..
- *
- * <Input>
- *    size   :: handle to the target size object.
- *
- ******************************************************************/
-
   LOCAL_DEF
   FT_Error  T1_Reset_Size( T1_Size  size );
 
-
-
-/*******************************************************************
- *
- *  <Function> T1_Init_GlyphSlot
- *
- *  <Description> The TrueType glyph slot initialiser
- *
- *  <Input>  glyph ::  glyph record to build.
- *
- *  <Output> Error code.
- *
- ******************************************************************/
-
   LOCAL_DEF
   FT_Error  T1_Init_GlyphSlot( T1_GlyphSlot  slot );
 
-
-
-/*******************************************************************
- *
- *  <Function> T1_Done_GlyphSlot
- *
- *  <Description> The Type 1 glyph slot finaliser
- *
- *  <Input>  glyph  :: handle to glyph slot object
- *
- *  <Output>  Error code.
- *
- ******************************************************************/
-
   LOCAL_DEF
   void  T1_Done_GlyphSlot( T1_GlyphSlot  slot );
-
-
 
 
 #ifdef __cplusplus
--- a/src/type1/t1parse.c
+++ b/src/type1/t1parse.c
@@ -1,25 +1,48 @@
+/***************************************************************************/
+/*                                                                         */
+/*  t1parse.c                                                              */
+/*                                                                         */
+/*    Type 1 parser (body).                                                */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
 #include <freetype/internal/ftdebug.h>
 #include <freetype/internal/t1types.h>
 #include <t1parse.h>
 
-#include <stdio.h>  /* for sscanf */
+#include <stdio.h>  /* for sscanf()  */
+#include <string.h> /* for strncpy() */
 
-/*************************************************************************/
-/*                                                                       */
-/* <Function> T1_New_Table                                               */
-/*                                                                       */
-/* <Description>                                                         */
-/*    Initialise a T1_Table.                                             */
-/*                                                                       */
-/* <Input>                                                               */
-/*    table  :: address of target table                                  */
-/*    count  :: table size = maximum number of elements                  */
-/*    memory :: memory object to use for all subsequent reallocations    */
-/*                                                                       */
-/* <Return>                                                              */
-/*    Error code. 0 means success                                        */
-/*                                                                       */
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_New_Table                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Initializes a T1_Table structure.                                  */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    table  :: The address of the target table.                         */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    count  :: The table size (i.e. maximum number of elements).        */
+  /*    memory :: The memory object to use for all subsequent              */
+  /*              reallocations.                                           */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    FreeType error code.  0 means success.                             */
+  /*                                                                       */
   LOCAL_FUNC
   FT_Error  T1_New_Table( T1_Table*  table,
                           FT_Int     count,
@@ -27,7 +50,9 @@
   {
 	 FT_Error  error;
 
+
 	 table->memory = memory;
+
 	 if ( ALLOC_ARRAY( table->elements, count, FT_Byte* ) )
 		 return error;
 
@@ -48,55 +73,60 @@
   }
 
 
+  static
+  FT_Error  reallocate_t1_table( T1_Table*  table,
+                                 FT_Int     new_size )
+  {
+    FT_Memory  memory   = table->memory;
+    FT_Byte*   old_base = table->block;
+    FT_Error   error;
 
-/*************************************************************************/
-/*                                                                       */
-/* <Function> T1_Add_Table                                               */
-/*                                                                       */
-/* <Description>                                                         */
-/*    Adds an object to a T1_Table, possibly growing its memory block    */
-/*                                                                       */
-/* <Input>                                                               */
-/*    table  :: target table                                             */
-/*    index  :: index of object in table                                 */
-/*    object :: address of object to copy in memory                      */
-/*    length :: length in bytes of source object                         */
-/*                                                                       */
-/* <Return>                                                              */
-/*    Error code. 0 means success. An error is returned when a           */
-/*    realloc failed..                                                   */
-/*                                                                       */
 
-      static
-      FT_Error  reallocate_t1_table( T1_Table*  table,
-                                     FT_Int     new_size )
-      {
-        FT_Memory  memory   = table->memory;
-        FT_Byte*   old_base = table->block;
-        FT_Error   error;
+    /* reallocate the base block */
+    if ( REALLOC( table->block, table->capacity, new_size ) )
+      return error;
+    table->capacity = new_size;
 
-        /* realloc the base block */
-        if ( REALLOC( table->block, table->capacity, new_size ) )
-          return error;
-        table->capacity = new_size;
+    /* shift all offsets if necessary */
+    if ( old_base )
+    {
+      FT_Long    delta  = table->block - old_base;
+      FT_Byte**  offset = table->elements;
+      FT_Byte**  limit  = offset + table->max_elems;
 
-        /* shift all offsets when needed */
-        if (old_base)
-        {
-          FT_Long   delta  = table->block - old_base;
-          FT_Byte** offset = table->elements;
-          FT_Byte** limit  = offset + table->max_elems;
 
-          if (delta)
-            for ( ; offset < limit; offset ++ )
-              if (offset[0])
-                offset[0] += delta;
-        }
+      if ( delta )
+        for ( ; offset < limit; offset ++ )
+          if (offset[0])
+            offset[0] += delta;
+    }
 
-        return T1_Err_Ok;
-      }
+    return T1_Err_Ok;
+  }
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Add_Table                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Adds an object to a T1_Table, possibly growing its memory block.   */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    table  :: The target table.                                        */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    index  :: The index of the object in the table.                    */
+  /*                                                                       */
+  /*    object :: The address of the object to copy in memory.             */
+  /*                                                                       */
+  /*    length :: The length in bytes of the source object.                */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    FreeType error code.  0 means success.  An error is returned if a  */
+  /*    reallocation failed.                                               */
+  /*                                                                       */
   LOCAL_FUNC
   FT_Error  T1_Add_Table( T1_Table*  table,
                           FT_Int     index,
@@ -103,9 +133,9 @@
                           void*      object,
                           FT_Int     length )
   {
-	if (index < 0 || index > table->max_elems)
+	if ( index < 0 || index > table->max_elems )
     {
-	  FT_ERROR(( "T1.Add_Table: invalid index\n" ));
+	  FT_ERROR(( "T1_Add_Table: invalid index\n" ));
 	  return T1_Err_Syntax_Error;
     }
 
@@ -115,37 +145,41 @@
       FT_Error  error;
       FT_Int    new_size = table->capacity;
 
-      while ( new_size < table->cursor+length )
+
+      while ( new_size < table->cursor + length )
         new_size += 1024;
 
       error = reallocate_t1_table( table, new_size );
-      if (error) return error;
+      if ( error )
+        return error;
     }
 
     /* add the object to the base block and adjust offset */
-    table->elements[ index ] = table->block + table->cursor;
-    table->lengths [ index ] = length;
+    table->elements[index] = table->block + table->cursor;
+    table->lengths [index] = length;
     MEM_Copy( table->block + table->cursor, object, length );
 
     table->cursor += length;
+
     return T1_Err_Ok;
   }
 
 
-/*************************************************************************/
-/*                                                                       */
-/* <Function> T1_Done_Table                                              */
-/*                                                                       */
-/* <Description>                                                         */
-/*    Finalise a T1_Table. (realloc it to its current cursor).           */
-/*                                                                       */
-/* <Input>                                                               */
-/*    table :: target table                                              */
-/*                                                                       */
-/* <Note>                                                                */
-/*    This function does NOT release the heap's memory block. It is up   */
-/*    to the caller to clean it, or reference it in its own structures.  */
-/*                                                                       */
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Done_Table                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Finalize a T1_Table (reallocate it to its current cursor).         */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    table :: The target table.                                         */
+  /*                                                                       */
+  /* <Note>                                                                */
+  /*    This function does NOT release the heap's memory block.  It is up  */
+  /*    to the caller to clean it, or reference it in its own structures.  */
+  /*                                                                       */
   LOCAL_FUNC
   void  T1_Done_Table( T1_Table*  table )
   {
@@ -153,22 +187,24 @@
     FT_Error   error;
     FT_Byte*   old_base;
 
+
     /* should never fail, as rec.cursor <= rec.size */
     old_base = table->block;
-    if (!old_base)
+    if ( !old_base )
       return;
 
     (void)REALLOC( table->block, table->capacity, table->cursor );
     table->capacity = table->cursor;
 
-    if (old_base != table->block)
+    if ( old_base != table->block )
     {
-      FT_Long   delta   = table->block - old_base;
-      FT_Byte** element = table->elements;
-      FT_Byte** limit   = element + table->max_elems;
+      FT_Long    delta   = table->block - old_base;
+      FT_Byte**  element = table->elements;
+      FT_Byte**  limit   = element + table->max_elems;
 
+
       for ( ; element < limit; element++ )
-        if (element[0])
+        if ( element[0] )
           element[0] += delta;
     }
   }
@@ -175,7 +211,7 @@
 
 
   LOCAL_FUNC
-  FT_String*   CopyString( T1_Parser*  parser )
+  FT_String*  CopyString( T1_Parser*  parser )
   {
     FT_String*  string = NULL;
     T1_Token*   token  = parser->args++;
@@ -182,17 +218,19 @@
     FT_Memory   memory = parser->tokenizer->memory;
     FT_Error    error;
 
+
     if ( token->kind == tok_string )
     {
-      int  len = token->len-2;
+      FT_Int  len = token->len - 2;
 
-      if ( ALLOC( string, len+1 ) )
+
+      if ( ALLOC( string, len + 1 ) )
       {
         parser->error = error;
         return 0;
       }
 
-      MEM_Copy( string, parser->tokenizer->base + token->start+1, len );
+      MEM_Copy( string, parser->tokenizer->base + token->start + 1, len );
       string[len] = '\0';
 
       parser->error = T1_Err_Ok;
@@ -199,14 +237,14 @@
     }
     else
     {
-      FT_ERROR(( "T1.CopyString : syntax error, string token expected !\n" ));
+      FT_ERROR(( "T1_CopyString: syntax error, string token expected!\n" ));
       parser->error = T1_Err_Syntax_Error;
     }
+
     return string;
   }
 
 
-
   static
   FT_Error  parse_int( FT_Byte*  base,
                        FT_Byte*  limit,
@@ -215,7 +253,8 @@
     FT_Bool  sign = 0;
     FT_Long  sum  = 0;
 
-    if (base >= limit)
+
+    if ( base >= limit )
       goto Fail;
 
     /* check sign */
@@ -234,11 +273,11 @@
 
     do
     {
-      sum = ( 10*sum + (*base++ - '0') );
+      sum = ( 10 * sum + ( *base++ - '0' ) );
 
-    } while (base < limit);
+    } while ( base < limit );
 
-    if (sign)
+    if ( sign )
       sum = -sum;
 
     *result = sum;
@@ -245,137 +284,147 @@
     return T1_Err_Ok;
 
   Fail:
-    FT_ERROR(( "T1.parse_integer : integer expected\n" ));
+    FT_ERROR(( "parse_int: integer expected\n" ));
     *result = 0;
     return T1_Err_Syntax_Error;
   }
 
 
-
-
   static
   FT_Error  parse_float( FT_Byte*  base,
                          FT_Byte*  limit,
-                         FT_Int    scale,
+                         FT_Long   scale,
                          FT_Long*  result )
   {
 #if 1
-    /* XXX : We're simply much too lazy to code this function  */
-    /*       properly for now.. We'll do that when the rest of */
-    /*       the driver works properly..                       */
+
+    /* XXX: We are simply much too lazy to code this function   */
+    /*      properly for now.  We will do that when the rest of */
+    /*      the driver works properly.                          */
     char    temp[32];
-    int     len = limit-base;
+    int     len = limit - base;
     double  value;
 
-    if (len > 31) goto Fail;
 
+    if ( len > 31 )
+      goto Fail;
+
     strncpy( temp, (char*)base, len );
     temp[len] = '\0';
     if ( sscanf( temp, "%lf", &value ) != 1 )
       goto Fail;
 
-    *result = (FT_Long)(scale*value);
+    *result = (FT_Long)( scale * value );
     return 0;
 
 #else
-  FT_Byte*  cur;
-  FT_Bool   sign        = 0;  /* sign                        */
-  FT_Long   number_int  = 0;  /* integer part                */
-  FT_Long   number_frac = 0;  /* fractional part             */
-  FT_Long   exponent    = 0;  /* exponent value              */
-  FT_Int    num_frac    = 0;  /* number of fractional digits */
 
-  /* check sign */
-  if (*base == '+')
-    base++;
+    FT_Byte*  cur;
+    FT_Bool   sign        = 0;  /* sign                        */
+    FT_Long   number_int  = 0;  /* integer part                */
+    FT_Long   number_frac = 0;  /* fractional part             */
+    FT_Long   exponent    = 0;  /* exponent value              */
+    FT_Int    num_frac    = 0;  /* number of fractional digits */
 
-  else if (*base == '-')
-  {
-    sign++;
-    base++;
-  }
 
-  /* find integer part */
-  cur = base;
-  while ( cur < limit )
-  {
-    FT_Byte  c = *cur;
-    if ( c == '.' || c == 'e' || c == 'E' )
-      break;
+    /* check sign */
+    if ( *base == '+' )
+      base++;
 
-    cur++;
-  }
+    else if ( *base == '-' )
+    {
+      sign++;
+      base++;
+    }
 
-  if ( cur > base )
-  {
-    error = parse_integer( base, cur, &number_int );
-    if (error) goto Fail;
-  }
-
-  /* read fractional part, if any */
-  if ( *cur == '.' )
-  {
-    cur++;
-    base = cur;
+    /* find integer part */
+    cur = base;
     while ( cur < limit )
     {
       FT_Byte  c = *cur;
-      if ( c == 'e' || c == 'E' )
+
+
+      if ( c == '.' || c == 'e' || c == 'E' )
         break;
+
       cur++;
     }
 
-    num_frac = cur - base;
-
     if ( cur > base )
     {
-      error = parse_integer( base, cur, &number_frac );
-      if (error) goto Fail;
-      base = cur;
+      error = parse_integer( base, cur, &number_int );
+      if ( error )
+        goto Fail;
     }
-  }
 
-  /* read exponent, if any */
-  if ( *cur == 'e' || *cur == 'E' )
-  {
-    cur++;
-    base = cur;
-    error = parse_integer( base, limit, &exponent );
-    if (error) goto Fail;
+    /* read fractional part, if any */
+    if ( *cur == '.' )
+    {
+      cur++;
+      base = cur;
+      while ( cur < limit )
+      {
+        FT_Byte  c = *cur;
 
-    /* now check that exponent is within 'correct bounds' */
-    /* i.e. between -6 and 6                              */
-    if ( exponent < -6 || exponent > 6 )
-      goto Fail;
-  }
 
-  /* now adjust integer value and exponent for fractional part */
-  while ( num_frac > 0 )
-  {
-    number_int *= 10;
-    exponent   --;
-    num_frac--;
-  }
+        if ( c == 'e' || c == 'E' )
+          break;
+        cur++;
+      }
 
-  number_int += num_frac;
+      num_frac = cur - base;
 
-  /* skip point if any, read fractional part */
-  if ( cur+1 < limit )
-  {
-    if (*cur
-  }
+      if ( cur > base )
+      {
+        error = parse_integer( base, cur, &number_frac );
+        if ( error )
+          goto Fail;
+        base = cur;
+      }
+   }
 
-  /* now compute scaled float value */
-  /* XXXXX : incomplete !!!         */
-#endif
+    /* read exponent, if any */
+    if ( *cur == 'e' || *cur == 'E' )
+    {
+      cur++;
+      base = cur;
+      error = parse_integer( base, limit, &exponent );
+      if ( error )
+        goto Fail;
 
+      /* now check that exponent is within `correct bounds' */
+      /* i.e. between -6 and 6                              */
+      if ( exponent < -6 || exponent > 6 )
+        goto Fail;
+    }
+
+    /* now adjust integer value and exponent for fractional part */
+    while ( num_frac > 0 )
+    {
+      number_int *= 10;
+      exponent--;
+      num_frac--;
+    }
+
+    number_int += num_frac;
+
+    /* skip point if any, read fractional part */
+    if ( cur + 1 < limit )
+    {
+      if (*cur..
+    }
+
+    /* now compute scaled float value */
+    /* XXX: incomplete!               */
+
+#endif /* 1 */
+
   Fail:
-    FT_ERROR(( "T1.parse_float : syntax error !\n" ));
+    FT_ERROR(( "parse_float: syntax error!\n" ));
     return T1_Err_Syntax_Error;
   }
 
 
-
   static
   FT_Error  parse_integer( FT_Byte*  base,
                            FT_Byte*  limit,
@@ -383,13 +432,15 @@
   {
     FT_Byte*  cur;
 
+
     /* the lexical analyser accepts floats as well as integers */
-    /* now, check that we really have an int in this token     */
+    /* now; check that we really have an int in this token     */
     cur = base;
     while ( cur < limit )
     {
       FT_Byte  c = *cur++;
 
+
       if ( c == '.' || c == 'e' || c == 'E' )
         goto Float_Number;
     }
@@ -398,16 +449,19 @@
     return parse_int( base, limit, result );
 
   Float_Number:
-    /* We really have a float there, simply call parse_float in this */
-    /* case with a scale of '10' to perform round..                */
+    /* we really have a float there; simply call parse_float in this */
+    /* case with a scale of `10' to perform round                    */
     {
       FT_Error error;
 
+
       error = parse_float( base, limit, 10, result );
-      if (!error)
+      if ( !error )
       {
-        if (*result >= 0) *result = (*result+5)/10;      /* round value */
-                    else  *result = -((5-*result)/10);
+        if ( *result >= 0 )
+          *result = ( *result + 5 ) / 10;      /* round value */
+        else
+          *result = -( ( 5 - *result ) / 10 );
       }
       return error;
     }
@@ -417,20 +471,22 @@
   LOCAL_FUNC
   FT_Long  CopyInteger( T1_Parser*  parser )
   {
-    FT_Long   sum   = 0;
-    T1_Token* token = parser->args++;
+    FT_Long    sum   = 0;
+    T1_Token*  token = parser->args++;
 
+
     if ( token->kind == tok_number )
     {
       FT_Byte*  base  = parser->tokenizer->base + token->start;
       FT_Byte*  limit = base + token->len;
 
+
       /* now read the number's value */
       parser->error = parse_integer( base, limit, &sum );
       return sum;
     }
 
-    FT_ERROR(( "T1.CopyInteger : number expected\n" ));
+    FT_ERROR(( "CopyInteger: number expected\n" ));
     parser->args--;
     parser->error = T1_Err_Syntax_Error;
     return 0;
@@ -437,14 +493,14 @@
   }
 
 
-
   LOCAL_FUNC
   FT_Bool   CopyBoolean( T1_Parser*  parser )
   {
-    FT_Error  error  = T1_Err_Ok;
-    FT_Bool   result = 0;
-    T1_Token* token  = parser->args++;
+    FT_Error   error  = T1_Err_Ok;
+    FT_Bool    result = 0;
+    T1_Token*  token  = parser->args++;
 
+
     if ( token->kind == tok_keyword )
     {
       if ( token->kind2 == key_false )
@@ -459,7 +515,8 @@
     else
     {
       Fail:
-        FT_ERROR(( "T1.CopyBoolean : syntax error, 'false' or 'true' expected\n" ));
+        FT_ERROR(( "CopyBoolean:" ));
+        FT_ERROR(( " syntax error; `false' or `true' expected\n" ));
         error = T1_Err_Syntax_Error;
     }
     parser->error = error;
@@ -467,55 +524,54 @@
   }
 
 
-
-
   LOCAL_FUNC
   FT_Long   CopyFloat( T1_Parser*  parser,
                        FT_Int      scale )
   {
-    FT_Error  error;
-    FT_Long   sum = 0;
-    T1_Token* token = parser->args++;
+    FT_Error   error;
+    FT_Long    sum = 0;
+    T1_Token*  token = parser->args++;
 
+
     if ( token->kind == tok_number )
     {
       FT_Byte*  base  = parser->tokenizer->base + token->start;
       FT_Byte*  limit = base + token->len;
 
+
       error = parser->error = parse_float( base, limit, scale, &sum );
-      if (error) goto Fail;
+      if ( error )
+        goto Fail;
 
       return sum;
     }
 
   Fail:
-    FT_ERROR(( "T1.CopyFloat : syntax error !\n" ));
+    FT_ERROR(( "CopyFloat: syntax error!\n" ));
     parser->error = T1_Err_Syntax_Error;
     return 0;
   }
 
 
-
-
-
-
   LOCAL_FUNC
   void  CopyBBox( T1_Parser*  parser,
                   FT_BBox*    bbox )
   {
-    T1_Token* token = parser->args++;
-    FT_Int    n;
-    FT_Error  error;
+    T1_Token*  token = parser->args++;
+    FT_Int     n;
+    FT_Error   error;
 
+
     if ( token->kind == tok_program ||
          token->kind == tok_array   )
     {
-      /* get rid of '['/']', or '{'/'}' */
+      /* get rid of `['/`]', or `{'/`}' */
       FT_Byte*  base  = parser->tokenizer->base + token->start + 1;
       FT_Byte*  limit = base + token->len - 2;
       FT_Byte*  cur;
       FT_Byte*  start;
 
+
       /* read each parameter independently */
       cur = base;
       for ( n = 0; n < 4; n++ )
@@ -522,24 +578,35 @@
       {
         FT_Long*  result;
 
+
         /* skip whitespace */
-        while (cur < limit && *cur == ' ') cur++;
+        while ( cur < limit && *cur == ' ' )
+          cur++;
 
         /* skip numbers */
         start = cur;
-        while (cur < limit && *cur != ' ') cur++;
+        while ( cur < limit && *cur != ' ' )
+          cur++;
 
         /* compute result address */
-        switch (n)
+        switch ( n )
         {
-          case 0 : result = &bbox->xMin; break;
-          case 1 : result = &bbox->yMin; break;
-          case 2 : result = &bbox->xMax; break;
-          default: result = &bbox->yMax;
+        case 0:
+          result = &bbox->xMin;
+          break;
+        case 1:
+          result = &bbox->yMin;
+          break;
+        case 2:
+          result = &bbox->xMax;
+          break;
+        default:
+          result = &bbox->yMax;
         }
 
         error = parse_integer( start, cur, result );
-        if (error) goto Fail;
+        if ( error )
+          goto Fail;
       }
       parser->error = 0;
       return;
@@ -546,13 +613,11 @@
     }
 
   Fail:
-    FT_ERROR(( "T1.CopyBBox : syntax error !\n" ));
+    FT_ERROR(( "CopyBBox: syntax error!\n" ));
     parser->error = T1_Err_Syntax_Error;
   }
 
 
-
-
   LOCAL_FUNC
   void  CopyMatrix( T1_Parser*  parser,
                     FT_Matrix*  matrix )
@@ -560,9 +625,10 @@
     T1_Token* token = parser->args++;
     FT_Error  error;
 
+
     if ( token->kind == tok_array )
     {
-      /* get rid of '[' and ']' */
+      /* get rid of `[' and `]' */
       FT_Byte*  base  = parser->tokenizer->base + token->start + 1;
       FT_Byte*  limit = base + token->len - 2;
       FT_Byte*  cur;
@@ -569,6 +635,7 @@
       FT_Byte*  start;
       FT_Int    n;
 
+
       /* read each parameter independently */
       cur = base;
       for ( n = 0; n < 4; n++ )
@@ -575,24 +642,35 @@
       {
         FT_Long*  result;
 
+
         /* skip whitespace */
-        while (cur < limit && *cur == ' ') cur++;
+        while ( cur < limit && *cur == ' ' )
+          cur++;
 
         /* skip numbers */
         start = cur;
-        while (cur < limit && *cur != ' ') cur++;
+        while ( cur < limit && *cur != ' ')
+          cur++;
 
         /* compute result address */
-        switch (n)
+        switch ( n )
         {
-          case 0 : result = &matrix->xx; break;
-          case 1 : result = &matrix->yx; break;
-          case 2 : result = &matrix->xy; break;
-          default: result = &matrix->yy;
+        case 0:
+          result = &matrix->xx;
+          break;
+        case 1:
+          result = &matrix->yx;
+          break;
+        case 2:
+          result = &matrix->xy;
+          break;
+        default:
+          result = &matrix->yy;
         }
 
-        error = parse_float( start, cur, 65536000, result );
-        if (error) goto Fail;
+        error = parse_float( start, cur, 65536000L, result );
+        if ( error )
+          goto Fail;
       }
       parser->error = 0;
       return;
@@ -599,12 +677,11 @@
     }
 
   Fail:
-    FT_ERROR(( "T1.CopyMatrix : syntax error !\n" ));
+    FT_ERROR(( "CopyMatrix: syntax error!\n" ));
     parser->error = T1_Err_Syntax_Error;
   }
 
 
-
   LOCAL_FUNC
   void  CopyArray( T1_Parser*  parser,
                    FT_Byte*    num_elements,
@@ -614,10 +691,11 @@
     T1_Token* token = parser->args++;
     FT_Error  error;
 
+
     if ( token->kind == tok_array   ||
          token->kind == tok_program )   /* in the case of MinFeature */
     {
-      /* get rid of '['/']', or '{'/'}' */
+      /* get rid of `['/`]', or `{'/`}' */
       FT_Byte*  base  = parser->tokenizer->base + token->start + 1;
       FT_Byte*  limit = base + token->len - 2;
       FT_Byte*  cur;
@@ -624,6 +702,7 @@
       FT_Byte*  start;
       FT_Int    n;
 
+
       /* read each parameter independently */
       cur = base;
       for ( n = 0; n < max_elements; n++ )
@@ -630,28 +709,32 @@
       {
         FT_Long  result;
 
+
         /* test end of string */
-        if (cur >= limit)
+        if ( cur >= limit )
           break;
 
         /* skip whitespace */
-        while (cur < limit && *cur == ' ') cur++;
+        while ( cur < limit && *cur == ' ' )
+          cur++;
 
-        /* end of list ? */
-        if (cur >= limit)
+        /* end of list? */
+        if ( cur >= limit )
           break;
 
         /* skip numbers */
         start = cur;
-        while (cur < limit && *cur != ' ') cur++;
+        while ( cur < limit && *cur != ' ' )
+          cur++;
 
         error = parse_integer( start, cur, &result );
-        if (error) goto Fail;
+        if ( error )
+          goto Fail;
 
-        *elements ++ = (FT_Short)result;
+        *elements++ = (FT_Short)result;
       }
 
-      if (num_elements)
+      if ( num_elements )
         *num_elements = (FT_Byte)n;
 
       parser->error = 0;
@@ -659,7 +742,9 @@
     }
 
   Fail:
-    FT_ERROR(( "T1.CopyArray : syntax error !\n" ));
+    FT_ERROR(( "CopyArray: syntax error!\n" ));
     parser->error = T1_Err_Syntax_Error;
   }
 
+
+/* END */
--- a/src/type1/t1parse.h
+++ b/src/type1/t1parse.h
@@ -1,27 +1,32 @@
-/*******************************************************************
- *
- *  t1parse.h                                                   1.0
- *
- *    Type1 parser.
- *
- *  Copyright 1996-1998 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.
- *
- *
- *  The Type1 parser component is in charge of simply parsing
- *  the font input stream and convert simple tokens and elements
- *  into integers, floats, matrices, strings, etc..
- *
- *  It is used by the Type1 loader..
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  t1parse.h                                                              */
+/*                                                                         */
+/*    Type 1 parser (specification).                                       */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/***************************************************************************/
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The Type1 parser component is in charge of simply parsing the font    */
+  /* input stream and convert simple tokens and elements into integers,    */
+  /* floats, matrices, strings, etc.                                       */
+  /*                                                                       */
+  /* It is used by the Type1 loader.                                       */
+  /*                                                                       */
+  /*************************************************************************/
+
+
 #ifndef T1PARSE_H
 #define T1PARSE_H
 
@@ -32,16 +37,17 @@
   extern "C" {
 #endif
 
-/*************************************************************************
- *
- * <Enum> T1_DictState
- *
- * <Description>
- *    An enumeration used to describe the Type 1 parser's state, i.e.
- *    which dictionary (or array) it is scanning and processing at the
- *    current moment..
- *
- */
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Enum>                                                                */
+  /*    T1_DictState                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    An enumeration used to describe the Type 1 parser's state, i.e.    */
+  /*    which dictionary (or array) it is scanning and processing at the   */
+  /*    current moment.                                                    */
+  /*                                                                       */
   typedef enum  T1_DictState_
   {
     dict_none = 0,
@@ -61,33 +67,37 @@
   } T1_DictState;
 
 
-/*************************************************************************
- *
- * <Struct> T1_Table
- *
- * <Description>
- *    A T1_Table is a simple object used to store an array of objects
- *    in a single memory block.
- *
- * <Fields>
- *    block     :: address in memory of the growheap's block. This
- *                 can change between two object adds, due to the use
- *                 of 'realloc'.
- *
- *    cursor    :: current top of the grow heap within its block
- *
- *    capacity  :: current size of the heap block. Increments by 1 Kb
- *
- *    max_elems :: maximum number of elements in table
- *    num_elems :: current number of elements in table
- *
- *    elements  :: table of element addresses within the block
- *    lengths   :: table of element sizes within the block
- *
- *    system   :: system object used for memory operations (alloc/realloc)
- */
-
-  typedef struct T1_Table_
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Struct>                                                              */
+  /*    T1_Table                                                           */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A T1_Table is a simple object used to store an array of objects in */
+  /*    a single memory block.                                             */
+  /*                                                                       */
+  /* <Fields>                                                              */
+  /*    block     :: The address in memory of the growheap's block.  This  */
+  /*                 can change between two object adds, due to            */
+  /*                 reallocation.                                         */
+  /*                                                                       */
+  /*    cursor    :: The current top of the grow heap within its block.    */
+  /*                                                                       */
+  /*    capacity  :: The current size of the heap block.  Increments by    */
+  /*                 1kByte chunks.                                        */
+  /*                                                                       */
+  /*    max_elems :: The maximum number of elements in table.              */
+  /*                                                                       */
+  /*    num_elems :: The current number of elements in table.              */
+  /*                                                                       */
+  /*    elements  :: A table of element addresses within the block.        */
+  /*                                                                       */
+  /*    lengths   :: A table of element sizes within the block.            */
+  /*                                                                       */
+  /*    memory    :: The object used for memory operations                 */
+  /*                 (alloc/realloc).                                      */
+  /*                                                                       */
+  typedef struct  T1_Table_
   {
     FT_Byte*   block;          /* current memory block           */
     FT_Int     cursor;         /* current cursor in memory block */
@@ -103,72 +113,78 @@
   } T1_Table;
 
 
-
-
-/*************************************************************************/
-/*                                                                       */
-/* <Struct> T1_Parser                                                    */
-/*                                                                       */
-/* <Description>                                                         */
-/*    A Type 1 parser. This object is in charge of parsing Type 1        */
-/*    ASCII streams and builds dictionaries for a T1_Face object.        */
-/*                                                                       */
-/* <Fields>                                                              */
-/*    error ::                                                           */
-/*       current error code. 0 means success                             */
-/*                                                                       */
-/*    face  ::                                                           */
-/*       the target T1_Face object being built                           */
-/*                                                                       */
-/*    tokenizer ::                                                       */
-/*       the tokenizer (lexical analyser) used for processing the        */
-/*       input stream.                                                   */
-/*                                                                       */
-/*    stack ::                                                           */
-/*       the current token stack. Note that we don't use intermediate    */
-/*       Postscript objects here !                                       */
-/*                                                                       */
-/*    top ::                                                             */
-/*       current top of token stack                                      */
-/*                                                                       */
-/*    limit ::                                                           */
-/*       current upper bound of the token stack. Used for overflow       */
-/*       checks..                                                        */
-/*                                                                       */
-/*    args ::                                                            */
-/*       arguments of a given operator. used and increased by the        */
-/*       Copy.... functions..                                            */
-/*                                                                       */
-/*    state_index ::                                                     */
-/*       index of top of the dictionary state stack                      */
-/*                                                                       */
-/*    state_stack ::                                                     */
-/*       dictionary states stack                                         */
-/*                                                                       */
-/*    table ::                                                           */
-/*       a T1_Table object used to record various kinds of               */
-/*       dictionaries or arrays (like /Encoding, /Subrs, /CharStrings)   */
-/*                                                                       */
-/*                                                                       */
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Struct>                                                              */
+  /*    T1_Parser                                                          */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A Type 1 parser.  This object is in charge of parsing Type 1 ASCII */
+  /*    streams and builds dictionaries for a T1_Face object.              */
+  /*                                                                       */
+  /* <Fields>                                                              */
+  /*    error            :: The current error code.  0 means success.      */
+  /*                                                                       */
+  /*    face             :: The target T1_Face object being built.         */
+  /*                                                                       */
+  /*    tokenizer        :: The tokenizer (lexical analyser) used for      */
+  /*                        processing the input stream.                   */
+  /*                                                                       */
+  /*    dump_tokens      :: XXX                                            */
+  /*                                                                       */
+  /*    stack            :: The current token stack.  Note that we don't   */
+  /*                        use intermediate Postscript objects here!      */
+  /*                                                                       */
+  /*    top              :: The current top of token stack.                */
+  /*                                                                       */
+  /*    limit            :: The current upper bound of the token stack.    */
+  /*                        Used for overflow checks.                      */
+  /*                                                                       */
+  /*    args             :: The arguments of a given operator.  Used and   */
+  /*                        increased by the various CopyXXX() functions.  */
+  /*                                                                       */
+  /*    state_index      :: The index of the top of the dictionary state   */
+  /*                        stack.                                         */
+  /*                                                                       */
+  /*    state_stack      :: The dictionary states stack.                   */
+  /*                                                                       */
+  /*    table            :: A T1_Table object used to record various kinds */
+  /*                        of dictionaries or arrays (like `/Encoding',   */
+  /*                        `/Subrs', `/CharStrings').                     */
+  /*                                                                       */
+  /*    cur_name         :: XXX                                            */
+  /*                                                                       */
+  /*    encoding_type    :: XXX                                            */
+  /*                                                                       */
+  /*    encoding_names   :: XXX                                            */
+  /*                                                                       */
+  /*    encoding_lengths :: XXX                                            */
+  /*                                                                       */
+  /*    encoding_offsets :: XXX                                            */
+  /*                                                                       */
+  /*    subrs            :: XXX                                            */
+  /*                                                                       */
+  /*    charstrings      :: XXX                                            */
+  /*                                                                       */
   typedef  struct  T1_Parser_
   {
-    FT_Error      error;
-    T1_Face       face;
+    FT_Error         error;
+    T1_Face          face;
 
-    T1_Tokenizer  tokenizer;
-    FT_Bool       dump_tokens;
+    T1_Tokenizer     tokenizer;
+    FT_Bool          dump_tokens;
 
-    T1_Token      stack[ T1_MAX_STACK_DEPTH ];
-    T1_Token*     top;
-    T1_Token*     limit;
-    T1_Token*     args;
+    T1_Token         stack[T1_MAX_STACK_DEPTH];
+    T1_Token*        top;
+    T1_Token*        limit;
+    T1_Token*        args;
 
-    FT_Int        state_index;
-    T1_DictState  state_stack[ T1_MAX_DICT_DEPTH ];
+    FT_Int           state_index;
+    T1_DictState     state_stack[T1_MAX_DICT_DEPTH];
 
-	T1_Table      table;
+	T1_Table         table;
 
-	FT_Int        cur_name;
+	FT_Int           cur_name;
 
 	T1_EncodingType  encoding_type;
     FT_Byte*         encoding_names;
@@ -175,51 +191,17 @@
     FT_Int*          encoding_lengths;
     FT_Byte**        encoding_offsets;
 
-    FT_Byte*      subrs;
-    FT_Byte*      charstrings;
+    FT_Byte*         subrs;
+    FT_Byte*         charstrings;
 
   } T1_Parser;
 
 
-
-/*************************************************************************/
-/*                                                                       */
-/* <Function> T1_New_Table                                               */
-/*                                                                       */
-/* <Description>                                                         */
-/*    Initialise a T1_Table.                                             */
-/*                                                                       */
-/* <Input>                                                               */
-/*    table  :: address of target table                                  */
-/*    count  :: table size = maximum number of elements                  */
-/*    system :: system object to use for all subsequent reallocations    */
-/*                                                                       */
-/* <Return>                                                              */
-/*    Error code. 0 means success                                        */
-/*                                                                       */
   LOCAL_DEF
   FT_Error  T1_New_Table( T1_Table*  table,
                           FT_Int     count,
                           FT_Memory  memory );
 
-
-/*************************************************************************/
-/*                                                                       */
-/* <Function> T1_Add_Table                                               */
-/*                                                                       */
-/* <Description>                                                         */
-/*    Adds an object to a T1_Table, possibly growing its memory block    */
-/*                                                                       */
-/* <Input>                                                               */
-/*    table  :: target table                                             */
-/*    index  :: index of object in table                                 */
-/*    object :: address of object to copy in memory                      */
-/*    length :: length in bytes of source object                         */
-/*                                                                       */
-/* <Return>                                                              */
-/*    Error code. 0 means success. An error is returned when a           */
-/*    realloc failed..                                                   */
-/*                                                                       */
   LOCAL_DEF
   FT_Error  T1_Add_Table( T1_Table*  table,
                           FT_Int     index,
@@ -226,50 +208,30 @@
                           void*      object,
                           FT_Int     length );
 
-
-/*************************************************************************/
-/*                                                                       */
-/* <Function> T1_Done_Table                                              */
-/*                                                                       */
-/* <Description>                                                         */
-/*    Finalise a T1_Table. (realloc it to its current cursor).           */
-/*                                                                       */
-/* <Input>                                                               */
-/*    table :: target table                                              */
-/*                                                                       */
-/* <Note>                                                                */
-/*    This function does NOT release the heap's memory block. It is up   */
-/*    to the caller to clean it, or reference it in its own structures.  */
-/*                                                                       */
   LOCAL_DEF
   void  T1_Done_Table( T1_Table*  table );
 
 
-
-
   LOCAL_DEF
-  FT_String*   CopyString( T1_Parser*  parser );
+  FT_String*  CopyString( T1_Parser*  parser );
 
-
   LOCAL_DEF
-  FT_Long      CopyInteger( T1_Parser*  parser );
+  FT_Long  CopyInteger( T1_Parser*  parser );
 
-
   LOCAL_DEF
-  FT_Bool      CopyBoolean( T1_Parser*  parser );
+  FT_Bool  CopyBoolean( T1_Parser*  parser );
 
-
   LOCAL_DEF
-  FT_Long      CopyFloat( T1_Parser*  parser,
-                          FT_Int      scale );
+  FT_Long  CopyFloat( T1_Parser*  parser,
+                      FT_Int      scale );
 
   LOCAL_DEF
-  void         CopyBBox( T1_Parser*  parser,
-                         FT_BBox*    bbox );
+  void  CopyBBox( T1_Parser*  parser,
+                  FT_BBox*    bbox );
 
   LOCAL_DEF
-  void         CopyMatrix( T1_Parser*  parser,
-                           FT_Matrix*  matrix );
+  void  CopyMatrix( T1_Parser*  parser,
+                    FT_Matrix*  matrix );
 
   LOCAL_DEF
   void  CopyArray( T1_Parser*  parser,
@@ -277,6 +239,7 @@
                    FT_Short*   elements,
                    FT_Int      max_elements );
 
+
 #ifdef __cplusplus
   }
 #endif
@@ -285,4 +248,3 @@
 
 
 /* END */
-