shithub: freetype+ttf2subf

Download patch

ref: a3b6c6c2906c04b73a80674b3f75c3e21e7f21c6
parent: 0c8cde2e05561fd02b729f11c11a3589babfed54
author: Werner Lemberg <[email protected]>
date: Wed May 31 02:55:12 EDT 2000

Formatting, fixing and adding documentation.

git/fs: mount .git/fs: mount/attach disallowed
--- a/src/base/ftinit.c
+++ b/src/base/ftinit.c
@@ -17,23 +17,19 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /*  The purpose of this file is to implement the three following         */
+  /*  The purpose of this file is to implement the following two           */
   /*  functions:                                                           */
   /*                                                                       */
-  /*  FT_Default_Drivers:                                                  */
+  /*  FT_Default_Drivers():                                                */
   /*     This function is used to add the set of default drivers to a      */
-  /*     fresh new library object.  The set is computed at compile time    */
-  /*     from the Makefiles inclusions in Makefile.lib.  See the document  */
-  /*     `FreeType Internals' for more info.                               */
+  /*     fresh new library object.  The set is taken from the header file  */
+  /*     `freetype/config/ftmodule.h'.  See the document `FreeType 2.0     */
+  /*     Build System' for more information.                               */
   /*                                                                       */
-  /*  FT_Init_FreeType:                                                    */
+  /*  FT_Init_FreeType():                                                  */
   /*     This function creates a system object for the current platform,   */
   /*     builds a library out of it, then calls FT_Default_Drivers().      */
   /*                                                                       */
-  /*  FT_Done_FreeType:                                                    */
-  /*     This function simply finalizes the library and the corresponding  */
-  /*     system object.                                                    */
-  /*                                                                       */
   /*  Note that even if FT_Init_FreeType() uses the implementation of the  */
   /*  system object defined at build time, client applications are still   */
   /*  able to provide their own `ftsystem.c'.                              */
@@ -76,7 +72,7 @@
   /* <InOut>                                                               */
   /*    library :: A handle to a new library object.                       */
   /*                                                                       */
