shithub: freetype+ttf2subf

Download patch

ref: e3c11d7f004b906bebf610cc8bdb5320494fd157
parent: 67d301f305b2c10f97445f38a4dd2ec7d0241515
author: Werner Lemberg <[email protected]>
date: Fri Jun 16 02:49:56 EDT 2000

A new round of formatting, adding/fixing documentation etc.

git/fs: mount .git/fs: mount/attach disallowed
--- a/include/freetype/internal/ftdebug.h
+++ b/include/freetype/internal/ftdebug.h
@@ -91,6 +91,14 @@
     trace_t2objs,
     trace_t2parse,
 
+    /* CID driver components */
+    trace_cidafm,
+    trace_ciddriver,
+    trace_cidgload,
+    trace_cidload,
+    trace_cidobjs,
+    trace_cidparse,
+
     /* other trace levels */
 
     /* the last level must always be `trace_max' */
--- a/src/base/ftmm.c
+++ b/src/base/ftmm.c
@@ -104,6 +104,7 @@
       FT_Driver             driver = face->driver;
       FT_Set_MM_Blend_Func  func;
 
+
       func = (FT_Set_MM_Blend_Func)driver->interface.get_interface(
                                              driver, "set_mm_blend" );
       if ( func )
--- a/src/cff/t2gload.c
+++ b/src/cff/t2gload.c
@@ -405,7 +405,7 @@
   }
 
 
-  /* add a new point, do not check room */
+  /* add a new point, do not check space */
   static
   void  add_point( T2_Builder*  builder,
                    TT_Pos       x,
@@ -528,7 +528,9 @@
   }
 
 
-#define USE_ARGS(n)  top -= n; if (top < decoder->stack) goto Stack_Underflow
+#define USE_ARGS( n )  top -= n;                   \
+                       if ( top < decoder->stack ) \
+                         goto Stack_Underflow
 
 
   /*************************************************************************/
@@ -578,7 +580,7 @@
     if ( seed == 0 )
       seed = 0x7384;
 
-    /* First of all, initialize the decoder */
+    /* initialize the decoder */
     decoder->top  = decoder->stack;
     decoder->zone = decoder->zones;
     zone          = decoder->zones;
@@ -608,7 +610,6 @@
       /*                                                                  */
       /* Decode operator or operand                                       */
       /*                                                                  */
