shithub: freetype+ttf2subf

Download patch

ref: fbeb41d93d84b6f6dfa2ec8a8b43bafe0fe7696c
parent: e0bba32291f5ca7b3fc7be4c1277d7a8f406daea
author: Werner Lemberg <[email protected]>
date: Sat Jul 1 20:27:53 EDT 2000

Formatting.

Adding copyright notices.

Removing an unnecessary file (smooth.h).

git/fs: mount .git/fs: mount/attach disallowed
--- a/docs/glnames.py
+++ b/docs/glnames.py
@@ -1538,7 +1538,7 @@
 
   for name in glyph_list:
     write( '    "' + name + '",\n' )
-    name_list.append(name)
+    name_list.append( name )
 
   write( "\n" )
   write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
@@ -1546,7 +1546,7 @@
 
   for name in adobe_extra:
     write( '    "' + name + '",\n' )
-    name_list.append(name)
+    name_list.append( name )
 
   write( "\n" )
   write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" )
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -666,7 +666,7 @@
 
 
     slot->library = driver->root.library;
-    
+
     if ( FT_DRIVER_USES_OUTLINES( driver ) )
       error = FT_GlyphLoader_New( memory, &slot->loader );
 
@@ -689,7 +689,7 @@
       FREE( slot->bitmap.buffer );
       slot->flags &= ~ft_glyph_own_bitmap;
     }
-  
+
     /* clear all public fields in the glyph slot */
     MEM_Set( &slot->metrics, 0, sizeof ( slot->metrics ) );
     MEM_Set( &slot->outline, 0, sizeof ( slot->outline ) );
@@ -973,12 +973,12 @@
            !( load_flags & FT_LOAD_FORCE_AUTOHINT ) )
         autohint = 0;
     }
-    
+
     if ( autohint )
     {
       FT_AutoHinter_Interface*  hinting;
-      
 
+
       hinting = (FT_AutoHinter_Interface*)hinter->clazz->module_interface;
       error = hinting->load_glyph( (FT_AutoHinter)hinter, slot, face->size,
                                    glyph_index, load_flags );
@@ -1028,7 +1028,7 @@
                                ( load_flags & FT_LOAD_MONOCHROME )
                                   ? ft_render_mode_mono
                                   : ft_render_mode_normal );
-    }	 
+    }	
 
   Exit:
     return error;
@@ -2092,7 +2092,7 @@
       {
         kerning->x = FT_MulFix( kerning->x, face->size->metrics.x_scale );
         kerning->y = FT_MulFix( kerning->y, face->size->metrics.y_scale );
-        
+
         if ( kern_mode != ft_kerning_unfitted )
         {
           kerning->x = ( kerning->x + 32 ) & -64;
@@ -2354,7 +2354,7 @@
 
     if ( !result || result->glyph_format != slot->format )
       result = FT_Lookup_Renderer( library, slot->format, 0 );
-    
+
     return result;
   }
 
@@ -2791,7 +2791,7 @@
     /* is the module a auto-hinter? */
     if ( FT_MODULE_IS_HINTER( module ) )
       library->auto_hinter = module;
-      
+
     /* if the module is a font driver */
     if ( FT_MODULE_IS_DRIVER( module ) )
     {
--- a/src/cff/t2gload.c
+++ b/src/cff/t2gload.c
@@ -493,13 +493,13 @@
       FT_Int      first = 0;
       FT_Vector*  p1    = outline->points + first;
       FT_Vector*  p2    = outline->points + outline->n_points - 1;
-      
+
       if ( outline->n_contours > 1 )
       {
         first = outline->contours[outline->n_contours - 2] + 1;
         p1    = outline->points + first;
       }
-        
+
       if ( p1->x == p2->x && p1->y == p2->y )
         outline->n_points--;
     }
@@ -1118,16 +1118,16 @@
 
 
             FT_TRACE4(( " rlinecurve" ));
-            
+
             if ( num_args < 8 || ( num_args - 6 ) & 1 )
               goto Stack_Underflow;
-              
+
             if ( start_point( builder, x, y )           ||
                  check_points( builder, num_lines + 3 ) )
               goto Memory_Error;
-              
+
             args = stack;
-            
+
             /* first, add the line segments */
             while ( num_lines > 0 )
             {
@@ -1137,7 +1137,7 @@
               args += 2;
               num_lines--;
             }
-            
+
             /* then the curve */
             x += args[0];
             y += args[1];
@@ -1148,10 +1148,10 @@
             x += args[4];
             y += args[5];
             add_point( builder, x, y, 1 );
-            args = stack;     
+            args = stack;
           }
           break;
-          
+
         case t2_op_rcurveline:
           {
             FT_Int  num_curves = ( num_args - 2 ) / 6;
--- a/src/cff/t2load.c
+++ b/src/cff/t2load.c
@@ -358,7 +358,7 @@
     /* read format */
     if ( FILE_Seek( offset ) || READ_Byte( format ) )
       goto Exit;
-    
+
     select->format      = format;
     select->cache_count = 0;   /* clear cache */
 
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -346,14 +346,14 @@
       FT_Int      first = 0;
       FT_Vector*  p1    = outline->points + first;
       FT_Vector*  p2    = outline->points + outline->n_points - 1;
-      
 
+
       if ( outline->n_contours > 1 )
       {
         first = outline->contours[outline->n_contours - 2] + 1;
         p1    = outline->points + first;
       }
-        
+
       if ( p1->x == p2->x && p1->y == p2->y )
         outline->n_points--;
     }