-  FT_EXPORT_FUNC(void)  FT_Default_Drivers( FT_Library  library )
+  FT_EXPORT_FUNC( void )  FT_Default_Drivers( FT_Library  library )
   {
     FT_Error                   error;
     const FT_DriverInterface* *cur;
@@ -89,7 +85,7 @@
       /* notify errors, but don't stop */
       if ( error )
       {
-        FT_ERROR(( "FT.Default_Drivers: Cannot install `%s', error = %x\n",
+        FT_ERROR(( "FT_Default_Drivers: Cannot install `%s', error = %x\n",
                    (*cur)->driver_name, error ));
       }
       cur++;
@@ -112,13 +108,13 @@
   /* <Return>                                                              */
   /*    FreeTyoe error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Init_FreeType( FT_Library*  library )
+  FT_EXPORT_FUNC( FT_Error )  FT_Init_FreeType( FT_Library*  library )
   {
     FT_Error   error;
     FT_Memory  memory;
 
 
-    /* First of all, allocate a new system object - -this function is part */
+    /* First of all, allocate a new system object -- this function is part */
     /* of the system-specific component, i.e. `ftsystem.c'.                */
 
     memory = FT_New_Memory();
--- a/src/base/ftlist.c
+++ b/src/base/ftlist.c
@@ -18,7 +18,7 @@
   /*************************************************************************/
   /*                                                                       */
   /*  This file implements functions relative to list processing.  Its     */
-  /*  data structures are defined in `freetype.h'.                         */
+  /*  data structures are defined in `freetype/internal/ftlist.h'.         */
   /*                                                                       */
   /*************************************************************************/
 
@@ -43,8 +43,8 @@
   /* <Return>                                                              */
   /*    List node.  NULL if it wasn't found.                               */
   /*                                                                       */
-  BASE_FUNC(FT_ListNode)  FT_List_Find( FT_List  list,
-                                        void*    data )
+  BASE_FUNC( FT_ListNode )  FT_List_Find( FT_List  list,
+                                          void*    data )
   {
     FT_ListNode  cur;
 
@@ -74,8 +74,8 @@
   /*    list :: A pointer to the parent list.                              */
   /*    node :: The node to append.                                        */
   /*                                                                       */
-  BASE_FUNC(void)  FT_List_Add( FT_List      list,
-                                FT_ListNode  node )
+  BASE_FUNC( void )  FT_List_Add( FT_List      list,
+                                  FT_ListNode  node )
   {
     FT_ListNode  before = list->tail;
 
@@ -104,8 +104,8 @@
   /*    list :: A pointer to parent list.                                  */
   /*    node :: The node to insert.                                        */
   /*                                                                       */
-  BASE_FUNC(void)  FT_List_Insert( FT_List      list,
-                                   FT_ListNode  node )
+  BASE_FUNC( void )  FT_List_Insert( FT_List      list,
+                                     FT_ListNode  node )
   {
     FT_ListNode  after = list->head;
 
@@ -137,8 +137,8 @@
   /* <InOut>                                                               */
   /*    list :: A pointer to the parent list.                              */
   /*                                                                       */
-  BASE_FUNC(void)  FT_List_Remove( FT_List      list,
-                                   FT_ListNode  node )
+  BASE_FUNC( void )  FT_List_Remove( FT_List      list,
+                                     FT_ListNode  node )
   {
     FT_ListNode  before, after;
 
@@ -171,8 +171,8 @@
   /*    list :: A pointer to the parent list.                              */
   /*    node :: The node to move.                                          */
   /*                                                                       */
-  BASE_FUNC(void)  FT_List_Up( FT_List      list,
-                               FT_ListNode  node )
+  BASE_FUNC( void )  FT_List_Up( FT_List      list,
+                                 FT_ListNode  node )
   {
     FT_ListNode  before, after;
 
@@ -180,7 +180,7 @@
     before = node->prev;
     after  = node->next;
 
-    /* check wether we're already on top of the list */
+    /* check whether we are already on top of the list */
     if ( !before )
       return;
 
@@ -216,11 +216,11 @@
   /*                argument to the iterator.                              */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    The result (an error code) of the last iterator call.              */
+  /*    The result (a FreeType error code) of the last iterator call.      */
   /*                                                                       */
-  BASE_FUNC(FT_Error)  FT_List_Iterate( FT_List            list,
-                                        FT_List_Iterator   iterator,
-                                        void*              user )
+  BASE_FUNC( FT_Error )  FT_List_Iterate( FT_List            list,
+                                          FT_List_Iterator   iterator,
+                                          void*              user )
   {
     FT_ListNode  cur   = list->head;
     FT_Error     error = FT_Err_Ok;
@@ -256,16 +256,15 @@
   /*    destroy :: A list destructor that will be applied to each element  */
   /*               of the list.                                            */
   /*                                                                       */
-  /*    memory  :: The current memory object where destructions take       */
-  /*               place.                                                  */
+  /*    memory  :: The current memory object which handles deallocation.   */
   /*                                                                       */
   /*    user    :: A user-supplied field which is passed as the last       */
   /*               argument to the destructor.                             */
   /*                                                                       */
-  BASE_FUNC(void)  FT_List_Finalize( FT_List             list,
-                                     FT_List_Destructor  destroy,
-                                     FT_Memory           memory,
-                                     void*               user )
+  BASE_FUNC( void )  FT_List_Finalize( FT_List             list,
+                                       FT_List_Destructor  destroy,
+                                       FT_Memory           memory,
+                                       void*               user )
   {
     FT_ListNode  cur;
 
--- a/src/base/ftmm.c
+++ b/src/base/ftmm.c
@@ -1,21 +1,42 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftmm.c                                                                 */
+/*                                                                         */
+/*    Multiple Master font support (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/ftmm.h>
 #include <freetype/internal/ftobjs.h>
 
-  FT_EXPORT_FUNC(FT_Error)   FT_Get_Multi_Master( FT_Face           face,
-                                                  FT_Multi_Master*  master )
+  FT_EXPORT_FUNC( FT_Error )  FT_Get_Multi_Master( FT_Face           face,
+                                                   FT_Multi_Master*  master )
   {
     FT_Error  error;
+
     
     error = FT_Err_Invalid_Argument;
-    if (face && FT_HAS_MULTIPLE_MASTERS(face))
+
+    if ( face && FT_HAS_MULTIPLE_MASTERS( face ) )
     {
       FT_Driver       driver = face->driver;
       FT_Get_MM_Func  func;
 
-      func   = (FT_Get_MM_Func)driver->interface.get_interface(
-                                                   driver, "get_mm" );
-      if (func)
-        error = func(face,master);
+
+      func = (FT_Get_MM_Func)driver->interface.get_interface(
+                                       driver, "get_mm" );
+      if ( func )
+        error = func( face, master );
     }
       
     return error;
@@ -22,45 +43,55 @@
   }                                                  
 
 
-  FT_EXPORT_FUNC(FT_Error)   FT_Set_MM_Design_Coordinates( FT_Face  face,
-                                                           FT_UInt  num_coords,
-                                                           FT_Long* coords )
+  FT_EXPORT_FUNC( FT_Error )  FT_Set_MM_Design_Coordinates(
+                                FT_Face   face,
+                                FT_UInt   num_coords,
+                                FT_Long*  coords )
   {
     FT_Error  error;
+
     
     error = FT_Err_Invalid_Argument;
-    if (face && FT_HAS_MULTIPLE_MASTERS(face))
+
+    if ( face && FT_HAS_MULTIPLE_MASTERS( face ) )
     {
       FT_Driver              driver = face->driver;
       FT_Set_MM_Design_Func  func;
 
+
       func = (FT_Set_MM_Design_Func)driver->interface.get_interface(
                                              driver, "set_mm_design" );
-      if (func)
-        error = func(face,num_coords,coords);
+      if ( func )
+        error = func( face, num_coords, coords );
     }
       
     return error;
   }                                                           
 
-  FT_EXPORT_FUNC(FT_Error)   FT_Set_MM_Blend_Coordinates( FT_Face   face,
-                                                          FT_UInt   num_coords,
-                                                          FT_Fixed* coords )
+
+  FT_EXPORT_FUNC( FT_Error )  FT_Set_MM_Blend_Coordinates(
+                                FT_Face    face,
+                                FT_UInt    num_coords,
+                                FT_Fixed*  coords )
   {                                                          
     FT_Error  error;
+
     
     error = FT_Err_Invalid_Argument;
-    if (face && FT_HAS_MULTIPLE_MASTERS(face))
+
+    if ( face && FT_HAS_MULTIPLE_MASTERS( face ) )
     {
-      FT_Driver              driver = face->driver;
+      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)
-        error = func(face,num_coords,coords);
+      if ( func )
+        error = func( face, num_coords, coords );
     }
       
     return error;
   }
 
+
+/* END */
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -2,7 +2,7 @@
 /*                                                                         */
 /*  ftobjs.c                                                               */
 /*                                                                         */
-/*  The FreeType private base classes (base).                              */
+/*    The FreeType private base classes (base).                            */
 /*                                                                         */
 /*  Copyright 1996-2000 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg                       */
@@ -15,6 +15,7 @@
 /*                                                                         */
 /***************************************************************************/
 
+
 #include <freetype/internal/ftobjs.h>
 #include <freetype/internal/ftlist.h>
 #include <freetype/internal/ftdebug.h>
@@ -22,6 +23,7 @@
 
 #include <freetype/tttables.h>
 
+
   /*************************************************************************/
   /*************************************************************************/
   /*************************************************************************/
@@ -54,8 +56,8 @@
   /*    zero-filled; this is a strong convention in many FreeType parts.   */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    memory :: A handle to a given `memory object' where allocation     */
-  /*              occurs.                                                  */
+  /*    memory :: A handle to a given `memory object' which handles        */
+  /*              allocation.                                              */
   /*                                                                       */
   /*    size   :: The size in bytes of the block to allocate.              */
   /*                                                                       */
@@ -66,9 +68,9 @@
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  BASE_FUNC(FT_Error)  FT_Alloc( FT_Memory  memory,
-                                 FT_Long    size,
-                                 void**     P )
+  BASE_FUNC( FT_Error )  FT_Alloc( FT_Memory  memory,
+                                   FT_Long    size,
+                                   void**     P )
   {
     FT_Assert( P != 0 );
 
@@ -77,7 +79,7 @@
       *P = memory->alloc( memory, size );
       if ( !*P )
       {
-        FT_ERROR(( "FT.Alloc:" ));
+        FT_ERROR(( "FT_Alloc:" ));
         FT_ERROR(( " Out of memory? (%ld requested)\n",
                    size ));
 
@@ -106,10 +108,11 @@
   /*    from the heap, possibly changing `*P'.                             */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    memory  :: A handle to a given `memory object' where allocation    */
-  /*               occurs.                                                 */
+  /*    memory  :: A handle to a given `memory object' which handles       */
+  /*               reallocation.                                           */
   /*                                                                       */
   /*    current :: The current block size in bytes.                        */
+  /*                                                                       */
   /*    size    :: The new block size in bytes.                            */
   /*                                                                       */
   /* <InOut>                                                               */
@@ -130,10 +133,10 @@
   /*                                                                       */
   /*    (Some embedded systems do not have a working realloc function).    */
   /*                                                                       */
-  BASE_FUNC(FT_Error)  FT_Realloc( FT_Memory  memory,
-                                   FT_Long    current,
-                                   FT_Long    size,
-                                   void**     P )
+  BASE_FUNC( FT_Error )  FT_Realloc( FT_Memory  memory,
+                                     FT_Long    current,
+                                     FT_Long    size,
+                                     void**     P )
   {
     void*  Q;
 
@@ -159,7 +162,7 @@
     return FT_Err_Ok;
 
   Fail:
-    FT_ERROR(( "FT.Realloc:" ));
+    FT_ERROR(( "FT_Realloc:" ));
     FT_ERROR(( " Failed (current %ld, requested %ld)\n",
                current, size ));
     return FT_Err_Out_Of_Memory;
@@ -175,8 +178,8 @@
   /*    Releases a given block of memory allocated through FT_Alloc().     */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    memory :: A handle to a given `memory object' where allocation     */
-  /*              occurred.                                                */
+  /*    memory :: A handle to a given `memory object' which handles        */
+  /*              memory deallocation                                      */
   /*                                                                       */
   /*    P      :: This is the _address_ of a _pointer_ which points to the */
   /*              allocated block.  It is always set to NULL on exit.      */
@@ -189,12 +192,12 @@
   /*    This is a strong convention within all of FreeType and its         */
   /*    drivers.                                                           */
   /*                                                                       */
-  BASE_FUNC(void)  FT_Free( FT_Memory  memory,
-                            void**     P )
+  BASE_FUNC( void )  FT_Free( FT_Memory  memory,
+                              void**     P )
   {
     FT_TRACE2(( "FT_Free:" ));
     FT_TRACE2(( " Freeing block 0x%08p, ref 0x%08p\n",
-                P, (P ? *P : (void*)0) ));
+                P, P ? *P : (void*)0 ));
 
     FT_Assert( P != 0 );
 
@@ -217,12 +220,13 @@
   static
   FT_Error  ft_new_input_stream( FT_Library     library,
                                  FT_Open_Args*  args,
-                                 FT_Stream     *astream )
+                                 FT_Stream*     astream )
   {
     FT_Error   error;
     FT_Memory  memory;
     FT_Stream  stream;
 
+
     *astream = 0;
     memory   = library->memory;
     if ( ALLOC( stream, sizeof ( *stream ) ) )
@@ -239,25 +243,24 @@
                             args->memory_size,
                             stream );
     }
-    else if (args->flags & ft_open_pathname)
+    else if ( args->flags & ft_open_pathname )
     {
       error = FT_New_Stream( args->pathname, stream );
       stream->pathname.pointer = args->pathname;
     }
-    else if (args->flags & ft_open_stream && args->stream)
+    else if ( args->flags & ft_open_stream && args->stream )
     {
       *stream        = *(args->stream);
       stream->memory = memory;
     }
     else
-    {
       error = FT_Err_Invalid_Argument;
-    }
 
     if ( error )
       FREE( stream );
 
     *astream = stream;
+
   Exit:
     return error;
   }
@@ -271,7 +274,10 @@
   /* <Description>                                                         */
   /*    Closes and destroys a stream object.                               */
   /*                                                                       */
-  FT_EXPORT_FUNC(void)  FT_Done_Stream( FT_Stream  stream )
+  /* <Input>                                                               */
+  /*    stream :: The stream to be closed and destroyed.                   */
+  /*                                                                       */
+  FT_EXPORT_FUNC( void )  FT_Done_Stream( FT_Stream  stream )
   {
     if ( stream->close )
       stream->close( stream );
@@ -284,6 +290,7 @@
     FT_Stream  stream = *astream;
     FT_Memory  memory = stream->memory;
 
+
     if ( stream->close )
       stream->close( stream );
 
@@ -291,6 +298,7 @@
     *astream = 0;
   }
 
+
   /*************************************************************************/
   /*************************************************************************/
   /*************************************************************************/
@@ -388,39 +396,43 @@
   }
 
 
- /*************************************************************************
-  *
-  * <Function>
-  *   FT_Get_Raster
-  *
-  * <Description>
-  *   Return a pointer to the raster corresponding to a given glyph
-  *   format tag.
-  *
-  * <Input>
-  *   library      :: handle to source library object
-  *   glyph_format :: glyph format tag
-  *
-  * <Output>
-  *   raster_funcs :: if this field is not 0, returns the raster's interface
-  *
-  * <Return>
-  *   a pointer to the corresponding raster object.
-  *
-  *************************************************************************/
-
-  FT_EXPORT_FUNC(FT_Raster)  FT_Get_Raster( FT_Library        library,
-                                            FT_Glyph_Format   glyph_format,
-                                            FT_Raster_Funcs  *raster_funcs )
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*   FT_Get_Raster                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*   Returns the raster interface corresponding to a given glyph format  */
+  /*   tag.                                                                */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*   library      :: A handle to the source library object.              */
+  /*                                                                       */
+  /*   glyph_format :: The glyph format tag.                               */
+  /*                                                                       */
+  /* <Output>                                                              */
+  /*   raster_funcs :: If this field is not 0, the raster's interface      */
+  /*                   functions are returned.                             */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*   A pointer to the corresponding raster object.                       */
+  /*                                                                       */
+  FT_EXPORT_FUNC( FT_Raster )  FT_Get_Raster(
+                                 FT_Library        library,
+                                 FT_Glyph_Format   glyph_format,
+                                 FT_Raster_Funcs*  raster_funcs )
   {
     FT_Int  n;
 
+
     for ( n = 0; n < FT_MAX_GLYPH_FORMATS; n++ )
     {
       FT_Raster_Funcs*  funcs = &library->raster_funcs[n];
-      if (funcs->glyph_format == glyph_format)
+
+
+      if ( funcs->glyph_format == glyph_format )
       {
-        if (raster_funcs)
+        if ( raster_funcs )
           *raster_funcs = *funcs;
         return library->rasters[n];
       }
@@ -428,6 +440,7 @@
     return 0;
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -434,28 +447,29 @@
   /*    FT_Set_Raster                                                      */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    Register a given raster to the library.                            */
+  /*    Registers a given raster to the library.                           */
   /*                                                                       */
   /* <Input>                                                               */
   /*    library      :: A handle to a target library object.               */
-  /*    raster_funcs :: pointer to the raster's interface                  */
   /*                                                                       */
+  /*    raster_funcs :: A pointer to the raster's interface functions.     */
+  /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
   /* <Note>                                                                */
   /*    This function will do the following:                               */
   /*                                                                       */
-  /*    - a new raster object is created through raster_func.raster_new    */
-  /*      if this fails, then the function returns                         */
+  /*    - A new raster object is created through `raster_func.raster_new'. */
+  /*      If this fails, the function returns.                             */
   /*                                                                       */
-  /*    - if a raster is already registered for the glyph format           */
-  /*      specified in raster_funcs, it will be destroyed                  */
+  /*    - If a raster is already registered for the glyph format           */
+  /*      specified in raster_funcs, it will be destroyed.                 */
   /*                                                                       */
-  /*    - the new raster is registered for the glyph format                */
+  /*    - The new raster is registered for the glyph format.               */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Set_Raster( FT_Library        library,
-                                           FT_Raster_Funcs*  raster_funcs )
+  FT_EXPORT_FUNC( FT_Error )  FT_Set_Raster( FT_Library        library,
+                                             FT_Raster_Funcs*  raster_funcs )
   {
     FT_Glyph_Format  glyph_format = raster_funcs->glyph_format;
     FT_Raster_Funcs* funcs;
@@ -463,12 +477,14 @@
     FT_Error         error;
     FT_Int           n, index;
 
-    if ( glyph_format == ft_glyph_format_none)
+
+    if ( glyph_format == ft_glyph_format_none )
       return FT_Err_Invalid_Argument;
 
     /* create a new raster object */
     error = raster_funcs->raster_new( library->memory, &raster );
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
 
     raster_funcs->raster_reset( raster,
                                 library->raster_pool,
@@ -475,19 +491,20 @@
                                 library->raster_pool_size );
 
     index = -1;
-    for (n = 0; n < FT_MAX_GLYPH_FORMATS; n++)
+    for ( n = 0; n < FT_MAX_GLYPH_FORMATS; n++ )
     {
       FT_Raster_Funcs*  funcs = library->raster_funcs + n;
 
-      /* record the first vacant entry in "index" */
-      if (index < 0 && funcs->glyph_format == ft_glyph_format_none)
+
+      /* record the first vacant entry in `index' */
+      if ( index < 0 && funcs->glyph_format == ft_glyph_format_none )
         index = n;
 
       /* compare this entry's glyph format with the one we need */
-      if (funcs->glyph_format == glyph_format)
+      if ( funcs->glyph_format == glyph_format )
       {
-        /* a raster already exists for this glyph format, we will */
-        /* destroy it before updating its entry in the table      */
+        /* A raster already exists for this glyph format.  We will */
+        /* destroy it before updating its entry in the table.      */
         funcs->raster_done( library->rasters[n] );
         index = n;
         break;
@@ -494,7 +511,7 @@
       }
     }
 
-    if (index < 0)
+    if ( index < 0 )
     {
       /* the table is full and has no vacant entries */
       error = FT_Err_Too_Many_Glyph_Formats;
@@ -513,6 +530,7 @@
     goto Exit;
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -523,27 +541,32 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    library      :: A handle to a target library object.               */
-  /*    raster_funcs :: pointer to the raster's interface                  */
   /*                                                                       */
+  /*    raster_funcs :: A pointer to the raster's interface functions.     */
+  /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_DEF(FT_Error)  FT_Unset_Raster( FT_Library        library,
-                                            FT_Raster_Funcs*  raster_funcs )
+  FT_EXPORT_DEF( FT_Error )  FT_Unset_Raster(
+                               FT_Library        library,
+                               FT_Raster_Funcs*  raster_funcs )
   {
     FT_Glyph_Format  glyph_format = raster_funcs->glyph_format;
     FT_Error         error;
     FT_Int           n;
 
+
     error = FT_Err_Invalid_Argument;
-    if ( glyph_format == ft_glyph_format_none)
+
+    if ( glyph_format == ft_glyph_format_none )
       goto Exit;
 
-    for (n = 0; n < FT_MAX_GLYPH_FORMATS; n++)
+    for ( n = 0; n < FT_MAX_GLYPH_FORMATS; n++ )
     {
       FT_Raster_Funcs*  funcs = library->raster_funcs + n;
 
-      if (funcs->glyph_format == glyph_format)
+
+      if ( funcs->glyph_format == glyph_format )
       {
         funcs->raster_done( library->rasters[n] );
         library->rasters[n]                   = 0;
@@ -564,31 +587,38 @@
   /*    FT_Set_Raster_Mode                                                 */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    Set a raster-specific mode.                                        */
+  /*    Sets a raster-specific mode.                                       */
   /*                                                                       */
-  /* <Input>                                                               */
+  /* <InOut>                                                               */
   /*    library :: A handle to a target library object.                    */
-  /*    format  :: the glyph format used to select the raster              */
-  /*    mode    :: the raster-specific mode descriptor                     */
-  /*    args    :: the mode arguments                                      */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    format  :: The glyph format used to select the raster.             */
+  /*                                                                       */
+  /*    mode    :: The raster-specific mode descriptor.                    */
+  /*                                                                       */
+  /*    args    :: The mode arguments.                                     */
+  /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Set_Raster_Mode( FT_Library      library,
-                                                FT_Glyph_Format format,
-                                                unsigned long   mode,
-                                                void*           args )
+  FT_EXPORT_FUNC( FT_Error )  FT_Set_Raster_Mode( FT_Library       library,
+                                                  FT_Glyph_Format  format,
+                                                  unsigned long    mode,
+                                                  void*            args )
   {
     FT_Raster_Funcs  funcs;
     FT_Raster        raster;
 
+
     raster = FT_Get_Raster( library, format, &funcs );
-    if (raster && funcs.raster_set_mode )
+    if ( raster && funcs.raster_set_mode )
       return funcs.raster_set_mode( raster, mode, args );
     else
       return FT_Err_Invalid_Argument;
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -600,9 +630,11 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    library    :: A handle to the library object.                      */
+  /*                                                                       */
   /*    hook_index :: The index of the debug hook.  You should use the     */
   /*                  values defined in ftobjs.h, e.g.                     */
   /*                  FT_DEBUG_HOOK_TRUETYPE                               */
+  /*                                                                       */
   /*    debug_hook :: The function used to debug the interpreter.          */
   /*                                                                       */
   /* <Note>                                                                */
@@ -609,11 +641,12 @@
   /*    Currently, four debug hook slots are available, but only two (for  */
   /*    the TrueType and the Type 1 interpreter) are defined.              */
   /*                                                                       */
-  FT_EXPORT_FUNC(void)  FT_Set_Debug_Hook( FT_Library         library,
-                                        FT_UInt            hook_index,
-                                        FT_DebugHook_Func  debug_hook )
+  FT_EXPORT_FUNC( void )  FT_Set_Debug_Hook( FT_Library         library,
+                                             FT_UInt            hook_index,
+                                             FT_DebugHook_Func  debug_hook )
   {
-    if ( hook_index < ( sizeof ( library->debug_hooks ) / sizeof ( void* ) ) )
+    if ( hook_index <
+           ( sizeof ( library->debug_hooks ) / sizeof ( void* ) ) )
       library->debug_hooks[hook_index] = debug_hook;
   }
 
@@ -637,12 +670,13 @@
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_New_Library( FT_Memory    memory,
-                                            FT_Library*  alibrary )
+  FT_EXPORT_FUNC( FT_Error )  FT_New_Library( FT_Memory    memory,
+                                              FT_Library*  alibrary )
   {
     FT_Library library = 0;
     FT_Error   error;
 
+
     /* first of all, allocate the library object */
     if ( ALLOC( library, sizeof ( *library ) ) )
       return error;
@@ -654,15 +688,15 @@
     if ( ALLOC( library->raster_pool, FT_RENDER_POOL_SIZE ) )
       goto Fail;
 
-    /* now register the default raster for the `outline' glyph image format */
-    /* for now, ignore the error...                                         */
+    /* now register the default raster for the `outline' glyph image */
+    /* format for now, ignore the error...                           */
     error = FT_Set_Raster( library, &ft_default_raster );
 
-
     /* That's ok now */
     *alibrary = library;
 
     return FT_Err_Ok;
+
   Fail:
     FREE( library );
     return error;
@@ -679,12 +713,12 @@
   /*    discards all resource objects.                                     */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    library :: A handle to the target library                          */
+  /*    library :: A handle to the target library.                         */
   /*                                                                       */
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Done_Library( FT_Library  library )
+  FT_EXPORT_FUNC( FT_Error )  FT_Done_Library( FT_Library  library )
   {
     FT_Memory  memory;
     FT_Int     n;
@@ -717,8 +751,8 @@
     library->raster_pool_size = 0;
 
     {
-      FT_Raster_Funcs*  cur   = library->raster_funcs;
-      FT_Raster_Funcs*  limit = cur + FT_MAX_GLYPH_FORMATS;
+      FT_Raster_Funcs*  cur    = library->raster_funcs;
+      FT_Raster_Funcs*  limit  = cur + FT_MAX_GLYPH_FORMATS;
       FT_Raster*        raster = library->rasters;
 
       for ( ; cur < limit; cur++, raster++ )
@@ -761,8 +795,9 @@
   /*    This function doesn't check whether the driver is already          */
   /*    installed!                                                         */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Add_Driver( FT_Library                 library,
-                                           const FT_DriverInterface*  driver_interface )
+  FT_EXPORT_FUNC( FT_Error )  FT_Add_Driver(
+                                FT_Library                 library,
+                                const FT_DriverInterface*  driver_interface )
   {
     FT_Error   error;
     FT_Driver  driver;
@@ -822,7 +857,7 @@
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Remove_Driver( FT_Driver  driver )
+  FT_EXPORT_FUNC( FT_Error )  FT_Remove_Driver( FT_Driver  driver )
   {
     FT_Library  library;
     FT_Memory   memory;
@@ -885,8 +920,8 @@
   /* <Return>                                                              */
   /*    A handle to the driver object, 0 otherwise.                        */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Driver)  FT_Get_Driver( FT_Library  library,
-                                            char*       driver_name )
+  FT_EXPORT_FUNC( FT_Driver )  FT_Get_Driver( FT_Library  library,
+                                              char*       driver_name )
   {
     FT_Driver  *cur, *limit;
 
@@ -938,7 +973,11 @@
     face->memory = memory;
     face->stream = stream;
 
-    error = interface->init_face( stream, face, face_index, num_params, params );
+    error = interface->init_face( stream,
+                                  face,
+                                  face_index,
+                                  num_params,
+                                  params );
     if ( error )
       goto Fail;
 
@@ -956,7 +995,6 @@
   }
 
 
-
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -971,10 +1009,11 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    pathname   :: A path to the font file.                             */
+  /*                                                                       */
   /*    face_index :: The index of the face within the resource.  The      */
   /*                  first face has index 0.                              */
   /* <Output>                                                              */
-  /*    face       :: A handle to a new face object.                       */
+  /*    aface      :: A handle to a new face object.                       */
   /*                                                                       */
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
@@ -994,15 +1033,17 @@
   /*    `*face'.  Its return value should be 0 if the resource is          */
   /*    recognized, or non-zero if not.                                    */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_New_Face( FT_Library   library,
-                                         const char*  pathname,
-                                         FT_Long      face_index,
-                                         FT_Face*     aface )
+  FT_EXPORT_FUNC( FT_Error )  FT_New_Face( FT_Library   library,
+                                           const char*  pathname,
+                                           FT_Long      face_index,
+                                           FT_Face*     aface )
   {
     FT_Open_Args  args;
 
+
     args.flags    = ft_open_pathname;
     args.pathname = (char*)pathname;
+
     return FT_Open_Face( library, &args, face_index, aface );
   }
 
@@ -1021,7 +1062,9 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    file_base  :: A pointer to the beginning of the font data.         */
+  /*                                                                       */
   /*    file_size  :: The size of the memory chunk used by the font data.  */
+  /*                                                                       */
   /*    face_index :: The index of the face within the resource.  The      */
   /*                  first face has index 0.                              */
   /* <Output>                                                              */
@@ -1045,17 +1088,19 @@
   /*    `*face'.  Its return value should be 0 if the resource is          */
   /*    recognized, or non-zero if not.                                    */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_New_Memory_Face( FT_Library   library,
-                                                void*        file_base,
-                                                FT_Long      file_size,
-                                                FT_Long      face_index,
-                                                FT_Face*     face )
+  FT_EXPORT_FUNC( FT_Error )  FT_New_Memory_Face( FT_Library   library,
+                                                  void*        file_base,
+                                                  FT_Long      file_size,
+                                                  FT_Long      face_index,
+                                                  FT_Face*     face )
   {
     FT_Open_Args  args;
 
+
     args.flags       = ft_open_memory;
     args.memory_base = file_base;
     args.memory_size = file_size;
+
     return FT_Open_Face( library, &args, face_index, face );
   }
 
@@ -1076,10 +1121,11 @@
   /* <Input>                                                               */
   /*    args       :: A pointer to an `FT_Open_Args' structure which must  */
   /*                  be filled by the caller.                             */
+  /*                                                                       */
   /*    face_index :: The index of the face within the resource.  The      */
   /*                  first face has index 0.                              */
   /* <Output>                                                              */
-  /*    face       :: A handle to a new face object.                       */
+  /*    aface      :: A handle to a new face object.                       */
   /*                                                                       */
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
@@ -1099,10 +1145,10 @@
   /*    `*face'.  Its return value should be 0 if the resource is          */
   /*    recognized, or non-zero if not.                                    */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Open_Face( FT_Library     library,
-                                          FT_Open_Args*  args,
-                                          FT_Long        face_index,
-                                          FT_Face*       aface )
+  FT_EXPORT_FUNC( FT_Error )  FT_Open_Face( FT_Library     library,
+                                            FT_Open_Args*  args,
+                                            FT_Long        face_index,
+                                            FT_Face*       aface )
   {
     FT_Error     error;
     FT_Driver    driver;
@@ -1119,11 +1165,12 @@
 
     /* create input stream */
     error = ft_new_input_stream( library, args, &stream );
-    if ( error ) goto Exit;
+    if ( error )
+      goto Exit;
 
     memory = library->memory;
 
-    /* if the font driver is specified in the `args' structure, use */
+    /* If the font driver is specified in the `args' structure, use */
     /* it.  Otherwise, we'll scan the list of registered drivers.   */
     if ( args->flags & ft_open_driver && args->driver )
     {
@@ -1134,6 +1181,7 @@
         FT_Int         num_params = 0;
         FT_Parameter*  params     = 0;
 
+
         if ( args->flags & ft_open_params )
         {
           num_params = args->num_params;
@@ -1165,6 +1213,7 @@
           FT_Int         num_params = 0;
           FT_Parameter*  params     = 0;
 
+
           if ( args->flags & ft_open_params )
           {
             num_params = args->num_params;
@@ -1194,8 +1243,8 @@
       goto Fail;
 
     node->data = face;
-    /* don't assume driver is the same as face->driver, so use
-       face->driver instead. (JvR 3/5/2000) */
+    /* don't assume driver is the same as face->driver, so use */
+    /* face->driver instead.                                   */
     FT_List_Add( &face->driver->faces_list, node );
 
     /* now allocate a glyph slot object for the face */
@@ -1209,7 +1258,7 @@
         goto Fail;
     }
 
-    /* finally allocate a size object for the face */
+    /* finally, allocate a size object for the face */
     {
       FT_Size  size;
 
@@ -1220,7 +1269,7 @@
         goto Fail;
     }
 
-    /* initialize transform for convenience functions */
+    /* initialize transformation for convenience functions */
     face->transform_matrix.xx = 0x10000L;
     face->transform_matrix.xy = 0;
     face->transform_matrix.yx = 0;
@@ -1270,16 +1319,18 @@
   /*    depends on the font format (and thus the font driver).             */
   /*                                                                       */
   /*    Client applications are expected to know what they are doing       */
-  /*    when invoking this function. Most  drivers simply do not implement */
+  /*    when invoking this function.  Most drivers simply do not implement */
   /*    file attachments.                                                  */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Attach_File( FT_Face      face,
-                                            const char*  filepathname )
+  FT_EXPORT_FUNC( FT_Error )  FT_Attach_File( FT_Face      face,
+                                              const char*  filepathname )
   {
     FT_Open_Args  open;
 
+
     open.flags    = ft_open_pathname;
     open.pathname = (char*)filepathname;
+
     return FT_Attach_Stream( face, &open );
   }
 
@@ -1290,27 +1341,28 @@
   /*    FT_Attach_Stream                                                   */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    This function is similar to FT_Attach_File with the exception      */
+  /*    This function is similar to FT_Attach_File() with the exception    */
   /*    that it reads the attachment from an arbitrary stream.             */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    face :: target face object                                         */
+  /*    face       :: The target face object.                              */
   /*                                                                       */
-  /*    args :: a pointer to an FT_Open_Args structure used to describe    */
-  /*            the input stream to FreeType                               */
+  /*    parameters :: A pointer to an FT_Open_Args structure used to       */
+  /*                  describe the input stream to FreeType.               */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  /*    The meaning of the "attach" (i.e. what really happens when the     */
-  /*    new file is read) is not fixed by FreeType itself. It really       */
+  /* <Note>                                                                */
+  /*    The meaning of the `attach' (i.e. what really happens when the     */
+  /*    new file is read) is not fixed by FreeType itself.  It really      */
   /*    depends on the font format (and thus the font driver).             */
   /*                                                                       */
-  /*    Client applications are expected to know what they're doing        */
-  /*    when invoking this function. Most drivers simply do not implement  */
-  /*    file attachments..                                                 */
+  /*    Client applications are expected to know what they are doing       */
+  /*    when invoking this function.  Most drivers simply do not implement */
+  /*    file attachments.                                                  */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Attach_Stream( FT_Face       face,
-                                              FT_Open_Args* parameters )
+  FT_EXPORT_FUNC( FT_Error )  FT_Attach_Stream( FT_Face       face,
+                                                FT_Open_Args* parameters )
   {
     FT_Stream  stream;
     FT_Error   error;
@@ -1318,24 +1370,28 @@
 
     FTDriver_getInterface  get_interface;
 
+
     if ( !face || !face->driver )
       return FT_Err_Invalid_Handle;
 
     driver = face->driver;
-    error = ft_new_input_stream( driver->library, parameters, &stream );
-    if (error) goto Exit;
+    error  = ft_new_input_stream( driver->library, parameters, &stream );
+    if ( error )
+      goto Exit;
 
     /* we implement FT_Attach_Stream in each driver through the */
-    /* "attach_file" interface..                                */
+    /* `attach_file' interface                                  */
+
     error = FT_Err_Unimplemented_Feature;
 
     get_interface = driver->interface.get_interface;
-    if (get_interface)
+    if ( get_interface )
     {
       FT_Attach_Reader  reader;
 
+
       reader = (FT_Attach_Reader)(get_interface( driver, "attach_file" ));
-      if (reader)
+      if ( reader )
         error = reader( face, stream );
     }
 
@@ -1347,7 +1403,6 @@
   }
 
 
-
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -1361,9 +1416,9 @@
   /*    face :: A handle to a target face object.                          */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Done_Face( FT_Face  face )
+  FT_EXPORT_FUNC( FT_Error )  FT_Done_Face( FT_Face  face )
   {
     FT_Error             error;
     FT_Driver            driver;
@@ -1372,7 +1427,7 @@
     FT_ListNode          node;
 
 
-    if (!face || !face->driver )
+    if ( !face || !face->driver )
       return FT_Err_Invalid_Face_Handle;
 
     driver    = face->driver;
@@ -1410,13 +1465,13 @@
   /*    face :: A handle to a parent face object.                          */
   /*                                                                       */
   /* <Output>                                                              */
-  /*    size :: A handle to a new size object.                             */
+  /*    asize :: A handle to a new size object.                            */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_New_Size( FT_Face   face,
-                                         FT_Size*  asize )
+  FT_EXPORT_FUNC( FT_Error )  FT_New_Size( FT_Face   face,
+                                           FT_Size*  asize )
   {
     FT_Error             error;
     FT_Memory            memory;
@@ -1475,12 +1530,12 @@
   /*    Discards a given size object.                                      */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    size :: A handle to a target size object                           */
+  /*    size :: A handle to a target size object.                          */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Done_Size( FT_Size  size )
+  FT_EXPORT_FUNC( FT_Error )  FT_Done_Size( FT_Size  size )
   {
     FT_Error     error;
     FT_Driver    driver;
@@ -1506,10 +1561,10 @@
       FT_List_Remove( &face->sizes_list, node );
       FREE( node );
 
-      if (face->size == size)
+      if ( face->size == size )
       {
         face->size = 0;
-        if (face->sizes_list.head)
+        if ( face->sizes_list.head )
           face->size = (FT_Size)(face->sizes_list.head->data);
       }
 
@@ -1528,26 +1583,39 @@
   /*    FT_Set_Char_Size                                                   */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    Sets the character dimensions of a given size object.  The         */
-  /*    `char_size' value is used for the width and height, expressed in   */
-  /*    26.6 fractional points.  1 point = 1/72 inch.                      */
+  /*    Sets the character dimensions of a given face object.  The         */
+  /*    `char_width' and `char_height' values are used for the width and   */
+  /*    height, respectively, expressed in 26.6 fractional points.         */
   /*                                                                       */
+  /*    If the horizontal or vertical resolution values are zero, a        */
+  /*    default value of 72dpi is used.  Similarly, if one of the          */
+  /*    character dimensions is zero, its value is set equal to the other. */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    size            :: A handle to a target size object.               */
+  /*                                                                       */
   /* <Input>                                                               */
-  /*    size      :: A handle to a target size object.                     */
-  /*    char_size :: The character size, in 26.6 fractional points.        */
+  /*    char_width      :: The character width, in 26.6 fractional points. */
   /*                                                                       */
+  /*    char_height     :: The character height, in 26.6 fractional        */
+  /*                       points.                                         */
+  /*                                                                       */
+  /*    horz_resolution :: The horizontal resolution.                      */
+  /*                                                                       */
+  /*    vert_resolution :: The vertical resolution.                        */
+  /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
   /* <Note>                                                                */
   /*    When dealing with fixed-size faces (i.e., non-scalable formats),   */
   /*    use the function FT_Set_Pixel_Sizes().                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Set_Char_Size( FT_Face     face,
-                                              FT_F26Dot6  char_width,
-                                              FT_F26Dot6  char_height,
-                                              FT_UInt     horz_resolution,
-                                              FT_UInt     vert_resolution )
+  FT_EXPORT_FUNC( FT_Error )  FT_Set_Char_Size( FT_Face     face,
+                                                FT_F26Dot6  char_width,
+                                                FT_F26Dot6  char_height,
+                                                FT_UInt     horz_resolution,
+                                                FT_UInt     vert_resolution )
   {
     FT_Error             error;
     FT_Driver            driver;
@@ -1556,19 +1624,18 @@
     FT_Size_Metrics*     metrics = &face->size->metrics;
     FT_Long              dim_x, dim_y;
 
-    if ( !face || !face->size || !face->driver)
+
+    if ( !face || !face->size || !face->driver )
       return FT_Err_Invalid_Face_Handle;
 
-    if (!char_width)
+    if ( !char_width )
       char_width = char_height;
-
-    else if (!char_height)
+    else if ( !char_height )
       char_height = char_width;
 
-    if (!horz_resolution)
+    if ( !horz_resolution )
       horz_resolution = 72;
-
-    if (!vert_resolution)
+    if ( !vert_resolution )
       vert_resolution = 72;
 
     driver    = face->driver;
@@ -1575,20 +1642,21 @@
     interface = &driver->interface;
     memory    = driver->memory;
 
-    /* default processing - this can be overriden by the driver */
-    if ( char_width  < 1*64 ) char_width  = 1*64;
-    if ( char_height < 1*64 ) char_height = 1*64;
+    /* default processing -- this can be overridden by the driver */
+    if ( char_width  < 1 * 64 ) char_width  = 1 * 64;
+    if ( char_height < 1 * 64 ) char_height = 1 * 64;
 
     /* Compute pixel sizes in 26.6 units */
-    dim_x = (((char_width  * horz_resolution) / 72) + 32) & -64;
-    dim_y = (((char_height * vert_resolution) / 72) + 32) & -64;
+    dim_x = ( ( ( char_width  * horz_resolution ) / 72 ) + 32 ) & -64;
+    dim_y = ( ( ( char_height * vert_resolution ) / 72 ) + 32 ) & -64;
 
-    metrics->x_ppem    = (FT_UShort)(dim_x >> 6);
-    metrics->y_ppem    = (FT_UShort)(dim_y >> 6);
+    metrics->x_ppem  = (FT_UShort)(dim_x >> 6);
+    metrics->y_ppem  = (FT_UShort)(dim_y >> 6);
 
-    metrics->x_scale = 0x10000;
-    metrics->y_scale = 0x10000;
-    if ( face->face_flags & FT_FACE_FLAG_SCALABLE)
+    metrics->x_scale = 0x10000L;
+    metrics->y_scale = 0x10000L;
+
+    if ( face->face_flags & FT_FACE_FLAG_SCALABLE )
     {
       metrics->x_scale = FT_DivFix( dim_x, face->units_per_EM );
       metrics->y_scale = FT_DivFix( dim_y, face->units_per_EM );
@@ -1609,20 +1677,26 @@
   /*    FT_Set_Pixel_Sizes                                                 */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    Sets the character dimensions of a given size object.  The width   */
+  /*    Sets the character dimensions of a given face object.  The width   */
   /*    and height are expressed in integer pixels.                        */
   /*                                                                       */
+  /*    If one of the character dimensions is zero, its value is set equal */
+  /*    to the other.                                                      */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    face         :: A handle to the target face object.                */
+  /*                                                                       */
   /* <Input>                                                               */
-  /*    size         :: A handle to a target size object.                  */
   /*    pixel_width  :: The character width, in integer pixels.            */
+  /*                                                                       */
   /*    pixel_height :: The character height, in integer pixels.           */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Set_Pixel_Sizes( FT_Face  face,
-                                                FT_UInt  pixel_width,
-                                                FT_UInt  pixel_height )
+  FT_EXPORT_FUNC( FT_Error )  FT_Set_Pixel_Sizes( FT_Face  face,
+                                                  FT_UInt  pixel_width,
+                                                  FT_UInt  pixel_height )
   {
     FT_Error             error;
     FT_Driver            driver;
@@ -1630,6 +1704,7 @@
     FT_DriverInterface*  interface;
     FT_Size_Metrics*     metrics = &face->size->metrics;
 
+
     if ( !face || !face->size || !face->driver )
       return FT_Err_Invalid_Face_Handle;
 
@@ -1637,11 +1712,10 @@
     interface = &driver->interface;
     memory    = driver->memory;
 
-    /* default processing - this can be overriden by the driver */
-    if (pixel_width == 0)
+    /* default processing -- this can be overridden by the driver */
+    if ( pixel_width == 0 )
       pixel_width = pixel_height;
-      
-    else if (pixel_height == 0)
+    else if ( pixel_height == 0 )
       pixel_height = pixel_width;
       
     if ( pixel_width  < 1 ) pixel_width  = 1;
@@ -1684,10 +1758,10 @@
   /*    aslot :: A handle to a new glyph slot object.                      */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_New_GlyphSlot( FT_Face        face,
-                                              FT_GlyphSlot*  aslot )
+  FT_EXPORT_FUNC( FT_Error )  FT_New_GlyphSlot( FT_Face        face,
+                                                FT_GlyphSlot*  aslot )
   {
     FT_Error             error;
     FT_Driver            driver;
@@ -1746,9 +1820,9 @@
   /* <Input>                                                               */
   /*    slot :: A handle to a target glyph slot.                           */
   /*                                                                       */
-  FT_EXPORT_FUNC(void)  FT_Done_GlyphSlot( FT_GlyphSlot  slot )
+  FT_EXPORT_FUNC( void )  FT_Done_GlyphSlot( FT_GlyphSlot  slot )
   {
-    if (slot)
+    if ( slot )
     {
       FT_Driver      driver = slot->face->driver;
       FT_Memory      memory = driver->memory;
@@ -1781,16 +1855,12 @@
   /*    FT_Load_Glyph                                                      */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    A function used to load a single glyph within a given glyph slot,  */
-  /*    for a given size.                                                  */
+  /*    A function used to load a single glyph within a given face.        */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    slot        :: A handle to a target slot object where the glyph    */
+  /*    face        :: A handle to a target face object where the glyph    */
   /*                   will be loaded.                                     */
   /*                                                                       */
-  /*    size        :: A handle to the source face size at which the glyph */
-  /*                   must be scaled/loaded.                              */
-  /*                                                                       */
   /*    glyph_index :: The index of the glyph in the font file.            */
   /*                                                                       */
   /*    load_flags  :: A flag indicating what to load for this glyph.  The */
@@ -1798,24 +1868,18 @@
   /*                   glyph loading process (e.g., whether the outline    */
   /*                   should be scaled, whether to load bitmaps or not,   */
   /*                   whether to hint the outline, etc).                  */
-  /* <Output>                                                              */
-  /*    result      :: A set of bit flags indicating the type of data that */
-  /*                   was loaded in the glyph slot (outline or bitmap,    */
-  /*                   etc).                                               */
   /*                                                                       */
-  /*                   You can set this field to 0 if you don't want this  */
-  /*                   information.                                        */
-  /*                                                                       */
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Load_Glyph( FT_Face  face,
-                                           FT_UInt  glyph_index,
-                                           FT_Int   load_flags )
+  FT_EXPORT_FUNC( FT_Error )  FT_Load_Glyph( FT_Face  face,
+                                             FT_UInt  glyph_index,
+                                             FT_Int   load_flags )
   {
     FT_Error   error;
     FT_Driver  driver;
 
+
     if ( !face || !face->size || !face->glyph )
       return FT_Err_Invalid_Face_Handle;
 
@@ -1825,7 +1889,7 @@
     driver = face->driver;
 
     /* when the flag NO_RECURSE is set, we disable hinting and scaling */
-    if (load_flags & FT_LOAD_NO_RECURSE)
+    if ( load_flags & FT_LOAD_NO_RECURSE )
       load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
 
     error = driver->interface.load_glyph( face->glyph,
@@ -1837,21 +1901,47 @@
   }
 
 
-  FT_EXPORT_FUNC(FT_Error)  FT_Load_Char( FT_Face   face,
-                                          FT_ULong  char_code,
-                                          FT_Int    load_flags )
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    FT_Load_Char                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    A function used to load a single character within a given face     */
+  /*    and the selected charmap (to be done with the FT_Select_Charmap()  */
+  /*    function).                                                         */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    face       :: A handle to a target face object where the           */
+  /*                  character will be loaded.                            */
+  /*                                                                       */
+  /*    char_code  :: The character code of the glyph in the font file.    */
+  /*                                                                       */
+  /*    load_flags :: A flag indicating what to load for this glyph.  The  */
+  /*                  FT_LOAD_XXX constants can be used to control the     */
+  /*                  glyph loading process (e.g., whether the outline     */
+  /*                  should be scaled, whether to load bitmaps or not,    */
+  /*                  whether to hint the outline, etc).                   */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    FreeType error code.  0 means success.                             */
+  /*                                                                       */
+  FT_EXPORT_FUNC( FT_Error )  FT_Load_Char( FT_Face   face,
+                                            FT_ULong  char_code,
+                                            FT_Int    load_flags )
   {
     FT_Error   error;
     FT_Driver  driver;
     FT_UInt    glyph_index;
 
-    if (!face || !face->size || !face->glyph || !face->charmap )
+
+    if ( !face || !face->size || !face->glyph || !face->charmap )
       return FT_Err_Invalid_Face_Handle;
 
     driver      = face->driver;
     glyph_index = FT_Get_Char_Index( face, char_code );
 
-    if (glyph_index == 0)
+    if ( glyph_index == 0 )
       error = FT_Err_Invalid_Character_Code;
     else
       error = driver->interface.load_glyph( face->glyph,
@@ -1861,6 +1951,7 @@
     return error;
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -1890,10 +1981,10 @@
   /*    kernings, are out of the scope of this API function -- they can be */
   /*    implemented through format-specific interfaces.                    */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Get_Kerning( FT_Face     face,
-                                            FT_UInt     left_glyph,
-                                            FT_UInt     right_glyph,
-                                            FT_Vector*  kerning )
+  FT_EXPORT_FUNC( FT_Error )  FT_Get_Kerning( FT_Face     face,
+                                              FT_UInt     left_glyph,
+                                              FT_UInt     right_glyph,
+                                              FT_Vector*  kerning )
   {
     FT_Error   error;
     FT_Driver  driver;
@@ -1911,8 +2002,10 @@
 
     if ( driver->interface.get_kerning )
     {
-      error = driver->interface.get_kerning( face, left_glyph,
-                                             right_glyph, kerning );
+      error = driver->interface.get_kerning( face,
+                                             left_glyph,
+                                             right_glyph,
+                                             kerning );
     }
     else
     {
@@ -1925,6 +2018,7 @@
     return error;
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -1931,25 +2025,28 @@
   /*    FT_Select_Charmap                                                  */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    Selects a given charmap by its encoding tag.                       */
+  /*    Selects a given charmap by its encoding tag (as listed in          */
+  /*    `freetype.h').                                                     */
   /*                                                                       */
   /* <Input>                                                               */
   /*    face     :: A handle to the source face object.                    */
-  /*    encoding :: handle to the selected charmap                         */
   /*                                                                       */
+  /*    encoding :: A handle to the selected charmap.                      */
+  /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code. 0 means success.                                       */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
   /* <Note>                                                                */
   /*    This function will return an error if no charmap in the face       */
-  /*    corresponds to the encoding queried here                           */
+  /*    corresponds to the encoding queried here.                          */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Select_Charmap( FT_Face      face,
-                                               FT_Encoding  encoding )
+  FT_EXPORT_FUNC( FT_Error )  FT_Select_Charmap( FT_Face      face,
+                                                 FT_Encoding  encoding )
   {
     FT_CharMap*  cur   = face->charmaps;
     FT_CharMap*  limit = cur + face->num_charmaps;
 
+
     for ( ; cur < limit; cur++ )
     {
       if ( cur[0]->encoding == encoding )
@@ -1973,22 +2070,23 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    face     :: A handle to the source face object.                    */
-  /*    charmap  :: handle to the selected charmap                         */
+  /*    charmap  :: A handle to the selected charmap.                      */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code. 0 means success.                                       */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
   /* <Note>                                                                */
-  /*    this function will return an error when the charmap is not part    */
-  /*    of the face (i.e. if it is not listed in the face->charmaps[]      */
+  /*    This function will return an error when the charmap is not part    */
+  /*    of the face (i.e., if it is not listed in the face->charmaps[]     */
   /*    table).                                                            */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Set_Charmap( FT_Face     face,
-                                            FT_CharMap  charmap )
+  FT_EXPORT_FUNC( FT_Error )  FT_Set_Charmap( FT_Face     face,
+                                              FT_CharMap  charmap )
   {
     FT_CharMap*  cur   = face->charmaps;
     FT_CharMap*  limit = cur + face->num_charmaps;
 
+
     for ( ; cur < limit; cur++ )
     {
       if ( cur[0] == charmap )
@@ -2000,6 +2098,7 @@
     return FT_Err_Invalid_Argument;
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -2010,18 +2109,19 @@
   /*    uses a charmap object to do the translation.                       */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    charmap  :: A handle to a filter charmap object.                   */
+  /*    face     :: A handle to the source face object.                    */
   /*    charcode :: The character code.                                    */
   /*                                                                       */
   /* <Return>                                                              */
   /*    The glyph index.  0 means `undefined character code'.              */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_UInt)  FT_Get_Char_Index( FT_Face  face,
-                                              FT_ULong charcode )
+  FT_EXPORT_FUNC( FT_UInt )  FT_Get_Char_Index( FT_Face  face,
+                                                FT_ULong charcode )
   {
     FT_UInt    result;
     FT_Driver  driver;
 
+
     result = 0;
     if ( face && face->charmap )
     {
@@ -2032,48 +2132,48 @@
   }
 
 
- /***************************************************************************
-  *
-  * <Function>
-  *    FT_Get_Sfnt_Table
-  *
-  * <Description>
-  *    Returns a pointer to a given SFNT table within a face.
-  *
-  * <Input>
-  *    face  :: handle to source
-  *    tag   :: index if SFNT table
-  *
-  * <Return>
-  *    type-less pointer to the table. This will be 0 in case of error, or
-  *    when the corresponding table was not found *OR* loaded from the file.
-  *
-  * <Note>
-  *    The table is owned by the face object, and disappears with it.
-  *
-  *    This function is only useful to access Sfnt tables that are loaded
-  *    by the sfnt/truetype/opentype drivers. See FT_Sfnt_tag for a list.
-  *
-  *    You can load any table with a different function.. XXX
-  *
-  ***************************************************************************/
-
-
-  FT_EXPORT_FUNC(void*)  FT_Get_Sfnt_Table( FT_Face      face,
-                                            FT_Sfnt_Tag  tag )
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    FT_Get_Sfnt_Table                                                  */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Returns a pointer to a given SFNT table within a face.             */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    face :: A handle to the source face object.                        */
+  /*    tag  :: An index of an SFNT table.                                 */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    A type-less pointer to the table.  This will be 0 in case of       */
+  /*    error, or if the corresponding table was not found *OR* loaded     */
+  /*    from the file.                                                     */
+  /*                                                                       */
+  /* <Note>                                                                */
+  /*    The table is owned by the face object, and disappears with it.     */
+  /*                                                                       */
+  /*    This function is only useful to access SFNT tables that are loaded */
+  /*    by the sfnt/truetype/opentype drivers.  See the FT_Sfnt_Tag        */
+  /*    enumeration in `tttables.h' for a list.                            */
+  /*                                                                       */
+  /*    You can load any table with a different function.. XXX             */
+  /*                                                                       */
+  FT_EXPORT_FUNC( void* )  FT_Get_Sfnt_Table( FT_Face      face,
+                                              FT_Sfnt_Tag  tag )
   {
     void*                   table = 0;
     FT_Get_Sfnt_Table_Func  func;
     FT_Driver               driver;
 
-    if (!face || !FT_IS_SFNT(face))
+
+    if ( !face || !FT_IS_SFNT( face ) )
       goto Exit;
 
     driver = face->driver;
     func = (FT_Get_Sfnt_Table_Func)driver->interface.get_interface(
-                 driver, "get_sfnt" );
-    if (func)
-      table = func(face,tag);
+                                             driver, "get_sfnt" );
+    if ( func )
+      table = func( face, tag );
 
   Exit:
     return table;
@@ -2080,7 +2180,6 @@
   }
 
 
-
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -2094,9 +2193,9 @@
   /*    library :: A handle to the target library object.                  */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
+  /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
-  FT_EXPORT_FUNC(FT_Error)  FT_Done_FreeType( FT_Library  library )
+  FT_EXPORT_FUNC( FT_Error )  FT_Done_FreeType( FT_Library  library )
   {
     /* Discard the library object */
     FT_Done_Library( library );
@@ -2103,5 +2202,6 @@
 
     return FT_Err_Ok;
   }
+
 
 /* END */