-      /*                                                                  */
       v = *ip++;
       if ( v >= 32 || v == 28 )
       {
@@ -1692,8 +1693,8 @@
     glyph->root.format = ft_glyph_format_none;
 
     {
-      FT_Byte*  charstring;
-      FT_ULong  charstring_len;
+      TT_Byte*  charstring;
+      TT_ULong  charstring_len;
 
 
       T2_Init_Decoder( &decoder, face, size, glyph );
@@ -1804,8 +1805,8 @@
         {
           cbox.xMin &= -64;
           cbox.yMin &= -64;
-          cbox.xMax = ( cbox.xMax+63 ) & -64;
-          cbox.yMax = ( cbox.yMax+63 ) & -64;
+          cbox.xMax = ( cbox.xMax + 63 ) & -64;
+          cbox.yMax = ( cbox.yMax + 63 ) & -64;
         }
 
         metrics->width  = cbox.xMax - cbox.xMin;
--- a/src/cff/t2objs.c
+++ b/src/cff/t2objs.c
@@ -42,7 +42,7 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /*                       GLYPH ZONE FUNCTIONS                            */
+  /*                           FACE  FUNCTIONS                             */
   /*                                                                       */
   /*************************************************************************/
 
@@ -246,12 +246,14 @@
   /* <Input>                                                               */
   /*    size :: A handle to the target size object.                        */
   /*                                                                       */
+  /* <Output>                                                              */
+  /*    TrueType error code.  0 means success.                             */
+  /*                                                                       */
   LOCAL_DEF
   TT_Error  T2_Reset_Size( T2_Size  size )
   {
     T2_Face           face    = (T2_Face)size->face;
     FT_Size_Metrics*  metrics = &size->metrics;
-    TT_Error          error   = T2_Err_Ok;
 
 
     if ( metrics->x_ppem < 1 || metrics->y_ppem < 1 )
@@ -270,7 +272,7 @@
     metrics->max_advance = ( FT_MulFix( face->root.max_advance_width,
                                         metrics->x_scale ) + 32 ) & -64;
 
-    return error;
+    return T2_Err_Ok;
   }
 
 
--- a/src/cid/cidafm.c
+++ b/src/cid/cidafm.c
@@ -26,6 +26,16 @@
 #include <ctype.h>   /* for isalnum() */
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* 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_cidafm
+
+
   LOCAL_FUNC
   void  CID_Done_AFM( FT_Memory memory,
                       T1_AFM*   afm )
--- a/src/cid/cidafm.h
+++ b/src/cid/cidafm.h
@@ -16,8 +16,8 @@
 /***************************************************************************/
 
 
-#ifndef T1AFM_H
-#define T1AFM_H
+#ifndef CIDAFM_H
+#define CIDAFM_H
 
 #include <cidobjs.h>
 
@@ -55,7 +55,7 @@
 
 #endif
 
-#endif /* T1AFM_H */
+#endif /* CIDAFM_H */
 
 
 /* END */
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -1,19 +1,19 @@
-/*******************************************************************
- *
- *  cidgload.c                                                   1.0
- *
- *    CID-Keyed Type1 Glyph Loader.
- *
- *  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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidgload.c                                                             */
+/*                                                                         */
+/*    CID-keyed Type1 Glyph Loader (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 <cidload.h>
@@ -21,22 +21,33 @@
 #include <freetype/internal/ftdebug.h>
 #include <freetype/internal/ftstream.h>
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* 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_t1gload
+#define FT_COMPONENT  trace_cidgload
 
- /* forward */
+
+  /* forward */
   static
-  FT_Error  cid_load_glyph( CID_Decoder*  decoder, FT_UInt  glyph_index );
+  T1_Error  cid_load_glyph( CID_Decoder*  decoder,
+                            T1_UInt       glyph_index );
 
 
-  typedef enum T1_Operator_
+  typedef enum  T1_Operator_
   {
     op_none = 0,
+
     op_endchar,
     op_hsbw,
     op_seac,
     op_sbw,
     op_closepath,
+
     op_hlineto,
     op_hmoveto,
     op_hvcurveto,
@@ -46,11 +57,14 @@
     op_vhcurveto,
     op_vlineto,
     op_vmoveto,
+
     op_dotsection,
+
     op_hstem,
     op_hstem3,
     op_vstem,
     op_vstem3,
+
     op_div,
     op_callothersubr,
     op_callsubr,
@@ -62,7 +76,7 @@
 
   } T1_Operator;
 
-  static const FT_Int  t1_args_count[ op_max ] =
+  static const T1_Int  t1_args_count[op_max] =
   {
     0, /* none */
     0, /* endchar */
@@ -70,6 +84,7 @@
     5, /* seac */
     4, /* sbw */
     0, /* closepath */
+
     1, /* hlineto */
     1, /* hmoveto */
     4, /* hvcurveto */
@@ -79,11 +94,14 @@
     4, /* vhcurveto */
     1, /* vlineto */
     1, /* vmoveto */
+
     0, /* dotsection */
+
     2, /* hstem */
     6, /* hstem3 */
     2, /* vstem */
     6, /* vstem3 */
+
     2, /* div */
    -1, /* callothersubr */
     1, /* callsubr */
@@ -93,39 +111,42 @@
   };
 
 
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********                                                   *********/
-  /**********                                                   *********/
-  /**********           GENERIC CHARSTRINGS PARSING             *********/
-  /**********                                                   *********/
-  /**********                                                   *********/
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+  /**********                                                      *********/
+  /**********                                                      *********/
+  /**********             GENERIC CHARSTRING PARSING               *********/
+  /**********                                                      *********/
+  /**********                                                      *********/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
 
-/*********************************************************************
- *
- * <Function>
- *    CID_Init_Builder
- *
- * <Description>
- *    Initialise a given glyph builder.
- *
- * <Input>
- *    builder :: glyph builder to initialise
- *    face    :: current face object
- *    size    :: current size object
- *    glyph   :: current glyph object
- *
- *********************************************************************/
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Init_Builder                                                   */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Initializes a given glyph builder.                                 */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    builder :: A pointer to the glyph builder to initialize.           */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    face    :: The current face object.                                */
+  /*                                                                       */
+  /*    size    :: The current size object.                                */
+  /*                                                                       */
+  /*    glyph   :: The current glyph object.                               */
+  /*                                                                       */
   LOCAL_FUNC
-  void  CID_Init_Builder( CID_Builder*   builder,
-                          CID_Face       face,
-                          T1_Size        size,
-                          T1_GlyphSlot   glyph )
+  void  CID_Init_Builder( CID_Builder*  builder,
+                          CID_Face      face,
+                          T1_Size       size,
+                          T1_GlyphSlot  glyph )
   {
     builder->path_begun  = 0;
     builder->load_points = 1;
@@ -134,7 +155,7 @@
     builder->glyph  = glyph;
     builder->memory = face->root.memory;
 
-    if (glyph)
+    if ( glyph )
     {
       builder->base         = glyph->root.outline;
       builder->max_points   = glyph->max_points;
@@ -141,7 +162,7 @@
       builder->max_contours = glyph->max_contours;
     }
 
-    if (size)
+    if ( size )
     {
       builder->scale_x = size->root.metrics.x_scale;
       builder->scale_y = size->root.metrics.y_scale;
@@ -161,27 +182,26 @@
   }
 
 
-/*********************************************************************
- *
- * <Function>
- *    CID_Done_Builder
- *
- * <Description>
- *    Finalise a given glyph builder. Its content can still be
- *    used after the call, but the function saves important information
- *    within the corresponding glyph slot.
- *
- * <Input>
- *    builder :: glyph builder to initialise
- *
- *********************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Done_Builder                                                   */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Finalizes a given glyph builder.  Its contents can still be used   */
+  /*    after the call, but the function saves important information       */
+  /*    within the corresponding glyph slot.                               */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    builder :: A pointer to the glyph builder to finalize.             */
+  /*                                                                       */
   LOCAL_FUNC
-  void CID_Done_Builder( CID_Builder*  builder )
+  void  CID_Done_Builder( CID_Builder*  builder )
   {
     T1_GlyphSlot  glyph = builder->glyph;
 
-    if (glyph)
+
+    if ( glyph )
     {
       glyph->root.outline = builder->base;
       glyph->max_points   = builder->max_points;
@@ -190,40 +210,37 @@
   }
 
 
-
-/*********************************************************************
- *
- * <Function>
- *    CID_Init_Decoder
- *
- * <Description>
- *    Initialise a given Type 1 decoder for parsing
- *
- * <Input>
- *    decoder :: Type 1 decoder to initialise
- *    funcs   :: hinter functions interface
- *
- *********************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Init_Decoder                                                   */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Initializes a given glyph decoder.                                 */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    decoder :: A pointer to the glyph builder to initialize.           */
+  /*                                                                       */
   LOCAL_FUNC
   void  CID_Init_Decoder( CID_Decoder* decoder )
   {
-    MEM_Set( decoder, 0, sizeof(*decoder) );
-    decoder->font_matrix.xx = 0x10000;
-    decoder->font_matrix.yy = 0x10000;
+    MEM_Set( decoder, 0, sizeof ( *decoder ) );
+
+    decoder->font_matrix.xx = 0x10000L;
+    decoder->font_matrix.yy = 0x10000L;
   }
 
 
-
-  /* check that there is enough room for "count" more points */
+  /* check that there is enough room for `count' more points */
   static
-  FT_Error  check_points( CID_Builder*  builder,
-                          FT_Int       count )
+  T1_Error  check_points( CID_Builder*  builder,
+                          T1_Int        count )
   {
     FT_Outline*  base    = &builder->base;
     FT_Outline*  outline = &builder->current;
 
-    if (!builder->load_points)
+
+    if ( !builder->load_points )
       return T1_Err_Ok;
 
     count += base->n_points + outline->n_points;
@@ -231,11 +248,12 @@
     /* realloc points table if necessary */
     if ( count >= builder->max_points )
     {
-      FT_Error   error;
+      T1_Error   error;
       FT_Memory  memory    = builder->memory;
-      FT_Int     increment = outline->points - base->points;
-      FT_Int     current   = builder->max_points;
+      T1_Int     increment = outline->points - base->points;
+      T1_Int     current   = builder->max_points;
 
+
       while ( builder->max_points < count )
         builder->max_points += 8;
 
@@ -243,7 +261,7 @@
                           builder->max_points, T1_Vector )  ||
 
            REALLOC_ARRAY( base->tags, current,
-                          builder->max_points, FT_Byte )    )
+                          builder->max_points, T1_Byte )    )
       {
         builder->error = error;
         return error;
@@ -252,27 +270,30 @@
       outline->points = base->points + increment;
       outline->tags  = base->tags  + increment;
     }
+
     return T1_Err_Ok;
   }
 
 
-  /* add a new point, do not check room */
+  /* add a new point, do not check space */
   static
   void  add_point( CID_Builder*  builder,
-                   FT_Pos       x,
-                   FT_Pos       y,
-                   FT_Byte      flag )
+                   T1_Pos        x,
+                   T1_Pos        y,
+                   T1_Byte       flag )
   {
     FT_Outline*  outline = &builder->current;
 
-    if (builder->load_points)
+
+    if ( builder->load_points )
     {
-      FT_Vector*  point   = outline->points + outline->n_points;
-      FT_Byte*    control = (FT_Byte*)outline->tags + outline->n_points;
+      T1_Vector*  point   = outline->points + outline->n_points;
+      T1_Byte*    control = (FT_Byte*)outline->tags + outline->n_points;
 
+
       point->x = x;
       point->y = y;
-      *control = ( flag ? FT_Curve_Tag_On : FT_Curve_Tag_Cubic );
+      *control = flag ? FT_Curve_Tag_On : FT_Curve_Tag_Cubic;
 
       builder->last = *point;
     }
@@ -283,14 +304,15 @@
 
   /* check room for a new on-curve point, then add it */
   static
-  FT_Error  add_point1( CID_Builder*  builder,
-                        FT_Pos       x,
-                        FT_Pos       y )
+  T1_Error  add_point1( CID_Builder*  builder,
+                        T1_Pos        x,
+                        T1_Pos        y )
   {
-    FT_Error  error;
+    T1_Error  error;
 
-    error = check_points(builder,1);
-    if (!error)
+
+    error = check_points( builder, 1 );
+    if ( !error )
       add_point( builder, x, y, 1 );
 
     return error;
@@ -299,12 +321,13 @@
 
   /* check room for a new contour, then add it */
   static
-  FT_Error  add_contour( CID_Builder*  builder )
+  T1_Error  add_contour( CID_Builder*  builder )
   {
     FT_Outline*  base    = &builder->base;
     FT_Outline*  outline = &builder->current;
 
-    if (!builder->load_points)
+
+    if ( !builder->load_points )
     {
       outline->n_contours++;
       return T1_Err_Ok;
@@ -314,15 +337,16 @@
     if ( base->n_contours + outline->n_contours >= builder->max_contours &&
          builder->load_points )
     {
-      FT_Error  error;
-      FT_Memory memory = builder->memory;
-      FT_Int    increment = outline->contours - base->contours;
-      FT_Int    current   = builder->max_contours;
+      T1_Error  error;
+      FT_Memory memory    = builder->memory;
+      T1_Int    increment = outline->contours - base->contours;
+      T1_Int    current   = builder->max_contours;
 
+
       builder->max_contours += 4;
 
       if ( REALLOC_ARRAY( base->contours,
-                          current, builder->max_contours, FT_Short ) )
+                          current, builder->max_contours, T1_Short ) )
       {
         builder->error = error;
         return error;
@@ -331,28 +355,33 @@
       outline->contours = base->contours + increment;
     }
 
-    if (outline->n_contours > 0)
-      outline->contours[ outline->n_contours-1 ] = outline->n_points-1;
+    if ( outline->n_contours > 0 )
+      outline->contours[outline->n_contours - 1] = outline->n_points - 1;
 
     outline->n_contours++;
+
     return T1_Err_Ok;
   }
 
+
   /* if a path was begun, add its first on-curve point */
   static
-  FT_Error  start_point( CID_Builder*  builder,
-                         T1_Pos       x,
-                         T1_Pos       y )
+  T1_Error  start_point( CID_Builder*  builder,
+                         T1_Pos        x,
+                         T1_Pos        y )
   {
-    /* test wether we're building a new contour */
-    if (!builder->path_begun)
+    /* test whether we are building a new contour */
+    if ( !builder->path_begun )
     {
-      FT_Error  error;
+      T1_Error  error;
 
+
       builder->path_begun = 1;
       error = add_contour( builder );
-      if (error) return error;
+      if ( error )
+        return error;
     }
+
     return add_point1( builder, x, y );
   }
 
@@ -363,127 +392,142 @@
   {
     FT_Outline*  outline = &builder->current;
 
+
     if ( outline->n_contours > 0 )
-      outline->contours[outline->n_contours-1] = outline->n_points-1;
+      outline->contours[outline->n_contours - 1] = outline->n_points - 1;
   }
 
+
 #if 0
-/*********************************************************************
- *
- * <Function>
- *    lookup_glyph_by_stdcharcode
- *
- * <Description>
- *    Lookup a given glyph by its StandardEncoding charcode. Used
- *    to implement the SEAC Type 1 operator.
- *
- * <Input>
- *    face     :: current face object
- *    charcode :: charcode to look for
- *
- * <Return>
- *    glyph index in font face. Returns -1 if the corresponding
- *    glyph wasn't found.
- *
- *********************************************************************/
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    lookup_glyph_by_stdcharcode                                        */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Looks up a given glyph by its StandardEncoding charcode.  Used     */
+  /*    to implement the SEAC Type 1 operator.                             */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    face     :: The current face object.                               */
+  /*                                                                       */
+  /*    charcode :: The character code to look for.                        */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    A glyph index in the font face.  Returns -1 if the corresponding   */
+  /*    glyph wasn't found.                                                */
+  /*                                                                       */
   static
-  FT_Int    lookup_glyph_by_stdcharcode( CID_Face  face,
-                                         FT_Int    charcode )
+  T1_Int  lookup_glyph_by_stdcharcode( CID_Face  face,
+                                       T1_Int    charcode )
   {
-    FT_Int              n;
-    const FT_String*    glyph_name;
+    T1_Int              n;
+    const T1_String*    glyph_name;
     PSNames_Interface*  psnames = (PSNames_Interface*)face->psnames;
 
+
     /* check range of standard char code */
-    if (charcode < 0 || charcode > 255)
+    if ( charcode < 0 || charcode > 255 )
       return -1;
 
     glyph_name = psnames->adobe_std_strings(
-                    psnames->adobe_std_encoding[charcode]);
+                   psnames->adobe_std_encoding[charcode]);
 
     for ( n = 0; n < face->cid.cid_count; n++ )
     {
       T1_String*  name = (T1_String*)face->type1.glyph_names[n];
 
-      if ( name && strcmp(name,glyph_name) == 0 )
+
+      if ( name && strcmp( name, glyph_name ) == 0 )
         return n;
     }
 
     return -1;
   }
-#endif
 
 
-/*********************************************************************
- *
- * <Function>
- *    t1operator_seac
- *
- * <Description>
- *    Implements the "seac" Type 1 operator for a Type 1 decoder
- *
- * <Input>
- *    decoder  :: current Type 1 decoder
- *    asb      :: accent's side bearing
- *    adx      :: horizontal position of accent
- *    ady      :: vertical position of accent
- *    bchar    :: base character's StandardEncoding charcode
- *    achar    :: accent character's StandardEncoding charcode
- *
- * <Return>
- *    Error code. 0 means success.
- *
- *********************************************************************/
+#endif /* 0 */
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    t1operator_seac                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Implements the `seac' Type 1 operator for a Type 1 decoder.        */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    decoder  :: The current CID decoder.                               */
+  /*                                                                       */
+  /*    asb      :: The accent's side bearing.                             */
+  /*                                                                       */
+  /*    adx      :: The horizontal offset of the accent.                   */
+  /*                                                                       */
+  /*    ady      :: The vertical offset of the accent.                     */
+  /*                                                                       */
+  /*    bchar    :: The base character's StandardEncoding charcode.        */
+  /*                                                                       */
+  /*    achar    :: The accent character's StandardEncoding charcode.      */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type 1 error code.  0 means success.                               */
+  /*                                                                       */
   static
   FT_Error  t1operator_seac( CID_Decoder*  decoder,
-                             FT_Pos       asb,
-                             FT_Pos       adx,
-                             FT_Pos       ady,
-                             FT_Int       bchar,
-                             FT_Int       achar )
+                             T1_Pos        asb,
+                             T1_Pos        adx,
+                             T1_Pos        ady,
+                             T1_Int        bchar,
+                             T1_Int        achar )
   {
-    FT_Error     error;
-    FT_Int       bchar_index, achar_index, n_base_points;
+    T1_Error     error;
+    T1_Int       bchar_index, achar_index, n_base_points;
     FT_Outline*  cur  = &decoder->builder.current;
     FT_Outline*  base = &decoder->builder.base;
-    FT_Vector    left_bearing, advance;
+    T1_Vector    left_bearing, advance;
 
+
     bchar_index = bchar;
     achar_index = achar;
 
-    if (bchar_index < 0 || achar_index < 0)
+    if ( bchar_index < 0 || achar_index < 0 )
     {
-      FT_ERROR(( "T1.Parse_Seac : invalid seac character code arguments\n" ));
+      FT_ERROR(( "t1operator_seac: invalid seac character code arguments\n" ));
       return T1_Err_Syntax_Error;
     }
 
-    /* First load "bchar" in builder */
+    /* First load `bchar' in builder */
     /* now load the unscaled outline */
     cur->n_points   = 0;
     cur->n_contours = 0;
     cur->points     = base->points   + base->n_points;
-    cur->tags       = base->tags    + base->n_points;
+    cur->tags       = base->tags     + base->n_points;
     cur->contours   = base->contours + base->n_contours;
 
     error = cid_load_glyph( decoder, bchar_index );
-    if (error) return error;
+    if ( error )
+      return error;
 
-    n_base_points   = cur->n_points;
+    n_base_points = cur->n_points;
 
     if ( decoder->builder.no_recurse )
     {
-      /* if we're trying to load a composite glyph, do not load the */
-      /* accent character and return the array of subglyphs..       */
+      /* if we are trying to load a composite glyph, do not load the */
+      /* accent character and return the array of subglyphs.         */
+
       FT_GlyphSlot  glyph = (FT_GlyphSlot)decoder->builder.glyph;
       FT_SubGlyph*  subg;
 
+
       /* reallocate subglyph array if necessary */
-      if (glyph->max_subglyphs < 2)
+      if ( glyph->max_subglyphs < 2 )
       {
         FT_Memory  memory = decoder->builder.face->root.memory;
 
+
         if ( REALLOC_ARRAY( glyph->subglyphs, glyph->max_subglyphs,
                             2, FT_SubGlyph ) )
           return error;
@@ -514,7 +558,8 @@
     else
     {
       /* save the left bearing and width of the base character */
-      /* as they will be erase by the next load..              */
+      /* as they will be erased by the next load.              */
+
       left_bearing = decoder->builder.left_bearing;
       advance      = decoder->builder.advance;
 
@@ -521,23 +566,25 @@
       decoder->builder.left_bearing.x = 0;
       decoder->builder.left_bearing.y = 0;
 
-      /* Now load "achar" on top of */
+      /* Now load `achar' on top of */
       /* the base outline           */
-      /*                            */
+
       cur->n_points   = 0;
       cur->n_contours = 0;
       cur->points     = base->points   + base->n_points;
-      cur->tags      = base->tags    + base->n_points;
+      cur->tags       = base->tags     + base->n_points;
       cur->contours   = base->contours + base->n_contours;
 
       error = cid_load_glyph( decoder, achar_index );
-      if (error) return error;
+      if ( error )
+        return error;
 
       /* adjust contours in accented character outline */
-      if (decoder->builder.load_points)
+      if ( decoder->builder.load_points )
       {
-        FT_Int  n;
+        T1_Int  n;
 
+
         for ( n = 0; n < cur->n_contours; n++ )
           cur->contours[n] += n_base_points;
       }
@@ -544,53 +591,58 @@
 
       /* restore the left side bearing and   */
       /* advance width of the base character */
+
       decoder->builder.left_bearing = left_bearing;
       decoder->builder.advance      = advance;
 
       /* Finally, move the accent */
-      if (decoder->builder.load_points)
+      if ( decoder->builder.load_points )
         FT_Outline_Translate( cur, adx - asb, ady );
     }
+
     return T1_Err_Ok;
   }
 
-/*********************************************************************
- *
- * <Function>
- *    CID_Parse_CharStrings
- *
- * <Description>
- *    Parses a given Type 1 charstrings program
- *
- * <Input>
- *    decoder          :: current Type 1 decoder
- *    charstring_base  :: base of the charstring stream
- *    charstring_len   :: length in bytes of the charstring stream
- *    num_subrs        :: number of sub-routines
- *    subrs_base       :: array of sub-routines addresses
- *    subrs_len        :: array of sub-routines lengths
- *
- * <Return>
- *    Error code. 0 means success.
- *
- *********************************************************************/
 
-#define USE_ARGS(n)  top -= n; if (top < decoder->stack) goto Stack_Underflow
+#define USE_ARGS( n )  top -= n;                   \
+                       if ( top < decoder->stack ) \
+                         goto Stack_Underflow
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Parse_CharStrings                                              */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Parses a given CID charstrings program.                            */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    decoder          :: The current CID decoder.                       */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    charstring_base  :: The base of the charstring stream.             */
+  /*                                                                       */
+  /*    charstring_len   :: The length in bytes of the charstring stream.  */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   LOCAL_FUNC
-  FT_Error   CID_Parse_CharStrings( CID_Decoder*  decoder,
-                                    FT_Byte*     charstring_base,
-                                    FT_Int       charstring_len )
+  T1_Error  CID_Parse_CharStrings( CID_Decoder*  decoder,
+                                   T1_Byte*      charstring_base,
+                                   T1_Int        charstring_len )
   {
-    FT_Error            error;
-    CID_Decoder_Zone*    zone;
-    FT_Byte*            ip;
-    FT_Byte*            limit;
-    CID_Builder*         builder = &decoder->builder;
-    FT_Outline*         outline;
-    T1_Pos              x, y;
+    T1_Error           error;
+    CID_Decoder_Zone*  zone;
+    T1_Byte*           ip;
+    T1_Byte*           limit;
+    CID_Builder*       builder = &decoder->builder;
+    FT_Outline*        outline;
+    T1_Pos             x, y;
 
-    /* First of all, initialise the decoder */
+
+    /* First of all, initialize the decoder */
     decoder->top  = decoder->stack;
     decoder->zone = decoder->zones;
     zone          = decoder->zones;
@@ -610,109 +662,155 @@
     /* now, execute loop */
     while ( ip < limit )
     {
-      FT_Int*      top      = decoder->top;
-      T1_Operator  op       = op_none;
-      FT_Long      value    = 0;
+      T1_Int*      top   = decoder->top;
+      T1_Operator  op    = op_none;
+      T1_Long      value = 0;
 
+
       /********************************************************************/
       /*                                                                  */
       /* Decode operator or operand                                       */
       /*                                                                  */
-      /*                                                                  */
 
       /* First of all, decompress operator or value */
-      switch (*ip++)
+      switch ( *ip++ )
       {
-        case 1:  op = op_hstem;     break;
+      case 1:
+        op = op_hstem;
+        break;
 
-        case 3:  op = op_vstem;     break;
-        case 4:  op = op_vmoveto;   break;
-        case 5:  op = op_rlineto;   break;
-        case 6:  op = op_hlineto;   break;
-        case 7:  op = op_vlineto;   break;
-        case 8:  op = op_rrcurveto; break;
-        case 9:  op = op_closepath; break;
-        case 10: op = op_callsubr;  break;
-        case 11: op = op_return;    break;
+      case 3:
+        op = op_vstem;
+        break;
+      case 4:
+        op = op_vmoveto;
+        break;
+      case 5:
+        op = op_rlineto;
+        break;
+      case 6:
+        op = op_hlineto;
+        break;
+      case 7:
+        op = op_vlineto;
+        break;
+      case 8:
+        op = op_rrcurveto;
+        break;
+      case 9:
+        op = op_closepath;
+        break;
+      case 10:
+        op = op_callsubr;
+        break;
+      case 11:
+        op = op_return;
+        break;
 
-        case 13: op = op_hsbw;      break;
-        case 14: op = op_endchar;   break;
+      case 13:
+        op = op_hsbw;
+        break;
+      case 14:
+        op = op_endchar;
+        break;
 
-        case 21: op = op_rmoveto;   break;
-        case 22: op = op_hmoveto;   break;
+      case 21:
+        op = op_rmoveto;
+        break;
+      case 22:
+        op = op_hmoveto;
+        break;
 
-        case 30: op = op_vhcurveto; break;
-        case 31: op = op_hvcurveto; break;
+      case 30:
+        op = op_vhcurveto;
+        break;
+      case 31:
+        op = op_hvcurveto;
+        break;
 
+      case 12:
+        if ( ip > limit )
+        {
+          FT_ERROR(( "CID_Parse_CharStrings: invalid escape (12+EOF)\n" ));
+          goto Syntax_Error;
+        }
+
+        switch ( *ip++ )
+        {
+        case 0:
+          op = op_dotsection;
+          break;
+        case 1:
+          op = op_vstem3;
+          break;
+        case 2:
+          op = op_hstem3;
+          break;
+        case 6:
+          op = op_seac;
+          break;
+        case 7:
+          op = op_sbw;
+          break;
         case 12:
-          {
-            if (ip > limit)
-            {
-              FT_ERROR(( "T1.Parse_CharStrings : invalid escape (12+EOF)\n" ));
-              goto Syntax_Error;
-            }
+          op = op_div;
+          break;
+        case 16:
+          op = op_callothersubr;
+          break;
+        case 17:
+          op = op_pop;
+          break;
+        case 33:
+          op = op_setcurrentpoint;
+          break;
 
-            switch (*ip++)
-            {
-              case 0:  op = op_dotsection;      break;
-              case 1:  op = op_vstem3;          break;
-              case 2:  op = op_hstem3;          break;
-              case 6:  op = op_seac;            break;
-              case 7:  op = op_sbw;             break;
-              case 12: op = op_div;             break;
-              case 16: op = op_callothersubr;   break;
-              case 17: op = op_pop;             break;
-              case 33: op = op_setcurrentpoint; break;
+        default:
+          FT_ERROR(( "CID_Parse_CharStrings: invalid escape (12+%d)\n",
+                     ip[-1] ));
+          goto Syntax_Error;
+        }
+        break;
 
-              default:
-                FT_ERROR(( "T1.Parse_CharStrings : invalid escape (12+%d)\n",
-                         ip[-1] ));
-                goto Syntax_Error;
-            }
-          }
-          break;
+      case 255:    /* four bytes integer */
+        if ( ip + 4 > limit )
+        {
+          FT_ERROR(( "CID_Parse_CharStrings: unexpected EOF in integer\n" ));
+          goto Syntax_Error;
+        }
 
-        case 255:    /* four bytes integer */
+        value = ( (long)ip[0] << 24 ) |
+                ( (long)ip[1] << 16 ) |
+                ( (long)ip[2] << 8  ) |
+                        ip[3];
+        ip += 4;
+        break;
+
+      default:
+        if ( ip[-1] >= 32 )
+        {
+          if ( ip[-1] < 247 )
+            value = (long)ip[-1] - 139;
+          else
           {
-            if (ip+4 > limit)
+            if ( ++ip > limit )
             {
-              FT_ERROR(( "T1.Parse_CharStrings : unexpected EOF in integer\n" ));
+              FT_ERROR(( "CID_Parse_CharStrings: unexpected EOF in integer\n" ));
               goto Syntax_Error;
             }
 
-            value = ((long)ip[0] << 24) |
-                    ((long)ip[1] << 16) |
-                    ((long)ip[2] << 8)  |
-                           ip[3];
-            ip += 4;
-          }
-          break;
-
-        default:
-          if (ip[-1] >= 32)
-          {
-            if (ip[-1] < 247)
-              value = (long)ip[-1] - 139;
+            if ( ip[-2] < 251 )
+              value =  ( (long)( ip[-2] - 247 ) << 8 ) + ip[-1] + 108;
             else
-            {
-              if (++ip > limit)
-              {
-                FT_ERROR(( "T1.Parse_CharStrings : unexpected EOF in integer\n" ));
-                goto Syntax_Error;
-              }
-
-              if (ip[-2] < 251)
-                value =  ((long)(ip[-2]-247) << 8) + ip[-1] + 108;
-              else
-                value = -((((long)ip[-2]-251) << 8) + ip[-1] + 108 );
-            }
+              value = -( ( ( (long)ip[-2] - 251 ) << 8 ) + ip[-1] + 108 );
           }
-          else
-          {
-            FT_ERROR(( "T1.Parse_CharStrings : invalid byte (%d)\n",
+        }
+        else
+        {
+          FT_ERROR(( "CID_Parse_CharStrings: invalid byte (%d)\n",
                      ip[-1] ));
-            goto Syntax_Error;
-          }
+          goto Syntax_Error;
+        }
       }
 
       /********************************************************************/
@@ -719,12 +817,11 @@
       /*                                                                  */
       /*  Push value on stack, or process operator                        */
       /*                                                                  */
-      /*                                                                  */
       if ( op == op_none )
       {
         if ( top - decoder->stack >= T1_MAX_CHARSTRINGS_OPERANDS )
         {
-          FT_ERROR(( "T1.Parse_CharStrings : Stack overflow !!\n" ));
+          FT_ERROR(( "CID_Parse_CharStrings: Stack overflow!\n" ));
           goto Syntax_Error;
         }
 
@@ -741,379 +838,373 @@
         top -= 2;
         switch ( top[1] )
         {
-          case 1: /* start flex feature ---------------------- */
-            {
-              if ( top[0] != 0 ) goto Unexpected_OtherSubr;
+        case 1: /* start flex feature ---------------------- */
+          if ( top[0] != 0 )
+            goto Unexpected_OtherSubr;
 
-              decoder->flex_state        = 1;
-              decoder->num_flex_vectors  = 0;
-              if ( start_point(builder, x, y) ||
-                   check_points(builder,6) ) goto Memory_Error;
-            }
-            break;
+          decoder->flex_state       = 1;
+          decoder->num_flex_vectors = 0;
+          if ( start_point( builder, x, y ) ||
+               check_points( builder, 6 )   )
+            goto Memory_Error;
+          break;
 
-          case 2: /* add flex vectors ------------------------ */
-            {
-              FT_Int      index;
+        case 2: /* add flex vectors ------------------------ */
+          {
+            T1_Int  index;
 
-              if ( top[0] != 0 ) goto Unexpected_OtherSubr;
 
-              /* note that we should not add a point for index 0 */
-              /* this will move our current position to the flex */
-              /* point without adding any point to the outline   */
-              index = decoder->num_flex_vectors++;
-              if (index > 0 && index < 7)
-                add_point( builder,
-                           x,
-                           y,
-                           (FT_Byte)( index==3 || index==6 ) );
-            }
-            break;
+            if ( top[0] != 0 )
+              goto Unexpected_OtherSubr;
 
-          case 0: /* end flex feature ------------------------- */
-            {
-              if ( top[0] != 3 ) goto Unexpected_OtherSubr;
+            /* note that we should not add a point for index 0. */
+            /* this will move our current position to the flex  */
+            /* point without adding any point to the outline    */
+            index = decoder->num_flex_vectors++;
+            if ( index > 0 && index < 7 )
+              add_point( builder,
+                         x,
+                         y,
+                         (T1_Byte)( index==3 || index==6 ) );
+          }
+          break;
 
-              if ( decoder->flex_state       == 0 ||
-                   decoder->num_flex_vectors != 7 )
-              {
-                FT_ERROR(( "T1.Parse_CharStrings: unexpected flex end\n" ));
-                goto Syntax_Error;
-              }
+        case 0: /* end flex feature ------------------------- */
+          if ( top[0] != 3 )
+            goto Unexpected_OtherSubr;
 
-              /* now consume the remaining "pop pop setcurpoint" */
-              if ( ip+6 > limit ||
-                   ip[0] != 12  || ip[1] != 17 || /* pop */
-                   ip[2] != 12  || ip[3] != 17 || /* pop */
-                   ip[4] != 12  || ip[5] != 33 )  /* setcurpoint */
-              {
-                FT_ERROR(( "T1.Parse_CharStrings: invalid flex charstring\n" ));
-                goto Syntax_Error;
-              }
+          if ( decoder->flex_state       == 0 ||
+               decoder->num_flex_vectors != 7 )
+          {
+            FT_ERROR(( "CID)Parse_CharStrings: unexpected flex end\n" ));
+            goto Syntax_Error;
+          }
 
-              ip += 6;
-              decoder->flex_state = 0;
-              break;
-            }
+          /* now consume the remaining `pop pop setcurpoint' */
+          if ( ip + 6 > limit              ||
+               ip[0] != 12  || ip[1] != 17 || /* pop */
+               ip[2] != 12  || ip[3] != 17 || /* pop */
+               ip[4] != 12  || ip[5] != 33 )  /* setcurpoint */
+          {
+            FT_ERROR(( "CID_Parse_CharStrings: invalid flex charstring\n" ));
+            goto Syntax_Error;
+          }
 
-          case 3:  /* change hints ---------------------------- */
-            {
-              if ( top[0] != 1 ) goto Unexpected_OtherSubr;
+          ip += 6;
+          decoder->flex_state = 0;
+          break;
 
-              /* eat the following "pop" */
-              if (ip+2 > limit)
-              {
-                FT_ERROR(( "T1.Parse_CharStrings: invalid escape (12+%d)\n",
-                         ip[-1] ));
-                goto Syntax_Error;
-              }
+        case 3:  /* change hints ---------------------------- */
+          if ( top[0] != 1 )
+            goto Unexpected_OtherSubr;
 
-              if (ip[0] != 12 || ip[1] != 17)
-              {
-                FT_ERROR(( "T1.Parse_CharStrings: 'pop' expected, found (%d %d)\n",
-                         ip[0], ip[1] ));
-                goto Syntax_Error;
-              }
-              ip += 2;
-              break;;
+          /* eat the following `pop' */
+          if ( ip + 2 > limit )
+          {
+            FT_ERROR(( "CID_Parse_CharStrings: invalid escape (12+%d)\n",
+                       ip[-1] ));
+            goto Syntax_Error;
+          }
+
+          if ( ip[0] != 12 || ip[1] != 17 )
+          {
+            FT_ERROR(( "CID_Parse_CharStrings: `pop' expected, found (%d %d)\n",
+                       ip[0], ip[1] ));
+            goto Syntax_Error;
+          }
+          ip += 2;
+          break;
+
+        case 12:
+        case 13:
+          /* counter control hints, clear stack */
+          top = decoder->stack;
+          break;
+
+#if 0
+
+        case 14:
+        case 15:
+        case 16:
+        case 17:
+        case 18: /* multiple masters */
+          {
+            T1_Blend*  blend = decoder->blend;
+            T1_UInt    num_points, nn, mm;
+            T1_Int*    delta;
+            T1_Int*    values;
+
+            if ( !blend )
+            {
+              FT_ERROR(( "CID_Parse_CharStrings: unexpected multiple masters operator!\n" ));
+              goto Syntax_Error;
             }
 
-          case 12:
-          case 13:
+            num_points = top[1] - 13 + ( top[1] == 18 );
+            if ( top[0] != num_points * blend->num_designs )
             {
-              /* counter control hints, clear stack */
-              top = decoder->stack;
-              break;
+              FT_ERROR(( "CID_Parse_CharStrings: incorrect number of mm arguments\n" ));
+              goto Syntax_Error;
             }
-#if 0          
-          case 14:
-          case 15:
-          case 16:
-          case 17:
-          case 18: /* multiple masters */
+
+            top -= blend->num_designs * num_points;
+            if ( top < decoder->stack )
+              goto Stack_Underflow;
+
+            /* we want to compute:                                   */
+            /*                                                       */
+            /*  a0*w0 + a1*w1 + ... + ak*wk                          */
+            /*                                                       */
+            /* but we only have the a0, a1-a0, a2-a0, .. ak-a0       */
+            /* however, given that w0 + w1 + ... + wk == 1, we can   */
+            /* rewrite it easily as:                                 */
+            /*                                                       */
+            /*  a0 + (a1-a0)*w1 + (a2-a0)*w2 + .. + (ak-a0)*wk       */
+            /*                                                       */
+            /* where k == num_designs-1                              */
+            /*                                                       */
+            /* I guess that's why it's written in this `compact'     */
+            /* form...                                               */
+            /*                                                       */
+            /*                                                       */
+            delta  = top + num_points;
+            values = top;
+            for ( nn = 0; nn < num_points; nn++ )
             {
-              T1_Blend*  blend = decoder->blend;
-              FT_UInt    num_points, nn, mm;
-              FT_Int*    delta;
-              FT_Int*    values;
-              
-              if (!blend)
-              {
-                FT_ERROR(( "T1.Parse_CharStrings: unexpected multiple masters operator !!\n" ));
-                goto Syntax_Error;
-              }
-              
-              num_points = top[1] - 13 + (top[1] == 18);
-              if (top[0] != num_points*blend->num_designs)
-              {
-                FT_ERROR(( "T1.Parse_CharStrings: incorrect number of mm arguments\n" ));
-                goto Syntax_Error;
-              }
-              
-              top       -= blend->num_designs*num_points;
-              if (top < decoder->stack)
-                goto Stack_Underflow;
+              T1_Int  x = values[0];
 
-              /* we want to compute:                                   */
-              /*                                                       */
-              /*  a0*w0 + a1*w1 + ... + ak*wk                          */
-              /*                                                       */
-              /* but we only have the a0, a1-a0, a2-a0, .. ak-a0       */
-              /* however, given that w0 + w1 + ... + wk == 1, we can   */
-              /* rewrite it easily as:                                 */
-              /*                                                       */
-              /*  a0 + (a1-a0)*w1 + (a2-a0)*w2 + .. + (ak-a0)*wk       */
-              /*                                                       */
-              /* where k == num_designs-1                              */
-              /*                                                       */
-              /* I guess that's why it's written in this "compact"     */
-              /* form..                                                */
-              /*                                                       */
-              /*                                                       */
-              delta  = top + num_points;
-              values = top;
-              for ( nn = 0; nn < num_points; nn++ )
-              {
-                FT_Int  x = values[0];
-                for ( mm = 1; mm < blend->num_designs; mm++ )
-                  x += FT_MulFix( *delta++, blend->weight_vector[mm] );
 
-                *values++ = x;
-              }
-              /* note that "top" will be incremented later by calls to "pop" */
-              break;
+              for ( mm = 1; mm < blend->num_designs; mm++ )
+                x += FT_MulFix( *delta++, blend->weight_vector[mm] );
+
+              *values++ = x;
             }
-#endif          
-          default:
-          Unexpected_OtherSubr:
-            FT_ERROR(( "T1.Parse_CharStrings: invalid othersubr [%d %d]!!\n",
-                       top[0], top[1] ));
-            goto Syntax_Error;
+            /* note that `top' will be incremented later by calls to `pop' */
+          }
+          break;
+
+#endif
+
+        default:
+        Unexpected_OtherSubr:
+          FT_ERROR(( "CID_Parse_CharStrings: invalid othersubr [%d %d]!\n",
+                     top[0], top[1] ));
+          goto Syntax_Error;
         }
         decoder->top = top;
       }
       else  /* general operator */
       {
-        FT_Int  num_args = t1_args_count[op];
+        T1_Int  num_args = t1_args_count[op];
 
+
         if ( top - decoder->stack < num_args )
           goto Stack_Underflow;
 
         top -= num_args;
 
-        switch (op)
+        switch ( op )
         {
-          case op_endchar: /*************************************************/
-          {
-            FT_TRACE4(( " endchar" ));
-            close_contour( builder );
+        case op_endchar:
+          FT_TRACE4(( " endchar" ));
 
-            /* add current outline to the glyph slot */
-            builder->base.n_points   += builder->current.n_points;
-            builder->base.n_contours += builder->current.n_contours;
+          close_contour( builder );
 
-            /* return now !! */
-            FT_TRACE4(( "\n\n" ));
+          /* add current outline to the glyph slot */
+          builder->base.n_points   += builder->current.n_points;
+          builder->base.n_contours += builder->current.n_contours;
+
+          /* return now! */
+          FT_TRACE4(( "\n\n" ));
+          return T1_Err_Ok;
+
+        case op_hsbw:
+          FT_TRACE4(( " hsbw" ));
+
+          builder->left_bearing.x += top[0];
+          builder->advance.x       = top[1];
+          builder->advance.y       = 0;
+
+          builder->last.x = x = top[0];
+          builder->last.y = y = 0;
+
+          /* the `metrics_only' indicates that we only want to compute */
+          /* the glyph's metrics (lsb + advance width), not load the   */
+          /* rest of it.  So exit immediately.                         */
+          if ( builder->metrics_only )
             return T1_Err_Ok;
-          }
 
+          break;
 
-          case op_hsbw: /****************************************************/
-          {
-            FT_TRACE4(( " hsbw" ));
-            builder->left_bearing.x += top[0];
-            builder->advance.x       = top[1];
-            builder->advance.y       = 0;
+        case op_seac:
+          /* return immediately after the processing */
+          return t1operator_seac( decoder, top[0], top[1],
+                                           top[2], top[3], top[4] );
 
-            builder->last.x = x = top[0];
-            builder->last.y = y = 0;
+        case op_sbw:
+          FT_TRACE4(( " sbw" ));
 
-            /* the "metrics_only" indicates that we only want to compute */
-            /* the glyph's metrics (lsb + advance width), not load the   */
-            /* rest of it.. so exit immediately                          */
-            if (builder->metrics_only)
-              return T1_Err_Ok;
+          builder->left_bearing.x += top[0];
+          builder->left_bearing.y += top[1];
+          builder->advance.x       = top[2];
+          builder->advance.y       = top[3];
 
-            break;
-          }
+          builder->last.x = x = top[0];
+          builder->last.y = y = top[1];
 
+          /* the `metrics_only' indicates that we only want to compute */
+          /* the glyph's metrics (lsb + advance width), not load the   */
+          /* rest of it.  So exit immediately.                         */
+          if ( builder->metrics_only )
+            return T1_Err_Ok;
 
-          case op_seac: /****************************************************/
-            /* return immediately after the processing */
-            return t1operator_seac( decoder, top[0], top[1],
-                                             top[2], top[3], top[4] );
+          break;
 
-          case op_sbw:  /****************************************************/
-          {
-            FT_TRACE4(( " sbw" ));
-            builder->left_bearing.x += top[0];
-            builder->left_bearing.y += top[1];
-            builder->advance.x       = top[2];
-            builder->advance.y       = top[3];
+        case op_closepath:
+          FT_TRACE4(( " closepath" ));
 
-            builder->last.x = x = top[0];
-            builder->last.y = y = top[1];
+          close_contour( builder );
+          builder->path_begun = 0;
+          break;
 
-            /* the "metrics_only" indicates that we only want to compute */
-            /* the glyph's metrics (lsb + advance width), not load the   */
-            /* rest of it.. so exit immediately                          */
-            if (builder->metrics_only)
-              return T1_Err_Ok;
+        case op_hlineto:
+          FT_TRACE4(( " hlineto" ));
 
-            break;
-          }
+          if ( start_point( builder, x, y ) )
+            goto Memory_Error;
 
+          x += top[0];
+          goto Add_Line;
 
-          case op_closepath:  /**********************************************/
-          {
-            FT_TRACE4(( " closepath" ));
-            close_contour( builder );
-            builder->path_begun = 0;
-          }
+        case op_hmoveto:
+          FT_TRACE4(( " hmoveto" ));
+
+          x += top[0];
           break;
 
+        case op_hvcurveto:
+          FT_TRACE4(( " hvcurveto" ));
 
-          case op_hlineto:  /************************************************/
-          {
-            FT_TRACE4(( " hlineto" ));
-            if ( start_point( builder, x, y ) ) goto Memory_Error;
+          if ( start_point( builder, x, y ) ||
+               check_points( builder, 3 )   )
+            goto Memory_Error;
 
-            x += top[0];
-            goto Add_Line;
-          }
+          x += top[0];
+          add_point( builder, x, y, 0 );
 
+          x += top[1];
+          y += top[2];
+          add_point( builder, x, y, 0 );
 
-          case op_hmoveto:  /************************************************/
-          {
-            FT_TRACE4(( " hmoveto" ));
-            x += top[0];
-            break;
-          }
+          y += top[3];
+          add_point( builder, x, y, 1 );
 
+          break;
 
-          case op_hvcurveto:  /**********************************************/
-          {
-            FT_TRACE4(( " hvcurveto" ));
-            if ( start_point( builder, x, y ) ||
-                 check_points( builder, 3 )   ) goto Memory_Error;
+        case op_rlineto:
+          FT_TRACE4(( " rlineto" ));
 
-            x += top[0];
-            add_point( builder, x, y, 0 );
-            x += top[1];
-            y += top[2];
-            add_point( builder, x, y, 0 );
-            y += top[3];
-            add_point( builder, x, y, 1 );
-            break;
-          }
+          if ( start_point( builder, x, y ) )
+            goto Memory_Error;
 
+          x += top[0];
+          y += top[1];
 
-          case op_rlineto: /*************************************************/
-          {
-            FT_TRACE4(( " rlineto" ));
-            if ( start_point( builder, x, y ) ) goto Memory_Error;
+        Add_Line:
+          if ( add_point1( builder, x, y ) )
+            goto Memory_Error;
+          break;
 
-            x += top[0];
-            y += top[1];
-   Add_Line:
-            if (add_point1( builder, x, y )) goto Memory_Error;
-            break;
-          }
+        case op_rmoveto:
+          FT_TRACE4(( " rmoveto" ));
 
+          x += top[0];
+          y += top[1];
+          break;
 
-          case op_rmoveto: /*************************************************/
-          {
-            FT_TRACE4(( " rmoveto" ));
-            x += top[0];
-            y += top[1];
-            break;
-          }
+        case op_rrcurveto:
+          FT_TRACE4(( " rcurveto" ));
 
-          case op_rrcurveto: /***********************************************/
-          {
-            FT_TRACE4(( " rcurveto" ));
-            if ( start_point( builder, x, y ) ||
-                 check_points( builder, 3 )   ) goto Memory_Error;
+          if ( start_point( builder, x, y ) ||
+               check_points( builder, 3 )   )
+            goto Memory_Error;
 
-            x += top[0];
-            y += top[1];
-            add_point( builder, x, y, 0 );
+          x += top[0];
+          y += top[1];
+          add_point( builder, x, y, 0 );
 
-            x += top[2];
-            y += top[3];
-            add_point( builder, x, y, 0 );
+          x += top[2];
+          y += top[3];
+          add_point( builder, x, y, 0 );
 
-            x += top[4];
-            y += top[5];
-            add_point( builder, x, y, 1 );
-            break;
-          }
+          x += top[4];
+          y += top[5];
+          add_point( builder, x, y, 1 );
 
+          break;
 
-          case op_vhcurveto:  /**********************************************/
-          {
-            FT_TRACE4(( " vhcurveto" ));
-            if ( start_point( builder, x, y ) ||
-                 check_points( builder, 3 )   ) goto Memory_Error;
+        case op_vhcurveto:
+          FT_TRACE4(( " vhcurveto" ));
+          if ( start_point( builder, x, y ) ||
+               check_points( builder, 3 )   )
+            goto Memory_Error;
 
-            y += top[0];
-            add_point( builder, x, y, 0 );
-            x += top[1];
-            y += top[2];
-            add_point( builder, x, y, 0 );
-            x += top[3];
-            add_point( builder, x, y, 1 );
-            break;
-          }
+          y += top[0];
+          add_point( builder, x, y, 0 );
 
+          x += top[1];
+          y += top[2];
+          add_point( builder, x, y, 0 );
 
-          case op_vlineto:  /************************************************/
-            {
-              FT_TRACE4(( " vlineto" ));
-              if ( start_point( builder, x, y ) ) goto Memory_Error;
+          x += top[3];
+          add_point( builder, x, y, 1 );
 
-              y += top[0];
-              goto Add_Line;
-            }
+          break;
 
+        case op_vlineto:
+          FT_TRACE4(( " vlineto" ));
 
-          case op_vmoveto:  /************************************************/
-            {
-              FT_TRACE4(( " vmoveto" ));
-              y += top[0];
-              break;
-            }
+          if ( start_point( builder, x, y ) )
+            goto Memory_Error;
 
+          y += top[0];
+          goto Add_Line;
 
-          case op_div:  /****************************************************/
+        case op_vmoveto:
+          FT_TRACE4(( " vmoveto" ));
+
+          y += top[0];
+          break;
+
+        case op_div:
+          FT_TRACE4(( " div" ));
+
+          if ( top[1] )
+            *top++ = top[0] / top[1];
+          else
           {
-            FT_TRACE4(( " div" ));
-            if (top[1])
-              *top++ = top[0] / top[1];
-            else
-            {
-              FT_ERROR(( "T1.Parse_CharStrings : division by 0\n" ));
-              goto Syntax_Error;
-            }
-            break;
+            FT_ERROR(( "CID_Parse_CharStrings: division by 0\n" ));
+            goto Syntax_Error;
           }
+          break;
 
-
-          case op_callsubr:  /***********************************************/
+        case op_callsubr:
           {
-            FT_Int  index;
+            T1_Int  index;
 
+
             FT_TRACE4(( " callsubr" ));
+
             index = top[0];
             if ( index < 0 || index >= decoder->subrs->num_subrs )
             {
-              FT_ERROR(( "T1.Parse_CharStrings : invalid subrs index\n" ));
+              FT_ERROR(( "CID_Parse_CharStrings: invalid subrs index\n" ));
               goto Syntax_Error;
             }
 
             if ( zone - decoder->zones >= T1_MAX_SUBRS_CALLS )
             {
-              FT_ERROR(( "T1.Parse_CharStrings : too many nested subrs\n" ));
+              FT_ERROR(( "CID_Parse_CharStrings: too many nested subrs\n" ));
               goto Syntax_Error;
             }
 
@@ -1120,13 +1211,13 @@
             zone->cursor = ip;  /* save current instruction pointer */
 
             zone++;
-            zone->base    = decoder->subrs->code[index] + decoder->lenIV;
-            zone->limit   = decoder->subrs->code[index+1];
-            zone->cursor  = zone->base;
+            zone->base   = decoder->subrs->code[index] + decoder->lenIV;
+            zone->limit  = decoder->subrs->code[index + 1];
+            zone->cursor = zone->base;
 
-            if (!zone->base)
+            if ( !zone->base )
             {
-              FT_ERROR(( "T1.Parse_CharStrings : invoking empty subrs !!\n" ));
+              FT_ERROR(( "CID_Parse_CharStrings: invoking empty subrs!\n" ));
               goto Syntax_Error;
             }
 
@@ -1133,75 +1224,66 @@
             decoder->zone = zone;
             ip            = zone->base;
             limit         = zone->limit;
-            break;
           }
+          break;
 
+        case op_pop:
+          FT_TRACE4(( " pop" ));
 
-          case op_pop:  /****************************************************/
+          /* theorically, the arguments are already on the stack */
+          top++;
+          break;
+
+        case op_return:
+          FT_TRACE4(( " return" ));
+
+          if ( zone <= decoder->zones )
           {
-            FT_TRACE4(( " pop" ));
-            /* theorically, the arguments are already on the stack */
-            top++;
-            break;
+            FT_ERROR(( "CID_Parse_CharStrings: unexpected return\n" ));
+            goto Syntax_Error;
           }
 
+          zone--;
+          ip            = zone->cursor;
+          limit         = zone->limit;
+          decoder->zone = zone;
 
-          case op_return:  /************************************************/
-          {
-            FT_TRACE4(( " return" ));
-            if ( zone <= decoder->zones )
-            {
-              FT_ERROR(( "T1.Parse_CharStrings : unexpected return\n" ));
-              goto Syntax_Error;
-            }
+          break;
 
-            zone--;
-            ip            = zone->cursor;
-            limit         = zone->limit;
-            decoder->zone = zone;
-            break;
-          }
+        case op_dotsection:
+          FT_TRACE4(( " dotsection" ));
 
-          case op_dotsection:  /*********************************************/
-          {
-            FT_TRACE4(( " dotsection" ));
-            break;
-          }
+          break;
 
-          case op_hstem:  /**************************************************/
-          {
-            FT_TRACE4(( " hstem" ));
-            break;
-          }
+        case op_hstem:
+          FT_TRACE4(( " hstem" ));
 
-          case op_hstem3:  /*************************************************/
-          {
-            FT_TRACE4(( " hstem3" ));
-            break;
-          }
+          break;
 
-          case op_vstem:  /**************************************************/
-          {
-            FT_TRACE4(( " vstem" ));
-            break;
-          }
+        case op_hstem3:
+          FT_TRACE4(( " hstem3" ));
 
-          case op_vstem3:  /*************************************************/
-          {
-            FT_TRACE4(( " vstem3" ));
-            break;
-          }
+          break;
 
-          case op_setcurrentpoint:  /*****************************************/
-          {
-            FT_TRACE4(( " setcurrentpoint" ));
-            FT_ERROR(( "T1.Parse_CharStrings : unexpected SETCURRENTPOINT\n" ));
-            goto Syntax_Error;
-          }
+        case op_vstem:
+          FT_TRACE4(( " vstem" ));
 
-          default:
-            FT_ERROR(( "T1.Parse_CharStrings : unhandled opcode %d\n", op ));
-            goto Syntax_Error;
+          break;
+
+        case op_vstem3:
+          FT_TRACE4(( " vstem3" ));
+
+          break;
+
+        case op_setcurrentpoint:
+          FT_TRACE4(( " setcurrentpoint" ));
+
+          FT_ERROR(( "CID_Parse_CharStrings: unexpected `setcurrentpoint'\n" ));
+          goto Syntax_Error;
+
+        default:
+          FT_ERROR(( "CID_Parse_CharStrings: unhandled opcode %d\n", op ));
+          goto Syntax_Error;
         }
 
         decoder->top = top;
@@ -1208,9 +1290,10 @@
 
       } /* general operator processing */
 
-
     } /* while ip < limit */
+
     FT_TRACE4(( "..end..\n\n" ));
+
     return error;
 
   Syntax_Error:
@@ -1224,36 +1307,39 @@
   }
 
 
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+  /**********                                                      *********/
+  /**********                                                      *********/
+  /**********            COMPUTE THE MAXIMUM ADVANCE WIDTH         *********/
+  /**********                                                      *********/
+  /**********    The following code is in charge of computing      *********/
+  /**********    the maximum advance width of the font.  It        *********/
+  /**********    quickly processes each glyph charstring to        *********/
+  /**********    extract the value from either a `sbw' or `seac'   *********/
+  /**********    operator.                                         *********/
+  /**********                                                      *********/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
 
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********                                                   *********/
-  /**********                                                   *********/
-  /**********           COMPUTE THE MAXIMUM ADVANCE WIDTH       *********/
-  /**********                                                   *********/
-  /**********   The following code is in charge of computing    *********/
-  /**********   the maximum advance width of the font. It       *********/
-  /**********   quickly process each glyph charstring to        *********/
-  /**********   extract the value from either a "sbw" or "seac" *********/
-  /**********   operator.                                       *********/
-  /**********                                                   *********/
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********************************************************************/
 
 #if 0
+
+
   LOCAL_FUNC
-  FT_Error  CID_Compute_Max_Advance( CID_Face  face,
-                                     FT_Int   *max_advance )
+  T1_Error  CID_Compute_Max_Advance( CID_Face  face,
+                                     T1_Int*   max_advance )
   {
-    FT_Error    error;
+    T1_Error     error;
     CID_Decoder  decoder;
-    FT_Int      glyph_index;
+    T1_Int       glyph_index;
 
+
     *max_advance = 0;
 
-    /* Initialise load decoder */
+    /* Initialize load decoder */
     CID_Init_Decoder( &decoder );
     CID_Init_Builder( &decoder.builder, face, 0, 0 );
 
@@ -1261,8 +1347,9 @@
     decoder.builder.load_points  = 0;
 
     /* For each glyph, parse the glyph charstring and extract */
-    /* the advance width..                                    */
-    for ( glyph_index = 0; glyph_index < face->root.num_glyphs; glyph_index++ )
+    /* the advance width.                                     */
+    for ( glyph_index = 0; glyph_index < face->root.num_glyphs;
+          glyph_index++ )
     {
       /* now get load the unscaled outline */
       error = cid_load_glyph( &decoder, glyph_index );
@@ -1270,46 +1357,53 @@
     }
 
     *max_advance = decoder.builder.advance.x;
+
     return T1_Err_Ok;
   }
-#endif
 
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********                                                   *********/
-  /**********                                                   *********/
-  /**********              UNHINTED GLYPH LOADER                *********/
-  /**********                                                   *********/
-  /**********   The following code is in charge of loading a    *********/
-  /**********   single outline. It completely ignores hinting   *********/
-  /**********   and is used when FT_LOAD_NO_HINTING is set.     *********/
-  /**********                                                   *********/
-  /**********************************************************************/
-  /**********************************************************************/
-  /**********************************************************************/
 
+#endif /* 0 */
+
+
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+  /**********                                                      *********/
+  /**********                                                      *********/
+  /**********               UNHINTED GLYPH LOADER                  *********/
+  /**********                                                      *********/
+  /**********    The following code is in charge of loading a      *********/
+  /**********    single outline.  It completely ignores hinting    *********/
+  /**********    and is used when FT_LOAD_NO_HINTING is set.       *********/
+  /**********                                                      *********/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+
+
   static
-  FT_Error  cid_load_glyph( CID_Decoder*  decoder, FT_UInt  glyph_index )
+  T1_Error  cid_load_glyph( CID_Decoder*  decoder,
+                            T1_UInt       glyph_index )
   {
-    CID_Face  face = decoder->builder.face;
-    CID_Info* cid  = &face->cid;
-    FT_Byte*  p;
-    FT_UInt   entry_len = cid->fd_bytes + cid->gd_bytes;
-    FT_UInt   fd_select;
-    FT_ULong  off1, glyph_len;
-    FT_Stream stream = face->root.stream;
-    FT_Error  error  = 0;
+    CID_Face   face = decoder->builder.face;
+    CID_Info*  cid  = &face->cid;
+    T1_Byte*   p;
+    T1_UInt    entry_len = cid->fd_bytes + cid->gd_bytes;
+    T1_UInt    fd_select;
+    T1_ULong   off1, glyph_len;
+    FT_Stream  stream = face->root.stream;
+    T1_Error   error  = 0;
 
+
     /* read the CID font dict index and charstring offset from the CIDMap */
     if ( FILE_Seek( cid->data_offset + cid->cidmap_offset +
                     glyph_index * entry_len) ||
-         ACCESS_Frame( 2*entry_len )         )
-      goto Exit;           
+         ACCESS_Frame( 2 * entry_len )       )
+      goto Exit;
 
-    p = (FT_Byte*)stream->cursor;
-    fd_select = (FT_UInt) cid_get_offset( &p, cid->fd_bytes );
-    off1      = (FT_ULong)cid_get_offset( &p, cid->gd_bytes );
+    p = (T1_Byte*)stream->cursor;
+    fd_select = (T1_UInt) cid_get_offset( &p, cid->fd_bytes );
+    off1      = (T1_ULong)cid_get_offset( &p, cid->gd_bytes );
     p        += cid->fd_bytes;
     glyph_len = cid_get_offset( &p, cid->gd_bytes ) - off1;
 
@@ -1317,28 +1411,29 @@
 
     /* now, if the glyph is not empty, set up the subrs array, and parse */
     /* the charstrings                                                   */
-    if (glyph_len > 0)
+    if ( glyph_len > 0 )
     {
-      CID_FontDict* dict;
-      FT_Byte*      charstring;
-      FT_UInt       lenIV;
-      FT_Memory     memory = face->root.memory;
+      CID_FontDict*  dict;
+      T1_Byte*       charstring;
+      T1_UInt        lenIV;
+      FT_Memory      memory = face->root.memory;
 
+
       /* setup subrs */
       decoder->subrs = face->subrs + fd_select;
 
-      /* setup font matrix */            
+      /* setup font matrix */
       dict                 = cid->font_dicts + fd_select;
       decoder->font_matrix = dict->font_matrix;
       lenIV                = dict->private_dict.lenIV;
       decoder->lenIV       = lenIV;
-      
-      /* the charstrings are encoded (stupid !!)  */
-      /* load the charstrings, then execute it    */
-      
+
+      /* the charstrings are encoded (stupid!)  */
+      /* load the charstrings, then execute it  */
+
       if ( ALLOC( charstring, glyph_len ) )
         goto Exit;
-        
+
       if ( !FILE_Read_At( cid->data_offset + off1, charstring, glyph_len ) )
       {
         cid_decrypt( charstring, glyph_len, 4330 );
@@ -1352,22 +1447,23 @@
 
   Exit:
     return error;
-  }  
-  
-  
+  }
 
+
+
   LOCAL_FUNC
-  FT_Error  CID_Load_Glyph( T1_GlyphSlot  glyph,
+  T1_Error  CID_Load_Glyph( T1_GlyphSlot  glyph,
                             T1_Size       size,
-                            FT_Int        glyph_index,
-                            FT_Int        load_flags )
+                            T1_Int        glyph_index,
+                            T1_Int        load_flags )
   {
-    FT_Error        error;
-    CID_Decoder     decoder;
-    CID_Face        face = (CID_Face)glyph->root.face;
-    T1_Bool         hinting;
+    T1_Error     error;
+    CID_Decoder  decoder;
+    CID_Face     face = (CID_Face)glyph->root.face;
+    T1_Bool      hinting;
 
-    if (load_flags & FT_LOAD_NO_RECURSE)
+
+    if ( load_flags & FT_LOAD_NO_RECURSE )
       load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
 
     glyph->x_scale = size->root.metrics.x_scale;
@@ -1386,7 +1482,8 @@
       CID_Init_Builder( &decoder.builder, face, size, glyph );
 
       /* set up the decoder */
-      decoder.builder.no_recurse = (FT_Bool)!!(load_flags & FT_LOAD_NO_RECURSE);
+      decoder.builder.no_recurse =
+        (FT_Bool)( load_flags & FT_LOAD_NO_RECURSE );
 
       error = cid_load_glyph( &decoder, glyph_index );
 
@@ -1394,10 +1491,10 @@
       CID_Done_Builder( &decoder.builder );
     }
 
-    /* Now, set the metrics.. - this is rather simple, as : */
-    /* the left side bearing is the xMin, and the top side  */
-    /* bearing the yMax..                                   */
-    if (!error)
+    /* Now, set the metrics - this is rather simple, as    */
+    /* the left side bearing is the xMin, and the top side */
+    /* bearing the yMax.                                   */
+    if ( !error )
     {
       /* for composite glyphs, return only the left side bearing and the */
       /* advance width..                                                 */
@@ -1408,9 +1505,10 @@
       }
       else
       {
-        FT_BBox           cbox;
-        FT_Glyph_Metrics* metrics = &glyph->root.metrics;
+        FT_BBox            cbox;
+        FT_Glyph_Metrics*  metrics = &glyph->root.metrics;
 
+
         /* copy the _unscaled_ advance width */
         metrics->horiAdvance  = decoder.builder.advance.x;
 
@@ -1427,21 +1525,22 @@
 
         glyph->root.outline.flags |= ft_outline_reverse_fill;
 
-        /*
+#if 0
         glyph->root.outline.second_pass    = TRUE;
-        glyph->root.outline.high_precision = ( size->root.metrics.y_ppem < 24 );
+        glyph->root.outline.high_precision = size->root.metrics.y_ppem < 24;
         glyph->root.outline.dropout_mode   = 2;
-        */
+#endif
 
-        if ( (load_flags & FT_LOAD_NO_SCALE) == 0 )
+        if ( ( load_flags & FT_LOAD_NO_SCALE ) == 0 )
         {
           /* scale the outline and the metrics */
-          FT_Int       n;
-          FT_Outline*  cur = &decoder.builder.base;
-          T1_Vector*   vec = cur->points;
+          T1_Int       n;
+          FT_Outline*  cur     = &decoder.builder.base;
+          T1_Vector*   vec     = cur->points;
           T1_Fixed     x_scale = glyph->x_scale;
           T1_Fixed     y_scale = glyph->y_scale;
 
+
           /* First of all, scale the points */
           for ( n = cur->n_points; n > 0; n--, vec++ )
           {
@@ -1466,12 +1565,12 @@
         FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
 
         /* grid fit the bounding box if necessary */
-        if (hinting)
+        if ( hinting )
         {
           cbox.xMin &= -64;
           cbox.yMin &= -64;
-          cbox.xMax = ( cbox.xMax+63 ) & -64;
-          cbox.yMax = ( cbox.yMax+63 ) & -64;
+          cbox.xMax = ( cbox.xMax + 63 ) & -64;
+          cbox.yMax = ( cbox.yMax + 63 ) & -64;
         }
 
         metrics->width  = cbox.xMax - cbox.xMin;
@@ -1481,6 +1580,9 @@
         metrics->horiBearingY = cbox.yMax;
       }
     }
+
     return error;
   }
 
+
+/* END */
--- a/src/cid/cidgload.h
+++ b/src/cid/cidgload.h
@@ -1,37 +1,21 @@
-/*******************************************************************
- *
- *  cidgload.h                                                   1.0
- *
- *    CID-Keyed Type1 Glyph Loader.
- *
- *  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 Type 1 glyph loader uses three distinct objects to build
- *  scaled and hinted outlines from a charstrings program. These are :
- *
- *  - a glyph builder, CID_Builder, used to store the built outline
- *
- *  - a glyph hinter, T1_Hinter, used to record and apply the stem
- *    hints
- *
- *  - a charstrings interpreter, CID_Decoder, used to parse the
- *    Type 1 charstrings stream, manage a stack and call the builder
- *    and/or hinter depending on the opcodes.
- *
- *  Ideally, a Type 2 glyph loader would only need to have its own
- *  T2_Decoder object (assuming the hinter is able to manage all
- *  kinds of hints).
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidgload.h                                                             */
+/*                                                                         */
+/*    OpenType Glyph Loader (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 CIDGLOAD_H
 #define CIDGLOAD_H
 
@@ -42,46 +26,59 @@
 #endif
 
 
-/*************************************************************************/
-/*                                                                       */
-/* <Structure> CID_Builder                                                */
-/*                                                                       */
-/* <Description>                                                         */
-/*     a structure used during glyph loading to store its outline.       */
-/*                                                                       */
-/* <Fields>                                                              */
-/*    system :: current system object                                    */
-/*    face   :: current face object                                      */
-/*    glyph  :: current glyph slot                                       */
-/*                                                                       */
-/*    current :: current glyph outline                                   */
-/*    base    :: base glyph outline                                      */
-/*                                                                       */
-/*    max_points   :: maximum points in builder outline                  */
-/*    max_contours :: maximum contours in builder outline                */
-/*                                                                       */
-/*    last     :: last point position                                    */
-/*                                                                       */
-/*    scale_x  :: horizontal scale ( FUnits to sub-pixels )              */
-/*    scale_y  :: vertical scale   ( FUnits to sub-pixels )              */
-/*    pos_x    :: horizontal translation (composite glyphs)              */
-/*    pos_y    :: vertical translation   (composite glyph)               */
-/*                                                                       */
-/*    left_bearing  :: left side bearing point                           */
-/*    advance       :: horizontal advance vector                         */
-/*                                                                       */
-/*    path_begun    :: flag, indicates that a new path has begun         */
-/*    load_points   :: flag, if not set, no points are loaded            */
-/*                                                                       */
-/*    error         :: an error code that is only used to report         */
-/*                     memory allocation problems..                      */
-/*                                                                       */
-/*    metrics_only  :: a boolean indicating that we only want to         */
-/*                     compute the metrics of a given glyph, not load    */
-/*                     all of its points..                               */
-/*                                                                       */
-
-  typedef struct CID_Builder_
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Structure>                                                           */
+  /*    CID_Builder                                                        */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*     A structure used during glyph loading to store its outline.       */
+  /*                                                                       */
+  /* <Fields>                                                              */
+  /*    memory       :: The current memory object.                         */
+  /*                                                                       */
+  /*    face         :: The current face object.                           */
+  /*                                                                       */
+  /*    glyph        :: The current glyph slot.                            */
+  /*                                                                       */
+  /*    current      :: The current glyph outline.                         */
+  /*                                                                       */
+  /*    base         :: The base glyph outline.                            */
+  /*                                                                       */
+  /*    max_points   :: maximum points in builder outline                  */
+  /*                                                                       */
+  /*    max_contours :: Maximal number of contours in builder outline.     */
+  /*                                                                       */
+  /*    last         :: The last point position.                           */
+  /*                                                                       */
+  /*    scale_x      :: The horizontal scale (FUnits to sub-pixels).       */
+  /*                                                                       */
+  /*    scale_y      :: The vertical scale (FUnits to sub-pixels).         */
+  /*                                                                       */
+  /*    pos_x        :: The horizontal translation (if composite glyph).   */
+  /*                                                                       */
+  /*    pos_y        :: The vertical translation (if composite glyph).     */
+  /*                                                                       */
+  /*    left_bearing :: The left side bearing point.                       */
+  /*                                                                       */
+  /*    advance      :: The horizontal advance vector.                     */
+  /*                                                                       */
+  /*    bbox         :: Unused.                                            */
+  /*                                                                       */
+  /*    path_begun   :: A flag which indicates that a new path has begun.  */
+  /*                                                                       */
+  /*    load_points  :: If this flag is not set, no points are loaded.     */
+  /*                                                                       */
+  /*    no_recurse   :: Set but not used.                                  */
+  /*                                                                       */
+  /*    error        :: An error code that is only used to report memory   */
+  /*                    allocation problems.                               */
+  /*                                                                       */
+  /*    metrics_only :: A boolean indicating that we only want to compute  */
+  /*                    the metrics of a given glyph, not load all of its  */
+  /*                    points.                                            */
+  /*                                                                       */
+  typedef struct  CID_Builder_
   {
     FT_Memory     memory;
     CID_Face      face;
@@ -90,8 +87,8 @@
     FT_Outline    current;       /* the current glyph outline   */
     FT_Outline    base;          /* the composite glyph outline */
 
-    FT_Int        max_points;    /* capacity of base outline in points   */
-    FT_Int        max_contours;  /* capacity of base outline in contours */
+    T1_Int        max_points;    /* capacity of base outline in points   */
+    T1_Int        max_contours;  /* capacity of base outline in contours */
 
     T1_Vector     last;
 
@@ -109,7 +106,7 @@
     T1_Bool       load_points;
     T1_Bool       no_recurse;
 
-    FT_Error      error;         /* only used for memory errors */
+    T1_Error      error;         /* only used for memory errors */
     T1_Bool       metrics_only;
 
   } CID_Builder;
@@ -116,42 +113,42 @@
 
 
   /* execution context charstring zone */
-  typedef struct CID_Decoder_Zone_
+
+  typedef struct  CID_Decoder_Zone_
   {
-    FT_Byte*  base;
-    FT_Byte*  limit;
-    FT_Byte*  cursor;
+    T1_Byte*  base;
+    T1_Byte*  limit;
+    T1_Byte*  cursor;
 
   } CID_Decoder_Zone;
 
 
-  typedef struct CID_Decoder_
+  typedef struct  CID_Decoder_
   {
     CID_Builder        builder;
 
-    FT_Int             stack[ T1_MAX_CHARSTRINGS_OPERANDS ];
-    FT_Int*            top;
+    T1_Int             stack[T1_MAX_CHARSTRINGS_OPERANDS];
+    T1_Int*            top;
 
-    CID_Decoder_Zone   zones[ T1_MAX_SUBRS_CALLS+1 ];
+    CID_Decoder_Zone   zones[T1_MAX_SUBRS_CALLS + 1];
     CID_Decoder_Zone*  zone;
 
-    FT_Matrix          font_matrix;
+    T1_Matrix          font_matrix;
     CID_Subrs*         subrs;
-    FT_UInt            lenIV;
+    T1_UInt            lenIV;
 
-    FT_Int             flex_state;
-    FT_Int             num_flex_vectors;
-    FT_Vector          flex_vectors[7];
+    T1_Int             flex_state;
+    T1_Int             num_flex_vectors;
+    T1_Vector          flex_vectors[7];
 
   } CID_Decoder;
 
 
-
   LOCAL_DEF
-  void  CID_Init_Builder( CID_Builder*             builder,
-                          CID_Face                 face,
-                          T1_Size                  size,
-                          T1_GlyphSlot             glyph );
+  void  CID_Init_Builder( CID_Builder*  builder,
+                          CID_Face      face,
+                          T1_Size       size,
+                          T1_GlyphSlot  glyph );
 
   LOCAL_DEF
   void CID_Done_Builder( CID_Builder*  builder );
@@ -158,27 +155,29 @@
 
 
   LOCAL_DEF
-  void  CID_Init_Decoder( CID_Decoder* decoder );
+  void CID_Init_Decoder( CID_Decoder*  decoder );
 
 
 #if 0
+
   /* Compute the maximum advance width of a font through quick parsing */
   LOCAL_DEF
-  FT_Error  CID_Compute_Max_Advance( CID_Face  face,
-                                     FT_Int   *max_advance );
+  T1_Error  CID_Compute_Max_Advance( CID_Face  face,
+                                     T1_Int*   max_advance );
+
 #endif
 
   /* This function is exported, because it is used by the T1Dump utility */
   LOCAL_DEF
-  FT_Error   CID_Parse_CharStrings( CID_Decoder*  decoder,
-                                    FT_Byte*      charstring_base,
-                                    FT_Int        charstring_len );
+  T1_Error  CID_Parse_CharStrings( CID_Decoder*  decoder,
+                                   T1_Byte*      charstring_base,
+                                   T1_Int        charstring_len );
 
   LOCAL_DEF
-  FT_Error  CID_Load_Glyph( T1_GlyphSlot  glyph,
+  T1_Error  CID_Load_Glyph( T1_GlyphSlot  glyph,
                             T1_Size       size,
-                            FT_Int        glyph_index,
-                            FT_Int        load_flags );
+                            T1_Int        glyph_index,
+                            T1_Int        load_flags );
 
 
 #ifdef __cplusplus
@@ -185,4 +184,8 @@
   }
 #endif
 
-#endif /* T1GLOAD_H */
+
+#endif /* CIDGLOAD_H */
+
+
+/* END */
--- a/src/cid/cidload.c
+++ b/src/cid/cidload.c
@@ -1,60 +1,21 @@
-/*******************************************************************
- *
- *  cidload.h                                                    2.0
- *
- *    CID-keyed foint loader
- *
- *  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.
- *
- *
- *  This is the new and improved Type 1 data loader for FreeType 2.
- *  The old loader has several problems: it is slow, complex, difficult
- *  to maintain, and contains incredible hacks to make it accept some
- *  ill-formed Type 1 fonts without hiccup-ing. Moreover, about 5%
- *  of the Type 1 fonts on my machine still aren't loaded correctly
- *  with it.
- *
- *  This version is much simpler, much faster and also easier to
- *  read and maintain by a great order of magnitude. The idea behind
- *  it is to _not_ try to read the Type 1 token stream with a state
- *  machine (i.e. a Postscript-like interpreter) but rather to perform
- *  simple pattern-matching.
- *
- *  Indeed, nearly all data definitions follow a simple pattern
- *  like :
- *
- *      ..... /Field <data> ....
- *
- *  where <data> can be a number, a boolean, a string, or an
- *  array of numbers. There are a few exceptions, namely the
- *  encoding, font name, charstrings and subrs and they are
- *  handled with a special pattern-matching routine.
- *
- *  All other common cases are handled very simply. The matching
- *  rules are defined in the file "t1tokens.h" through the use
- *  of several macros calls T1_FIELD_XXX
- *
- *  The function "parse_dict" simply scans *linearly* a given
- *  dictionary (either the top-level or private one) and calls
- *  the appropriate callback when it encounters an immediate
- *  keyword.
- *
- *  This is by far the fastest way one can find to parse and read
- *  all data :-)
- *
- *  This led to tremendous code size reduction. Note that later,
- *  the glyph loader will also be _greatly_ simplified, and the
- *  automatic hinter will replace the clumsy "t1hinter"..
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidload.c                                                              */
+/*                                                                         */
+/*    CID-keyed Type1 font loader (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/config/ftconfig.h>
 #include <freetype/ftmm.h>
@@ -62,21 +23,33 @@
 #include <freetype/internal/t1types.h>
 #include <freetype/internal/t1errors.h>
 #include <cidload.h>
+
 #include <stdio.h>
+#include <ctype.h>  /* for isspace(), isalnum() */
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* 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_t1load
+#define FT_COMPONENT  trace_cidload
 
- /* reads a single offset */
+
+ /* read a single offset */
   LOCAL_FUNC
-  FT_Long  cid_get_offset( FT_Byte** start, FT_Byte  offsize )
+  T1_Long  cid_get_offset( T1_Byte**  start,
+                           T1_Byte    offsize )
   {
-    FT_Long  result;
-    FT_Byte* p = *start;
-    
+    T1_Long   result;
+    T1_Byte*  p = *start;
+
+
     for ( result = 0; offsize > 0; offsize-- )
-      result = (result << 8) | *p++;
-      
+      result = ( result << 8 ) | *p++;
+
     *start = p;
     return result;
   }
@@ -83,16 +56,17 @@
 
 
   LOCAL_FUNC
-  void  cid_decrypt( FT_Byte*   buffer,
-                     FT_Int     length,
-                     FT_UShort  seed )
+  void  cid_decrypt( T1_Byte*   buffer,
+                     T1_Int     length,
+                     T1_UShort  seed )
   {
     while ( length > 0 )
     {
-      FT_Byte  plain;
+      T1_Byte  plain;
 
-      plain     = (*buffer ^ (seed >> 8));
-      seed      = (*buffer+seed)*52845+22719;
+
+      plain     = ( *buffer ^ ( seed >> 8 ) );
+      seed      = ( *buffer + seed ) * 52845 + 22719;
       *buffer++ = plain;
       length--;
     }
@@ -99,27 +73,28 @@
   }
 
 
+  /*************************************************************************/
+  /*************************************************************************/
+  /*****                                                               *****/
+  /*****                    TYPE 1 SYMBOL PARSING                      *****/
+  /*****                                                               *****/
+  /*************************************************************************/
+  /*************************************************************************/
 
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****                      TYPE 1 SYMBOL PARSING                      *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
 
-
-  static  FT_Error   cid_load_keyword( CID_Face             face,
-                                       CID_Loader*          loader,
-                                       const T1_Field_Rec*  keyword )
+  static
+  T1_Error  cid_load_keyword( CID_Face             face,
+                              CID_Loader*          loader,
+                              const T1_Field_Rec*  keyword )
   {
-    FT_Error    error;
+    T1_Error    error;
     CID_Parser* parser = &loader->parser;
-    FT_Byte*    object;
+    T1_Byte*    object;
     CID_Info*   cid = &face->cid;
 
+
     /* if the keyword has a dedicated callback, call it */
-    if (keyword->type == t1_field_callback)
+    if ( keyword->type == t1_field_callback )
     {
       error = keyword->reader( face, parser );
       goto Exit;
@@ -126,40 +101,42 @@
     }
 
     /* we must now compute the address of our target object */
-    switch (keyword->location)
+    switch ( keyword->location )
     {
-      case t1_field_cid_info:
-          object = (FT_Byte*)cid;
-          break;
-          
-      case t1_field_font_info:
-          object = (FT_Byte*)&cid->font_info;
-          break;
-          
-      default:
+    case t1_field_cid_info:
+      object = (T1_Byte*)cid;
+      break;
+
+    case t1_field_font_info:
+      object = (T1_Byte*)&cid->font_info;
+      break;
+
+    default:
+      {
+        CID_FontDict*  dict;
+
+
+        if ( parser->num_dict < 0 )
         {
-          CID_FontDict*  dict;
-          
-          if ( parser->num_dict < 0 )
-          {
-            FT_ERROR(( "CID.Load_Keyword: invalid use of '%s' !!\n", keyword->ident ));
-            error = T1_Err_Syntax_Error;
-            goto Exit;
-          }
-          
-          dict = cid->font_dicts + parser->num_dict;
-          switch (keyword->location)
-          {
-            case t1_field_private:
-              object = (FT_Byte*)&dict->private_dict;
-              break;
-              
-            default:
-              object = (FT_Byte*)dict;
-          }
+          FT_ERROR(( "cid_load_keyword: invalid use of `%s'!\n",
+                     keyword->ident ));
+          error = T1_Err_Syntax_Error;
+          goto Exit;
         }
+
+        dict = cid->font_dicts + parser->num_dict;
+        switch ( keyword->location )
+        {
+        case t1_field_private:
+          object = (T1_Byte*)&dict->private_dict;
+          break;
+
+        default:
+          object = (T1_Byte*)dict;
+        }
+      }
     }
-    
+
     /* now, load the keyword data in the object's field(s) */
     if ( keyword->type == t1_field_integer_array ||
          keyword->type == t1_field_fixed_array   )
@@ -166,39 +143,45 @@
       error = CID_Load_Field_Table( parser, keyword, object );
     else
       error = CID_Load_Field( parser, keyword, object );
-    
+
   Exit:
     return error;
-  }                                
+  }
 
 
   static
-  FT_Error  parse_font_bbox( CID_Face  face, CID_Parser*  parser )
+  T1_Error  parse_font_bbox( CID_Face     face,
+                             CID_Parser*  parser )
   {
-    FT_Short      temp[4];
-    T1_BBox*      bbox = &face->cid.font_bbox;
+    T1_Short  temp[4];
+    T1_BBox*  bbox = &face->cid.font_bbox;
 
+
     (void)CID_ToCoordArray( parser, 4, temp );
     bbox->xMin = temp[0];
     bbox->yMin = temp[1];
     bbox->xMax = temp[2];
     bbox->yMax = temp[3];
-    
-    return 0;
+
+    return T1_Err_Ok;       /* this is a callback function; */
+                            /* we must return an error code */
   }
 
+
   static
-  FT_Error  parse_font_matrix( CID_Face  face, CID_Parser*  parser )
+  T1_Error  parse_font_matrix( CID_Face     face,
+                               CID_Parser*  parser )
   {
-    FT_Matrix*     matrix;
+    T1_Matrix*     matrix;
     CID_FontDict*  dict;
     T1_Fixed       temp[4];
 
-    if (parser->num_dict >= 0)
+
+    if ( parser->num_dict >= 0 )
     {
       dict   = face->cid.font_dicts + parser->num_dict;
       matrix = &dict->font_matrix;
-      
+
       (void)CID_ToFixedArray( parser, 4, temp, 3 );
       matrix->xx = temp[0];
       matrix->yx = temp[1];
@@ -205,73 +188,74 @@
       matrix->xy = temp[2];
       matrix->yy = temp[3];
     }
-    return 0;
+
+    return T1_Err_Ok;       /* this is a callback function; */
+                            /* we must return an error code */
   }
 
+
   static
-  FT_Error  parse_fd_array( CID_Face   face, CID_Parser*  parser )
+  T1_Error  parse_fd_array( CID_Face     face,
+                            CID_Parser*  parser )
   {
     CID_Info*  cid    = &face->cid;
     FT_Memory  memory = face->root.memory;
-    FT_Error   error;
-    FT_Long    num_dicts;
-    
-    num_dicts = CID_ToInt(parser);
+    T1_Error   error  = T1_Err_Ok;
+    T1_Long    num_dicts;
+
+
+    num_dicts = CID_ToInt( parser );
+
     if ( !cid->font_dicts )
     {
-      FT_Int  n;
-      
+      T1_Int  n;
+
+
       if ( ALLOC_ARRAY( cid->font_dicts, num_dicts, CID_FontDict ) )
         goto Exit;
-      
-      cid->num_dicts = (FT_UInt)num_dicts;
-      
-      /* don't forget to set a few defauts !! */
+
+      cid->num_dicts = (T1_UInt)num_dicts;
+
+      /* don't forget to set a few defaults */
       for ( n = 0; n < cid->num_dicts; n++ )
       {
         CID_FontDict*  dict = cid->font_dicts + n;
-        
-        /* default value for lenIV !! */
+
+
+        /* default value for lenIV */
         dict->private_dict.lenIV = 4;
       }
     }
-    
+
   Exit:
     return error;
   }
 
 
-
   static
-  const T1_Field_Rec   t1_field_records[] = 
+  const T1_Field_Rec  t1_field_records[] =
   {
-    #include <cidtokens.h>
+#include <cidtokens.h>
     { 0, 0, 0, 0, 0, 0 }
   };
 
 
   static
-  int  is_space( char c )
+  int  is_alpha( char  c )
   {
-    return ( c == ' ' || c == '\t' || c == '\r' || c == '\n' );
+    return ( isalnum( c ) ||
+             c == '.'     ||
+             c == '_'     );
   }
 
-  static
-  int  is_alpha( char c )
-  {
-    return ( (c >= 'A' && c <= 'Z') ||
-             (c >= 'a' && c <= 'z') ||
-             (c >= '0' && c <= '9') ||
-             (c == '.')             ||
-             (c == '_') );
-  }
 
   static
-  void  skip_whitespace( CID_Parser* parser )
+  void  skip_whitespace( CID_Parser*  parser )
   {
-    FT_Byte*  cur = parser->cursor;
+    T1_Byte*  cur = parser->cursor;
 
-    while ( cur < parser->limit && is_space(*cur) )
+
+    while ( cur < parser->limit && isspace( *cur ) )
       cur++;
 
     parser->cursor = cur;
@@ -278,31 +262,32 @@
   }
 
 
-
   static
-  FT_Error  parse_dict( CID_Face    face,
+  T1_Error  parse_dict( CID_Face     face,
                         CID_Loader*  loader,
-                        FT_Byte*    base,
-                        FT_Long     size )
+                        T1_Byte*     base,
+                        T1_Long      size )
   {
-    CID_Parser*  parser   = &loader->parser;
+    CID_Parser*  parser = &loader->parser;
 
+
     parser->cursor = base;
     parser->limit  = base + size;
     parser->error  = 0;
 
     {
-      FT_Byte*  cur     = base;
-      FT_Byte*  limit   = cur + size;
+      T1_Byte*  cur   = base;
+      T1_Byte*  limit = cur + size;
 
+
       for ( ;cur < limit; cur++ )
       {
-        /* look for %ADOBegin... */
+        /* look for `%ADOBeginFontDict' */
         if ( *cur == '%' && cur + 20 < limit &&
              strncmp( (char*)cur, "%ADOBeginFontDict", 17 ) == 0 )
         {
           cur += 17;
-          
+
           /* if /FDArray was found, then cid->num_dicts is > 0, and */
           /* we can start increasing parser->num_dict               */
           if ( face->cid.num_dicts > 0 )
@@ -309,43 +294,51 @@
             parser->num_dict++;
         }
         /* look for immediates */
-        else if (*cur == '/' && cur+2 < limit)
+        else if ( *cur == '/' && cur + 2 < limit )
         {
-          FT_Byte* cur2;
-          FT_Int   len;
+          T1_Byte*  cur2;
+          T1_Int    len;
 
-          cur  ++;
+
+          cur++;
+
           cur2 = cur;
-          while (cur2 < limit && is_alpha(*cur2)) cur2++;
-          len  = cur2-cur;
+          while ( cur2 < limit && is_alpha( *cur2 ) )
+            cur2++;
 
-          if (len > 0 && len < 22)
+          len = cur2 - cur;
+          if ( len > 0 && len < 22 )
           {
             /* now, compare the immediate name to the keyword table */
             const T1_Field_Rec*  keyword = t1_field_records;
 
+
             for (;;)
             {
-              FT_Byte*  name;
+              T1_Byte*  name;
 
-              name = (FT_Byte*)keyword->ident;
-              if (!name) break;
 
-              if ( cur[0] == name[0] &&
-                   len == (FT_Int)strlen((const char*)name) )
+              name = (T1_Byte*)keyword->ident;
+              if ( !name )
+                break;
+
+              if ( cur[0] == name[0]                          &&
+                   len == (T1_Int)strlen( (const char*)name ) )
               {
-                FT_Int  n;
+                T1_Int  n;
+
+
                 for ( n = 1; n < len; n++ )
-                  if (cur[n] != name[n])
+                  if ( cur[n] != name[n] )
                     break;
 
-                if (n >= len)
+                if ( n >= len )
                 {
-                  /* we found it - run the parsing callback !! */
+                  /* we found it - run the parsing callback */
                   parser->cursor = cur2;
                   skip_whitespace( parser );
                   parser->error = cid_load_keyword( face, loader, keyword );
-                  if (parser->error)
+                  if ( parser->error )
                     return parser->error;
 
                   cur = parser->cursor;
@@ -362,56 +355,60 @@
   }
 
 
-
   /* read the subrmap and the subrs of each font dict */
   static
-  FT_Error  cid_read_subrs( CID_Face   face )
+  T1_Error  cid_read_subrs( CID_Face  face )
   {
     CID_Info*   cid    = &face->cid;
     FT_Memory   memory = face->root.memory;
     FT_Stream   stream = face->root.stream;
-    FT_Error    error;
-    FT_UInt     n;
+    T1_Error    error;
+    T1_UInt     n;
     CID_Subrs*  subr;
-    FT_UInt     max_offsets = 0;
-    FT_ULong*   offsets = 0;
-    
+    T1_UInt     max_offsets = 0;
+    T1_ULong*   offsets = 0;
+
+
     if ( ALLOC_ARRAY( face->subrs, cid->num_dicts, CID_Subrs ) )
       goto Exit;
-      
+
     subr = face->subrs;
     for ( n = 0; n < cid->num_dicts; n++, subr++ )
     {
-      CID_FontDict*  dict      = cid->font_dicts + n;
-      FT_UInt        count, num_subrs = dict->num_subrs;
-      FT_ULong       data_len;
-      FT_Byte*       p;
-      
+      CID_FontDict*  dict = cid->font_dicts + n;
+      T1_UInt        count, num_subrs = dict->num_subrs;
+      T1_ULong       data_len;
+      T1_Byte*       p;
+
+
       /* reallocate offsets array if needed */
-      if ( num_subrs+1 > max_offsets )
+      if ( num_subrs + 1 > max_offsets )
       {
-        FT_UInt  new_max = (num_subrs+1+3) & -4;
-        if ( REALLOC_ARRAY( offsets, max_offsets, new_max, FT_ULong ) )
+        T1_UInt  new_max = ( num_subrs + 1 + 3 ) & -4;
+
+
+        if ( REALLOC_ARRAY( offsets, max_offsets, new_max, T1_ULong ) )
           goto Fail;
-          
+
         max_offsets = new_max;
       }
-      
+
       /* read the subrmap's offsets */
       if ( FILE_Seek( cid->data_offset + dict->subrmap_offset ) ||
-           ACCESS_Frame( (num_subrs+1) * dict->sd_bytes )       )
+           ACCESS_Frame( ( num_subrs + 1 ) * dict->sd_bytes )   )
         goto Fail;
-        
+
       p = (FT_Byte*)stream->cursor;
       for ( count = 0; count <= num_subrs; count++ )
         offsets[count] = cid_get_offset( &p, dict->sd_bytes );
-        
+
       FORGET_Frame();
-      
-      /* now, compute the size of subrs charstrings, allocate and read them */
+
+      /* now, compute the size of subrs charstrings, */
+      /* allocate, and read them                     */
       data_len = offsets[num_subrs] - offsets[0];
-      
-      if ( ALLOC_ARRAY( subr->code, num_subrs+1, FT_Byte* ) ||
+
+      if ( ALLOC_ARRAY( subr->code, num_subrs+1, T1_Byte* ) ||
            ALLOC( subr->code[0], data_len )                 )
         goto Fail;
 
@@ -422,18 +419,20 @@
       /* set up pointers */
       for ( count = 1; count <= num_subrs; count++ )
       {
-        FT_UInt  len;
-        
-        len = offsets[count] - offsets[count-1];
-        subr->code[count] = subr->code[count-1] + len;
+        T1_UInt  len;
+
+
+        len               = offsets[count] - offsets[count - 1];
+        subr->code[count] = subr->code[count - 1] + len;
       }
 
-      /* decrypt subroutines */        
+      /* decrypt subroutines */
       for ( count = 0; count < num_subrs; count++ )
       {
-        FT_UInt  len;
-        
-        len = offsets[count+1] - offsets[count];
+        T1_UInt  len;
+
+
+        len = offsets[count + 1] - offsets[count];
         cid_decrypt( subr->code[count], len, 4330 );
       }
 
@@ -443,15 +442,15 @@
   Exit:
     FREE( offsets );
     return error;
-    
+
   Fail:
-    if (face->subrs)
+    if ( face->subrs )
     {
       for ( n = 0; n < cid->num_dicts; n++ )
       {
-        if (face->subrs[n].code)
+        if ( face->subrs[n].code )
           FREE( face->subrs[n].code[0] );
-          
+
         FREE( face->subrs[n].code );
       }
       FREE( face->subrs );
@@ -459,45 +458,56 @@
     goto Exit;
   }
 
+
   static
-  void t1_init_loader( CID_Loader* loader, CID_Face  face )
+  void t1_init_loader( CID_Loader*  loader,
+                       CID_Face     face )
   {
     UNUSED(face);
 
-    MEM_Set( loader, 0, sizeof(*loader) );
+    MEM_Set( loader, 0, sizeof ( *loader ) );
   }
 
+
   static
-  void t1_done_loader( CID_Loader* loader )
+  void t1_done_loader( CID_Loader*  loader )
   {
     CID_Parser*  parser = &loader->parser;
 
+
     /* finalize parser */
     CID_Done_Parser( parser );
   }
 
+
   LOCAL_FUNC
-  FT_Error  CID_Open_Face( CID_Face  face )
+  T1_Error  CID_Open_Face( CID_Face  face )
   {
     CID_Loader  loader;
     CID_Parser* parser;
-    FT_Error   error;
+    T1_Error   error;
 
+
     t1_init_loader( &loader, face );
 
     parser = &loader.parser;
     error = CID_New_Parser( parser, face->root.stream, face->root.memory );
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
 
     error = parse_dict( face, &loader,
                         parser->postscript,
                         parser->postscript_len );
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
 
     face->cid.data_offset = loader.parser.data_offset;
     error = cid_read_subrs( face );
-   
+
   Exit:
     t1_done_loader( &loader );
     return error;
   }
+
+
+/* END */
--- a/src/cid/cidload.h
+++ b/src/cid/cidload.h
@@ -1,23 +1,24 @@
-/*******************************************************************
- *
- *  t1load.h                                                    2.0
- *
- *    Type1 Loader.
- *
- *  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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidload.h                                                              */
+/*                                                                         */
+/*    CID-keyed Type1 font loader (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 T1LOAD_H
-#define T1LOAD_H
 
+#ifndef CIDLOAD_H
+#define CIDLOAD_H
+
 #include <freetype/internal/ftstream.h>
 #include <cidparse.h>
 
@@ -25,30 +26,34 @@
   extern "C" {
 #endif
 
-  typedef struct CID_Loader_
+
+  typedef struct  CID_Loader_
   {
-    CID_Parser        parser;          /* parser used to read the stream */
+    CID_Parser  parser;          /* parser used to read the stream */
+    T1_Int      num_chars;       /* number of characters in encoding */
 
-    FT_Int           num_chars;       /* number of characters in encoding */
-
   } CID_Loader;
 
+
   LOCAL_DEF
-  FT_Long  cid_get_offset( FT_Byte** start, FT_Byte  offsize );
+  T1_Long  cid_get_offset( T1_Byte**  start,
+                           T1_Byte    offsize );
 
   LOCAL_DEF
-  void  cid_decrypt( FT_Byte*   buffer,
-                     FT_Int     length,
-                     FT_UShort  seed );
+  void  cid_decrypt( T1_Byte*   buffer,
+                     T1_Int     length,
+                     T1_UShort  seed );
 
   LOCAL_DEF
-  FT_Error  CID_Open_Face( CID_Face  face );
+  T1_Error  CID_Open_Face( CID_Face  face );
 
+
 #ifdef __cplusplus
   }
 #endif
 
-#endif /* T1LOAD_H */
+
+#endif /* CIDLOAD_H */
 
 
 /* END */
--- a/src/cid/cidobjs.c
+++ b/src/cid/cidobjs.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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidobjs.c                                                              */
+/*                                                                         */
+/*    CID 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>
 
@@ -23,90 +24,90 @@
 #include <freetype/internal/psnames.h>
 #include <cidafm.h>
 
-/* Required by tracing mode */
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* 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
+#define  FT_COMPONENT  trace_cidobjs
 
-/*******************************************************************
- *                                                                 *
- *                         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
- *
- ******************************************************************/
+  /*************************************************************************/
+  /*                                                                       */
+  /*                           SIZE  FUNCTIONS                             */
+  /*                                                                       */
+  /*************************************************************************/
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Done_Size                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The CID size object finalizer.                                     */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    size :: A handle to the target size object.                        */
+  /*                                                                       */
   LOCAL_FUNC
-  void  T1_Done_Size( T1_Size  size )
+  void  CID_Done_Size( T1_Size  size )
   {
-    UNUSED(size);
+    UNUSED( size );
   }
 
 
-/*******************************************************************
- *
- *  <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>                                                            */
+  /*    CID_Init_Size                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Initializes a new CID size object.                                 */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    size :: A handle to the size object.                               */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   LOCAL_DEF
-  FT_Error  T1_Init_Size( T1_Size  size )
+  T1_Error  CID_Init_Size( T1_Size  size )
   {
     size->valid = 0;
+
     return T1_Err_Ok;
   }
 
 
-/*******************************************************************
- *
- *  <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>                                                            */
+  /*    CID_Reset_Size                                                     */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Resets a OpenType size when resolutions and character dimensions   */
+  /*    have been changed.                                                 */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    size :: A handle to the target size object.                        */
+  /*                                                                       */
+  /* <Output>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   LOCAL_FUNC
-  FT_Error  T1_Reset_Size( T1_Size  size )
+  T1_Error  CID_Reset_Size( T1_Size  size )
   {
-    /* recompute ascender, descender, etc.. */
+    /* recompute ascender, descender, etc. */
     CID_Face          face    = (CID_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;
+      return T1_Err_Invalid_Argument;
 
     /* Compute root ascender, descender, test height, and max_advance */
     metrics->ascender = ( FT_MulFix( face->root.ascender,
@@ -120,44 +121,43 @@
 
     metrics->max_advance = ( FT_MulFix( face->root.max_advance_width,
                                         metrics->x_scale ) + 32 ) & -64;
-    return 0;
+
+    return T1_Err_Ok;
   }
 
 
-/*******************************************************************
- *                                                                 *
- *                         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>                                                            */
+  /*    CID_Done_Face                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Finalizes a given face object.                                     */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    face :: A pointer to the face object to destroy.                   */
+  /*                                                                       */
   LOCAL_FUNC
-  void  T1_Done_Face( CID_Face  face )
+  void  CID_Done_Face( CID_Face  face )
   {
     FT_Memory  memory;
 
-    if (face)
+
+    if ( face )
     {
-      CID_Info*      cid   = &face->cid;
-      T1_FontInfo*   info  = &cid->font_info;
+      CID_Info*     cid  = &face->cid;
+      T1_FontInfo*  info = &cid->font_info;
 
+
       memory = face->root.memory;
-      
+
       /* release FontInfo strings */
       FREE( info->version );
       FREE( info->notice );
@@ -164,81 +164,92 @@
       FREE( info->full_name );
       FREE( info->family_name );
       FREE( info->weight );
-      
+
       /* release font dictionaries */
       FREE( cid->font_dicts );
       cid->num_dicts = 0;
-      
+
       /* release other strings */
       FREE( cid->cid_font_name );
       FREE( cid->registry );
       FREE( cid->ordering );
-      
+
       face->root.family_name = 0;
       face->root.style_name  = 0;
     }
   }
 
-/*******************************************************************
- *
- *  <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>                                                            */
+  /*    CID_Init_Face                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Initializes a given CID face object.                               */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    stream     :: The source font stream.                              */
+  /*                                                                       */
+  /*    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 newly built face object.                         */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   LOCAL_FUNC
-  FT_Error  T1_Init_Face( FT_Stream      stream,
-                          CID_Face       face,
-                          FT_Int         face_index,
-                          FT_Int         num_params,
-                          FT_Parameter*  params )
+  T1_Error  CID_Init_Face( FT_Stream      stream,
+                           CID_Face       face,
+                           T1_Int         face_index,
+                           T1_Int         num_params,
+                           FT_Parameter*  params )
   {
-    FT_Error      error;
+    T1_Error            error;
     PSNames_Interface*  psnames;
 
-    UNUSED(num_params);
-    UNUSED(params);
-    UNUSED(face_index);
-    UNUSED(stream);
+    UNUSED( num_params );
+    UNUSED( params );
+    UNUSED( face_index );
+    UNUSED( stream );
 
+
     face->root.num_faces = 1;
 
     psnames = (PSNames_Interface*)face->psnames;
-    if (!psnames)
+    if ( !psnames )
     {
       /* look-up the PSNames driver */
       FT_Driver  psnames_driver;
 
+
       psnames_driver = FT_Get_Driver( face->root.driver->library, "psnames" );
-      if (psnames_driver)
+      if ( psnames_driver )
         face->psnames = (PSNames_Interface*)
-                            (psnames_driver->interface.format_interface);
+                          (psnames_driver->interface.format_interface);
     }
 
-    /* open the tokenizer, this will also check the font format */
-    if ( FILE_Seek(0) )
+    /* open the tokenizer; this will also check the font format */
+    if ( FILE_Seek( 0 ) )
       goto Exit;
-      
+
     error = CID_Open_Face( face );
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
 
     /* if we just wanted to check the format, leave successfully now */
-    if (face_index < 0)
+    if ( face_index < 0 )
       goto Exit;
 
     /* check the face index */
     if ( face_index != 0 )
     {
-      FT_ERROR(( "T1.Init_Face : invalid face index\n" ));
+      FT_ERROR(( "CID_Init_Face: invalid face index\n" ));
       error = T1_Err_Invalid_Argument;
       goto Exit;
     }
@@ -250,6 +261,7 @@
       {
         FT_Face  root = (FT_Face)&face->root;
 
+
         root->num_glyphs   = face->cid.cid_count;
         root->num_charmaps = 0;
 
@@ -261,12 +273,12 @@
         if ( face->cid.font_info.is_fixed_pitch )
           root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
 
-        /* XXX : TO DO - add kerning with .afm support */
+        /* XXX: TO DO - 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 = face->cid.font_info.family_name;
-        if (root->family_name)
+        if ( root->family_name )
         {
           char*  full   = face->cid.font_info.full_name;
           char*  family = root->family_name;
@@ -277,12 +289,13 @@
             full++;
           }
 
-          root->style_name = ( *full == ' ' ? full+1 : "Regular" );
+          root->style_name = ( *full == ' ' ) ? full + 1
+                                              : "Regular";
         }
         else
         {
-          /* do we have a /FontName ?? */
-          if (face->cid.cid_font_name)
+          /* do we have a `/FontName'? */
+          if ( face->cid.cid_font_name )
           {
             root->family_name = face->cid.cid_font_name;
             root->style_name  = "Regular";
@@ -297,22 +310,26 @@
         root->units_per_EM = 1000;
         root->ascender     =  (FT_Short)face->cid.font_bbox.yMax;
         root->descender    = -(FT_Short)face->cid.font_bbox.yMin;
-        root->height       = ((root->ascender + root->descender)*12)/10;
+        root->height       = ( ( root->ascender + root->descender ) * 12 )
+                             / 10;
 
+
 #if 0
+
         /* now compute the maximum advance width */
 
         root->max_advance_width = face->type1.private_dict.standard_width[0];
 
         /* compute max advance width for proportional fonts */
-        if (!face->type1.font_info.is_fixed_pitch)
+        if ( !face->type1.font_info.is_fixed_pitch )
         {
-          FT_Int  max_advance;
+          T1_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 */
@@ -319,7 +336,9 @@
         }
 
         root->max_advance_height = root->height;
-#endif
+
+#endif /* 0 */
+
         root->underline_position  = face->cid.font_info.underline_position;
         root->underline_thickness = face->cid.font_info.underline_thickness;
 
@@ -329,23 +348,28 @@
     }
 
 #if 0
+
     /* charmap support - synthetize unicode charmap when possible */
     {
       FT_Face      root    = &face->root;
       FT_CharMap   charmap = face->charmaprecs;
 
+
       /* synthesize a Unicode charmap if there is support in the "psnames" */
-      /* module..                                                          */
-      if (face->psnames)
+      /* module                                                            */
+      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;
@@ -355,8 +379,8 @@
             charmap++;
           }
 
-          /* simply clear the error in case of failure (which really) */
-          /* means that out of memory or no unicode glyph names       */
+          /* simply clear the error in case of failure (which really */
+          /* means that out of memory or no unicode glyph names)     */
           error = 0;
         }
       }
@@ -363,80 +387,85 @@
 
       /* now, support either the standard, expert, or custom encodings */
       charmap->face        = (FT_Face)face;
-      charmap->platform_id = 7;  /* a new platform id for Adobe fonts ?? */
+      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];
     }
-#endif    
+
+#endif /* 0 */
+
   Exit:
     return error;
   }
 
 
-/*******************************************************************
- *
- *  Function    :  Glyph_Destroy
- *
- *  Description :  The glyph object destructor.
- *
- *  Input  :  _glyph  typeless pointer to the glyph record to destroy
- *
- *  Output :  Error code.
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Done_GlyphSlot                                                 */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The CID glyph slot finalizer.                                      */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    slot :: A handle to the glyph slot object.                         */
+  /*                                                                       */
   LOCAL_FUNC
-  void  T1_Done_GlyphSlot( T1_GlyphSlot  glyph )
+  void  CID_Done_GlyphSlot( T1_GlyphSlot  glyph )
   {
     FT_Memory  memory  = glyph->root.face->memory;
     FT_Library library = glyph->root.face->driver->library;
 
+
 	/* the bitmaps are created on demand */
 	FREE( glyph->root.bitmap.buffer );
     FT_Outline_Done( library, &glyph->root.outline );
+
     return;
   }
 
 
-/*******************************************************************
- *
- *  Function    :  Glyph_Create
- *
- *  Description :  The glyph object constructor.
- *
- *  Input  :  glyph   glyph record to build.
- *            face    the glyph's parent face.
- *
- *  Output :  Error code.
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Init_GlyphSlot                                                 */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    The CID glyph slot initializer.                                    */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    slot :: The glyph record to build.                                 */
+  /*                                                                       */
+  /* <Output>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   LOCAL_FUNC
-  FT_Error  T1_Init_GlyphSlot( T1_GlyphSlot  glyph )
+  T1_Error  CID_Init_GlyphSlot( T1_GlyphSlot  glyph )
   {
     FT_Library  library = glyph->root.face->driver->library;
 
+
     glyph->max_points         = 0;
     glyph->max_contours       = 0;
     glyph->root.bitmap.buffer = 0;
@@ -445,46 +474,44 @@
   }
 
 
-/*******************************************************************
- *
- *  <Function>  T1_Init_Driver
- *
- *  <Description>
- *     Initialise a given Type 1 driver object
- *
- *  <Input>
- *     driver ::  handle to target driver object
- *
- *  <Return>
- *     Error code.
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Init_Driver                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Initializes a given CID driver object.                             */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    driver :: A handle to the target driver object.                    */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   LOCAL_FUNC
-  FT_Error  T1_Init_Driver( T1_Driver  driver )
+  T1_Error  CID_Init_Driver( T1_Driver  driver )
   {
-    UNUSED(driver);
+    UNUSED( driver );
+
     return T1_Err_Ok;
   }
 
 
-
-/*******************************************************************
- *
- *  <Function> T1_Done_Driver
- *
- *  <Description>
- *     finalise a given Type 1 driver
- *
- *  <Input>
- *     driver  :: handle to target Type 1 driver
- *
- ******************************************************************/
-
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    CID_Done_Driver                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Finalizes a given CID driver.                                      */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    driver :: A handle to the target CID driver.                       */
+  /*                                                                       */
   LOCAL_DEF
-  void  T1_Done_Driver( T1_Driver  driver )
+  void  CID_Done_Driver( T1_Driver  driver )
   {
-    UNUSED(driver);
+    UNUSED( driver );
   }
 
 
--- a/src/cid/cidobjs.h
+++ b/src/cid/cidobjs.h
@@ -1,116 +1,109 @@
-/*******************************************************************
- *
- *  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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidobjs.h                                                              */
+/*                                                                         */
+/*    CID 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
 
+#ifndef CIDOBJS_H
+#define CIDOBJS_H
+
 #include <freetype/internal/ftobjs.h>
 #include <freetype/config/ftconfig.h>
 #include <freetype/internal/t1errors.h>
 #include <freetype/internal/t1types.h>
 
+
 #ifdef __cplusplus
   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..                                  */
-  /*                                                                     */
+  /*************************************************************************/
+  /*                                                                       */
+  /* <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_
   {
     FT_SizeRec      root;
     T1_Bool         valid;
-    T1_Size_Hints*  hints;  /* defined in the hinter. This allows */
-                            /* us to experiment with different    */
-                            /* hinting schemes without having to  */
-                            /* change 't1objs' each time..        */
+    T1_Size_Hints*  hints;  /* defined in the hinter.  This allows */
+                            /* us to experiment with different     */
+                            /* hinting schemes without having to   */
+                            /* change `cidobjs' each time.         */
   } T1_SizeRec;
 
 
 
-  /***************************************************/
-  /*                                                 */
-  /*  T1_GlyphSlot :                                 */
-  /*                                                 */
-  /*    TrueDoc glyph record..                       */
-  /*                                                 */
-
-  typedef struct T1_GlyphSlotRec_
+  typedef struct  T1_GlyphSlotRec_
   {
     FT_GlyphSlotRec  root;
 
@@ -117,11 +110,11 @@
     T1_Bool          hint;
     T1_Bool          scaled;
 
-    FT_Int           max_points;
-    FT_Int           max_contours;
+    T1_Int           max_points;
+    T1_Int           max_contours;
 
-    FT_Fixed         x_scale;
-    FT_Fixed         y_scale;
+    T1_Fixed         x_scale;
+    T1_Fixed         y_scale;
 
     T1_Glyph_Hints*  hints;  /* defined in the hinter */
 
@@ -128,177 +121,47 @@
   } 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,
-                          CID_Face      face,
-                          FT_Int        face_index,
-                          FT_Int        num_params,
-                          FT_Parameter* params );
+  T1_Error  CID_Init_Face( FT_Stream     stream,
+                           CID_Face      face,
+                           T1_Int        face_index,
+                           T1_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( CID_Face  face );
+  void  CID_Done_Face( CID_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 );
+  T1_Error  CID_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 );
+  void  CID_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 );
+  T1_Error  CID_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 );
+  T1_Error  CID_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 );
+  void  CID_Done_GlyphSlot( T1_GlyphSlot  slot );
 
 
-
-/*******************************************************************
- *
- *  <Function>  T1_Init_Driver
- *
- *  <Description>
- *     Initialise a given Type 1 driver object
- *
- *  <Input>
- *     driver ::  handle to target driver object
- *
- *  <Return>
- *     Error code.
- *
- ******************************************************************/
-
   LOCAL_DEF
-  FT_Error  T1_Init_Driver( T1_Driver  driver );
+  T1_Error  CID_Init_Driver( T1_Driver  driver );
 
-
-
-/*******************************************************************
- *
- *  <Function> T1_Done_Driver
- *
- *  <Description>
- *     finalise a given Type 1 driver
- *
- *  <Input>
- *     driver  :: handle to target Type 1 driver
- *
- ******************************************************************/
-
   LOCAL_DEF
-  void  T1_Done_Driver( T1_Driver  driver );
+  void  CID_Done_Driver( T1_Driver  driver );
 
+
 #ifdef __cplusplus
   }
 #endif
 
-#endif /* T1OBJS_H */
+
+#endif /* CIDOBJS_H */
 
 
 /* END */
--- a/src/cid/cidparse.c
+++ b/src/cid/cidparse.c
@@ -1,33 +1,21 @@
-/*******************************************************************
- *
- *  cidparse.c                                                   2.0
- *
- *    CID-keyed 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 Type 1 parser is in charge of the following:
- *
- *   - provide an implementation of a growing sequence of
- *     objects called a T1_Table (used to build various tables
- *     needed by the loader).
- *
- *   - opening .pfb and .pfa files to extract their top-level
- *     and private dictionaries
- *
- *   - read numbers, arrays & strings from any dictionary
- *
- *  See "t1load.c" to see how data is loaded from the font file
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidparse.c                                                             */
+/*                                                                         */
+/*    CID-keyed Type1 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/ftcalc.h>
 #include <freetype/internal/ftobjs.h>
@@ -35,197 +23,225 @@
 #include <freetype/internal/t1errors.h>
 #include <cidparse.h>
 
+#include <string.h>     /* for strncmp() */
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* 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_t1load
+#define FT_COMPONENT  trace_cidparse
 
+
 #if 0
-/*************************************************************************/
-/*************************************************************************/
-/*************************************************************************/
-/*****                                                               *****/
-/*****           IMPLEMENTATION OF T1_TABLE OBJECT                   *****/
-/*****                                                               *****/
-/*****                                                               *****/
-/*************************************************************************/
-/*************************************************************************/
-/*************************************************************************/
 
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*****                                                               *****/
+  /*****           IMPLEMENTATION OF T1_TABLE OBJECT                   *****/
+  /*****                                                               *****/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
 
-/*************************************************************************/
-/*                                                                       */
-/* <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.                                            */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    table  :: The address of the target table.                         */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    count  :: The table size, i.e., the maximal number of elements.    */
+  /*                                                                       */
+  /*    memory :: The memory object to be used for all subsequent          */
+  /*              reallocations.                                           */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   LOCAL_FUNC
-  FT_Error  T1_New_Table( T1_Table*  table,
-                          FT_Int     count,
+  T1_Error  T1_New_Table( T1_Table*  table,
+                          T1_Int     count,
                           FT_Memory  memory )
   {
-	 FT_Error  error;
+    T1_Error  error;
 
-	 table->memory = memory;
-	 if ( ALLOC_ARRAY( table->elements, count, FT_Byte*  ) ||
-          ALLOC_ARRAY( table->lengths, count, FT_Byte* ) )
-       goto Exit;
 
-	table->max_elems = count;
-    table->init      = 0xdeadbeef;
-	table->num_elems = 0;
-	table->block     = 0;
-	table->capacity  = 0;
-	table->cursor    = 0;
+    table->memory = memory;
+    if ( ALLOC_ARRAY( table->elements, count, T1_Byte*  ) ||
+         ALLOC_ARRAY( table->lengths, count, T1_Byte* )   )
+      goto Exit;
 
+    table->max_elems = count;
+    table->init      = 0xDEADBEEFL;
+    table->num_elems = 0;
+    table->block     = 0;
+    table->capacity  = 0;
+    table->cursor    = 0;
+
   Exit:
-    if (error) FREE(table->elements);
+    if ( error )
+      FREE( table->elements );
 
-	return error;
+    return error;
   }
 
 
+  static
+  void  shift_elements( T1_Table*  table,
+                        T1_Byte*   old_base )
+  {
+    T1_Long    delta  = table->block - old_base;
+    T1_Byte**  offset = table->elements;
+    T1_Byte**  limit  = offset + table->max_elems;
 
-/*************************************************************************/
-/*                                                                       */
-/* <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 void  shift_elements( T1_Table*  table, FT_Byte*  old_base )
+    if ( delta )
+      for ( ; offset < limit; offset++ )
       {
-        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 ( offset[0] )
+          offset[0] += delta;
       }
+  }
 
-      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;
 
-        /* realloc the base block */
-        if ( REALLOC( table->block, table->capacity, new_size ) )
-          return error;
+  static
+  T1_Error  reallocate_t1_table( T1_Table*  table,
+                                 T1_Int     new_size )
+  {
+    FT_Memory  memory   = table->memory;
+    T1_Byte*   old_base = table->block;
+    T1_Error   error;
 
-        table->capacity = new_size;
 
-        /* shift all offsets when needed */
-        if (old_base)
-          shift_elements( table, old_base );
+    /* realloc the base block */
+    if ( REALLOC( table->block, table->capacity, new_size ) )
+      return error;
 
-        return T1_Err_Ok;
-      }
+    table->capacity = new_size;
 
+    /* shift all offsets when needed */
+    if ( old_base )
+      shift_elements( table, old_base );
 
+    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 the memory.         */
+  /*                                                                       */
+  /*    length :: The length in bytes of the source object.                */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.  An error is returned if       */
+  /*    reallocation fails.                                                */
+  /*                                                                       */
   LOCAL_FUNC
-  FT_Error  T1_Add_Table( T1_Table*  table,
-                          FT_Int     index,
+  T1_Error  T1_Add_Table( T1_Table*  table,
+                          T1_Int     index,
                           void*      object,
-                          FT_Int     length )
+                          T1_Int     length )
   {
-	if (index < 0 || index > table->max_elems)
+    if ( index < 0 || index > table->max_elems )
     {
-	  FT_ERROR(( "T1.Add_Table: invalid index\n" ));
-	  return T1_Err_Syntax_Error;
+      FT_ERROR(( "T1_Add_Table: invalid index\n" ));
+      return T1_Err_Syntax_Error;
     }
 
     /* grow the base block if needed */
     if ( table->cursor + length > table->capacity )
     {
-      FT_Error  error;
-      FT_Int    new_size = table->capacity;
+      T1_Error  error;
+      T1_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.  */
-/*                                                                       */
-#if 0
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    T1_Done_Table                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Finalizes a T1_Table (reallocate it to its current cursor).        */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    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 )
   {
     FT_Memory  memory = table->memory;
-    FT_Error   error;
-    FT_Byte*   old_base;
+    T1_Error   error;
+    T1_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 )
       shift_elements( table, old_base );
   }
-#endif
 
+
   LOCAL_FUNC
   void  T1_Release_Table( T1_Table*  table )
   {
     FT_Memory  memory = table->memory;
 
-    if (table->init == (FT_Long)0xdeadbeef)
+
+    if ( table->init == 0xDEADBEEFL )
     {
       FREE( table->block );
       FREE( table->elements );
@@ -234,55 +250,63 @@
     }
   }
 
-#endif
+#endif /* 0 */
 
-/*************************************************************************/
-/*************************************************************************/
-/*************************************************************************/
-/*****                                                               *****/
-/*****               INPUT STREAM PARSER                             *****/
-/*****                                                               *****/
-/*****                                                               *****/
-/*************************************************************************/
-/*************************************************************************/
-/*************************************************************************/
 
-  #define IS_T1_WHITESPACE(c)  ( (c) == ' '  || (c) == '\t' )
-  #define IS_T1_LINESPACE(c)   ( (c) == '\r' || (c) == '\n' )
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*****                                                               *****/
+  /*****                    INPUT STREAM PARSER                        *****/
+  /*****                                                               *****/
+  /*************************************************************************/
+  /*************************************************************************/
+  /*************************************************************************/
 
-  #define IS_T1_SPACE(c)  ( IS_T1_WHITESPACE(c) || IS_T1_LINESPACE(c) )
 
+#define IS_T1_WHITESPACE( c )  ( (c) == ' '  || (c) == '\t' )
+#define IS_T1_LINESPACE( c )   ( (c) == '\r' || (c) == '\n' )
+
+#define IS_T1_SPACE( c )  ( IS_T1_WHITESPACE( c ) || IS_T1_LINESPACE( c ) )
+
+
   LOCAL_FUNC
-  void     CID_Skip_Spaces( CID_Parser*  parser )
+  void  CID_Skip_Spaces( CID_Parser*  parser )
   {
-    FT_Byte* cur   = parser->cursor;
-    FT_Byte* limit = parser->limit;
+    T1_Byte* cur   = parser->cursor;
+    T1_Byte* limit = parser->limit;
 
-    while (cur < limit)
+
+    while ( cur < limit )
     {
-      FT_Byte  c = *cur;
-      if (!IS_T1_SPACE(c))
+      T1_Byte  c = *cur;
+
+
+      if ( !IS_T1_SPACE( c ) )
         break;
       cur++;
     }
+
     parser->cursor = cur;
   }
 
+
   LOCAL_FUNC
   void  CID_ToToken( CID_Parser*    parser,
                      T1_Token_Rec*  token )
   {
-    FT_Byte*  cur;
-    FT_Byte*  limit;
-    FT_Byte   starter, ender;
-    FT_Int    embed;
+    T1_Byte*  cur;
+    T1_Byte*  limit;
+    T1_Byte   starter, ender;
+    T1_Int    embed;
 
+
     token->type  = t1_token_none;
     token->start = 0;
     token->limit = 0;
 
     /* first of all, skip space */
-    CID_Skip_Spaces(parser);
+    CID_Skip_Spaces( parser );
 
     cur   = parser->cursor;
     limit = parser->limit;
@@ -289,57 +313,58 @@
 
     if ( cur < limit )
     {
-      switch (*cur)
+      switch ( *cur )
       {
         /************* check for strings ***********************/
-        case '(':
-          token->type = t1_token_string;
-          ender = ')';
-          goto Lookup_Ender;
+      case '(':
+        token->type = t1_token_string;
+        ender = ')';
+        goto Lookup_Ender;
 
         /************* check for programs/array ****************/
-        case '{':
-          token->type = t1_token_array;
-          ender = '}';
-          goto Lookup_Ender;
+      case '{':
+        token->type = t1_token_array;
+        ender = '}';
+        goto Lookup_Ender;
 
         /************* check for table/array ******************/
-        case '[':
-          token->type = t1_token_array;
-          ender = ']';
+      case '[':
+        token->type = t1_token_array;
+        ender = ']';
 
-        Lookup_Ender:
-          embed   = 1;
-          starter = *cur++;
-          token->start = cur;
-          while (cur < limit)
+      Lookup_Ender:
+        embed   = 1;
+        starter = *cur++;
+        token->start = cur;
+
+        while ( cur < limit )
+        {
+          if ( *cur == starter )
+            embed++;
+          else if ( *cur == ender )
           {
-            if (*cur == starter)
-              embed++;
-            else if (*cur == ender)
+            embed--;
+            if ( embed <= 0 )
             {
-              embed--;
-              if (embed <= 0)
-              {
-                token->limit = cur++;
-                break;
-              }
+              token->limit = cur++;
+              break;
             }
-            cur++;
           }
-          break;
+          cur++;
+        }
+        break;
 
         /* **************** otherwise, it's any token **********/
-        default:
-          token->start = cur++;
-          token->type  = t1_token_any;
-          while (cur < limit && !IS_T1_SPACE(*cur))
-            cur++;
+      default:
+        token->start = cur++;
+        token->type  = t1_token_any;
+        while ( cur < limit && !IS_T1_SPACE( *cur ) )
+          cur++;
 
-          token->limit = cur;
+        token->limit = cur;
       }
 
-      if (!token->limit)
+      if ( !token->limit )
       {
         token->start = 0;
         token->type  = t1_token_none;
@@ -353,35 +378,39 @@
   LOCAL_FUNC
   void  CID_ToTokenArray( CID_Parser*    parser,
                           T1_Token_Rec*  tokens,
-                          FT_UInt        max_tokens,
-                          FT_Int        *pnum_tokens )
+                          T1_UInt        max_tokens,
+                          T1_Int*        pnum_tokens )
   {
     T1_Token_Rec  master;
 
+
     *pnum_tokens = -1;
 
     CID_ToToken( parser, &master );
-    if (master.type == t1_token_array)
+
+    if ( master.type == t1_token_array )
     {
-      FT_Byte*       old_cursor = parser->cursor;
-      FT_Byte*       old_limit  = parser->limit;
+      T1_Byte*       old_cursor = parser->cursor;
+      T1_Byte*       old_limit  = parser->limit;
       T1_Token_Rec*  cur        = tokens;
       T1_Token_Rec*  limit      = cur + max_tokens;
 
+
       parser->cursor = master.start;
       parser->limit  = master.limit;
 
-      while (parser->cursor < parser->limit)
+      while ( parser->cursor < parser->limit )
       {
         T1_Token_Rec  token;
-        
+
+
         CID_ToToken( parser, &token );
-        if (!token.type)
+        if ( !token.type )
           break;
-          
-        if (cur < limit)
+
+        if ( cur < limit )
           *cur = token;
-          
+
         cur++;
       }
 
@@ -394,20 +423,22 @@
 
 
   static
-  FT_Long  t1_toint( FT_Byte* *cursor,
-                     FT_Byte*  limit )
+  T1_Long  t1_toint( T1_Byte**  cursor,
+                     T1_Byte*   limit )
   {
-    FT_Long  result = 0;
-    FT_Byte* cur    = *cursor;
-    FT_Byte  c, d;
+    T1_Long   result = 0;
+    T1_Byte*  cur    = *cursor;
+    T1_Byte   c, d;
 
-    for (; cur < limit; cur++)
+
+    for ( ; cur < limit; cur++ )
     {
       c = *cur;
-      d = (FT_Byte)(c - '0');
-      if (d < 10) break;
+      d = (T1_Byte)( c - '0' );
+      if ( d < 10 )
+        break;
 
-      if ( c=='-' )
+      if ( c == '-' )
       {
         cur++;
         break;
@@ -414,74 +445,81 @@
       }
     }
 
-    if (cur < limit)
+    if ( cur < limit )
     {
       do
       {
-        d = (FT_Byte)(cur[0] - '0');
-        if (d >= 10)
+        d = (T1_Byte)( cur[0] - '0' );
+        if ( d >= 10 )
           break;
 
-        result = result*10 + d;
+        result = result * 10 + d;
         cur++;
 
-      } while (cur < limit);
+      } while ( cur < limit );
 
-      if (c == '-')
+      if ( c == '-' )
         result = -result;
     }
 
     *cursor = cur;
+
     return result;
   }
 
 
   static
-  FT_Long  t1_tofixed( FT_Byte* *cursor,
-                       FT_Byte*  limit,
-                       FT_Long   power_ten )
+  T1_Long  t1_tofixed( T1_Byte**  cursor,
+                       T1_Byte*   limit,
+                       T1_Long    power_ten )
   {
-    FT_Byte* cur    = *cursor;
-    FT_Long  num, divider, result;
-    FT_Int   sign   = 0;
-    FT_Byte  d;
+    T1_Byte*  cur = *cursor;
+    T1_Long   num, divider, result;
+    T1_Int    sign = 0;
+    T1_Byte   d;
 
-    if (cur >= limit) return 0;
 
+    if ( cur >= limit )
+      return 0;
+
     /* first of all, read the integer part */
     result  = t1_toint( &cur, limit ) << 16;
     num     = 0;
     divider = 1;
 
-    if (result < 0)
+    if ( result < 0 )
     {
       sign   = 1;
       result = -result;
     }
-    if (cur >= limit) goto Exit;
 
+    if ( cur >= limit )
+      goto Exit;
+
     /* read decimal part, if any */
-    if (*cur == '.' && cur+1 < limit)
+    if ( *cur == '.' && cur + 1 < limit )
     {
       cur++;
 
       for (;;)
       {
-        d = (FT_Byte)(*cur - '0');
-        if (d >= 10) break;
+        d = (T1_Byte)( *cur - '0' );
+        if ( d >= 10 ) break;
 
-        if (divider < 10000000L)
+        if ( divider < 10000000L )
         {
-          num      = num*10 + d;
+          num      = num * 10 + d;
           divider *= 10;
         }
+
         cur++;
-        if (cur >= limit) break;
+        if ( cur >= limit )
+          break;
       }
     }
 
     /* read exponent, if any */
-    if ( cur+1 < limit && (*cur == 'e' || *cur == 'E'))
+    if ( cur + 1 < limit && ( *cur == 'e' || *cur == 'E' ) )
     {
       cur++;
       power_ten += t1_toint( &cur, limit );
@@ -489,53 +527,56 @@
 
   Exit:
     /* raise to power of ten if needed */
-    while (power_ten > 0)
+    while ( power_ten > 0 )
     {
-      result = result*10;
-      num    = num*10;
+      result = result * 10;
+      num    = num * 10;
       power_ten--;
     }
 
-    while (power_ten < 0)
+    while ( power_ten < 0 )
     {
-      result  = result/10;
-      divider = divider*10;
+      result  = result / 10;
+      divider = divider * 10;
       power_ten++;
     }
 
-    if (num)
+    if ( num )
       result += FT_DivFix( num, divider );
 
-    if (sign)
+    if ( sign )
       result = -result;
 
     *cursor = cur;
+
     return result;
   }
 
 
   static
-  int  t1_tobool( FT_Byte* *cursor, FT_Byte* limit )
+  int  t1_tobool( T1_Byte**  cursor,
+                  T1_Byte*   limit )
   {
-    FT_Byte*  cur    = *cursor;
+    T1_Byte*  cur    = *cursor;
     T1_Bool   result = 0;
 
+
     /* return 1 if we find a "true", 0 otherwise */
-    if ( cur+3 < limit &&
-         cur[0] == 't' &&
-         cur[1] == 'r' &&
-         cur[2] == 'u' &&
-         cur[3] == 'e' )
+    if ( cur + 3 < limit &&
+         cur[0] == 't'   &&
+         cur[1] == 'r'   &&
+         cur[2] == 'u'   &&
+         cur[3] == 'e'   )
     {
       result = 1;
       cur   += 5;
     }
-    else if ( cur+4 < limit &&
-              cur[0] == 'f' &&
-              cur[1] == 'a' &&
-              cur[2] == 'l' &&
-              cur[3] == 's' &&
-              cur[4] == 'e' )
+    else if ( cur + 4 < limit &&
+              cur[0] == 'f'   &&
+              cur[1] == 'a'   &&
+              cur[2] == 'l'   &&
+              cur[3] == 's'   &&
+              cur[4] == 'e'   )
     {
       result = 0;
       cur   += 6;
@@ -546,28 +587,31 @@
 
 
   static
-  FT_Int  t1_tocoordarray( FT_Byte*  *cursor,
-                           FT_Byte*   limit,
-                           FT_Int     max_coords,
-                           FT_Short*  coords )
+  T1_Int  t1_tocoordarray( T1_Byte**  cursor,
+                           T1_Byte*   limit,
+                           T1_Int     max_coords,
+                           T1_Short*  coords )
   {
-    FT_Byte*  cur   = *cursor;
-    FT_Int    count = 0;
-    FT_Byte   c, ender;
+    T1_Byte*  cur   = *cursor;
+    T1_Int    count = 0;
+    T1_Byte   c, ender;
 
-    if (cur >= limit) goto Exit;
 
-    /* check for the beginning of an array. If not, only one number will be read */
+    if ( cur >= limit )
+      goto Exit;
+
+    /* check for the beginning of an array. */
+    /* If not, only one number will be read */
     c     = *cur;
     ender = 0;
 
-    if (c == '[')
+    if ( c == '[' )
       ender = ']';
 
-    if (c == '{')
+    if ( c == '{' )
       ender = '}';
 
-    if (ender)
+    if ( ender )
       cur++;
 
     /* now, read the coordinates */
@@ -577,19 +621,21 @@
       for (;;)
       {
         c = *cur;
-        if ( c != ' ' && c != '\t' ) break;
+        if ( c != ' ' && c != '\t' )
+          break;
 
         cur++;
-        if (cur >= limit) goto Exit;
+        if ( cur >= limit )
+          goto Exit;
       }
 
-      if (count >= max_coords || c == ender)
+      if ( count >= max_coords || c == ender )
         break;
 
-      coords[count] = (T1_Short)(t1_tofixed(&cur,limit,0) >> 16);
+      coords[count] = (T1_Short)( t1_tofixed( &cur, limit, 0 ) >> 16 );
       count++;
 
-      if (!ender)
+      if ( !ender )
         break;
     }
 
@@ -599,31 +645,33 @@
   }
 
 
-
   static
-  FT_Int  t1_tofixedarray( FT_Byte*  *cursor,
-                           FT_Byte*   limit,
-                           FT_Int     max_values,
-                           FT_Fixed*  values,
-                           FT_Int     power_ten )
+  T1_Int  t1_tofixedarray( T1_Byte**  cursor,
+                           T1_Byte*   limit,
+                           T1_Int     max_values,
+                           T1_Fixed*  values,
+                           T1_Int     power_ten )
   {
-    FT_Byte*  cur   = *cursor;
-    FT_Int    count = 0;
-    FT_Byte   c, ender;
+    T1_Byte*  cur   = *cursor;
+    T1_Int    count = 0;
+    T1_Byte   c, ender;
 
-    if (cur >= limit) goto Exit;
 
-    /* check for the beginning of an array. If not, only one number will be read */
+    if ( cur >= limit )
+      goto Exit;
+
+    /* check for the beginning of an array. */
+    /* If not, only one number will be read */
     c     = *cur;
     ender = 0;
 
-    if (c == '[')
+    if ( c == '[' )
       ender = ']';
 
-    if (c == '{')
+    if ( c == '{' )
       ender = '}';
 
-    if (ender)
+    if ( ender )
       cur++;
 
     /* now, read the values */
@@ -633,44 +681,49 @@
       for (;;)
       {
         c = *cur;
-        if ( c != ' ' && c != '\t' ) break;
+        if ( c != ' ' && c != '\t' )
+          break;
 
         cur++;
-        if (cur >= limit) goto Exit;
+        if ( cur >= limit )
+          goto Exit;
       }
 
-      if (count >= max_values || c == ender)
+      if ( count >= max_values || c == ender )
         break;
 
-      values[count] = t1_tofixed(&cur,limit,power_ten);
+      values[count] = t1_tofixed( &cur, limit, power_ten );
       count++;
 
-      if (!ender)
+      if ( !ender )
         break;
     }
 
   Exit:
     *cursor = cur;
+
     return count;
   }
 
 
 
- /* Loads a simple field (i.e. non-table) into the current list of objects */
+  /* Loads a simple field (i.e. non-table) into the current */
+  /* list of objects                                        */
   LOCAL_FUNC
-  FT_Error  CID_Load_Field( CID_Parser*          parser,
+  T1_Error  CID_Load_Field( CID_Parser*          parser,
                             const T1_Field_Rec*  field,
                             void*                object )
   {
     T1_Token_Rec  token;
-    FT_Byte*      cur;
-    FT_Byte*      limit;
-    FT_UInt       count;
-    FT_UInt       index;
-    FT_Error      error;
+    T1_Byte*      cur;
+    T1_Byte*      limit;
+    T1_UInt       count;
+    T1_UInt       index;
+    T1_Error      error;
 
+
     CID_ToToken( parser, &token );
-    if (!token.type)
+    if ( !token.type )
       goto Fail;
 
     count = 1;
@@ -679,61 +732,67 @@
     limit = token.limit;
 
     {
-      FT_Byte*   q = (FT_Byte*)object + field->offset;
-      FT_Long    val;
+      T1_Byte*   q = (T1_Byte*)object + field->offset;
+      T1_Long    val;
       T1_String* string;
 
-      switch (field->type)
+
+      switch ( field->type )
       {
-        case t1_field_bool:
-          {
-            val = t1_tobool( &cur, limit );
-            goto Store_Integer;
-          }
+      case t1_field_bool:
+        val = t1_tobool( &cur, limit );
+        goto Store_Integer;
 
-        case t1_field_fixed:
-          {
-            val = t1_tofixed( &cur, limit, 0 );
-            goto Store_Integer;
-          }
+      case t1_field_fixed:
+        val = t1_tofixed( &cur, limit, 0 );
+        goto Store_Integer;
 
-        case t1_field_integer:
-          {
-            val = t1_toint( &cur, limit );
-          Store_Integer:
-            switch (field->size)
-            {
-              case 1:  *(FT_Byte*)  q = (FT_Byte)val;   break;
-              case 2:  *(FT_UShort*)q = (FT_UShort)val; break;
-              default: *(FT_Long*)  q = val;
-            }
-          }
-          break;
+      case t1_field_integer:
+        val = t1_toint( &cur, limit );
 
-        case t1_field_string:
-          {
-            FT_Memory  memory = parser->memory;
-            FT_UInt    len    = limit-cur;
-            
-            if ( ALLOC( string, len+1 ) )
-              goto Exit;
-              
-            MEM_Copy( string, cur, len );
-            string[len] = 0;              
+      Store_Integer:
+        switch ( field->size )
+        {
+          case 1:
+            *(T1_Byte*)q = (T1_Byte)val;
+            break;
 
-            *(T1_String**)q = string;
-          }
-          break;
-          
-        default:
-          /* an error occured */
-          goto Fail;
+          case 2:
+            *(T1_UShort*)q = (T1_UShort)val;
+            break;
+
+          default:
+            *(T1_Long*)q = val;
+        }
+        break;
+
+      case t1_field_string:
+        {
+          FT_Memory  memory = parser->memory;
+          T1_UInt    len    = limit-cur;
+
+
+          if ( ALLOC( string, len + 1 ) )
+            goto Exit;
+
+          MEM_Copy( string, cur, len );
+          string[len] = 0;
+
+          *(T1_String**)q = string;
+        }
+        break;
+
+      default:
+        /* an error occured */
+        goto Fail;
       }
     }
-    error    = 0;
 
+    error = 0;
+
   Exit:
     return error;
+
   Fail:
     error = T1_Err_Invalid_File_Format;
     goto Exit;
@@ -742,28 +801,30 @@
 
 #define CID_MAX_TABLE_ELEMENTS  32
 
+
   LOCAL_FUNC
-  FT_Error  CID_Load_Field_Table( CID_Parser*          parser,
+  T1_Error  CID_Load_Field_Table( CID_Parser*          parser,
                                   const T1_Field_Rec*  field,
                                   void*                object )
   {
-    T1_Token_Rec  elements[CID_MAX_TABLE_ELEMENTS];
-    T1_Token_Rec* token;
-    FT_Int        num_elements;
-    FT_Error      error = 0;
-    FT_Byte*      old_cursor;
-    FT_Byte*      old_limit;
-    T1_Field_Rec  fieldrec = *(T1_Field_Rec*)field;
+    T1_Token_Rec   elements[CID_MAX_TABLE_ELEMENTS];
+    T1_Token_Rec*  token;
+    T1_Int         num_elements;
+    T1_Error       error = 0;
+    T1_Byte*       old_cursor;
+    T1_Byte*       old_limit;
+    T1_Field_Rec   fieldrec = *(T1_Field_Rec*)field;
 
+
     fieldrec.type = t1_field_integer;
-    if (field->type == t1_field_fixed_array )
-      fieldrec.type = t1_field_fixed;    
-      
+    if ( field->type == t1_field_fixed_array )
+      fieldrec.type = t1_field_fixed;
+
     CID_ToTokenArray( parser, elements, 32, &num_elements );
-    if (num_elements < 0)
+    if ( num_elements < 0 )
       goto Fail;
 
-    if (num_elements > CID_MAX_TABLE_ELEMENTS)
+    if ( num_elements > CID_MAX_TABLE_ELEMENTS )
       num_elements = CID_MAX_TABLE_ELEMENTS;
 
     old_cursor = parser->cursor;
@@ -770,8 +831,8 @@
     old_limit  = parser->limit;
 
     /* we store the elements count */
-    if (field->count_offset)
-      *(FT_Byte*)((FT_Byte*)object + field->count_offset) = num_elements;
+    if ( field->count_offset )
+      *(T1_Byte*)( (T1_Byte*)object + field->count_offset ) = num_elements;
 
     /* we now load each element, adjusting the field.offset on each one */
     token = elements;
@@ -788,6 +849,7 @@
 
   Exit:
     return error;
+
   Fail:
     error = T1_Err_Invalid_File_Format;
     goto Exit;
@@ -794,13 +856,8 @@
   }
 
 
-
-
-
-
-
   LOCAL_FUNC
-  FT_Long  CID_ToInt  ( CID_Parser*  parser )
+  T1_Long  CID_ToInt( CID_Parser*  parser )
   {
     return t1_toint( &parser->cursor, parser->limit );
   }
@@ -807,56 +864,65 @@
 
 
   LOCAL_FUNC
-  FT_Int  CID_ToCoordArray( CID_Parser* parser,
-                            FT_Int      max_coords,
-                            FT_Short*   coords )
+  T1_Int  CID_ToCoordArray( CID_Parser*  parser,
+                            T1_Int       max_coords,
+                            T1_Short*    coords )
   {
-    return t1_tocoordarray( &parser->cursor, parser->limit, max_coords, coords );
+    return t1_tocoordarray( &parser->cursor, parser->limit,
+                            max_coords, coords );
   }
 
 
   LOCAL_FUNC
-  FT_Int  CID_ToFixedArray( CID_Parser* parser,
-                            FT_Int      max_values,
-                            FT_Fixed*   values,
-                            FT_Int      power_ten )
+  T1_Int  CID_ToFixedArray( CID_Parser*  parser,
+                            T1_Int       max_values,
+                            T1_Fixed*    values,
+                            T1_Int       power_ten )
   {
-    return t1_tofixedarray( &parser->cursor, parser->limit, max_values, values, power_ten );
+    return t1_tofixedarray( &parser->cursor, parser->limit,
+                            max_values, values, power_ten );
   }
 
 
 #if 0
- /* return the value of an hexadecimal digit */
- static
- int  hexa_value( char c )
- {
-   unsigned int  d;
 
-   d = (unsigned int)(c-'0');
-   if ( d <= 9 ) return (int)d;
+  /* return the value of an hexadecimal digit */
+  static
+  int  hexa_value( char  c )
+  {
+    unsigned int  d;
 
-   d = (unsigned int)(c-'a');
-   if ( d <= 5 ) return (int)(d+10);
 
-   d = (unsigned int)(c-'A');
-   if ( d <= 5 ) return (int)(d+10);
+    d = (unsigned int)( c - '0' );
+    if ( d <= 9 )
+      return (int)d;
 
-   return -1;
- }
-#endif
+    d = (unsigned int)( c - 'a' );
+    if ( d <= 5 )
+      return (int)( d + 10 );
 
+    d = (unsigned int)( c - 'A' );
+    if ( d <= 5 )
+      return (int)( d + 10 );
 
+    return -1;
+  }
+
+#endif /* 0 */
+
+
   LOCAL_FUNC
   FT_Error  CID_New_Parser( CID_Parser*  parser,
                             FT_Stream    stream,
                             FT_Memory    memory )
   {
-    FT_Error  error;
-    FT_ULong  base_offset, offset, ps_len;
-    FT_Byte   buffer[ 256 + 10 ];
-    FT_Int    buff_len;
+    T1_Error  error;
+    T1_ULong  base_offset, offset, ps_len;
+    T1_Byte   buffer[256 + 10];
+    T1_Int    buff_len;
 
-    MEM_Set( parser, 0, sizeof(*parser ) );
+
+    MEM_Set( parser, 0, sizeof ( *parser ) );
     parser->stream = stream;
     parser->memory = memory;
 
@@ -863,7 +929,7 @@
     base_offset = FILE_Pos();
 
     /* first of all, check the font format in the  header */
-    if ( ACCESS_Frame(31) )
+    if ( ACCESS_Frame( 31 ) )
       goto Exit;
 
     if ( strncmp( stream->cursor, "%!PS-Adobe-3.0 Resource-CIDFont", 31 ) )
@@ -873,24 +939,25 @@
     }
 
     FORGET_Frame();
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
 
-    /* now, read the rest of the file, until we find a "StartData" */
+    /* now, read the rest of the file, until we find a `StartData' */
     buff_len = 256;
     for (;;)
     {
-      FT_Byte *p, *limit = buffer + 256;
-      
+      T1_Byte *p, *limit = buffer + 256;
+
       /* fill input buffer */
       buff_len -= 256;
-      if (buff_len > 0)
+      if ( buff_len > 0 )
         MEM_Move( buffer, limit, buff_len );
-        
-      if ( FILE_Read( buffer, 256+10-buff_len ) )
+
+      if ( FILE_Read( buffer, 256 + 10 - buff_len ) )
         goto Exit;
-      
-      buff_len = 256+10;
-      
+
+      buff_len = 256 + 10;
+
       /* look for "StartData" */
       for ( p = buffer; p < limit; p++ )
       {
@@ -897,15 +964,17 @@
         if ( p[0] == 'S' && strncmp( (char*)p, "StartData", 9 ) == 0 )
         {
           /* save offset of binary data after "StartData" */
-          offset = FILE_Pos() - ( limit-p ) + 10;
+          offset = FILE_Pos() - ( limit - p ) + 10;
           goto Found;
         }
       }
     }
-    
+
   Found:
-    /* all right, we found the start of the binary data. We will now rewind */
-    /* and extract the frame of corresponding to the Postscript section     */
+    /* all right, we found the start of the binary data.  We will now  */
+    /* rewind and extract the frame of corresponding to the Postscript */
+    /* section                                                         */
+
     ps_len = offset - base_offset;
     if ( FILE_Seek( base_offset )                    ||
          EXTRACT_Frame( ps_len, parser->postscript ) )
@@ -918,9 +987,8 @@
     parser->num_dict       = -1;
 
   Exit:
-    return error;   
+    return error;
   }
-    
 
 
   LOCAL_FUNC
@@ -927,10 +995,14 @@
   void  CID_Done_Parser( CID_Parser*  parser )
   {
     /* always free the private dictionary */
-    if (parser->postscript)
+    if ( parser->postscript )
     {
       FT_Stream  stream = parser->stream;
+
+
       RELEASE_Frame( parser->postscript );
     }
   }
 
+
+/* END */
--- a/src/cid/cidparse.h
+++ b/src/cid/cidparse.h
@@ -1,75 +1,68 @@
-/*******************************************************************
- *
- *  cidparse.h                                                   2.0
- *
- *    CID-Keyed 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 Type 1 parser is in charge of the following:
- *
- *   - provide an implementation of a growing sequence of
- *     objects called a T1_Table (used to build various tables
- *     needed by the loader).
- *
- *   - opening .pfb and .pfa files to extract their top-level
- *     and private dictionaries
- *
- *   - read numbers, arrays & strings from any dictionary
- *
- *  See "t1load.c" to see how data is loaded from the font file
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidparse.h                                                             */
+/*                                                                         */
+/*    CID-keyed Type1 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.                                        */
+/*                                                                         */
+/***************************************************************************/
 
+
 #ifndef CIDPARSE_H
 #define CIDPARSE_H
 
 #include <freetype/internal/t1types.h>
 
+
 #ifdef __cplusplus
   extern "C" {
 #endif
 
-  
 
 #if 0
-/*************************************************************************
- *
- * <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
- *
- *    init      :: boolean. set when the table has been initialized
- *                 (the table user should set this field)
- *
- *    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
- *
- *    memory    :: memory 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 the use    */
+  /*                 of `realloc()'.                                       */
+  /*                                                                       */
+  /*    cursor    :: The current top of the growheap within its block.     */
+  /*                                                                       */
+  /*    capacity  :: The current size of the heap block.  Increments by    */
+  /*                 blocks of 1 kByte.                                    */
+  /*                                                                       */
+  /*    init      :: A boolean.  Set when the table has been initialized   */
+  /*                 (the table user should set this field).               */
+  /*                                                                       */
+  /*    max_elems :: The maximal number of elements in the table.          */
+  /*                                                                       */
+  /*    num_elems :: The current number of elements (in use) in the table. */
+  /*                                                                       */
+  /*    elements  :: A table of element addresses within the block.        */
+  /*                                                                       */
+  /*    lengths   :: A table of element sizes within the block.            */
+  /*                                                                       */
+  /*    memory    :: The memory object used for memory operations          */
+  /*                 (allocation resp. reallocation).                      */
+  /*                                                                       */
+  typedef struct  T1_Table_
   {
     FT_Byte*   block;          /* current memory block           */
     FT_Int     cursor;         /* current cursor in memory block */
@@ -87,73 +80,77 @@
 
 
   LOCAL_DEF
-  FT_Error  T1_New_Table( T1_Table*  table,
-                          FT_Int     count,
-                          FT_Memory  memory );
+  T1_Error  T1_New_Table( T1_Table*  table,
+                          T1_Int     count,
+                          T1_Memory  memory );
 
-
   LOCAL_DEF
-  FT_Error  T1_Add_Table( T1_Table*  table,
-                          FT_Int     index,
+  T1_Error  T1_Add_Table( T1_Table*  table,
+                          T1_Int     index,
                           void*      object,
-                          FT_Int     length );
+                          T1_Int     length );
 
   LOCAL_DEF
   void  T1_Release_Table( T1_Table*  table );
-#endif
 
-/*************************************************************************
- *
- * <Struct> CID_Parser
- *
- * <Description>
- *    A CID_Parser is an object used to parse a Type 1 fonts very
- *    quickly.
- *
- * <Fields>
- *    stream        :: current input stream
- *    memory        :: current memory object
- *
- *    base_dict     :: pointer to top-level dictionary
- *    base_len      :: length in bytes of top dict
- *
- *    private_dict  :: pointer to private dictionary
- *    private_len   :: length in bytes of private dict
- *
- *    in_pfb        :: boolean. Indicates that we're in a .pfb file
- *    in_memory     :: boolean. Indicates a memory-based stream
- *    single_block  :: boolean. Indicates that the private dict
- *                     is stored in lieu of the base dict
- *
- *    cursor        :: current parser cursor
- *    limit         :: current parser limit (first byte after current
- *                     dictionary).
- *
- *    error         :: current parsing error
- */
+#endif /* 0 */
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Struct>                                                              */
+  /*    CID_Parser                                                         */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A CID_Parser is an object used to parse a Type 1 fonts very        */
+  /*    quickly.                                                           */
+  /*                                                                       */
+  /* <Fields>                                                              */
+  /*    stream         :: The current input stream.                        */
+  /*                                                                       */
+  /*    memory         :: The current memory object.                       */
+  /*                                                                       */
+  /*    postscript     :: A pointer to the data to be parsed.              */
+  /*                                                                       */
+  /*    postscript_len :: The length of the data to be parsed.             */
+  /*                                                                       */
+  /*    data_offset    :: The start position of the binary data (i.e., the */
+  /*                      end of the data to be parsed.                    */
+  /*                                                                       */
+  /*    cursor         :: The current parser cursor.                       */
+  /*                                                                       */
+  /*    limit          :: The current parser limit (i.e., the first byte   */
+  /*                      after the current dictionary).                   */
+  /*                                                                       */
+  /*    error          :: The current parsing error.                       */
+  /*                                                                       */
+  /*    cid            :: A structure which holds the information about    */
+  /*                      the current font.                                */
+  /*                                                                       */
+  /*    num_dict       :: The number of font dictionaries.                 */
+  /*                                                                       */
   typedef struct CID_Parser_
   {
     FT_Stream  stream;
     FT_Memory  memory;
 
-    FT_Byte*   postscript;
-    FT_Int     postscript_len;
+    T1_Byte*   postscript;
+    T1_Int     postscript_len;
 
-    FT_ULong   data_offset;
+    T1_ULong   data_offset;
 
-    FT_Byte*   cursor;
-    FT_Byte*   limit;
-    FT_Error   error;
+    T1_Byte*   cursor;
+    T1_Byte*   limit;
+    T1_Error   error;
 
     CID_Info*  cid;
-    FT_Int     num_dict;
+    T1_Int     num_dict;
 
   } CID_Parser;
 
 
   LOCAL_DEF
-  FT_Error  CID_New_Parser( CID_Parser*  parser,
+  T1_Error  CID_New_Parser( CID_Parser*  parser,
                             FT_Stream    stream,
                             FT_Memory    memory );
 
@@ -161,66 +158,61 @@
   void  CID_Done_Parser( CID_Parser*  parser );
 
 
- /*************************************************************************
-  *
-  *     PARSING ROUTINES
-  *
-  *************************************************************************/
+  /*************************************************************************/
+  /*                                                                       */
+  /*                            PARSING ROUTINES                           */
+  /*                                                                       */
+  /*************************************************************************/
 
   LOCAL_DEF
-  FT_Long  CID_ToInt  ( CID_Parser*  parser );
+  T1_Long  CID_ToInt( CID_Parser*  parser );
 
   LOCAL_DEF
-  FT_Int  CID_ToCoordArray( CID_Parser* parser,
-                            FT_Int     max_coords,
-                            FT_Short*  coords );
+  T1_Int  CID_ToCoordArray( CID_Parser* parser,
+                            T1_Int     max_coords,
+                            T1_Short*  coords );
 
   LOCAL_DEF
-  FT_Int  CID_ToFixedArray( CID_Parser* parser,
-                            FT_Int     max_values,
-                            T1_Fixed*  values,
-                            FT_Int     power_ten );
+  T1_Int  CID_ToFixedArray( CID_Parser* parser,
+                            T1_Int      max_values,
+                            T1_Fixed*   values,
+                            T1_Int      power_ten );
 
   LOCAL_DEF
-  void      CID_Skip_Spaces( CID_Parser*  parser );
+  void  CID_Skip_Spaces( CID_Parser*  parser );
 
 
-
   /* simple enumeration type used to identify token types */
-  typedef enum T1_Token_Type_
+  typedef enum  T1_Token_Type_
   {
     t1_token_none = 0,
     t1_token_any,
     t1_token_string,
     t1_token_array,
-    
+
     /* do not remove */
     t1_token_max
-    
+
   } T1_Token_Type;
 
+
   /* a simple structure used to identify tokens */
   typedef struct T1_Token_Rec_
   {
-    FT_Byte*       start;   /* first character of token in input stream */
-    FT_Byte*       limit;   /* first character after the token          */
+    T1_Byte*       start;   /* first character of token in input stream */
+    T1_Byte*       limit;   /* first character after the token          */
     T1_Token_Type  type;    /* type of token..                          */
-  
-  } T1_Token_Rec;  
 
+  } T1_Token_Rec;
 
+
   LOCAL_DEF
-  void      CID_ToToken( CID_Parser*    parser,
-                        T1_Token_Rec* token );
+  void  CID_ToToken( CID_Parser*    parser,
+                     T1_Token_Rec*  token );
 
 
-
-
-
-
-
   /* enumeration type used to identify object fields */
-  typedef enum T1_Field_Type_
+  typedef enum  T1_Field_Type_
   {
     t1_field_none = 0,
     t1_field_bool,
@@ -230,118 +222,132 @@
     t1_field_integer_array,
     t1_field_fixed_array,
     t1_field_callback,
-        
+
     /* do not remove */
     t1_field_max
-    
+
   } T1_Field_Type;
 
-  typedef enum T1_Field_Location_
+  typedef enum  T1_Field_Location_
   {
     t1_field_cid_info,
     t1_field_font_dict,
     t1_field_font_info,
     t1_field_private,
-    
+
     /* do not remove */
     t1_field_location_max
-  
+
   } T1_Field_Location;
 
 
-  typedef FT_Error  (*CID_Field_Parser)( CID_Face     face,
+  typedef T1_Error  (*CID_Field_Parser)( CID_Face     face,
                                          CID_Parser*  parser );
 
   /* structure type used to model object fields */
-  typedef struct T1_Field_Rec_
+  typedef struct  T1_Field_Rec_
   {
-    const char*        ident;         /* field identifier                     */
+    const char*        ident;         /* field identifier                  */
     T1_Field_Location  location;
-    T1_Field_Type      type;          /* type of field                        */
+    T1_Field_Type      type;          /* type of field                     */
     CID_Field_Parser   reader;
-    T1_UInt            offset;        /* offset of field in object            */
-    FT_UInt            size;          /* size of field in bytes               */
-    FT_UInt            array_max;     /* maximum number of elements for array */
-    FT_UInt            count_offset;  /* offset of element count for arrays   */
-   
+    T1_UInt            offset;        /* offset of field in object         */
+    T1_UInt            size;          /* size of field in bytes            */
+    T1_UInt            array_max;     /* maximal number of elements for    */
+                                      /* array                             */
+    T1_UInt            count_offset;  /* offset of element count for       */
+                                      /* arrays                            */
   } T1_Field_Rec;
 
-#define T1_FIELD_REF(s,f)  (((s*)0)->f)
 
-#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname )   \
-   { _ident, T1CODE, _type,                            \
-     0,                                                \
-     (FT_UInt)(char*)&T1_FIELD_REF(T1TYPE,_fname),     \
-     sizeof(T1_FIELD_REF(T1TYPE,_fname)),              \
-     0, 0 },
+#define T1_FIELD_REF( s, f )  ( ((s*)0)->f )
 
-#define T1_NEW_CALLBACK_FIELD( _ident, _reader )  \
-   { _ident, T1CODE, t1_field_callback,           \
-     _reader,                                     \
-     0, 0, 0, 0 },
+#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname )         \
+          {                                                  \
+            _ident, T1CODE, _type,                           \
+            0,                                               \
+            (T1_UInt)(char*)&T1_FIELD_REF( T1TYPE, _fname ), \
+            sizeof ( T1_FIELD_REF( T1TYPE, _fname ) ),       \
+            0, 0                                             \
+          },
 
-#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max )   \
-   { _ident, T1CODE, _type,                                 \
-     0,                                                     \
-     (FT_UInt)(char*)&T1_FIELD_REF(T1TYPE,_fname),          \
-     sizeof(T1_FIELD_REF(T1TYPE,_fname)[0]),                \
-     _max,                                                  \
-     (FT_UInt)(char*)&T1_FIELD_REF(T1TYPE,num_ ## _fname) },
+#define T1_NEW_CALLBACK_FIELD( _ident, _reader ) \
+          {                                      \
+            _ident, T1CODE, t1_field_callback,   \
+            _reader,                             \
+            0, 0,                                \
+            0, 0                                 \
+          },
 
+#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max )           \
+          {                                                         \
+            _ident, T1CODE, _type,                                  \
+            0,                                                      \
+            (T1_UInt)(char*)&T1_FIELD_REF( T1TYPE, _fname ),        \
+            sizeof ( T1_FIELD_REF( T1TYPE, _fname )[0] ),           \
+            _max,                                                   \
+            (T1_UInt)(char*)&T1_FIELD_REF( T1TYPE, num_ ## _fname ) \
+          },
+
 #define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max )   \
-   { _ident, T1CODE, _type,                                  \
-     0,                                                      \
-     (FT_UInt)(char*)&T1_FIELD_REF(T1TYPE,_fname),           \
-     sizeof(T1_FIELD_REF(T1TYPE,_fname)[0]),                 \
-     _max, 0 },
+          {                                                  \
+            _ident, T1CODE, _type,                           \
+            0,                                               \
+            (T1_UInt)(char*)&T1_FIELD_REF( T1TYPE, _fname ), \
+            sizeof ( T1_FIELD_REF( T1TYPE, _fname )[0] ),    \
+            _max, 0                                          \
+          },
 
 
-#define T1_FIELD_BOOL( _ident, _fname )       \
-           T1_NEW_SIMPLE_FIELD( _ident, t1_field_bool, _fname )
+#define T1_FIELD_BOOL( _ident, _fname )                        \
+          T1_NEW_SIMPLE_FIELD( _ident, t1_field_bool, _fname )
 
-#define T1_FIELD_NUM( _ident, _fname )       \
-           T1_NEW_SIMPLE_FIELD( _ident, t1_field_integer, _fname )
+#define T1_FIELD_NUM( _ident, _fname )                            \
+          T1_NEW_SIMPLE_FIELD( _ident, t1_field_integer, _fname )
 
-#define T1_FIELD_FIXED( _ident, _fname )       \
-           T1_NEW_SIMPLE_FIELD( _ident, t1_field_fixed, _fname )
+#define T1_FIELD_FIXED( _ident, _fname )                        \
+          T1_NEW_SIMPLE_FIELD( _ident, t1_field_fixed, _fname )
 
-#define T1_FIELD_STRING( _ident, _fname )       \
-           T1_NEW_SIMPLE_FIELD( _ident, t1_field_string, _fname )
+#define T1_FIELD_STRING( _ident, _fname )                        \
+          T1_NEW_SIMPLE_FIELD( _ident, t1_field_string, _fname )
 
-#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax )   \
-           T1_NEW_TABLE_FIELD( _ident, t1_field_integer_array, _fname, _fmax )
-           
-#define T1_FIELD_FIXED_TABLE( _ident, _fname, _fmax )   \
-           T1_NEW_TABLE_FIELD( _ident, t1_field_fixed_array, _fname, _fmax )
+#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax )           \
+          T1_NEW_TABLE_FIELD( _ident, t1_field_integer_array, \
+                              _fname, _fmax )
 
-#define T1_FIELD_NUM_TABLE2( _ident, _fname, _fmax )  \
-           T1_NEW_TABLE_FIELD2( _ident, t1_field_integer_array, _fname, _fmax )
+#define T1_FIELD_FIXED_TABLE( _ident, _fname, _fmax )       \
+          T1_NEW_TABLE_FIELD( _ident, t1_field_fixed_array, \
+                              _fname, _fmax )
 
-#define T1_FIELD_FIXED_TABLE2( _ident, _fname, _fmax )   \
-           T1_NEW_TABLE_FIELD2( _ident, t1_field_fixed_array, _fname, _fmax )
+#define T1_FIELD_NUM_TABLE2( _ident, _fname, _fmax )           \
+          T1_NEW_TABLE_FIELD2( _ident, t1_field_integer_array, \
+                               _fname, _fmax )
 
-#define T1_FIELD_CALLBACK( _ident, _name )  \
-           T1_NEW_CALLBACK_FIELD( _ident, parse_ ## _name )
+#define T1_FIELD_FIXED_TABLE2( _ident, _fname, _fmax )       \
+          T1_NEW_TABLE_FIELD2( _ident, t1_field_fixed_array, \
+                               _fname, _fmax )
 
+#define T1_FIELD_CALLBACK( _ident, _name )                 \
+          T1_NEW_CALLBACK_FIELD( _ident, parse_ ## _name )
+
+
   LOCAL_DEF
-  FT_Error  CID_Load_Field( CID_Parser*           parser,
+  T1_Error  CID_Load_Field( CID_Parser*          parser,
                             const T1_Field_Rec*  field,
                             void*                object );
 
   LOCAL_DEF
-  FT_Error  CID_Load_Field_Table( CID_Parser*           parser,
+  T1_Error  CID_Load_Field_Table( CID_Parser*          parser,
                                   const T1_Field_Rec*  field,
                                   void*                object );
 
 
-
-
 #ifdef __cplusplus
   }
 #endif
 
+
 #endif /* CIDPARSE_H */
 
 
 /* END */
-
--- a/src/cid/cidriver.c
+++ b/src/cid/cidriver.c
@@ -1,20 +1,21 @@
-/*******************************************************************
- *
- *  t1driver.c
- *
- *    High-level Type1 driver interface for FreeType 2.0
- *
- *  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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidriver.c                                                             */
+/*                                                                         */
+/*    CID driver interface (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 <cidriver.h>
 #include <cidgload.h>
 #include <cidafm.h>
@@ -23,9 +24,19 @@
 #include <freetype/internal/ftstream.h>
 #include <freetype/internal/psnames.h>
 
+#include <string.h>         /* for strcmp() */
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* 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_t1driver
+#define FT_COMPONENT  trace_ciddriver
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -55,16 +66,18 @@
   /*                                                                       */
   static
   FTDriver_Interface  Get_Interface( FT_Driver         driver,
-                                     const FT_String*  interface )
+                                     const T1_String*  interface )
   {
-    UNUSED(driver);
-    UNUSED(interface);
-    
+    UNUSED( driver );
+    UNUSED( interface );
+
     return 0;
   }
 
 
 #ifdef xxxT1_CONFIG_OPTION_NO_AFM
+
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -98,94 +111,104 @@
   /*    They can be implemented by format-specific interfaces.             */
   /*                                                                       */
   static
-  FT_Error  Get_Kerning( T1_Face     face,
-                         FT_UInt     left_glyph,
-                         FT_UInt     right_glyph,
+  T1_Error  Get_Kerning( T1_Face     face,
+                         T1_UInt     left_glyph,
+                         T1_UInt     right_glyph,
                          T1_Vector*  kerning )
   {
     T1_AFM*  afm;
 
+
     kerning->x = 0;
     kerning->y = 0;
 
     afm = (T1_AFM*)face->afm_data;
-    if (afm)
+    if ( afm )
       CID_Get_Kerning( afm, left_glyph, right_glyph, kerning );
 
     return T1_Err_Ok;
   }
-#endif
 
-  /******************************************************************/
-  /*                                                                */
-  /* <Function> Set_Char_Sizes                                      */
-  /*                                                                */
-  /* <Description>                                                  */
-  /*    A driver method used to reset a size's character sizes      */
-  /*    (horizontal and vertical) expressed in fractional points.   */
-  /*                                                                */
-  /* <Input>                                                        */
-  /*    size        :: handle to target size object                 */
-  /*    char_width  :: character width expressed in 26.6 points     */
-  /*    char_height :: character height expressed in 26.6 points    */
-  /*                                                                */
-  /* <Return>                                                       */
-  /*    FreeType error code. 0 means success                        */
-  /*                                                                */
+
+#endif /* xxxT1_CONFIG_OPTION_NO_AFM */
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    Set_Char_Sizes                                                     */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A driver method used to reset a size's character sizes (horizontal */
+  /*    and vertical) expressed in fractional points.                      */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    char_width      :: The character width expressed in 26.6           */
+  /*                       fractional points.                              */
+  /*                                                                       */
+  /*    char_height     :: The character height expressed in 26.6          */
+  /*                       fractional points.                              */
+  /*                                                                       */
+  /*    horz_resolution :: The horizontal resolution of the output device. */
+  /*                                                                       */
+  /*    vert_resolution :: The vertical resolution of the output device.   */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    size            :: A handle to the target size object.             */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   static
-  FT_Error  Set_Char_Sizes( T1_Size      size,
-                            T1_F26Dot6   char_width,
-                            T1_F26Dot6   char_height,
-                            FT_UInt      horz_resolution,
-                            FT_UInt      vert_resolution )
+  T1_Error  Set_Char_Sizes( T1_Size     size,
+                            T1_F26Dot6  char_width,
+                            T1_F26Dot6  char_height,
+                            T1_UInt     horz_resolution,
+                            T1_UInt     vert_resolution )
   {
-    UNUSED(char_width);
-    UNUSED(char_height);
-    UNUSED(horz_resolution);
-    UNUSED(vert_resolution);
+    UNUSED( char_width );
+    UNUSED( char_height );
+    UNUSED( horz_resolution );
+    UNUSED( vert_resolution );
 
     size->valid = FALSE;
-    return T1_Reset_Size( size );
+    return CID_Reset_Size( size );
   }
 
 
-  /******************************************************************/
-  /*                                                                */
-  /* <Function> Set_Pixel_Sizes                                     */
-  /*                                                                */
-  /* <Description>                                                  */
-  /*    A driver method used to reset a size's character sizes      */
-  /*    (horizontal and vertical) expressed in integer pixels.      */
-  /*                                                                */
-  /* <Input>                                                        */
-  /*    size         :: handle to target size object                */
-  /*                                                                */
-  /*    pixel_width  :: character width expressed in 26.6 points    */
-  /*                                                                */
-  /*    pixel_height :: character height expressed in 26.6 points   */
-  /*                                                                */
-  /*    char_size    :: the corresponding character size in points  */
-  /*                    This value is only sent to the TrueType     */
-  /*                    bytecode interpreter, even though 99% of    */
-  /*                    glyph programs will simply ignore it. A     */
-  /*                    safe value there is the maximum of the      */
-  /*                    pixel width and height (multiplied by       */
-  /*                    64 to make it a 26.6 fixed float !)         */
-  /* <Return>                                                       */
-  /*    FreeType error code. 0 means success                        */
-  /*                                                                */
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    Set_Pixel_Sizes                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A driver method used to reset a size's character sizes (horizontal */
+  /*    and vertical) expressed in integer pixels.                         */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    pixel_width  :: The character width expressed in integer pixels.   */
+  /*                                                                       */
+  /*    pixel_height :: The character height expressed in integer pixels.  */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    size         :: A handle to the target size object.                */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    Type1 error code.  0 means success.                                */
+  /*                                                                       */
   static
-  FT_Error  Set_Pixel_Sizes( T1_Size     size,
-                             FT_Int      pixel_width,
-                             FT_Int      pixel_height )
+  T1_Error  Set_Pixel_Sizes( T1_Size  size,
+                             T1_Int   pixel_width,
+                             T1_Int   pixel_height )
   {
-    UNUSED(pixel_width);
-    UNUSED(pixel_height);
+    UNUSED( pixel_width );
+    UNUSED( pixel_height );
 
     size->valid = FALSE;
-    return T1_Reset_Size(size);
+    return CID_Reset_Size( size );
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -202,161 +225,90 @@
   /*    Glyph index.  0 means `undefined character code'.                  */
   /*                                                                       */
   static
-  FT_UInt  Get_Char_Index( FT_CharMap  charmap,
-                           FT_Long     charcode )
+  T1_UInt  Get_Char_Index( FT_CharMap  charmap,
+                           T1_Long     charcode )
   {
     T1_Face             face;
-    FT_UInt             result = 0;
+    T1_UInt             result = 0;
     PSNames_Interface*  psnames;
 
+
     face = (T1_Face)charmap->face;
     psnames = (PSNames_Interface*)face->psnames;
-    if (psnames)
-      switch (charmap->encoding)
+    if ( psnames )
+      switch ( charmap->encoding )
       {
-       /********************************************************************/
-       /*                                                                  */
-       /* Unicode encoding support                                         */
-       /*                                                                  */
-        case ft_encoding_unicode:
-          {
-            /* use the "psnames" module to synthetize the Unicode charmap */
-            result = psnames->lookup_unicode( &face->unicode_map,
-                                              (FT_ULong)charcode );
+        /*******************************************************************/
+        /*                                                                 */
+        /* Unicode encoding support                                        */
+        /*                                                                 */
+      case ft_encoding_unicode:
+        /* use the `PSNames' module to synthetize the Unicode charmap */
+        result = psnames->lookup_unicode( &face->unicode_map,
+                                          (T1_ULong)charcode );
 
-            /* the function returns 0xFFFF when the Unicode charcode has */
-            /* no corresponding glyph..                                  */
-            if (result == 0xFFFF)
-              result = 0;
-            goto Exit;
-          }
+        /* the function returns 0xFFFF if the Unicode charcode has */
+        /* no corresponding glyph.                                 */
+        if ( result == 0xFFFF )
+          result = 0;
+        goto Exit;
 
-       /********************************************************************/
-       /*                                                                  */
-       /* Custom Type 1 encoding                                           */
-       /*                                                                  */
-        case ft_encoding_adobe_custom:
-          {
-            T1_Encoding*  encoding = &face->type1.encoding;
-            if (charcode >= encoding->code_first &&
-                charcode <= encoding->code_last)
-            {
-              result = encoding->char_index[charcode];
-            }
-            goto Exit;
-          }
+        /*******************************************************************/
+        /*                                                                 */
+        /* Custom Type 1 encoding                                          */
+        /*                                                                 */
+      case ft_encoding_adobe_custom:
+        {
+          T1_Encoding*  encoding = &face->type1.encoding;
 
-       /********************************************************************/
-       /*                                                                  */
-       /* Adobe Standard & Expert encoding support                         */
-       /*                                                                  */
-       default:
-         if (charcode < 256)
-         {
-           FT_UInt      code;
-           FT_Int       n;
-           const char*  glyph_name;
 
-           code = psnames->adobe_std_encoding[charcode];
-           if (charmap->encoding == ft_encoding_adobe_expert)
-             code = psnames->adobe_expert_encoding[charcode];
+          if ( charcode >= encoding->code_first &&
+               charcode <= encoding->code_last  )
+            result = encoding->char_index[charcode];
+          goto Exit;
+        }
 
-           glyph_name = psnames->adobe_std_strings(code);
-           if (!glyph_name) break;
+        /*******************************************************************/
+        /*                                                                 */
+        /* Adobe Standard & Expert encoding support                        */
+        /*                                                                 */
+      default:
+        if ( charcode < 256 )
+        {
+          T1_UInt      code;
+          T1_Int       n;
+          const char*  glyph_name;
 
-           for ( n = 0; n < face->type1.num_glyphs; n++ )
-           {
-             const char*  gname = face->type1.glyph_names[n];
 
-             if ( gname && gname[0] == glyph_name[0] &&
-                  strcmp( gname, glyph_name ) == 0 )
-             {
-               result = n;
-               break;
-             }
-           }
-         }
+          code = psnames->adobe_std_encoding[charcode];
+          if ( charmap->encoding == ft_encoding_adobe_expert )
+            code = psnames->adobe_expert_encoding[charcode];
+
+          glyph_name = psnames->adobe_std_strings( code );
+          if ( !glyph_name )
+            break;
+
+          for ( n = 0; n < face->type1.num_glyphs; n++ )
+          {
+            const char*  gname = face->type1.glyph_names[n];
+
+
+            if ( gname && gname[0] == glyph_name[0] &&
+                 strcmp( gname, glyph_name ) == 0   )
+            {
+              result = n;
+              break;
+            }
+          }
+        }
       }
+
   Exit:
     return result;
   }
 
 
-  /******************************************************************/
-  /*                                                                */
-  /* <Struct> FT_DriverInterface                                    */
-  /*                                                                */
-  /* <Description>                                                  */
-  /*    A structure used to hold a font driver's basic interface    */
-  /*    used by the high-level parts of FreeType (or other apps)    */
-  /*                                                                */
-  /*    Most scalable drivers provide a specialized interface to    */
-  /*    access format-specific features. It can be retrieved with   */
-  /*    a call to the "get_format_interface", and should be defined */
-  /*    in each font driver header (e.g. ttdriver.h, t1driver.h,..) */
-  /*                                                                */
-  /*    All fields are function pointers ..                         */
-  /*                                                                */
-  /*                                                                */
-  /* <Fields>                                                       */
-  /*                                                                */
-  /*    new_engine ::                                               */
-  /*        used to create and initialise a new driver object       */
-  /*                                                                */
-  /*    done_engine ::                                              */
-  /*        used to finalise and destroy a given driver object      */
-  /*                                                                */
-  /*    get_format_interface ::                                     */
-  /*        return a typeless pointer to the format-specific        */
-  /*        driver interface.                                       */
-  /*                                                                */
-  /*    new_face ::                                                 */
-  /*        create a new face object from a resource                */
-  /*                                                                */
-  /*    done_face ::                                                */
-  /*        discards a face object, as well as all child objects    */
-  /*        ( sizes, charmaps, glyph slots )                        */
-  /*                                                                */
-  /*    get_face_properties ::                                      */
-  /*        return generic face properties                          */
-  /*                                                                */
-  /*    get_kerning ::                                              */
-  /*        return the kerning vector corresponding to a pair       */
-  /*        of glyphs, expressed in unscaled font units.            */
-  /*                                                                */
-  /*    new_size ::                                                 */
-  /*        create and initialise a new scalable size object.       */
-  /*                                                                */
-  /*    new_fixed_size ::                                           */
-  /*        create and initialise a new fixed-size object.          */
-  /*                                                                */
-  /*    done_size ::                                                */
-  /*        finalize a given face size object.                      */
-  /*                                                                */
-  /*    set_size_resolutions ::                                     */
-  /*        reset a scalable size object's output resolutions       */
-  /*                                                                */
-  /*    set_size_char_sizes ::                                      */
-  /*        reset a scalable size object's character size           */
-  /*                                                                */
-  /*    set_pixel_sizes ::                                          */
-  /*        reset a face size object's pixel dimensions. Applies    */
-  /*        to both scalable and fixed faces.                       */
-  /*                                                                */
-  /*    new_glyph_slot ::                                           */
-  /*        create and initialise a new glyph slot                  */
-  /*                                                                */
-  /*    done_glyph_slot ::                                          */
-  /*        discard a given glyph slot                              */
-  /*                                                                */
-  /*    load_glyph ::                                               */
-  /*        load a given glyph into a given slot                    */
-  /*                                                                */
-  /*    get_glyph_metrics ::                                        */
-  /*        return a loaded glyph's metrics.                        */
-  /*                                                                */
-
-  const  FT_DriverInterface  t1cid_driver_interface =
+  const FT_DriverInterface  t1cid_driver_interface =
   {
     sizeof( FT_DriverRec ),
     sizeof( CID_FaceRec ),
@@ -363,66 +315,68 @@
     sizeof( T1_SizeRec ),
     sizeof( T1_GlyphSlotRec ),
 
-    "type1",
+    "t1cid",
     100,
     200,
 
     0,   /* format interface */
 
-    (FTDriver_initDriver)           T1_Init_Driver,
-    (FTDriver_doneDriver)           T1_Done_Driver,
+    (FTDriver_initDriver)   CID_Init_Driver,
+    (FTDriver_doneDriver)   CID_Done_Driver,
 
-    (FTDriver_getInterface)         Get_Interface,
+    (FTDriver_getInterface) Get_Interface,
 
-    (FTDriver_initFace)             T1_Init_Face,
-    (FTDriver_doneFace)             T1_Done_Face,
+    (FTDriver_initFace)     CID_Init_Face,
+    (FTDriver_doneFace)     CID_Done_Face,
 
 #ifndef xxxxT1_CONFIG_OPTION_NO_AFM
-    (FTDriver_getKerning)           0,
+    (FTDriver_getKerning)   0,
 #else
-    (FTDriver_getKerning)           Get_Kerning,
+    (FTDriver_getKerning)   Get_Kerning,
 #endif
 
-    (FTDriver_initSize)             T1_Init_Size,
-    (FTDriver_doneSize)             T1_Done_Size,
-    (FTDriver_setCharSizes)         Set_Char_Sizes,
-    (FTDriver_setPixelSizes)        Set_Pixel_Sizes,
+    (FTDriver_initSize)     CID_Init_Size,
+    (FTDriver_doneSize)     CID_Done_Size,
+    (FTDriver_setCharSizes) Set_Char_Sizes,
+    (FTDriver_setPixelSizes)Set_Pixel_Sizes,
 
-    (FTDriver_initGlyphSlot)        T1_Init_GlyphSlot,
-    (FTDriver_doneGlyphSlot)        T1_Done_GlyphSlot,
-    (FTDriver_loadGlyph)            CID_Load_Glyph,
+    (FTDriver_initGlyphSlot)CID_Init_GlyphSlot,
+    (FTDriver_doneGlyphSlot)CID_Done_GlyphSlot,
+    (FTDriver_loadGlyph)    CID_Load_Glyph,
 
-    (FTDriver_getCharIndex)         Get_Char_Index,
+    (FTDriver_getCharIndex) Get_Char_Index,
   };
 
 
-  /******************************************************************/
-  /*                                                                */
-  /*  <Function> Get_FreeType_Driver_Interface                      */
-  /*                                                                */
-  /*  <Description>                                                 */
-  /*     This function is used when compiling the TrueType driver   */
-  /*     as a shared library (.DLL or .so). It will be used by the  */
-  /*     high-level library of FreeType to retrieve the address of  */
-  /*     the driver's generic interface.                            */
-  /*                                                                */
-  /*     It shouldn't be implemented in a static build, as each     */
-  /*     driver must have the same function as an exported entry    */
-  /*     point.                                                     */
-  /*                                                                */
-  /*  <Return>                                                      */
-  /*     address of TrueType's driver generic interface. The        */
-  /*     forma-specific interface can then be retrieved through     */
-  /*     the method interface->get_format_interface..               */
-  /*                                                                */
-
 #ifdef FT_CONFIG_OPTION_DYNAMIC_DRIVERS
 
-  EXPORT_FUNC(FT_DriverInterface*)  getDriverInterface( void )
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    getDriverInterface                                                 */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    This function is used when compiling the CID driver as a shared    */
+  /*    library (`.DLL' or `.so').  It will be used by the high-level      */
+  /*    library of FreeType to retrieve the address of the driver's        */
+  /*    generic interface.                                                 */
+  /*                                                                       */
+  /*    It shouldn't be implemented in a static build, as each driver must */
+  /*    have the same function as an exported entry point.                 */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    The address of the CID's driver generic interface.  The            */
+  /*    format-specific interface can then be retrieved through the method */
+  /*    interface->get_format_interface.                                   */
+  /*                                                                       */
+  EXPORT_FUNC( FT_DriverInterface* )  getDriverInterface( void )
   {
     return &t1cid_driver_interface;
   }
 
+
 #endif /* FT_CONFIG_OPTION_DYNAMIC_DRIVERS */
 
 
+/* END */
--- a/src/cid/cidriver.h
+++ b/src/cid/cidriver.h
@@ -1,27 +1,30 @@
-/*******************************************************************
- *
- *  t1driver.h
- *
- *    High-level Type1 driver interface for FreeType 2.0
- *
- *  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.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidriver.h                                                             */
+/*                                                                         */
+/*    High-level CID driver interface (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 T1DRIVER_H
-#define T1DRIVER_H
 
+#ifndef CIDRIVER_H
+#define CIDRIVER_H
+
 #include <cidobjs.h>
 #include <freetype/internal/t1errors.h>
 
-  FT_EXPORT_VAR(const  FT_DriverInterface)  t1cid_driver_interface;
+  FT_EXPORT_VAR( const  FT_DriverInterface )  t1cid_driver_interface;
 
-#endif /* T1DRIVER_H */
+#endif /* CIDRIVER_H */
 
+
+/* END */
--- a/src/cid/cidtokens.h
+++ b/src/cid/cidtokens.h
@@ -1,22 +1,23 @@
-/*******************************************************************
- *
- *  t1tokens.h
- *
- *  Type 1 tokens definition
- *
- *  Copyright 2000 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.
- *
- *  This file only contains macros that are expanded when compiling
- *  the "t1load.c" source file.
- *
- ******************************************************************/
+/***************************************************************************/
+/*                                                                         */
+/*  cidtokens.h                                                            */
+/*                                                                         */
+/*    CID token definitions (specification only).                          */
+/*                                                                         */
+/*  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.                                        */
+/*                                                                         */
+/***************************************************************************/
 
+
+#undef  T1TYPE
+#undef  T1CODE
 #define T1TYPE  CID_Info
 #define T1CODE  t1_field_cid_info
 
@@ -33,7 +34,8 @@
   T1_FIELD_NUM     ( "FDBytes", fd_bytes )
   T1_FIELD_NUM     ( "GDBytes", gd_bytes )
   T1_FIELD_NUM     ( "CIDCount", cid_count )
-  
+
+
 #undef  T1TYPE
 #undef  T1CODE
 #define T1TYPE  T1_FontInfo
@@ -49,6 +51,7 @@
   T1_FIELD_NUM   ( "UnderlinePosition", underline_position )
   T1_FIELD_NUM   ( "UnderlineThickness", underline_thickness )
 
+
 #undef  T1TYPE
 #undef  T1CODE
 #define T1TYPE CID_FontDict
@@ -64,21 +67,22 @@
   T1_FIELD_FIXED   ( "ForceBoldThreshold", forcebold_threshold )
   T1_FIELD_FIXED   ( "ExpansionFactor", expansion_factor )
   T1_FIELD_NUM     ( "StrokeWidth", stroke_width )
-  
+
+
 #undef  T1TYPE
 #undef  T1CODE
 #define T1TYPE  T1_Private
 #define T1CODE  t1_field_private
 
-  T1_FIELD_NUM  ( "UniqueID", unique_id )
-  T1_FIELD_NUM  ( "lenIV", lenIV )
-  T1_FIELD_NUM  ( "LanguageGroup", language_group )
-  T1_FIELD_NUM  ( "password", password )
-  
-  T1_FIELD_FIXED( "BlueScale", blue_scale )
-  T1_FIELD_NUM  ( "BlueShift", blue_shift )
-  T1_FIELD_NUM  ( "BlueFuzz",  blue_fuzz )
-  
+  T1_FIELD_NUM      ( "UniqueID", unique_id )
+  T1_FIELD_NUM      ( "lenIV", lenIV )
+  T1_FIELD_NUM      ( "LanguageGroup", language_group )
+  T1_FIELD_NUM      ( "password", password )
+
+  T1_FIELD_FIXED    ( "BlueScale", blue_scale )
+  T1_FIELD_NUM      ( "BlueShift", blue_shift )
+  T1_FIELD_NUM      ( "BlueFuzz",  blue_fuzz )
+
   T1_FIELD_NUM_TABLE( "BlueValues", blue_values, 14 )
   T1_FIELD_NUM_TABLE( "OtherBlues", other_blues, 10 )
   T1_FIELD_NUM_TABLE( "FamilyBlues", family_blues, 14 )
@@ -87,8 +91,9 @@
   T1_FIELD_NUM_TABLE2( "StdHW", standard_width,  1 )
   T1_FIELD_NUM_TABLE2( "StdVW", standard_height, 1 )
   T1_FIELD_NUM_TABLE2( "MinFeature", min_feature, 2 )
-  
+
   T1_FIELD_NUM_TABLE ( "StemSnapH", snap_widths, 12 )
   T1_FIELD_NUM_TABLE ( "StemSnapV", snap_heights, 12 )
 
 
+/* END */
--- a/src/cid/type1cid.c
+++ b/src/cid/type1cid.c
@@ -1,32 +1,21 @@
 /***************************************************************************/
 /*                                                                         */
-/*  type1.c                                                                */
+/*  cff.c                                                                  */
 /*                                                                         */
-/*  FreeType Type 1 driver component                                       */
+/*    FreeType OpenType driver component (body only).                      */
 /*                                                                         */
-/*  Copyright 1996-1998 by                                                 */
+/*  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       */
+/*  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.                                        */
 /*                                                                         */
-/*                                                                         */
-/*  This file is used to compile the FreeType Type 1  font driver.         */
-/*  It relies on all components included in the "base" layer (see          */
-/*  the file "ftbase.c"). Source code is located in "freetype/ttlib"       */
-/*  and contains :                                                         */
-/*                                                                         */
-/*     - a driver interface                                                */
-/*     - an object manager                                                 */
-/*     - a table loader                                                    */
-/*     - a glyph loader                                                    */
-/*     - a glyph hinter                                                    */
-/*                                                                         */
 /***************************************************************************/
 
+
 #define FT_MAKE_OPTION_SINGLE_OBJECT
 
 #include <cidparse.c>
@@ -39,3 +28,5 @@
 #include <cidafm.c>
 #endif
 
+
+/* END */
--- a/src/truetype/ttdriver.c
+++ b/src/truetype/ttdriver.c
@@ -175,7 +175,7 @@
   /*    vert_resolution :: The vertical resolution of the output device.   */
   /*                                                                       */
   /* <InOut>                                                               */
-  /*    size        :: A handle to the target size object.                 */
+  /*    size            :: A handle to the target size object.             */
   /*                                                                       */
   /* <Return>                                                              */
   /*    TrueType error code.  0 means success.                             */