--- a/src/macfond/fonddrvr.c
+++ b/src/macfond/fonddrvr.c
@@ -516,9 +516,9 @@
       "fond",          /* driver name                           */
       0x10000L,        /* driver version == 1.0                 */
       0x20000L,        /* driver requires FreeType 2.0 or above */
-  
+
       (void*)0,
-  
+
       (FT_Module_Constructor)     init_driver,
       (FT_Module_Destructor)      done_driver,
       (FT_Module_Requester)       0
--- a/src/psnames/psmodule.c
+++ b/src/psnames/psmodule.c
@@ -300,7 +300,7 @@
 #else
     (void*)&psnames_interface,   /* module specific interface */
 #endif
-    
+
     (FT_Module_Constructor)0,
     (FT_Module_Destructor) 0,
     (FT_Module_Requester)  0
--- a/src/raster1/ftraster.c
+++ b/src/raster1/ftraster.c
@@ -3133,7 +3133,7 @@
 
     raster->gray_width = RASTER_GRAY_LINES / 2;
 
-#endif    
+#endif
   }
 
 
@@ -3221,7 +3221,7 @@
                           unsigned long     mode,
                           const char*       palette )
   {
-#ifdef FT_RASTER_OPTION_ANTI_ALIASING  
+#ifdef FT_RASTER_OPTION_ANTI_ALIASING
 
     if ( mode == FT_MAKE_TAG( 'p', 'a', 'l', '5' ) )
     {
@@ -3237,9 +3237,9 @@
 
     UNUSED( raster );
     UNUSED( mode );
-    UNUSED( palette );    
+    UNUSED( palette );
 
-#endif    
+#endif
   }
 
 
--- a/src/raster1/ftrend1.c
+++ b/src/raster1/ftrend1.c
@@ -27,8 +27,8 @@
   FT_Error  ft_raster1_init( FT_Renderer  render )
   {
     FT_Library  library = FT_MODULE_LIBRARY( render );
-    
 
+
     render->clazz->raster_class->raster_reset( render->raster,
                                                library->raster_pool,
                                                library->raster_pool_size );
@@ -35,8 +35,8 @@
 
     return FT_Err_Ok;
   }
-  
 
+
   /* set render-specific mode */
   static
   FT_Error  ft_raster1_set_mode( FT_Renderer  render,
@@ -47,7 +47,7 @@
     return render->clazz->raster_class->raster_set_mode( render->raster,
                                                          mode_tag,
                                                          data );
-  }                                          
+  }
 
 
   /* transform a given glyph image */
@@ -58,20 +58,20 @@
                                   FT_Vector*    delta )
   {
     FT_Error error = FT_Err_Ok;
-    
-  
+
+
     if ( slot->format != render->glyph_format )
     {
       error = FT_Err_Invalid_Argument;
       goto Exit;
     }
-    
+
     if ( matrix )
       FT_Outline_Transform( &slot->outline, matrix );
-      
+
     if ( delta )
       FT_Outline_Translate( &slot->outline, delta->x, delta->y );
-    
+
   Exit:
     return error;
   }
@@ -87,9 +87,9 @@
 
     if ( slot->format == render->glyph_format )
       FT_Outline_Get_CBox( &slot->outline, cbox );
-  }                                      
-  
+  }
 
