shithub: freetype+ttf2subf

Download patch

ref: f41e71a199011bb01a42c83fb29429d77167b969
parent: 21e046e0c40e25bccf995314bae3dfd7b1e4ba02
author: Werner Lemberg <[email protected]>
date: Thu Dec 20 16:22:02 EST 2001

* src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.

Formatting.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,38 +7,79 @@
 	ftc_family_table_free, FTC_Manager_Check): Ditto.
 	* src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
 
+	* src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
+
 2001-12-20  David Turner  <[email protected]>
 
-	* include/freetype/config/ftoption.h: Disabling bytecode interpreter
-	for new release.
+	Added PostScript hinter support to the CFF and CID drivers.
 
-	* docs/CHANGES: Updated for 2.0.6 release.
+	* include/freetype/internal/cfftypes.h (CFF_Font): New member
+	`pshinter'.
+	* src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
+	* src/cff/cffload.h: Updated.
+	* src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
+	(CFF_Builder_Init): This.
+	Added new argument `hinting'.
+	(CFF_Done_Builder): Renamed to ...
+	(CFF_Builder_Done): This.
+	(CFF_Init_Decoder): Added new argument `hinting'.
+	(CFF_Parse_CharStrings): Implement vstem support.
+	(CFF_Load_Glyph): Updated.
+	Add hinting support.
+	(cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
+	(cff_argument_counts): Updated.
+	* src/cff/cffgload.h: Updated.
+	* src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+	(CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
+	CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
+	functions.
+	(CFF_Init_Face): Renamed to ...
+	(CFF_Face_Init): This.
+	Add hinter support.
+	(CFF_Done_Face): Renamed to ...
+	(CFF_Face_Done): This.
+	(CFF_Init_Driver): Renamed to ...
+	(CFF_Driver_Init): This.
+	(CFF_Done_Driver): Renamed to ...
+	(CFF_Driver_Done): This.
+	* src/cff/cffobjs.h: Updated.
+	* src/cff/cffdrivr.c (cff_driver_class): Updated.
 
-	* src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
-	to mode the definition of encoding tables within "cffload.c" instead
-	of making them part of a shared header (causing problems in "multi"
-	builds).
+	* include/freetype/internal/t1types.h (CID_FaceRec): New member
+	`pshinter'.
+	* src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
+	* src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+	(CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
+	CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
+	(CID_Done_Face): Renamed to ...
+	(CID_Face_Done): This.
+	(CID_Init_Face): Renamed to ...
+	(CID_Face_Init): This.
+	Add hinting support.
+	(CID_Init_Driver): Renamed to ...
+	(CID_Driver_Init): This.
+	(CID_Done_Driver): Renamed to ...
+	(CID_Driver_Done): This.
+	* src/cid/cidobjs.h: Updated.
+	* src/cidriver.c: Updated.
 
-	* docs/TODO: Added "stem3 and counter hints support" to the TODO list
-	for the Postscript hinter.
+	* src/pshinter/pshrec.c (t2_hint_stems): Fixed.
 
-	* docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
+	* src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
+	crashed the library on exit.
 
-	* src/pshinter/pshrec.c (t2_hint_stems), src/cff/cffobjs.h,
-	src/cff/cffobjs.c, src/cff/cffload.c, src/cff/cffload.h,
-	src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffdriver.c,
-	include/freetype/internal/cfftypes.h: added Postscript hinter support
-	to the CFF driver.
+	* src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
+	transformation of hinted glyphs.
 
-	* src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that crashed
-	the library on exit.
+	* src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
+	to move the definition of encoding tables back within "cffload.c"
+	instead of making them part of a shared header (causing problems in
+	"multi" builds).  This reverts change 2001-08-08.
 
-	* src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix transform
-	on hinted glyphs.
-
-	* src/cid/cidgload.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
-	src/cid/cidriver.c, include/freetype/internal/t1types.h: Added
-	Postscript hinter support to the CID font driver.
+	* docs/CHANGES: Updated for 2.0.6 release.
+	* docs/TODO: Added "stem3 and counter hints support" to the TODO
+	list for the Postscript hinter.
+	* docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
 
 2001-12-19  David Turner  <[email protected]>
 
--- a/docs/BUGS
+++ b/docs/BUGS
@@ -44,7 +44,7 @@
 ------------------------------------------------------------------------------
 BAD-TTNAMEID.H          12-09-2001     Antoine                   N/A
 BAD-T1-CHARMAP          15-06-2001     David                     2.0.5
-BAD-UNIXXX-NAMES        30-07-2001     David                     2.0.5
+BAD-UNIXXXX-NAMES       30-07-2001     David                     2.0.5
 GLYPH_TO_BITMAP-BUG     05-12-2001     David                     05-12-2001
 AUTOHINT-NO-SBITS       13-09-2001     David                     2.0.6
 
@@ -84,7 +84,7 @@
     Which one is correct?
 
   Antoine replied that this was a bug in the TT 1.66 specification, and that
-  FreeType followed the most recent TrueType/OpenType specification here!
+  FreeType followed the most recent TrueType/OpenType specification here.
 
 
 AUTOHINT-SBITS
@@ -98,9 +98,9 @@
   efficiently without making a few important internal changes to the
   library's design (more importantly, to the font driver interface).
 
-  This has been corrected with a hack in FT_Load_Glyph. More important
-  internal changes should help get rid of it with a clean solution in
-  a further release like FreeType 2.1
+  This has been corrected with a hack in FT_Load_Glyph().  More important
+  internal changes should help get rid of it with a clean solution in a
+  further release like FreeType 2.1.
 
 
 BAD-TT-RENDERING
@@ -112,10 +112,10 @@
   Tests and comparisons show a _major_ discrepancy of monochrome truetype
   bytecode-hinted glyphs!  Something seems to be really broken here!
 
-  Some of this has been fixed in 2.0.6, there was a bug in the TrueType
-  loader that prevented it from loading composites correctly. However, there
-  are still _subtle_ differences between FT1 and FT2 when it comes to
-  monochrome TrueType-hinted glyphs..
+  Some of this has been fixed in 2.0.6; there was a bug in the TrueType
+  loader that prevented it from loading composites correctly.  However,
+  there are still _subtle_ differences between FT1 and FT2 when it comes to
+  monochrome TrueType-hinted glyphs.
 
 
 BAD-THIN-LINES
@@ -143,7 +143,7 @@
   table of glyph names in 'src/psaux/pstables.h'.)
 
 