+
   /* convert a slot's glyph image into a bitmap */
   static
   FT_Error  ft_raster1_render( FT_Renderer   render,
@@ -103,10 +103,10 @@
     FT_UInt      width, height, pitch;
     FT_Bitmap*   bitmap;
     FT_Memory    memory;
-    
+
     FT_Raster_Params  params;
-    
 
+
     /* check glyph image format */
     if ( slot->format != render->glyph_format )
     {
@@ -127,16 +127,16 @@
       if ( render->clazz == &ft_raster5_renderer_class )
         return FT_Err_Cannot_Render_Glyph;
     }
-    
+
     outline = &slot->outline;
-    
+
     /* translate the outline to the new origin if needed */
     if ( origin )
       FT_Outline_Translate( outline, origin->x, origin->y );
-    
+
     /* compute the control box, and grid fit it */
     FT_Outline_Get_CBox( outline, &cbox );
-    
+
     cbox.xMin &= -64;
     cbox.yMin &= -64;
     cbox.xMax  = ( cbox.xMax + 63 ) & -64;
@@ -146,7 +146,7 @@
     height = ( cbox.yMax - cbox.yMin ) >> 6;
     bitmap = &slot->bitmap;
     memory = render->root.memory;
-    
+
     /* release old bitmap buffer */
     if ( slot->flags & ft_glyph_own_bitmap )
     {
@@ -153,7 +153,7 @@
       FREE( bitmap->buffer );
       slot->flags &= ~ft_glyph_own_bitmap;
     }
-      
+
     /* allocate new one, depends on pixel format */
     if ( !( mode & ft_render_mode_mono ) )
     {
@@ -171,12 +171,12 @@
     bitmap->width = width;
     bitmap->rows  = height;
     bitmap->pitch = pitch;
-    
+
     if ( ALLOC( bitmap->buffer, (FT_ULong)pitch * height ) )
       goto Exit;
 
     slot->flags |= ft_glyph_own_bitmap;
-    
+
     /* translate outline to render it into the bitmap */
     FT_Outline_Translate( outline, -cbox.xMin, -cbox.yMin );
 
@@ -192,7 +192,7 @@
     error = render->raster_render( render->raster, &params );
     if ( error )
       goto Exit;
-    
+
     slot->format      = ft_glyph_format_bitmap;
     slot->bitmap_left = cbox.xMin >> 6;
     slot->bitmap_top  = cbox.yMax >> 6;
@@ -207,29 +207,29 @@
     {
       ft_module_renderer,
       sizeof( FT_RendererRec ),
-      
+
       "raster1",
       0x10000L,
       0x20000L,
-      
+
       0,    /* module specific interface */
-      
+
       (FT_Module_Constructor)ft_raster1_init,
       (FT_Module_Destructor) 0,
       (FT_Module_Requester)  0
     },
-    
+
     ft_glyph_format_outline,
-    
+
     (FTRenderer_render)   ft_raster1_render,
     (FTRenderer_transform)ft_raster1_transform,
     (FTRenderer_getCBox)  ft_raster1_get_cbox,
     (FTRenderer_setMode)  ft_raster1_set_mode,
-    
+
     (FT_Raster_Funcs*)    &ft_standard_raster
   };
-  
 
+
   /* this renderer is _NOT_ part of the default modules, you'll need */
   /* to register it by hand in your application.  It should only be  */
   /* used for backwards-compatibility with FT 1.x anyway.            */
@@ -238,13 +238,13 @@
     {
       ft_module_renderer,
       sizeof( FT_RendererRec ),
-      
+
       "raster5",
       0x10000L,
       0x20000L,
-      
+
       0,    /* module specific interface */
-      
+
       (FT_Module_Constructor)ft_raster1_init,
       (FT_Module_Destructor) 0,
       (FT_Module_Requester)  0
@@ -251,7 +251,7 @@
     },
 
     ft_glyph_format_outline,
-    
+
     (FTRenderer_render)   ft_raster1_render,
     (FTRenderer_transform)ft_raster1_transform,
     (FTRenderer_getCBox)  ft_raster1_get_cbox,
--- a/src/raster1/rules.mk
+++ b/src/raster1/rules.mk
@@ -48,12 +48,12 @@
 RAS1_DRV_OBJ_M := $(RAS1_DRV_SRC:$(RAS1_DIR_)%.c=$(OBJ_)%.$O)
 RAS1_DRV_OBJ_S := $(OBJ_)raster1.$O
 
-# RASTER1 driver source file for single build
+# raster1 driver source file for single build
 #
 RAS1_DRV_SRC_S := $(RAS1_DIR_)raster1.c
 
 
-# RASTER1 driver - single object
+# raster1 driver - single object
 #
 $(RAS1_DRV_OBJ_S): $(RAS1_DRV_SRC_S) $(RAS1_DRV_SRC) \
                    $(FREETYPE_H) $(RAS1_DRV_H)
@@ -60,7 +60,7 @@
 	$(RAS1_COMPILE) $T$@ $(RAS1_DRV_SRC_S)
 
 
-# RASTER1 driver - multiple objects
+# raster1 driver - multiple objects
 #
 $(OBJ_)%.$O: $(RAS1_DIR_)%.c $(FREETYPE_H) $(RAS1_DRV_H)
 	$(RAS1_COMPILE) $T$@ $<
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -156,17 +156,17 @@
   {
     0,  /* not a font driver or renderer */
     sizeof( FT_ModuleRec ),
-    
+
     "sfnt",     /* driver name                            */
     0x10000L,   /* driver version 1.0                     */
     0x20000L,   /* driver requires FreeType 2.0 or higher */
-    
+
     (const void*)&sfnt_interface,  /* module specific interface */
-    
+
     (FT_Module_Constructor)0,
     (FT_Module_Destructor) 0,
     (FT_Module_Requester)  SFNT_Get_Interface
   };
-  
+
 
 /* END */
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -346,8 +346,8 @@
   /*    Glyph index into the glyphs array.  0 if the glyph does not exist. */
   /*                                                                       */
   static
-  FT_UInt code_to_index0( TT_CMapTable*  cmap,
-                          FT_ULong       charCode )
+  FT_UInt  code_to_index0( TT_CMapTable*  cmap,
+                           FT_ULong       charCode )
   {
     TT_CMap0*  cmap0 = &cmap->c.cmap0;
 
@@ -389,8 +389,8 @@
 
     if ( char_hi == 0 )
     {
-      /* an 8-bit character code - we use the subHeader 0 in this case */
-      /* to test whether the character code is in the charmap          */
+      /* an 8-bit character code -- we use the subHeader 0 in this case */
+      /* to test whether the character code is in the charmap           */
       if ( cmap2->subHeaderKeys[char_lo] == 0 )
         result = cmap2->glyphIdArray[char_lo];
     }
@@ -452,7 +452,7 @@
 
     /* check against the last segment */
     seg4 = cmap4->last_segment;
-    
+
     /* the following is equivalent to performing two tests, as in         */
     /*                                                                    */
     /*  if ( charCode >= seg4->startCount && charCode <= seg4->endCount ) */
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -63,7 +63,7 @@
                   (FT_Char)( tag >> 24 ),
                   (FT_Char)( tag >> 16 ),
                   (FT_Char)( tag >> 8  ),
-                  (FT_Char)( tag )     ));
+                  (FT_Char)( tag       ) ));
 
     entry = face->dir_tables;
     limit = entry + face->num_tables;
@@ -188,9 +188,9 @@
 
     face->num_tables = 0;
 
-    /* first of all, read the first 4 bytes.  If it's `ttcf', then the */
-    /* file is a TrueType collection, otherwise it can be any other    */
-    /* kind of font.                                                   */
+    /* first of all, read the first 4 bytes.  If it is `ttcf', then the */
+    /* file is a TrueType collection, otherwise it can be any other     */
+    /* kind of font.                                                    */
     if ( READ_ULong( format_tag ) )
       goto Exit;
 
@@ -238,8 +238,8 @@
 
     /* now, check the values of `num_tables', `seach_range', etc. */
     {
-      FT_UInt  num_tables     = sfnt->num_tables;
-      FT_ULong entry_selector = 1L << sfnt->entry_selector;
+      FT_UInt   num_tables     = sfnt->num_tables;
+      FT_ULong  entry_selector = 1L << sfnt->entry_selector;
 
 
       /* IMPORTANT: Many fonts have an incorrect `search_range' value, so */
@@ -547,7 +547,7 @@
       goto Exit;
 
     /* XXX: an adjustment that is necessary to load certain */
-    /*       broken fonts like `Keystrokes MT' :-(          */
+    /*      broken fonts like `Keystrokes MT' :-(           */
     /*                                                      */
     /*   We allocate 64 function entries by default when    */
     /*   the maxFunctionDefs field is null.                 */
@@ -613,9 +613,11 @@
     TT_LongMetrics**   longs;
     TT_ShortMetrics**  shorts;
 
-    FT_TRACE2(( "TT_Load_%s_Metrics: %08p\n",
-                  vertical ? "Vertical" : "Horizontal", face ));
 
+    FT_TRACE2(( "TT_Load_%s_Metrics: %08p\n", vertical ? "Vertical"
+                                                       : "Horizontal",
+                                              face ));
+
     if ( vertical )
     {
       /* The table is optional, quit silently if it wasn't found       */
@@ -661,7 +663,9 @@
 
     if ( num_shorts < 0 )
     {
-      FT_ERROR(( "!! more metrics than glyphs!\n" ));
+      FT_ERROR(( "TT_Load_%s_Metrics: more metrics than glyphs!\n",
+                 vertical ? "Vertical"
+                          : "Horizontal" ));
 
       error = vertical ? TT_Err_Invalid_Vert_Metrics
                        : TT_Err_Invalid_Horiz_Metrics;
@@ -787,7 +791,7 @@
     }
     else
     {
-      /* The horizontal header is mandatory, return an error if we */
+      /* The horizontal header is mandatory; return an error if we */
       /* don't find it.                                            */
       error = face->goto_table( face, TTAG_hhea, stream, 0 );
       if ( error )
@@ -956,7 +960,7 @@
           if ( cur->string )
             for ( j = 0; j < cur->stringLength; j++ )
             {
-              FT_Char  c = *(cur->string + j);
+              FT_Char  c = *( cur->string + j );
 
 
               if ( (FT_Byte)c < 128 )
@@ -1063,7 +1067,7 @@
     if ( READ_Fields( cmap_fields, &cmap_dir ) )
       goto Exit;
 
-    /* save space in face table for cmap tables */
+    /* reserve space in face table for cmap tables */
     if ( ALLOC_ARRAY( face->charmaps,
                       cmap_dir.numCMaps,
                       TT_CharMapRec ) )
@@ -1215,7 +1219,7 @@
     error = face->goto_table( face, TTAG_OS2, stream, 0 );
     if ( error )
     {
-      FT_TRACE2(( "is missing\n!" ));
+      FT_TRACE2(( "is missing!\n" ));
       face->os2.version = 0xFFFF;
       error = TT_Err_Ok;
       goto Exit;
@@ -1382,7 +1386,7 @@
   /*    TT_Load_Gasp                                                       */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    Loads the `GASP' table into a face object.                         */
+  /*    Loads the `gasp' table into a face object.                         */
   /*                                                                       */
   /* <Input>                                                               */
   /*    face   :: A handle to the target face object.                      */
@@ -1473,7 +1477,7 @@
     FT_UInt    n, num_tables, version;
 
 
-    /* the kern table is optional. exit silently if it is missing */
+    /* the kern table is optional; exit silently if it is missing */
     error = face->goto_table( face, TTAG_kern, stream, 0 );
     if ( error )
       return TT_Err_Ok;
--- a/src/sfnt/ttload.h
+++ b/src/sfnt/ttload.h
@@ -3,7 +3,7 @@
 /*  ttload.h                                                               */
 /*                                                                         */
 /*    Load the basic TrueType tables, i.e., tables that can be either in   */
-/*    TTF or OTF font (specification).                                     */
+/*    TTF or OTF fonts (specification).                                    */
 /*                                                                         */
 /*  Copyright 1996-2000 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
@@ -24,9 +24,6 @@
 #include <freetype/internal/ftstream.h>
 #include <freetype/internal/tttypes.h>
 
-#if 0
-#include <ttobjs.h>
-#endif
 
 #ifdef __cplusplus
   extern "C" {
--- a/src/sfnt/ttpost.c
+++ b/src/sfnt/ttpost.c
@@ -43,18 +43,21 @@
 #define FT_COMPONENT  trace_ttpost
 
 
-  /* If this configuration macro is defined, we rely on the `psnames' */
+  /* If this configuration macro is defined, we rely on the `PSNames' */
   /* module to grab the glyph names.                                  */
 
 #ifdef FT_CONFIG_OPTION_POSTSCRIPT_NAMES
 
+
 #include <freetype/internal/psnames.h>
 
 #define MAC_NAME( x )  ( (FT_String*)psnames->macintosh_name( x ) )
 
+
 #else /* FT_CONFIG_OPTION_POSTSCRIPT_NAMES */
 
-   /* Otherwise, we ignore the `psnames' module, and provide our own  */
+
+   /* Otherwise, we ignore the `PSNames' module, and provide our own  */
    /* table of Mac names.  Thus, it is possible to build a version of */
    /* FreeType without the Type 1 driver & PSNames module.            */
 
@@ -144,6 +147,7 @@
     "Ccaron", "ccaron", "dmacron",
   };
 
+
 #endif /* FT_CONFIG_OPTION_POSTSCRIPT_NAMES */
 
 
@@ -226,9 +230,9 @@
         FT_UInt  len;
 
 
-        if ( READ_Byte  ( len )                             ||
-             ALLOC_ARRAY( name_strings[n], len+1, FT_Char ) ||
-             FILE_Read  ( name_strings[n], len )            )
+        if ( READ_Byte  ( len )                               ||
+             ALLOC_ARRAY( name_strings[n], len + 1, FT_Char ) ||
+             FILE_Read  ( name_strings[n], len )              )
           goto Fail1;
 
         name_strings[n][len] = '\0';
--- a/src/sfnt/ttsbit.c
+++ b/src/sfnt/ttsbit.c
@@ -139,8 +139,8 @@
             acc   <<= 8;  /* remove bits from accumulator */
             loaded -= 8;
             count  -= 8;
-          }
-          while ( count >= 0 );
+
+          } while ( count >= 0 );
         }
 
         /* restore `count' to correct value */
@@ -748,7 +748,7 @@
                              TT_SBit_Strike**  astrike,
                              FT_ULong*         aglyph_offset )
   {
-    TT_SBit_Strike*  strike = face->sbit_strikes;
+    TT_SBit_Strike*  strike       = face->sbit_strikes;
     TT_SBit_Strike*  strike_limit = strike + face->num_sbit_strikes;
 
 
@@ -878,7 +878,6 @@
   }
 
 