-BAD-UNIXXX-NAMES
+BAD-UNIXXXX-NAMES
 
   Glyph names like uniXXXX are not recognized as they should be.  It seems
   that code in psmodule.c for uniXXXX glyph names was never tested.  The
@@ -198,14 +198,14 @@
   Calling FT_Glyph_To_Bitmap() sometimes modifies the original glyph
   outline, creating weird alignment artefacts.
   
-  This subtle bug was really in the file src/smooth/ftsmooth.c.  Basically,
-  the outline was shifted before rendering it into a new bitmap buffer.
-  However, it wasn't properly un-shifted after that operation.
+  This subtle bug was really in the file `src/smooth/ftsmooth.c'. 
+  Basically, the outline was shifted before rendering it into a new bitmap
+  buffer.  However, it wasn't properly un-shifted after that operation.
 
   This was only noticeable with certain glyphs or certain fonts; it crept in
   a long time ago.
                   
-  same bug in src/raster/ftrender1.c by the way..
+  The same bug has been fixed in src/raster/ftrender1.c also.
                   
 
 === end of file ===
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -1,76 +1,80 @@
 LATEST CHANGES BETWEEN 2.0.6 and 2.0.5
 
- *** IMPORTANT BUG FIXES:
- 
-  - it wasn't possible to load embedded bitmaps when the auto-hinter was
-    used. This is now fixed..
- 
-  - the TrueType font driver didn't load some composites properly
-    (the sub-glyphs were slightly shifted, and this was only noticeable
-     when using monochrome rendering)
+  I. IMPORTANT BUG FIXES
 
-  -  Various fixes to the auto-hinter.  They merely improve the output of
-     sans-serif fonts.  Note that there are still problems with serifed
-     fonts and composites (accented characters).
+    - It wasn't possible to load embedded bitmaps when the auto-hinter was
+      used.  This is now fixed.
 
-  - all scalable font drivers mistakenly returned un-fitted glyph advances
-    when hinting was requested. This created problems for a number of layout
-    applications. This is a very old bug that got undetected mainly because
-    most test/demo program perform rounding explicitely or implicitely
-    (through the cache).
+    - The TrueType font driver didn't load some composites properly (the
+      sub-glyphs were slightly shifted, and this was only noticeable when
+      using monochrome rendering).
 
-  - FT_Glyph_ToBitmap did mistakenly modify the source glyph in certain cases.
+    - Various fixes to the auto-hinter.  They merely improve the output of
+      sans-serif fonts.  Note that there are still problems with serifed
+      fonts and composites (accented characters).
 
-  - "glnames.py" still contained a bug that made FreeType return invalid
-    names for certain glyphs.
+    - All scalable font drivers erroneously returned un-fitted glyph
+      advances when hinting was requested.  This created problems for a
+      number of layout applications.  This is a very old bug that got
+      undetected mainly because most test/demo program perform rounding
+      explicitly or implicitly (through the cache).
 
+    - FT_Glyph_To_Bitmap() did erroneously modify the source glyph in
+      certain cases.
 
- *** IMPORTANT UPDATES & NEW FEATURES:
+    - "glnames.py" still contained a bug that made FreeType return invalid
+      names for certain glyphs.
 
-  - important updates to the Mac-specific parts of the library. 
 
-  - The caching sub-system has been completely re-designed, and its API has
-    evolved (the old one is still supported for backwards).
-    
-    The documentation for it will be completed on the next release though..
-    For now, you're encouraged to continue using the old API
+  II. IMPORTANT UPDATES AND NEW FEATURES
 
-  - A new charmap cache is provided too. See FTC_CMapCache. This is useful
-    to perform character code -> glyph index translations quickly, without
-    the need for an opened FT_Face..
+    - Important updates to the Mac-specific parts of the library.
 
-  - A NEW POSTSCRIPT HINTER module has been added to support native hints in
-    the following formats: Postscript Type 1, Postscript CID and CFF/CEF.
+    - The caching sub-system has been completely re-designed, and its API
+      has evolved (the old one is still supported for backwards
+      compatibility).
 
-    CHECK THIS OUT !! Note that the auto-hinter produces better results for
-    a number of badly-hinted fonts (mostly auto-generated ones) though..
+      The documentation for it is not yet completed, sorry.  For now, you
+      are encouraged to continue using the old API.  However, the ftview
+      demo program in the ft2demos package has already been updated to use
+      the new caching functions.
 
+    - A new charmap cache is provided too.  See FTC_CMapCache().  This is
+      useful to perform character code -> glyph index translations quickly,
+      without the need for an opened FT_Face.
 
-  - A memory debugger is now part of the standard FreeType sources. To
-    enable it, define FT_DEBUG_MEMORY in <freetype/config/ftoption.h>,
-    and recompile the library.
-    
-    Now, define the _environment_ variable FT_DEBUG_MEMORY and run any
-    program using FreeType. When the library is exited, a summary of
-    memory footprints and eventual leaks will be displayed..
+    - A NEW POSTSCRIPT HINTER module has been added to support native hints
+      in the following formats: PostScript Type 1, PostScript CID, and
+      CFF/CEF.
 
-    this works transparently with _any_ program that uses FreeType..
-    you'll need _lots_ of memory to use this however (allocated blocks
-    are never released to the heap to detect double deletes easily)
+      Please test!  Note that the auto-hinter produces better results for a
+      number of badly-hinted fonts (mostly auto-generated ones) though.
 
- *** OTHER:
- 
-  - we're aware of subtle differences between the output of FT 1 and FT 2
-    when it comes to monochrome TrueType-hinted glyphs. These are most
-    probably due to small differences in the monochrome rasterizers and
-    will be worked out in an upcoming release.
+    - A memory debugger is now part of the standard FreeType sources.  To
+      enable it, define FT_DEBUG_MEMORY in <freetype/config/ftoption.h>, and
+      recompile the library.
 
-    
-  - the next release will be named FreeType 2.1, and will include a
-    _major_ rework of the library's internals, both to make the source
-    code more consistent, readable, etc.. as well as to implement new
-    features like:
-    
+      Additionally, define the _environment_ variable FT_DEBUG_MEMORY and
+      run any program using FreeType.  When the library is exited, a summary
+      of memory footprints and possible leaks will be displayed.
+
+      This works transparently with _any_ program that uses FreeType. 
+      However, you will need a lot of memory to use this (allocated blocks
+      are never released to the heap to detect double deletes easily).
+
+
+  III. MISCELLANEOUS
+
+    - We are aware of subtle differences between the output of FreeType
+      versions 1 and 2 when it comes to monochrome TrueType-hinted glyphs. 
+      These are most probably due to small differences in the monochrome
+      rasterizers and will be worked out in an upcoming release.
+
+    - The next release will be named FreeType 2.1, and will include a
+      _major_ rework of the library's internals, both to make the source
+      code more consistent, readable, etc. as well as to implement new
+      features like:
+
       - sub-pixel filtering ("ClearType" and "CoolType" like)
       - gamma-correction
       - dynamic version and features retrieval
@@ -78,9 +82,6 @@
       - important enhancements to the monochrome rasterizer
         (especially for Postscript-based formats)
 
-
-  Merry XMas :-)
-
 ============================================================================
 
 LATEST CHANGES BETWEEN 2.0.5 and 2.0.4
@@ -118,9 +119,9 @@
   - Added a new function named "FT_Get_Postscript_Name" to retrieve the
     "unique" Postscript font name of a given face.
 
-  - Added a new public header size named FT_SIZES_H (or <freetype/ftsizes.h>)
-    providing new FT_Size-management functions: FT_New_Size, FT_Activate_Size,
-    FT_Done_Size.
+  - Added a new public header size named FT_SIZES_H (or
+    <freetype/ftsizes.h>) providing new FT_Size-management functions:
+    FT_New_Size, FT_Activate_Size, FT_Done_Size.
 
   - Fixed a reallocation bug that generated a dangling pointer (and possibly
     memory leaks) with Postscript fonts (in src/psaux/psobjs.c).
--- a/docs/TODO
+++ b/docs/TODO
@@ -6,4 +6,4 @@
 
 * Add synthesized Unicode charmap processing to the CFF driver.
 
-* Implement stem3/counter hints properly in the Postscript hinter
+* Implement stem3/counter hints properly in the Postscript hinter.
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -190,7 +190,7 @@
     CID_Subrs*  subrs;
     
     /* since FT 2.1 - interface to PostScript hinter */
-    void*          pshinter;
+    void*       pshinter;
 
   } CID_FaceRec;
 
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -2633,7 +2633,6 @@
   FT_Done_Library( FT_Library  library )
   {
     FT_Memory  memory;
-    FT_UInt    n;
 
 
     if ( !library )
@@ -2646,19 +2645,24 @@
       library->generic.finalizer( library );
 
     /* Close all modules in the library */
-#if 1    
+#if 1
     while ( library->num_modules > 0 )
       FT_Remove_Module( library, library->modules[0] );
-#else    
-    for ( n = 0; n < library->num_modules; n++ )
+#else
     {
-      FT_Module  module = library->modules[n];
+      FT_UInt  n;
 
 
-      if ( module )
+      for ( n = 0; n < library->num_modules; n++ )
       {
-        Destroy_Module( module );
-        library->modules[n] = 0;
+        FT_Module  module = library->modules[n];
+
+
+        if ( module )
+        {
+          Destroy_Module( module );
+          library->modules[n] = 0;
+        }
       }
     }
 #endif
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -543,7 +543,6 @@
     if ( charcode < 0 || charcode > 255 )
       return -1;
 
-
     /* Get code to SID mapping from `cff_standard_encoding'. */
     glyph_sid = CFF_Get_Standard_Encoding( (FT_UInt)charcode );
 
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -50,8 +50,8 @@
   /*                                                                       */
   /*                            SIZE FUNCTIONS                             */
   /*                                                                       */