-
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -921,7 +920,7 @@
 
     /***********************************************************************/
     /*                                                                     */
-    /* first of all, checks the top-most lines of the bitmap, and removes  */
+    /* first of all, check the top-most lines of the bitmap, and remove    */
     /* them if they're empty.                                              */
     /*                                                                     */
     {
@@ -954,7 +953,8 @@
       {
         line = (FT_Byte*)map->buffer;
 
-        MEM_Move( line, line + count * line_len, (rows - count) * line_len );
+        MEM_Move( line, line + count * line_len,
+                  ( rows - count ) * line_len );
 
         metrics->height       -= count;
         metrics->horiBearingY -= count;
@@ -970,7 +970,7 @@
     /* second, crop the lower lines                                        */
     /*                                                                     */
     {
-      line = (FT_Byte*)map->buffer + (rows - 1) * line_len;
+      line = (FT_Byte*)map->buffer + ( rows - 1 ) * line_len;
 
       for ( count = 0; count < rows; count++ )
       {
@@ -1040,6 +1040,7 @@
       metrics->horiBearingX++;
       metrics->vertBearingX++;
       metrics->width--;
+
     } while ( map->width > 0 );
 
   Found_Left:
@@ -1067,6 +1068,7 @@
       /* crop the whole glyph to the right */
       map->width--;
       metrics->width--;
+
     } while ( map->width > 0 );
 
   Found_Right:
@@ -1253,8 +1255,8 @@
       return TT_Err_Invalid_File_Format;
     }
 
-    /* All right, we're in a compound format.  First of all, read */
-    /* the array of elements                                      */
+    /* All right, we have a compound format.  First of all, read */
+    /* the array of elements.                                    */
     {
       TT_SBit_Component*  components;
       TT_SBit_Component*  comp;
@@ -1413,6 +1415,8 @@
 
       advance = strike->hori.ascender - strike->hori.descender;
       top     = advance / 10;
+
+      /* some heuristic values */
 
       metrics->vertBearingX = -metrics->width / 2;
       metrics->vertBearingY =  advance / 10;
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -54,9 +54,9 @@
   /*  understand how it works).                                            */
   /*                                                                       */
   /*  Note, however, that this is a _very_ different implementation        */
-  /*  compared Raph's.  Coverage information is stored in a very different */
-  /*  way, and I don't use sorted vector paths.  Also, it doesn't use      */
-  /*  floating point values.                                               */
+  /*  compared to Raph's.  Coverage information is stored in a very        */
+  /*  different way, and I don't use sorted vector paths.  Also, it        */
+  /*  doesn't use floating point values.                                   */
   /*                                                                       */
   /*  This renderer has the following advantages:                          */
   /*                                                                       */
@@ -94,6 +94,7 @@
 #define FT_COMPONENT  trace_aaraster
 
 
+  /* XXX: Adapt error code to FreeType conventions */
 #define ErrRaster_Invalid_Outline  -1
 
 #ifdef _STANDALONE_
@@ -227,7 +228,7 @@
 #endif /* GRAYS_COMPACT */
 
 
-  typedef struct TRaster_
+  typedef struct  TRaster_
   {
     PCell  cells;
     int    max_cells;
@@ -370,7 +371,7 @@
     /* flag to indicate that the cell isn't part of those we're interested */
     /* in during the render phase.  This means that:                       */
     /*                                                                     */
-    /* . the new vertical position must be within min_ey..max_ey - 1.      */
+    /* . the new vertical position must be within min_ey..max_ey-1.        */
     /* . the new horizontal position must be strictly less than max_ex     */
     /*                                                                     */
     /* Note that if a cell is to the left of the clipping region, it is    */
@@ -567,8 +568,8 @@
     dx = to_x - ras.x;
     dy = to_y - ras.y;
 
-    /* we should do something about the trivial case where dx == 0, */
-    /* as it happens very often!       XXXXX                        */
+    /* XXX: we should do something about the trivial case where dx == 0, */
+    /*      as it happens very often!                                    */
 
     /* perform vertical clipping */
     {
@@ -594,7 +595,7 @@
       goto End;
     }
 
-    /* ok, we'll have to render several scanlines */
+    /* ok, we have to render several scanlines */
     p     = ( ONE_PIXEL - fy1 ) * dx;
     first = ONE_PIXEL;
     incr  = 1;
@@ -928,7 +929,7 @@
 
     Draw:
       {
-        TPos   to_x, to_y, mid_x, mid_y;
+        TPos  to_x, to_y, mid_x, mid_y;
 
 
         to_x  = arc[0].x;
@@ -949,11 +950,15 @@
 
   /* a macro comparing two cell pointers.  Returns true if a <= b. */
 #if 1
+
 #define PACK( a )          ( ( (long)(a)->y << 16 ) + (a)->x )
 #define LESS_THAN( a, b )  ( PACK( a ) < PACK( b ) )
+
 #else /* 1 */
+
 #define LESS_THAN( a, b )  ( (a)->y < (b)->y || \
                              ( (a)->y == (b)->y && (a)->x < (b)->x ) )
+
 #endif /* 1 */
 
 #define SWAP_CELLS( a, b, temp )  do             \
@@ -967,8 +972,8 @@
 
 #ifdef SHELL_SORT
 
-  /* A simple shell sort algorithm that works directly on our */
-  /* cells table..                                            */
+  /* a simple shell sort algorithm that works directly on our */
+  /* cells table                                              */
   static
   void  shell_sort ( PCell  cells,
                      int    count )
@@ -1013,7 +1018,7 @@
   /* can even tailor our insertion threshold...                            */
 
 #define QSORT_THRESHOLD  9  /* below this size, a sub-array will be sorted */
-                            /* through a normal insertion sort..           */
+                            /* through a normal insertion sort             */
 
   static
   void  quick_sort( PCell  cells,
@@ -1686,8 +1691,8 @@
     static
     FT_Outline_Funcs  interface =
     {
-      (FT_Outline_MoveTo_Func)Move_To,
-      (FT_Outline_LineTo_Func)Line_To,
+      (FT_Outline_MoveTo_Func) Move_To,
+      (FT_Outline_LineTo_Func) Line_To,
       (FT_Outline_ConicTo_Func)Conic_To,
       (FT_Outline_CubicTo_Func)Cubic_To,
       0,
@@ -1713,8 +1718,8 @@
     if ( ras.max_ex > ras.target.width ) ras.max_ex = ras.target.width;
     if ( ras.max_ey > ras.target.rows )  ras.max_ey = ras.target.rows;
 
-    /* simple heuristic used to speed-up the bezier decomposition     */
-    /* see the code in render_conic and render_cubic for more details */
+    /* simple heuristic used to speed-up the bezier decomposition -- see */
+    /* the code in render_conic() and render_cubic() for more details    */
     ras.conic_level = 32;
     ras.cubic_level = 16;
 
@@ -1841,7 +1846,7 @@
     if ( !target_map || !target_map->buffer )
       return -1;
 
-    /* XXXX: this version does not support monochrome rendering yet! */
+    /* XXX: this version does not support monochrome rendering yet! */
     if ( !(params->flags & ft_raster_flag_aa) )
       return ErrRaster_Invalid_Mode;
 
--- a/src/smooth/ftgrays.h
+++ b/src/smooth/ftgrays.h
@@ -7,8 +7,8 @@
 /*  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.                                        */
@@ -31,19 +31,22 @@
   /*************************************************************************/
   /*                                                                       */
   /* To make ftgrays.h independent from configuration files we check       */
-  /* whether FT_EXPORT_DEF has been defined already.                          */
+  /* whether FT_EXPORT_DEF has been defined already.                       */
   /*                                                                       */
   /* On some systems and compilers (Win32 mostly), an extra keyword is     */
   /* necessary to compile the library as a DLL.                            */
   /*                                                                       */
 #ifndef FT_EXPORT_VAR
-#define FT_EXPORT_VAR(x)  extern  x
+#define FT_EXPORT_VAR( x )  extern  x
 #endif
 
-  FT_EXPORT_VAR(FT_Raster_Funcs)  ft_grays_raster;
+  FT_EXPORT_VAR( FT_Raster_Funcs )  ft_grays_raster;
 
 #ifdef __cplusplus
   }
 #endif
 
-#endif
+#endif /* FTGRAYS_H */
+
+
+/* END */
--- a/src/smooth/ftsmooth.c
+++ b/src/smooth/ftsmooth.c
@@ -1,49 +1,74 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftsmooth.c                                                             */
+/*                                                                         */
+/*    Anti-aliasing renderer interface (body).                             */
+/*                                                                         */
+/*  Copyright 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/ftobjs.h>
 #include <freetype/ftoutln.h>
 #include <ftsmooth.h>
 #include <ftgrays.h>
 
- /* initialise renderer - init its raster */
-  static FT_Error ft_smooth_init( FT_Renderer  render )
+
+  /* initialize renderer -- init its raster */
+  static
+  FT_Error  ft_smooth_init( FT_Renderer  render )
   {
-    FT_Library  library = FT_MODULE_LIBRARY(render);
+    FT_Library  library = FT_MODULE_LIBRARY( render );
     
+
     render->clazz->raster_class->raster_reset( render->raster,
-        library->raster_pool, library->raster_pool_size );
+                                               library->raster_pool,
+                                               library->raster_pool_size );
 
     return 0;
   }
   
 
-
- /* sets render-specific mode */
-  static  FT_Error  ft_smooth_set_mode( FT_Renderer  render,
-                                        FT_ULong     mode_tag,
-                                        FT_Pointer   data )
+  /* sets render-specific mode */
+  static
+  FT_Error  ft_smooth_set_mode( FT_Renderer  render,
+                                FT_ULong     mode_tag,
+                                FT_Pointer   data )
   {
     /* we simply pass it to the raster */
-    return render->clazz->raster_class->raster_set_mode(
-                    render->raster, mode_tag, data );
+    return render->clazz->raster_class->raster_set_mode( render->raster,
+                                                         mode_tag,
+                                                         data );
   }                                          
 
- /* transform a given glyph image */
-  static  FT_Error  ft_smooth_transform( FT_Renderer   render,
-                                         FT_GlyphSlot  slot,
-                                         FT_Matrix*    matrix,
-                                         FT_Vector*    delta )
+  /* transform a given glyph image */
+  static
+  FT_Error  ft_smooth_transform( FT_Renderer   render,
+                                 FT_GlyphSlot  slot,
+                                 FT_Matrix*    matrix,
+                                 FT_Vector*    delta )
   {
-    FT_Error error = FT_Err_Ok;
+    FT_Error  error = FT_Err_Ok;
     
-    if (slot->format != render->glyph_format)
+
+    if ( slot->format != render->glyph_format )
     {
       error = FT_Err_Invalid_Argument;
       goto Exit;
     }
     
-    if (matrix)
+    if ( matrix )
       FT_Outline_Transform( &slot->outline, matrix );
       
-    if (delta)
+    if ( delta )
       FT_Outline_Translate( &slot->outline, delta->x, delta->y );
     
   Exit:
@@ -50,23 +75,26 @@
     return error;
   }
 
- /* return the glyph's control box */
-  static  void  ft_smooth_get_cbox( FT_Renderer   render,
-                                    FT_GlyphSlot  slot,
-                                    FT_BBox      *cbox )
+
+  /* return the glyph's control box */
+  static
+  void  ft_smooth_get_cbox( FT_Renderer   render,
+                            FT_GlyphSlot  slot,
+                            FT_BBox*      cbox )
   {
-    MEM_Set( cbox, 0, sizeof(*cbox) );
+    MEM_Set( cbox, 0, sizeof ( *cbox ) );
 
-    if (slot->format == render->glyph_format)
+    if ( slot->format == render->glyph_format )
       FT_Outline_Get_CBox( &slot->outline, cbox );
   }                                      
   
 
- /* convert a slot's glyph image into a bitmap */
-  static  FT_Error  ft_smooth_render( FT_Renderer  render,
-                                      FT_GlyphSlot slot,
-                                      FT_UInt      mode,
-                                      FT_Vector*   origin )
+  /* convert a slot's glyph image into a bitmap */
+  static
+  FT_Error  ft_smooth_render( FT_Renderer   render,
+                              FT_GlyphSlot  slot,
+                              FT_UInt       mode,
+                              FT_Vector*    origin )
   {
     FT_Error     error;
     FT_Outline*  outline;
@@ -77,8 +105,9 @@
     
     FT_Raster_Params  params;
     
+
     /* check glyph image format */
-    if (slot->format != render->glyph_format)
+    if ( slot->format != render->glyph_format )
     {
       error = FT_Err_Invalid_Argument;
       goto Exit;
@@ -91,7 +120,7 @@
     outline = &slot->outline;
     
     /* translate the outline to the new origin if needed */
-    if (origin)
+    if ( origin )
       FT_Outline_Translate( outline, origin->x, origin->y );
     
     /* compute the control box, and grid fit it */
@@ -99,18 +128,18 @@
     
     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;
 
-    width  = (cbox.xMax - cbox.xMin) >> 6;
-    height = (cbox.yMax - cbox.yMin) >> 6;
+    width  = ( cbox.xMax - cbox.xMin ) >> 6;
+    height = ( cbox.yMax - cbox.yMin ) >> 6;
     bitmap = &slot->bitmap;
     memory = render->root.memory;
     
     /* release old bitmap buffer */
-    if ((slot->flags & ft_glyph_own_bitmap))
+    if ( slot->flags & ft_glyph_own_bitmap )
     {
-      FREE(bitmap->buffer);
+      FREE( bitmap->buffer );
       slot->flags &= ~ft_glyph_own_bitmap;
     }
       
@@ -122,7 +151,7 @@
     bitmap->rows       = height;
     bitmap->pitch      = pitch;
     
-    if (ALLOC( bitmap->buffer, (FT_ULong)pitch * height ))
+    if ( ALLOC( bitmap->buffer, (FT_ULong)pitch * height ) )
       goto Exit;
 
     slot->flags |= ft_glyph_own_bitmap;
@@ -137,7 +166,8 @@
 
     /* render outline into the bitmap */
     error = render->raster_render( render->raster, &params );
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
     
     slot->format      = ft_glyph_format_bitmap;
     slot->bitmap_left = cbox.xMin >> 6;
@@ -155,23 +185,25 @@
       sizeof( FT_RendererRec ),
       
       "smooth",
-      0x10000,
-      0x20000,
+      0x10000L,
+      0x20000L,
       
       0,    /* module specific interface */
       
-      (FT_Module_Constructor)  ft_smooth_init,
-      (FT_Module_Destructor)   0,
-      (FT_Module_Requester)    0
+      (FT_Module_Constructor)ft_smooth_init,
+      (FT_Module_Destructor) 0,
+      (FT_Module_Requester)  0
     },
 
     ft_glyph_format_outline,
     
-    (FTRenderer_render)       ft_smooth_render,
-    (FTRenderer_transform)    ft_smooth_transform,
-    (FTRenderer_getCBox)      ft_smooth_get_cbox,
-    (FTRenderer_setMode)      ft_smooth_set_mode,
+    (FTRenderer_render)   ft_smooth_render,
+    (FTRenderer_transform)ft_smooth_transform,
+    (FTRenderer_getCBox)  ft_smooth_get_cbox,
+    (FTRenderer_setMode)  ft_smooth_set_mode,
     
-    (FT_Raster_Funcs*)        &ft_grays_raster
+    (FT_Raster_Funcs*)    &ft_grays_raster
   };
 
+
+/* END */
--- a/src/smooth/ftsmooth.h
+++ b/src/smooth/ftsmooth.h
@@ -1,8 +1,35 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftsmooth.h                                                             */
+/*                                                                         */
+/*    Anti-aliasing renderer 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 FTSMOOTH_H
 #define FTSMOOTH_H
 
 #include <freetype/ftrender.h>
 
-  FT_EXPORT_VAR(const FT_Renderer_Class)   ft_smooth_renderer_class;
+#ifndef FT_CONFIG_OPTION_NO_STD_RASTER
+  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_std_renderer_class;
+#endif
 
+#ifndef FT_CONFIG_OPTION_NO_SMOOTH_RASTER
+  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_smooth_renderer_class;
+#endif
+
 #endif /* FTSMOOTH_H */
+
+
+/* END */
--- a/src/smooth/rules.mk
+++ b/src/smooth/rules.mk
@@ -13,16 +13,16 @@
 # fully.
 
 
-# renderer driver directory
+# smooth driver directory
 #
 SMOOTH_DIR  := $(SRC_)smooth
 SMOOTH_DIR_ := $(SMOOTH_DIR)$(SEP)
 
-
 # additional include flags used when compiling the driver
 #
 SMOOTH_INCLUDE := $(SMOOTH_DIR)
 
+
 # compilation flags for the driver
 #
 SMOOTH_CFLAGS  := $(SMOOTH_INCLUDE:%=$I%)
@@ -29,17 +29,18 @@
 SMOOTH_COMPILE := $(FT_COMPILE) $(SMOOTH_CFLAGS)
 
 
-# SMOOTH driver sources (i.e., C files)
+# smooth driver sources (i.e., C files)
 #
-SMOOTH_DRV_SRC := $(SMOOTH_DIR_)ftgrays.c   \
+SMOOTH_DRV_SRC := $(SMOOTH_DIR_)ftgrays.c  \
                   $(SMOOTH_DIR_)ftsmooth.c
 
-# SMOOTH driver headers
+
+# smooth driver headers
 #
 SMOOTH_DRV_H := $(SMOOTH_DRV_SRC:%c=%h)
 
 
-# SMOOTH driver object(s)
+# smooth driver object(s)
 #
 #   SMOOTH_DRV_OBJ_M is used during `multi' builds.
 #   SMOOTH_DRV_OBJ_S is used during `single' builds.
@@ -47,12 +48,12 @@
 SMOOTH_DRV_OBJ_M := $(SMOOTH_DRV_SRC:$(SMOOTH_DIR_)%.c=$(OBJ_)%.$O)
 SMOOTH_DRV_OBJ_S := $(OBJ_)smooth.$O
 
-# SMOOTH driver source file for single build
+# smooth driver source file for single build
 #
 SMOOTH_DRV_SRC_S := $(SMOOTH_DIR_)smooth.c
 
 
-# SMOOTH driver - single object
+# smooth driver - single object
 #
 $(SMOOTH_DRV_OBJ_S): $(SMOOTH_DRV_SRC_S) $(SMOOTH_DRV_SRC) \
                    $(FREETYPE_H) $(SMOOTH_DRV_H)
@@ -59,7 +60,7 @@
 	$(SMOOTH_COMPILE) $T$@ $(SMOOTH_DRV_SRC_S)
 
 
-# SMOOTH driver - multiple objects
+# smooth driver - multiple objects
 #
 $(OBJ_)%.$O: $(SMOOTH_DIR_)%.c $(FREETYPE_H) $(SMOOTH_DRV_H)
 	$(SMOOTH_COMPILE) $T$@ $<
--- a/src/smooth/smooth.c
+++ b/src/smooth/smooth.c
@@ -1,4 +1,25 @@
+/***************************************************************************/
+/*                                                                         */
+/*  smooth.c                                                               */
+/*                                                                         */
+/*    FreeType anti-aliasing rasterer module component (body 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.                                        */
+/*                                                                         */
+/***************************************************************************/
+
+
 #define FT_MAKE_OPTION_SINGLE_OBJECT
+
 #include <ftgrays.c>
 #include <ftsmooth.c>
 
+
+/* END */
--- a/src/smooth/smooth.h
+++ /dev/null
@@ -1,14 +1,0 @@
-#ifndef RENDERER_H
-#define RENDERER_H
-
-#include <freetype/ftrender.h>
-
-#ifndef FT_CONFIG_OPTION_NO_STD_RASTER
-  FT_EXPORT_VAR(const FT_Renderer_Class)   ft_std_renderer_class;
-#endif
-
-#ifndef FT_CONFIG_OPTION_NO_SMOOTH_RASTER
-  FT_EXPORT_VAR(const FT_Renderer_Class)   ft_smooth_renderer_class;
-#endif
-
-#endif /* RENDERER_H */