-  /*  note that we store the global hints in the size's "internal" root    */
-  /*  field                                                                */
+  /*  Note that we store the global hints in the size's "internal" root    */
+  /*  field.                                                               */
   /*                                                                       */
   /*************************************************************************/
 
@@ -59,7 +59,7 @@
   static PSH_Globals_Funcs
   CFF_Size_Get_Globals_Funcs( CFF_Size  size )
   {
-    CFF_Face             face     = (CFF_Face) size->face;
+    CFF_Face             face     = (CFF_Face)size->face;
     CFF_Font*            font     = face->extra.data;
     PSHinter_Interface*  pshinter = font->pshinter;
     FT_Module            module;
@@ -69,7 +69,7 @@
                             "pshinter" );
     return ( module && pshinter && pshinter->get_globals_funcs )
            ? pshinter->get_globals_funcs( module )
-           : 0 ;
+           : 0;
   }
 
 
@@ -99,23 +99,25 @@
 
     if ( funcs )
     {
-      PSH_Globals  globals;
-      CFF_Face     face    = (CFF_Face)size->face;
-      CFF_Font*    font    = face->extra.data;
-      CFF_SubFont* subfont = &font->top_font;
+      PSH_Globals   globals;
+      CFF_Face      face    = (CFF_Face)size->face;
+      CFF_Font*     font    = face->extra.data;
+      CFF_SubFont*  subfont = &font->top_font;
 
-      CFF_Private* cpriv = &subfont->private_dict;
-      T1_Private   priv;
+      CFF_Private*  cpriv   = &subfont->private_dict;
+      T1_Private    priv;
 
-      /* IMPORTANT: the CFF and Type1 private dictionaries have */
-      /*            slightly different structures, we need to   */
-      /* synthetize a type1 dictionary on the fly here !!       */
 
+      /* IMPORTANT: The CFF and Type1 private dictionaries have    */
+      /*            slightly different structures; we need to      */
+      /*            synthetize a type1 dictionary on the fly here. */
+
       {
-        FT_UInt   n, count;
+        FT_UInt  n, count;
 
-        MEM_Set( &priv, 0, sizeof(priv) );
 
+        MEM_Set( &priv, 0, sizeof ( priv ) );
+
         count = priv.num_blue_values = cpriv->num_blue_values;
         for ( n = 0; n < count; n++ )
           priv.blue_values[n] = cpriv->blue_values[n];
@@ -136,20 +138,20 @@
         priv.blue_shift = cpriv->blue_shift;
         priv.blue_fuzz  = cpriv->blue_fuzz;
 
-        priv.standard_width[0]  = (FT_UShort) cpriv->standard_width;
-        priv.standard_height[0] = (FT_UShort) cpriv->standard_height;
-        
+        priv.standard_width[0]  = (FT_UShort)cpriv->standard_width;
+        priv.standard_height[0] = (FT_UShort)cpriv->standard_height;
+
         count = priv.num_snap_widths = cpriv->num_snap_widths;
         for ( n = 0; n < count; n++ )
           priv.snap_widths[n] = cpriv->snap_widths[n];
-          
+
         count = priv.num_snap_heights = cpriv->num_snap_heights;
         for ( n = 0; n < count; n++ )
           priv.snap_heights[n] = cpriv->snap_heights[n];
 
-        priv.force_bold           = cpriv->force_bold;
-        priv.language_group       = cpriv->language_group;
-        priv.lenIV                = cpriv->lenIV;
+        priv.force_bold     = cpriv->force_bold;
+        priv.language_group = cpriv->language_group;
+        priv.lenIV          = cpriv->lenIV;
       }
 
       error = funcs->create( size->face->memory, &priv, &globals );
@@ -191,31 +193,34 @@
 
 
   FT_LOCAL_DEF FT_Error
-  CFF_GlyphSlot_Init( CFF_GlyphSlot   slot )
+  CFF_GlyphSlot_Init( CFF_GlyphSlot  slot )
   {
-    CFF_Face              face = (CFF_Face) slot->root.face;
-    CFF_Font*             font = face->extra.data;
-    PSHinter_Interface*   pshinter = font->pshinter;
+    CFF_Face             face     = (CFF_Face)slot->root.face;
+    CFF_Font*            font     = face->extra.data;
+    PSHinter_Interface*  pshinter = font->pshinter;
 
-    if (pshinter)
+
+    if ( pshinter )
     {
       FT_Module  module;
 
-      module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );
-      if (module)
+
+      module = FT_Get_Module( slot->root.face->driver->root.library,
+                              "pshinter" );
+      if ( module )
       {
         T2_Hints_Funcs  funcs;
 
+
         funcs = pshinter->get_t2_funcs( module );
         slot->root.internal->glyph_hints = (void*)funcs;
       }
     }
+
     return 0;
   }
 
 
-
-
   /*************************************************************************/
   /*                                                                       */
   /*                           FACE  FUNCTIONS                             */
@@ -440,12 +445,12 @@
                  FT_Int         num_params,
                  FT_Parameter*  params )
   {
-    FT_Error            error;
-    SFNT_Interface*     sfnt;
-    PSNames_Interface*  psnames;
-    PSHinter_Interface* pshinter;
-    FT_Bool             pure_cff    = 1;
-    FT_Bool             sfnt_format = 0;
+    FT_Error             error;
+    SFNT_Interface*      sfnt;
+    PSNames_Interface*   psnames;
+    PSHinter_Interface*  pshinter;
+    FT_Bool              pure_cff    = 1;
+    FT_Bool              sfnt_format = 0;
 
 
     sfnt = (SFNT_Interface*)FT_Get_Module_Interface(
@@ -534,13 +539,13 @@
         goto Exit;
 
       cff->pshinter = pshinter;
-      
+
       /* Complement the root flags with some interesting information. */
       /* Note that this is only necessary for pure CFF and CEF fonts. */
 
-      root = &face->root;
-      
+      root             = &face->root;
       root->num_glyphs = cff->num_glyphs;
+
       if ( pure_cff )
       {
         CFF_Font_Dict*  dict = &cff->top_font.font_dict;
--- a/src/cid/cidobjs.c
+++ b/src/cid/cidobjs.c
@@ -38,7 +38,6 @@
 #define FT_COMPONENT  trace_cidobjs
 
 
-
   /*************************************************************************/
   /*                                                                       */
   /*                            SLOT  FUNCTIONS                            */
@@ -54,29 +53,35 @@
 
   FT_LOCAL_DEF FT_Error
   CID_GlyphSlot_Init( CID_GlyphSlot   slot )
-  {  
+  {
     CID_Face             face;
     PSHinter_Interface*  pshinter;
-    
+
+
     face     = (CID_Face) slot->root.face;
     pshinter = face->pshinter;
-    if (pshinter)
+
+    if ( pshinter )
     {
       FT_Module  module;
-      
-      module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );
-      if (module)
+
+
+      module = FT_Get_Module( slot->root.face->driver->root.library,
+                              "pshinter" );
+      if ( module )
       {
         T1_Hints_Funcs  funcs;
-        
+
+
         funcs = pshinter->get_t1_funcs( module );
-        slot->root.internal->glyph_hints = (void*)funcs;                   
+        slot->root.internal->glyph_hints = (void*)funcs;
       }
     }
+
     return 0;
   }
-  
 
+
   /*************************************************************************/
   /*                                                                       */
   /*                           SIZE  FUNCTIONS                             */
@@ -87,16 +92,16 @@
   static PSH_Globals_Funcs
   CID_Size_Get_Globals_Funcs( CID_Size  size )
   {
-    CID_Face              face     = (CID_Face) size->root.face;
+    CID_Face             face     = (CID_Face)size->root.face;
     PSHinter_Interface*  pshinter = face->pshinter;
     FT_Module            module;
-    
 
+
     module = FT_Get_Module( size->root.face->driver->root.library,
                             "pshinter" );
     return ( module && pshinter && pshinter->get_globals_funcs )
            ? pshinter->get_globals_funcs( module )
-           : 0 ;
+           : 0;
   }
 
 
@@ -106,8 +111,8 @@
     if ( size->root.internal )
     {
       PSH_Globals_Funcs  funcs;
-    
 
+
       funcs = CID_Size_Get_Globals_Funcs( size );
       if ( funcs )
         funcs->destroy( (PSH_Globals)size->root.internal );
@@ -122,21 +127,21 @@
   {
     FT_Error           error = 0;
     PSH_Globals_Funcs  funcs = CID_Size_Get_Globals_Funcs( size );
-    
 
+
     if ( funcs )
     {
-      PSH_Globals  globals;
-      CID_Face      face = (CID_Face)size->root.face;
-      CID_FontDict* dict = face->cid.font_dicts + face->root.face_index;
-      T1_Private*   priv = &dict->private_dict;
-      
+      PSH_Globals    globals;
+      CID_Face       face = (CID_Face)size->root.face;
+      CID_FontDict*  dict = face->cid.font_dicts + face->root.face_index;
+      T1_Private*    priv = &dict->private_dict;
 
+
       error = funcs->create( size->root.face->memory, priv, &globals );
       if ( !error )
         size->root.internal = (FT_Size_Internal)(void*)globals;
     }
-    
+
     return error;
   }
 
@@ -147,13 +152,13 @@
     PSH_Globals_Funcs  funcs = CID_Size_Get_Globals_Funcs( size );
     FT_Error           error = 0;
 
-    
+
     if ( funcs )
       error = funcs->set_scale( (PSH_Globals)size->root.internal,
                                  size->root.metrics.x_scale,
                                  size->root.metrics.y_scale,
                                  0, 0 );
-    return error;                                
+    return error;
   }
 
 
@@ -243,10 +248,10 @@
                  FT_Int         num_params,
                  FT_Parameter*  params )
   {
-    FT_Error            error;
-    PSNames_Interface*  psnames;
-    PSAux_Interface*    psaux;
-    PSHinter_Interface* pshinter;
+    FT_Error             error;
+    PSNames_Interface*   psnames;
+    PSAux_Interface*     psaux;
+    PSHinter_Interface*  pshinter;
 
     FT_UNUSED( num_params );
     FT_UNUSED( params );
@@ -269,21 +274,19 @@
     if ( !psaux )
     {
       psaux = (PSAux_Interface*)FT_Get_Module_Interface(
-                  FT_FACE_LIBRARY( face ), "psaux" );
+                FT_FACE_LIBRARY( face ), "psaux" );
 
       face->psaux = psaux;
     }
 
-
     pshinter = (PSHinter_Interface*)face->pshinter;
     if ( !pshinter )
     {
-      pshinter = (PSHinter_Interface*)
-                 FT_Get_Module_Interface( FT_FACE_LIBRARY( face ), "pshinter" );
+      pshinter = (PSHinter_Interface*)FT_Get_Module_Interface(
+                   FT_FACE_LIBRARY( face ), "pshinter" );
 
       face->pshinter = pshinter;
     }
-
 
     /* open the tokenizer; this will also check the font format */
     if ( FILE_Seek( 0 ) )
--- a/src/pshinter/pshrec.c
+++ b/src/pshinter/pshrec.c
@@ -1177,8 +1177,8 @@
       }
 
       /* compute lengths */
-      for ( n = 0; n < count*2; n += 2 )
-        stems[n+1] = stems[n+1] - stems[n];
+      for ( n = 0; n < count * 2; n += 2 )
+        stems[n + 1] = stems[n + 1] - stems[n];
 
       /* add them to the current dimension */
       ps_hints_stem( (PS_Hints)hints, dimension, count, stems );