formatting - removed trailing spaces
diff --git a/BUILD b/BUILD
index ccaa15b..9a03572 100644
--- a/BUILD
+++ b/BUILD
@@ -17,19 +17,19 @@
 ----------------------------
 
   Install GNU Make, then try the following on Unix or any system with gcc:
-  
+
      make    // this will setup the build
      make    // this will build the library
-     
+
   On Win32+Visual C++:
-  
+
      make setup visualc    // setup the build for VisualC++ on Win32
      make                  // build the library
-     
+
   Then, go to the "demos" directory and type
-  
+
      make
-     
+
   To compile the demo programs..
 
   If this doesn't work, read the following..
@@ -45,58 +45,58 @@
   FreeType 2 includes a powerful and flexible build system that allows you
   to easily compile it on a great variety of platforms from the command
   line. To do so, just follow these simple instructions:
-  
+
   a/ Install GNU Make:
-  
+
      Because GNU Make is the only Make tool supported to compile FreeType 2,
      you should install it on your machine.
 
      Because the FT2 build system relies on many important features of GNU
      Make, trying to build the library with any other Make tool will *fail*.
-    
+
 
   b/ Invoke "make":
-  
+
      Go to the root FT2 directory, then simply invoke GNU Make from the
      command line, this will launch the FreeType 2 Host Platform detection
      routines. A summary will be displayed, for example, on Win32:
-     
+
      ========================================================================
         FreeType build system -- automatic system detection
-         
+
         The following settings are used:
-         
+
           platform                     win32
           compiler                     gcc
           configuration directory      ./config/win32
-          configuration rules          ./config/win32/w32-gcc.mk  
-         
+          configuration rules          ./config/win32/w32-gcc.mk
+
         If this does not correspond to your system or settings please remove
         the file 'config.mk' from this directory then read the INSTALL file
         for help.
-         
+
         Otherwise, simply type 'make' again to build the library.
      =========================================================================
-     
+
      If the detected settings correspond to your platform and compiler,
      skip to step e/. Note that if your platform is completely alien to
      the build system, the detected platform will be "ansi".
-     
-     
+
+
   c/ Configure the build system for a different compiler:
 
      If the build system correctly detected your platform, but you want to
      use a different compiler than the one specified in the summary (for
      most platforms, gcc is the defaut compiler), simply invoke GNU Make
      like :
-     
+
          make setup <compiler>
-         
+
      For example:
-     
+
             to use Visual C++ on Win32, type:  "make setup visualc"
             to use LCC-Win32 on Win32, type:   "make setup lcc"
-     
+
      The <compiler> name to use is platform-dependent. The list of available
      compilers for your system is available in the file
      "config/<system>/detect.mk" (note that we hope to make the list
@@ -106,50 +106,50 @@
 
 
   d/ Configure the build system for an unknown platform/compiler:
-  
+
      What the auto-detection/setup phase of the build system does is simply
      copy a file to the current directory under the name "config.mk".
-     
+
      For example, on OS/2+gcc, it would simply copy "config/os2/os2-gcc.mk"
      to "./config.mk"
-     
+
      If for some reason your platform isn't correctly detected, simply copy
      manually the configuration sub-makefile to "./config.mk" and go to
      step e/.
-     
+
      Note that this file is a sub-Makefile used to specify Make variables
      used to invoke the compiler and linker during the build, you can easily
      create your own version from one of the existing configuration files,
      then copy it to the current directory under the name "./config.mk".
-     
-  
+
+
   e/ Build the library:
-  
+
      The auto-detection/setup phase should have copied a file in the current
      directory, called "./config.mk". This file contains definitions of various
      Make variables used to invoke the compiler and linker during the build.
-     
+
      To launch the build, simply invoke GNU Make again: the top Makefile will
      detect the configuration file and run the build with it..
-     
-     
+
+
   f/ Build the demonstration programs:
-     
+
      Once the library is compiled, go to "demos", then invoke GNU Make.
-     
+
      Note that the demonstration programs include a tiny graphics sub-system
      that includes "drivers" to display Windows on Win32, X11 and OS/2. The
      build system should automatically detect which driver to use based on
      the current platform.
 
      UNIX USERS TAKE NOTE: XXXXXX
-     
+
      When building the demos, the build system tries to detect your X11 path
      by looking for the patterns "X11R5/bin", "X11R6/bin" or "X11/bin" in
      your current path. If no X11 path is found, the demo programs will not
      be able to display graphics and will fail. Change your current path
      if you encounter this problem.
-     
+
      Note that the release version will use Autoconf to detect everything
      on Unix, so this will not be necessary !!
 
@@ -165,7 +165,7 @@
   Each component must be compiled as a stand-alone object file, even when it
   is really made of several C source files. For example, the "base layer"
   component is made of the following C files:
-  
+
     src/
       base/
         ftcalc.c    - computations
@@ -174,10 +174,10 @@
         ftlist.c    - simple list management
         ftoutln.c   - simple outline processing
         ftextend.c  - extensions support
-  
+
   However, you can create a single object file by compiling the file
   "src/base/ftbase.c", whose content is:
-  
+
         #include <ftcalc.c>
         #include <ftobjs.c>
         #include <ftstream.c>
@@ -187,7 +187,7 @@
 
   Similarly, each component has a single "englobing" C file to compile it
   as a stand-alone object, i.e. :
-  
+
      src/base/ftbase.c         - the base layer, high-level interface
      src/sfnt/sfnt.c           - the "sfnt" module
      src/psnames/psnames.c     - the Postscript Names module
@@ -196,9 +196,9 @@
 
 
   To compile one component, do the following:
-  
+
    - add the top-level "include" directory to your compilation include path
-   
+
    - add the component's path to your compilation include path too. Being
      in the component's directory isn't enough !!
 
@@ -206,18 +206,18 @@
 
   For example, the following line can be used to compile the truetype driver
   on Unix:
-  
+
      cd freetype2/
      cc -c -Iinclude -Isrc/truetype  src/truetype/truetype.c
 
   Alternatively:
-  
+
      cd freetype2/src/truetype
      cc -c -I../../include -I. src/truetype/truetype.c
 
   The complete list of files to compile for a feature-complete build of
   FreeType 2 is:
-  
+
      src/base/ftsystem.c         - system-specific memory and i/o support
      src/base/ftinit.c           - initialisation layer
      src/base/ftdebug.c          - debugging component (empty in release build)
diff --git a/CHANGES b/CHANGES
index 7178efc..f1d4389 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,4 @@
-LATEST CHANGES - 
+LATEST CHANGES -
 
   - tagged "BETA-6" in the CVS tree. This one is a serious release candidate
     even though it doesn't incorporate the auto-hinter yet..
@@ -9,7 +9,7 @@
     + re-enable support for 5-gray levels anti-aliasing (suck, suck..)
 
   - created new header files, and modified sources accordingly:
-  
+
        <freetype/fttypes.h>           - simple FreeType types, without the API
        <freetype/internal/ftmemory.h> - definition of memory-management macros
 
@@ -26,15 +26,15 @@
      |  It seems the C pre-processor that comes with LCC is broken, it
      |  doesn't recognize the ANSI standard directives # and ## correctly
      |  when one of the argument is a macro. Also, something like:
-     |  
+     |
      |     #define F(x)  print##x
-     |     
+     |
      |     F(("hello"))
-     |     
+     |
      |  will get incorrectly translated to:
-     |  
+     |
      |     print "hello")
-     |     
+     |
      |  by its pre-processor. For this reason, you simply cannot build
      |  FreeType 2 in debug mode with this compiler..
 
@@ -42,12 +42,12 @@
   - yet another massive grunt work. I've changed the definition of the
     EXPORT_DEF, EXPORT_FUNC, BASE_DEF & BASE_FUNC macros. These now take
     an argument, which is the function's return value type.
-    
+
     This is necessary to compile FreeType as a DLL on Windows and OS/2.
     Depending on the compiler used, a compiler-specific keyword like __export
     or __system must be placed before (VisualC++) or after (BorlandC++)
     the type..
-    
+
     Of course, this needed a lot of changes throughout the source code
     to make it compile again... All cleaned up now, apparently..
 
@@ -80,7 +80,7 @@
     within it for more information.
 
   - major directory hierarchy re-organisation. This was done for two things:
-  
+
       * first, to ease the "manual" compilation of the library by requiring
         at lot less include paths :-)
 
@@ -90,19 +90,19 @@
 
     Basically, you should now use the 'freetype/' prefix for header inclusion,
     as in:
-    
+
         #include <freetype/freetype.h>
         #include <freetype/ftglyph.h>
 
     Some new include sub-directories are available:
-    
+
      a. the "freetype/config" directory, contains two files used to
         configure the build of the library. Client applications should
         not need to look at these normally, but they can if they want.
-        
+
         #include <freetype/config/ftoption.h>
         #include <freetype/config/ftconfig.h>
-     
+
      b. the "freetype/internal" directory, contains header files that
         describes library internals. These are the header files that were
         previously found in the "src/base" and "src/shared" directories.
@@ -110,9 +110,9 @@
 
     As usual, the build system and the demos have been updated to reflect
     the change..
-    
+
     Here's a layout of the new directory hierarchy:
-    
+
     TOP
       include/
          freetype/
@@ -122,17 +122,17 @@
               ftoption.h
               ftconfig.h
               ftmodule.h
-              
+
             internal/
               ftobjs.h
               ftstream.h
               ftcalc.h
               ...
-            
+
       src/
          base/
             ...
-            
+
          sfnt/
          psnames/
          truetype/
@@ -142,7 +142,7 @@
 
     Compiling a module is now much easier, for example, the following should
     work when in the TOP directory on an ANSI build:
-    
+
        gcc -c -I./include -I./src/base src/base/ftbase.c
        gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c
        etc..
@@ -178,9 +178,9 @@
 
   - fixed a bug in the TrueType glyph loader that prevented the correct
     loading of some CJK glyphs in mingli.ttf
-    
+
   - improved the standard Type 1 hinter in "src/type1"
-  
+
   - fixed two bugs in the experimental Type 1 driver in "src/type1z"
     to handle the new XFree86 4.0 fonts (and a few other ones..)
 
@@ -189,7 +189,7 @@
     in "demos/src/ftgrays.c" and should move to the library itself
     in the next beta.. NOTE: The smooth renderer doesn't compile in
     stand-alone mode anymore, but this should be fixed RSN..
-    
+
   - introduced convenience functions to more easily deal with glyph
     images, see "include/ftglyph.h" for more details, as well as the
     new demo program named "demos/src/ftstring.c" that demonstrates
@@ -214,11 +214,11 @@
   - changed the layout of configuration files : now, all ANSI configuration
     files are located in "freetype2/config". System-specific over-rides
     can be placed in "freetype2/config/<system>".
-    
+
   - moved all configuration macros to "config/ftoption.h"
-  
+
   - improvements in the Type 1 driver with AFM support
-  
+
   - changed the fields in the FT_Outline structure : the old "flags"
     array is re-named "tags", while all ancient flags are encoded into
     a single unsigned int named "flags".
@@ -230,10 +230,10 @@
 
   - added a smooth anti-alias renderer to the demonstration programs
   - added Mac graphics driver (thanks Just)
-  
+
   - FT_Open_Face changed in order to received a pointer to a FT_Open_Args
     descriptor..
-  
+
   - various cleanups, a few more API functions implemented (see FT_Attach_File)
 
   - updated some docs
@@ -314,11 +314,11 @@
 
   - updated the "sfnt" module interface to allow several SFNT-based
     drivers to co-exist peacefully
-    
+
   - updated the "T1_Face" type to better separate Postscript font content
     from the rest of the FT_Face structure. Might be used later by the
     CFF/Type2 driver..
-    
+
   - added an experimental replacement Type 1 driver featuring advanced
     (and speedy) pattern matching to retrieve the data from postscript
     fonts.
@@ -351,27 +351,27 @@
     - resource objects have disappeared. this means that face objects can
       now be created with a single function call (see FT_New_Face and
       FT_Open_Face)
-    
+
     - when calling either FT_New_Face & FT_Open_Face, a size object and a
       glyph slot object are automatically created for the face, and can be
       accessed through "face->glyph" and "face->size" if one really needs to.
       In most cases, there's no need to call FT_New_Size or FT_New_Glyph.
-    
+
     - similarly, FT_Load_Glyph now only takes a "face" argument (instead of
       a glyph slot and a size). Also, it's "result" parameter is gone, as
       the glyph image type is returned in the field "face->glyph.format"
-    
+
     - the list of available charmaps is directly accessible through
       "face->charmaps", counting "face->num_charmaps" elements. Each
       charmap has an 'encoding' field which specifies which known encoding
       it deals with. Valid values are, for example :
-    
+
           ft_encoding_unicode      (for ASCII, Latin-1 and Unicode)
           ft_encoding_apple_roman
           ft_encoding_sjis
           ft_encoding_adobe_standard
           ft_encoding_adobe_expert
-    
+
       other values may be added in the future. Each charmap still holds its
       "platform_id" and "encoding_id" values in case the encoding is too
       exotic for the current library
@@ -510,7 +510,7 @@
 
 -----------------------------------------------------------------------------------------
 Font Drivers :
-  
+
 
   The Font Driver interface has been modified in order to support
   extensions & versioning.
@@ -561,10 +561,10 @@
      driver = FT_Get_Driver( library, "truetype" );
      if (!driver) return FT_Err_Unimplemented_Feature;
 
-     return FT_Register_Extension( driver, &extension_class );   
+     return FT_Register_Extension( driver, &extension_class );
    }
 
-   
+
    // Implementing the extensions
    //
    FT_Error  FT_Proceed_Extension_XXX( FT_Face  face )
diff --git a/demos/graph/graph.h b/demos/graph/graph.h
index e5f3b32..e09667d 100644
--- a/demos/graph/graph.h
+++ b/demos/graph/graph.h
@@ -33,7 +33,7 @@
 
   /* initialisation */
   extern int  grInit( void );
-  
+
   /* finalisation */
   extern void grDone( void );
 
@@ -52,13 +52,13 @@
     gr_pixel_mode_rgb32,       /* 32-bits mode - 16 million colors */
 
     gr_pixel_mode_max          /* don't remove */
-  
+
   } grPixelMode;
 
 
   /* forward declaration of the surface class */
   typedef struct grSurface_     grSurface;
-  
+
 
  /*********************************************************************
   *
@@ -106,7 +106,7 @@
   {
     grPos  x;
     grPos  y;
-    
+
   } grVector;
 
 
@@ -114,7 +114,7 @@
   {
     long           value;
     unsigned char  chroma[4];
-    
+
   } grColor;
 
 
@@ -125,7 +125,7 @@
   *    grNewBitmap
   *
   * <Description>
-  *    creates a new bitmap    
+  *    creates a new bitmap
   *
   * <Input>
   *    pixel_mode   :: the target surface's pixel_mode
@@ -163,7 +163,7 @@
   *    writes a given glyph bitmap to a target surface.
   *
   * <Input>
-  *    target  :: handle to target bitmap 
+  *    target  :: handle to target bitmap
   *    glyph   :: handle to source glyph bitmap
   *    x       :: position of left-most pixel of glyph image in target surface
   *    y       :: position of top-most pixel of glyph image in target surface
@@ -185,7 +185,7 @@
   *   This function performs clipping
   *
   **********************************************************************/
-    
+
   extern int   grBlitGlyphToBitmap( grBitmap*  target,
                                     grBitmap*  glyph,
                                     grPos      x,
@@ -199,7 +199,7 @@
   *    grFillRectangle
   *
   * <Description>
-  *    this function is used to fill a given rectangle on a surface   
+  *    this function is used to fill a given rectangle on a surface
   *
   * <Input>
   *    surface :: handle to target surface
@@ -210,7 +210,7 @@
   *    color   :: fill color
   *
   **********************************************************************/
-    
+
   extern void  grFillRectangle( grBitmap*  surface,
                                 grPos      x,
                                 grPos      y,
@@ -240,7 +240,7 @@
   *    color    :: color to be used to draw the character
   *
   **********************************************************************/
-  
+
   extern
   void  grWriteCellChar( grBitmap*  target,
                          int        x,
@@ -262,14 +262,14 @@
   *    This function writes a string with the internal font
   *
   * <Input>
-  *    target       :: handle to target bitmap  
+  *    target       :: handle to target bitmap
   *    x            :: x pixel position of string's top left corner
   *    y            :: y pixel position of string's top left corner
   *    string       :: Latin-1 text string
   *    color        :: color to be used to draw the character
   *
   **********************************************************************/
-  
+
   extern
   void  grWriteCellString( grBitmap*   target,
                            int         x,
@@ -283,7 +283,7 @@
   *    grDoneBitmap
   *
   * <Description>
-  *    destroys a bitmap    
+  *    destroys a bitmap
   *
   * <Input>
   *    bitmap :: handle to bitmap descriptor
@@ -336,7 +336,7 @@
   *    client applications..
   *
   **********************************************************************/
-    
+
   typedef struct grDeviceChain_  grDeviceChain;
 
   struct grDeviceChain_
@@ -372,7 +372,7 @@
   *    If no driver could be initialised, this function returns NULL.
   *
   **********************************************************************/
-    
+
   extern
   grDeviceChain*  grInitDevices( void );
 
@@ -411,12 +411,12 @@
   *                           2 and 256.
   *
   *    the pixel modes do not provide the number of grays in the case
-  *    of "gray" devices. You should try to create a surface with the 
+  *    of "gray" devices. You should try to create a surface with the
   *    maximal number (256, that is) and see the value returned in
   *    the bitmap descriptor.
   *
   **********************************************************************/
- 
+
   extern void  grGetDeviceModes( const char*    device_name,
                                  int           *num_modes,
                                  grPixelMode*  *pixel_modes );
@@ -469,7 +469,7 @@
   *    you can thus discard the 'bitmap' parameter after the call.
   *
   **********************************************************************/
-    
+
   extern grSurface*  grNewSurface( const char*  device,
                                    grBitmap*    bitmap );
 
@@ -493,7 +493,7 @@
   *    height  :: rectangle height in pixels
   *
   **********************************************************************/
-    
+
   extern void  grRefreshRectangle( grSurface*  surface,
                                    grPos       x,
                                    grPos       y,
@@ -508,7 +508,7 @@
   *
   * <Description>
   *    a variation of grRefreshRectangle which repaints the whole surface
-  *    to the screen.                                                    
+  *    to the screen.
   *
   * <Input>
   *    surface :: handle to target surface
@@ -542,7 +542,7 @@
   *    color    :: color to be used to draw the character
   *
   **********************************************************************/
-  
+
   extern
   void  grWriteSurfaceChar( grSurface* target,
                             int        x,
@@ -567,14 +567,14 @@
   *    This function writes a string with the internal font
   *
   * <Input>
-  *    target       :: handle to target bitmap  
+  *    target       :: handle to target bitmap
   *    x            :: x pixel position of string's top left corner
   *    y            :: y pixel position of string's top left corner
   *    string       :: Latin-1 text string
   *    color        :: color to be used to draw the character
   *
   **********************************************************************/
-  
+
   extern
   void  grWriteSurfaceString( grSurface*  target,
                               int         x,
@@ -622,7 +622,7 @@
   *    XXX : For now, only keypresses are supported.
   *
   **********************************************************************/
-  
+
   extern
   int   grListenSurface( grSurface*  surface,
                          int         event_mask,
diff --git a/demos/graph/grblit.c b/demos/graph/grblit.c
index f0346e1..b8d1b6e 100644
--- a/demos/graph/grblit.c
+++ b/demos/graph/grblit.c
@@ -32,7 +32,7 @@
     case gr_pixel_mode_pal4:
       width = (width + 1) & -2;
       break;
-      
+
     default:
       ;
     }
@@ -82,7 +82,7 @@
     case gr_pixel_mode_pal4:
       target_width = (target_width + 1) & -2;
       break;
-      
+
     default:
       ;
     }
@@ -104,7 +104,7 @@
 
     blit->read_line  = blit->source.pitch;
     blit->write_line = blit->target.pitch;
-    
+
     if ( blit->read_line < 0 )
       blit->read -= (blit->source.rows-1) * blit->read_line;
 
@@ -247,7 +247,7 @@
       {
         if ( mask == 0x80 )
           val = *_read++;
-          
+
         if ( val & mask )
           *_write = (unsigned char)color.value;
 
@@ -344,7 +344,7 @@
     unsigned int     left_mask;
     unsigned char*   read;
     unsigned char*   write;
-    
+
     read  = blit->read + (blit->xread >> 3);
     write = blit->write + blit->xwrite*2;
 
@@ -396,7 +396,7 @@
     unsigned int    left_mask;
     unsigned char*  read;
     unsigned char*  write;
-    
+
     read  = blit->read  + (blit->xread >> 3);
     write = blit->write + blit->xwrite*3;
 
@@ -452,7 +452,7 @@
     unsigned int    left_mask;
     unsigned char*  read;
     unsigned char*  write;
-     
+
     read  = blit->read  + (blit->xread >> 3);
     write = blit->write + blit->xwrite*4;
 
@@ -523,19 +523,19 @@
   {
     int          count;
     const byte*  table;
-  
+
   } grSaturation;
-  
-  
+
+
   static
   const byte  gr_saturation_5[8] = { 0, 1, 2, 3, 4, 4, 4, 4 };
-  
+
 
   static
   const byte  gr_saturation_17[32] =
   {
      0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
-    16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
+    16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
   };
 
 
@@ -565,7 +565,7 @@
       grError = gr_err_bad_argument;
       return 0;
     }
-     
+
     for ( ; sat < limit; sat++ )
     {
       if ( sat->count == num_grays )
@@ -574,25 +574,25 @@
         return sat->table;
       }
     }
-    
+
     /* not found, simply create a new entry if there is room */
     if (gr_num_saturations < GR_MAX_SATURATIONS)
     {
       int          i;
       const byte*  table;
-      
+
       table = (const byte*)grAlloc( (3*num_grays-1)*sizeof(byte) );
       if (!table) return 0;
-        
+
       sat->count = num_grays;
       sat->table = table;
-      
+
       for ( i = 0; i < num_grays; i++, table++ )
-        *(unsigned char*)table = (unsigned char)i;  
-      
+        *(unsigned char*)table = (unsigned char)i;
+
       for ( i = 2*num_grays-1; i > 0; i--, table++ )
-        *(unsigned char*)table = (unsigned char)(num_grays-1);   
-        
+        *(unsigned char*)table = (unsigned char)(num_grays-1);
+
       gr_num_saturations++;
       gr_last_saturation = sat;
       return sat->table;
@@ -614,11 +614,11 @@
     int          target_grays;
     int          source_grays;
     const byte*  table;
-  
+
   } grConversion;
-  
-  
-  
+
+
+
   static
   const byte  gr_gray5_to_gray17[5] = { 0, 4, 8, 12, 16 };
 
@@ -654,13 +654,13 @@
   {
     grConversion*  conv  = gr_conversions;
     grConversion*  limit = conv + gr_num_conversions;
-   
+
     if ( target_grays < 2 || source_grays < 2 )
     {
       grError = gr_err_bad_argument;
       return 0;
     }
-    
+
     /* otherwise, scan table */
     for ( ; conv < limit; conv++ )
     {
@@ -671,7 +671,7 @@
         return conv->table;
       }
     }
-    
+
     /* not found, add a new conversion to the table */
     if (gr_num_conversions < GR_MAX_CONVERSIONS)
     {
@@ -681,15 +681,15 @@
       table = (const byte*)grAlloc( source_grays*sizeof(byte) );
       if (!table)
         return 0;
-        
+
       conv->target_grays = target_grays;
       conv->source_grays = source_grays;
       conv->table        = table;
 
       for ( n = 0; n < source_grays; n++ )
-        ((unsigned char*)table)[n] = (unsigned char)(n*(target_grays-1)) / 
+        ((unsigned char*)table)[n] = (unsigned char)(n*(target_grays-1)) /
                                          (source_grays-1);
-            
+
       gr_num_conversions++;
       gr_last_conversion = conv;
       return table;
@@ -720,7 +720,7 @@
 
     max1  = (unsigned char)(blit->source.grays-1);
     max2  = (unsigned char)(blit->target.grays-1);
-    
+
     read  = (unsigned char*)blit->read  + blit->xread;
     write = (unsigned char*)blit->write + blit->xwrite;
 
@@ -735,7 +735,7 @@
       {
 #ifdef GR_CONFIG_GRAY_SKIP_WHITE
         unsigned char val = *_read;
-        
+
         if (val)
         {
           if (val == max)
@@ -750,7 +750,7 @@
         _read++;
         x--;
       }
-      
+
       read  += blit->read_line;
       write += blit->write_line;
       y--;
@@ -775,7 +775,7 @@
     unsigned char   max;
 
     max   = (unsigned char)(blit->source.grays-1);
-    
+
     read  = (unsigned char*)blit->read  + blit->xread;
     write = (unsigned char*)blit->write + blit->xwrite;
 
@@ -790,7 +790,7 @@
       {
 #ifdef GR_CONFIG_GRAY_SKIP_WHITE
         unsigned char val = *_read;
-        
+
         if (val)
         {
           if (val == max)
@@ -805,7 +805,7 @@
         _read++;
         x--;
       }
-      
+
       read  += blit->read_line;
       write += blit->write_line;
       y--;
@@ -834,7 +834,7 @@
    color.chroma[0] = (pixel >> 10) & 0x1F;  \
    color.chroma[1] = (pixel >>  5) & 0x1F;  \
    color.chroma[2] = (pixel      ) & 0x1F;
-   
+
 
 #define  extract565( pixel, color )           \
    color.chroma[0] = (pixel >> 11) & 0x1F;  \
@@ -846,13 +846,13 @@
    ( ( (unsigned short)color.chroma[0] << 10 ) |    \
      ( (unsigned short)color.chroma[1] <<  5 ) |    \
        color.chroma[2]                         )
-      
+
 
 #define  inject565( color )         \
    ( ( (unsigned short)color.chroma[0] << 11 ) |    \
      ( (unsigned short)color.chroma[1] <<  5 ) |    \
        color.chroma[2]                         )
-      
+
 
 /**************************************************************************/
 /*                                                                        */
@@ -872,7 +872,7 @@
 
     read   = blit->read  + blit->xread;
     write  = blit->write + 2*blit->xwrite;
-    
+
     /* convert color to R:G:B triplet */
     color2 = color.value;
     extract555( color2, color );
@@ -887,12 +887,12 @@
       while (x > 0)
       {
         unsigned char   val;
-        
+
         val = *_read;
         if (val)
         {
           unsigned short* pixel = (unsigned short*)_write;
-          
+
           if (val == max)
           {
             pixel[0] = (short)color2;
@@ -902,18 +902,18 @@
             /* compose gray value */
             unsigned short  pix16 = *pixel;
             grColor         pix;
-            
+
             extract555( pix16, pix );
 
             compose_pixel( pix, color, val, max );
             *pixel = inject555(pix);
-          }  
+          }
         }
         _write += 2;
         _read  ++;
         x--;
       }
-      
+
       read  += blit->read_line;
       write += blit->write_line;
       y--;
@@ -940,7 +940,7 @@
 
     read   = blit->read  + blit->xread;
     write  = blit->write + 2*blit->xwrite;
-    
+
     color2 = color.value;
     extract565( color2, color );
 
@@ -954,12 +954,12 @@
       while (x > 0)
       {
         unsigned char    val;
-        
+
         val = *_read;
         if (val)
         {
           unsigned short* pixel = (unsigned short*)_write;
-          
+
           if (val == max)
           {
             pixel[0] = (short)color2;
@@ -970,17 +970,17 @@
             unsigned short  pix16 = *pixel;
             grColor         pix;
 
-            extract565( pix16, pix );            
+            extract565( pix16, pix );
 
             compose_pixel( pix, color, val, max );
             *pixel = inject565( pix );
-          }  
+          }
         }
         _write +=2;
         _read  ++;
         x--;
       }
-      
+
       read  += blit->read_line;
       write += blit->write_line;
       y--;
@@ -1006,7 +1006,7 @@
 
     read   = blit->read  + blit->xread;
     write  = blit->write + 3*blit->xwrite;
-    
+
     y = blit->height;
     do
     {
@@ -1017,7 +1017,7 @@
       while (x > 0)
       {
         unsigned char    val;
-        
+
         val = *_read;
         if (val)
         {
@@ -1031,23 +1031,23 @@
           {
             /* compose gray value */
             grColor pix;
-            
+
             pix.chroma[0] = _write[0];
             pix.chroma[1] = _write[1];
             pix.chroma[2] = _write[2];
 
             compose_pixel( pix, color, val, max );
-            
+
             _write[0] = pix.chroma[0];
             _write[1] = pix.chroma[1];
             _write[2] = pix.chroma[2];
-          }  
+          }
         }
         _write += 3;
         _read  ++;
         x--;
       }
-      
+
       read  += blit->read_line;
       write += blit->write_line;
       y--;
@@ -1073,7 +1073,7 @@
 
     read   = blit->read  + blit->xread;
     write  = blit->write + 4*blit->xwrite;
-    
+
     y = blit->height;
     do
     {
@@ -1084,7 +1084,7 @@
       while (x > 0)
       {
         unsigned char  val;
-        
+
         val = *_read;
         if (val)
         {
@@ -1099,23 +1099,23 @@
           {
             /* compose gray value */
             grColor pix;
-            
+
             pix.chroma[0] = _write[0];
             pix.chroma[1] = _write[1];
             pix.chroma[2] = _write[2];
 
             compose_pixel( pix, color, val, max );
-            
+
             _write[0] = pix.chroma[0];
             _write[1] = pix.chroma[1];
             _write[2] = pix.chroma[2];
-          }  
+          }
         }
         _write += 4;
         _read  ++;
         x--;
       }
-      
+
       read  += blit->read_line;
       write += blit->write_line;
       y--;
@@ -1142,7 +1142,7 @@
   *   Error code. 0 means success
   *
   **********************************************************************/
-    
+
   typedef  void (*grColorGlyphBlitter)( grBlitter*  blit,
                                         grColor     color,
                                         int         max_gray );
@@ -1158,9 +1158,9 @@
     blit_gray_to_565,
     blit_gray_to_24,
     blit_gray_to_32
-  };  
+  };
 
-   
+
   extern int  grBlitGlyphToBitmap( grBitmap*  target,
                                    grBitmap*  glyph,
                                    grPos      x,
@@ -1169,14 +1169,14 @@
   {
     grBlitter    blit;
     grPixelMode  mode;
-  
+
     /* check arguments */
     if (!target || !glyph)
     {
       grError = gr_err_bad_argument;
       return -1;
     }
-    
+
 
     /* set up blitter and compute clipping. Return immediately if needed */
     blit.source = *glyph;
@@ -1185,7 +1185,7 @@
 
     if ( compute_clips( &blit, x, y ) )
       return 0;
-    
+
 
     /* handle monochrome bitmap blitting */
     if (glyph->mode == gr_pixel_mode_mono)
@@ -1195,11 +1195,11 @@
         grError = gr_err_bad_source_depth;
         return -1;
       }
-      
+
       gr_mono_blitters[mode]( &blit, color );
-      goto End;     
+      goto End;
     }
-    
+
     /* handle gray bitmap composition */
     if (glyph->mode == gr_pixel_mode_gray &&
         glyph->grays > 1                  )
@@ -1207,7 +1207,7 @@
       int          target_grays = target->grays;
       int          source_grays = glyph->grays;
       const byte*  saturation;
-      
+
       if ( mode == gr_pixel_mode_gray && target_grays > 1 )
       {
         /* rendering into a gray target - use special composition */
@@ -1235,7 +1235,7 @@
             conversion = grGetConversion( target_grays, source_grays );
             if (!conversion) return -3;
           };
-              
+
           blit_gray_to_gray( &blit, saturation, conversion );
         }
       }
@@ -1248,18 +1248,18 @@
           grError = gr_err_bad_target_depth;
           return -1;
         }
-        
+
         gr_color_blitters[mode]( &blit, color, source_grays-1 );
       }
-      goto End;      
+      goto End;
     }
-    
+
     /* we don't support the blitting of bitmaps of the following  */
     /* types : pal4, pal8, rgb555, rgb565, rgb24, rgb32           */
     /*                                                            */
     grError = gr_err_bad_source_depth;
     return -2;
-    
+
   End:
     return 0;
   }
diff --git a/demos/graph/grdevice.c b/demos/graph/grdevice.c
index ba367dd..901f4e2 100644
--- a/demos/graph/grdevice.c
+++ b/demos/graph/grdevice.c
@@ -10,20 +10,20 @@
   grDevice*  find_device( const char*  device_name )
   {
     int  index = 0;
-    
+
     if (device_name)
     {
       for ( index = gr_num_devices-1; index > 0; index-- )
         if ( strcmp( device_name, gr_device_chain[index].name ) == 0 )
           break;
     }
-    
+
     if ( index < 0 || gr_num_devices <= 0 || !gr_device_chain[index].device )
     {
       grError = gr_err_invalid_device;
       return 0;
     }
-    
+
     return gr_device_chain[index].device;
   }
 
@@ -62,18 +62,18 @@
   *                           2 and 256.
   *
   *    the pixel modes do not provide the number of grays in the case
-  *    of "gray" devices. You should try to create a surface with the 
+  *    of "gray" devices. You should try to create a surface with the
   *    maximal number (256, that is) and see the value returned in
   *    the bitmap descriptor.
   *
   **********************************************************************/
- 
+
   extern void grGetDeviceModes( const char*    device_name,
                                 int           *num_modes,
                                 grPixelMode*  *pixel_modes )
   {
     grDevice*  device;
-    
+
     *num_modes   = 0;
     *pixel_modes = 0;
 
@@ -132,7 +132,7 @@
   *    you can thus discard the 'bitmap' parameter after the call.
   *
   **********************************************************************/
-    
+
   extern grSurface*  grNewSurface( const char*  device_name,
                                    grBitmap*    bitmap )
   {
@@ -145,7 +145,7 @@
 
     surface = (grSurface*)grAlloc( device->surface_objsize );
     if (!surface) return 0;
-    
+
     if ( !device->init_surface( surface, bitmap ) )
     {
       grFree( surface );
@@ -173,7 +173,7 @@
   *    height  :: rectangle height in pixels
   *
   **********************************************************************/
-    
+
   extern void  grRefreshRectangle( grSurface*  surface,
                                    grPos       x,
                                    grPos       y,
@@ -185,7 +185,7 @@
   }
 
 
- 
+
  /**********************************************************************
   *
   * <Function>
@@ -209,7 +209,7 @@
   *    color    :: color to be used to draw the character
   *
   **********************************************************************/
-  
+
   extern
   void  grWriteSurfaceChar( grSurface* target,
                             int        x,
@@ -239,14 +239,14 @@
   *    This function writes a string with the internal font
   *
   * <Input>
-  *    target       :: handle to target bitmap  
+  *    target       :: handle to target bitmap
   *    x            :: x pixel position of string's top left corner
   *    y            :: y pixel position of string's top left corner
   *    string       :: Latin-1 text string
   *    color        :: color to be used to draw the character
   *
   **********************************************************************/
-  
+
   extern
   void  grWriteSurfaceString( grSurface*  target,
                               int         x,
@@ -270,7 +270,7 @@
   *
   * <Description>
   *    a variation of grRefreshRectangle which repaints the whole surface
-  *    to the screen.                                                    
+  *    to the screen.
   *
   * <Input>
   *    surface :: handle to target surface
@@ -330,7 +330,7 @@
   *    XXX : For now, only keypresses are supported.
   *
   **********************************************************************/
-  
+
   extern
   int   grListenSurface( grSurface*  surface,
                          int         event_mask,
@@ -348,12 +348,12 @@
     {
       /* first of all, call the device-specific destructor */
       surface->done(surface);
-      
+
       /* then remove the bitmap if we're owner */
       if (surface->owner)
         grFree( surface->bitmap.buffer );
-        
-      surface->owner         = 0;  
+
+      surface->owner         = 0;
       surface->bitmap.buffer = 0;
       grFree( surface );
     }
diff --git a/demos/graph/grdevice.h b/demos/graph/grdevice.h
index a434609..9ffea16 100644
--- a/demos/graph/grdevice.h
+++ b/demos/graph/grdevice.h
@@ -108,14 +108,14 @@
   {
     int          surface_objsize;
     const char*  device_name;  /* name of device                 */
-  
+
     grDeviceInitFunc        init;
     grDeviceDoneFunc        done;
 
     grDeviceInitSurfaceFunc init_surface;
 
     int                     num_pixel_modes;
-    grPixelMode*            pixel_modes; 
+    grPixelMode*            pixel_modes;
   };
 
 
diff --git a/demos/graph/grevents.h b/demos/graph/grevents.h
index c32f75b..36dd52d 100644
--- a/demos/graph/grevents.h
+++ b/demos/graph/grevents.h
@@ -19,13 +19,13 @@
 #define gr_event_mouse 0x3C
 #define gr_event_key   0xC0
 
-#define gr_event_type  (gr_event_mouse | gr_event_key)  
+#define gr_event_type  (gr_event_mouse | gr_event_key)
 
 
   typedef enum grKey_
   {
     grKeyNone = 0,
-    
+
     grKeyF1,
     grKeyF2,
     grKeyF3,
@@ -38,12 +38,12 @@
     grKeyF10,
     grKeyF11,
     grKeyF12,
-    
+
     grKeyLeft,
     grKeyRight,
     grKeyUp,
     grKeyDown,
-    
+
     grKeyIns,
     grKeyDel,
     grKeyHome,
@@ -51,7 +51,7 @@
     grKeyPageUp,
     grKeyPageDown,
 
-    grKeyEsc,    
+    grKeyEsc,
     grKeyTab,
     grKeyBackSpace,
     grKeyReturn,
@@ -59,7 +59,7 @@
     grKeyMax,
     grKeyForceShort = 0x7FFF  /* this forces the grKey to be stored */
                               /* on at least one short !            */
-    
+
   } grKey;
 
 #define  grKEY(c)    ((grKey)(c))
@@ -102,7 +102,7 @@
 #define  grKeyAt          grKEY('@')
 #define  grKeyUnder       grKEY('_')
 
-  
+
   typedef struct grEvent_
   {
     int    type;
diff --git a/demos/graph/grfont.c b/demos/graph/grfont.c
index b96715e..9902423 100644
--- a/demos/graph/grfont.c
+++ b/demos/graph/grfont.c
@@ -283,12 +283,12 @@
   {
     if (charcode < 0 || charcode > 255)
       return;
-      
+
     gr_charcell.buffer = (char*)font_8x8 + 8*charcode;
     grBlitGlyphToBitmap( target, &gr_charcell, x, y, color );
   }
-  
-  
+
+
   void  grWriteCellString( grBitmap*   target,
                            int         x,
                            int         y,
@@ -302,7 +302,7 @@
       x += 8;
     }
   }
-  
+
   static int        gr_cursor_x     = 0;
   static int        gr_cursor_y     = 0;
   static grBitmap*  gr_text_bitmap  = 0;
@@ -313,19 +313,19 @@
   {
     gr_text_bitmap = bitmap;
   }
-  
+
   extern void grSetMargin( int right, int top )
   {
     gr_margin_top   = top << 3;
     gr_margin_right = right << 3;
   }
- 
+
   extern void grGotoxy ( int x, int y )
   {
     gr_cursor_x = x;
     gr_cursor_y = y;
   }
- 
+
   extern void grWrite  ( const char*  string )
   {
     if (string)
@@ -338,11 +338,11 @@
                          gr_margin_top   + (gr_cursor_y << 3),
                          string,
                          color );
- 
+
       gr_cursor_x += strlen(string);
     }
   }
-  
+
   extern void grLn()
   {
     gr_cursor_y ++;
@@ -355,4 +355,4 @@
     grLn();
   }
 
-  
+
diff --git a/demos/graph/grfont.h b/demos/graph/grfont.h
index 1456af2..2697e00 100644
--- a/demos/graph/grfont.h
+++ b/demos/graph/grfont.h
@@ -11,6 +11,6 @@
 
   extern void grWrite  ( const char*  string );
   extern void grWriteln( const char* string );
-  extern void grLn(); 
+  extern void grLn();
 
 #endif /* GRFONT_H */
diff --git a/demos/graph/grinit.c b/demos/graph/grinit.c
index 3949885..4da1db6 100644
--- a/demos/graph/grinit.c
+++ b/demos/graph/grinit.c
@@ -62,7 +62,7 @@
       device = chain->device;
       if ( device->init() == 0             &&
            gr_num_devices < GR_MAX_DEVICES )
-          
+
       {
         /* successful device initialisation - add it to our chain */
         cur->next   = 0;
diff --git a/demos/graph/grobjs.c b/demos/graph/grobjs.c
index f2bdd2b..ae106dd 100644
--- a/demos/graph/grobjs.c
+++ b/demos/graph/grobjs.c
@@ -25,16 +25,16 @@
   char*  grAlloc( long size )
   {
     char*  p;
-     
+
     p = (char*)malloc(size);
     if (!p && size > 0)
     {
-      grError = gr_err_memory; 
+      grError = gr_err_memory;
     }
-    
+
     if (p)
       memset( p, 0, size );
-    
+
     return p;
   }
 
@@ -59,7 +59,7 @@
   char*  grRealloc( const char*  block, long size )
   {
     char*  p;
-    
+
     p = realloc( (char*)block, size );
     if (!p && size > 0)
     {
@@ -97,7 +97,7 @@
     if ( pixel_mode <= gr_pixel_mode_none ||
          pixel_mode >= gr_pixel_mode_max  )
       goto Fail;
-   
+
     if ( pixel_mode != gr_pixel_mode_gray      ||
          ( num_grays >= 2 && num_grays < 256 ) )
       return 0;
@@ -114,7 +114,7 @@
   *    grNewBitmap
   *
   * <Description>
-  *    creates a new bitmap    
+  *    creates a new bitmap
   *
   * <Input>
   *    pixel_mode   :: the target surface's pixel_mode
@@ -160,28 +160,28 @@
     {
       case gr_pixel_mode_mono  : pitch = (width+7) >> 3; break;
       case gr_pixel_mode_pal4  : pitch = (width+3) >> 2; break;
-      
+
       case gr_pixel_mode_pal8  :
       case gr_pixel_mode_gray  : pitch = width; break;
-      
+
       case gr_pixel_mode_rgb555:
       case gr_pixel_mode_rgb565: pitch = width*2; break;
-      
+
       case gr_pixel_mode_rgb24 : pitch = width*3; break;
-      
+
       case gr_pixel_mode_rgb32 : pitch = width*4; break;
-      
+
       default:
         grError = gr_err_bad_target_depth;
         return 0;
     }
-    
+
     bit->pitch  = pitch;
     bit->buffer = grAlloc( (long)bit->pitch * bit->rows );
     if (!bit->buffer) goto Fail;
-    
+
     return 0;
-    
+
   Fail:
     return grError;
   }
@@ -192,7 +192,7 @@
   *    grDoneBitmap
   *
   * <Description>
-  *    destroys a bitmap    
+  *    destroys a bitmap
   *
   * <Input>
   *    bitmap :: handle to bitmap descriptor
diff --git a/demos/graph/grobjs.h b/demos/graph/grobjs.h
index 79eb31d..5f99d05 100644
--- a/demos/graph/grobjs.h
+++ b/demos/graph/grobjs.h
@@ -23,7 +23,7 @@
   {
     grColor   foreground;
     grColor   background;
-    
+
     int       num_levels;
     int       max_levels;
     grColor*  levels;
@@ -97,13 +97,13 @@
                                      int         y,
                                      int         width,
                                      int         height );
-                                    
+
   typedef void (*grDoneSurfaceFunc)( grSurface*  surface );
 
   typedef int  (*grListenEventFunc)( grSurface* surface,
                                      int        event_mode,
                                      grEvent   *event );
- 
+
 
 
   struct grSurface_
@@ -112,7 +112,7 @@
     grBitmap           bitmap;
     grBool             refresh;
     grBool             owner;
-     
+
     const byte*        saturation;  /* used for gray surfaces only   */
     grBlitterFunc      blit_mono;   /* 0 by default, set by grBlit.. */
 
@@ -141,7 +141,7 @@
   ********************************************************************/
 
   extern  char*  grAlloc( long size );
-  
+
 
  /********************************************************************
   *
diff --git a/demos/graph/grtypes.h b/demos/graph/grtypes.h
index aca1856..7c39e2a 100644
--- a/demos/graph/grtypes.h
+++ b/demos/graph/grtypes.h
@@ -23,7 +23,7 @@
   typedef unsigned short ushort;
   typedef unsigned int   uint;
 #endif
-  
+
   typedef struct grDimension_
   {
     int  x;
diff --git a/demos/graph/mac/grmac.c b/demos/graph/mac/grmac.c
index 189776a..359aac8 100644
--- a/demos/graph/mac/grmac.c
+++ b/demos/graph/mac/grmac.c
@@ -298,7 +298,7 @@
   case gr_pixel_mode_gray:
     thePixMap.cmpSize = 8;
     thePixMap.pixelSize = 8;
-    thePixMap.pmTable = GetCTable(256); /* color palette matching FT's idea 
+    thePixMap.pmTable = GetCTable(256); /* color palette matching FT's idea
                                            of grayscale. See ftview.rsrc */
     break;
 
diff --git a/demos/graph/os2/gros2pm.c b/demos/graph/os2/gros2pm.c
index e234365..1aba61c 100644
--- a/demos/graph/os2/gros2pm.c
+++ b/demos/graph/os2/gros2pm.c
@@ -35,9 +35,9 @@
   {
     ULONG   os2key;
     grKey   grkey;
-    
+
   } Translator;
-  
+
 
   static
   Translator  key_translators[] =
@@ -296,7 +296,7 @@
     WinUpdateWindow( surface->frame_window );
   }
 
-  
+
   static
   void  set_title( grPMSurface* surface,
                    const char*  title )
@@ -319,7 +319,7 @@
 
 
 
-  static  
+  static
   void  listen_event( grPMSurface* surface,
                       int          event_mask,
                       grEvent*     grevent )
@@ -517,7 +517,7 @@
     the_surface = surface;
 
     LOG(( "Os2PM: RunPMWindow( %08lx )\n", (long)surface ));
-     
+
     /* create an anchor to allow this thread to use PM */
     surface->anchor = WinInitialize(0);
     if (!surface->anchor)
@@ -546,8 +546,8 @@
     }
 
     /* create the PM window */
-    class_flags = FCF_TITLEBAR | FCF_MINBUTTON | FCF_DLGBORDER | 
-                  FCF_TASKLIST | FCF_SYSMENU; 
+    class_flags = FCF_TITLEBAR | FCF_MINBUTTON | FCF_DLGBORDER |
+                  FCF_TASKLIST | FCF_SYSMENU;
 
     LOG(( "Os2PM: RunPMWindow: Creating window\n" ));
     surface->frame_window = WinCreateStdWindow(
@@ -669,7 +669,7 @@
     case WM_MINMAXFRAME:
       /* to update minimized if changed */
       swp = *((PSWP) parm1);
-      if ( swp.fl & SWP_MINIMIZE ) 
+      if ( swp.fl & SWP_MINIMIZE )
         minimized = TRUE;
       if ( swp.fl & SWP_RESTORE )
         minimized = FALSE;
@@ -677,11 +677,11 @@
       break;
 
     case WM_ERASEBACKGROUND:
-    case WM_PAINT:  
+    case WM_PAINT:
       /* copy the memory image of the screen out to the real screen */
       DosRequestMutexSem( surface->image_lock, SEM_INDEFINITE_WAIT );
       WinBeginPaint( handle, screen_ps, NULL );
-      
+
       /* main image and magnified picture */
       GpiBitBlt( screen_ps,
                  surface->image_ps,
@@ -690,7 +690,7 @@
                  ROP_SRCCOPY, BBO_AND );
 
       WinEndPaint( screen_ps );
-      DosReleaseMutexSem( surface->image_lock );   
+      DosReleaseMutexSem( surface->image_lock );
       break;
 
     case WM_HELP:  /* this really is a F1 Keypress !! */
@@ -740,15 +740,15 @@
   {
     sizeof( grPMSurface ),
     "os2pm",
-    
+
     init_device,
     done_device,
-    
+
     (grDeviceInitSurfaceFunc) init_surface,
-    
+
     0,
     0
-    
+
   };
 
 
diff --git a/demos/graph/win32/grwin32.c b/demos/graph/win32/grwin32.c
index 28bd363..69b44d4 100644
--- a/demos/graph/win32/grwin32.c
+++ b/demos/graph/win32/grwin32.c
@@ -64,9 +64,9 @@
   {
     ULONG   winkey;
 	grKey   grkey;
-	
+
   } Translator;
-  
+
   static
   Translator  key_translators[] =
   {
@@ -105,7 +105,7 @@
   /* This is a minimalist driver, it is only able to display */
   /* a _single_ window. Moreover, only monochrome and gray   */
   /* bitmaps are supported..                                 */
-  
+
   /* handle of the window. */
   static HWND   hwndGraphic;
 
@@ -170,7 +170,7 @@
 
     row_bytes = surface->bitmap.pitch;
     if (row_bytes < 0) row_bytes = -row_bytes;
-    
+
     if ( row_bytes*8 != pbmi->bmiHeader.biWidth * pbmi->bmiHeader.biBitCount )
       pbmi->bmiHeader.biWidth  = row_bytes * 8 / pbmi->bmiHeader.biBitCount;
 
@@ -181,7 +181,7 @@
                 surface->bitmap.buffer,
                 pbmi,
                 DIB_RGB_COLORS );
-                
+
     ReleaseDC ( hwndGraphic, hDC );
 
     ShowWindow( hwndGraphic, SW_SHOW );
@@ -193,7 +193,7 @@
   void set_title( grSurface* surface, const char* title )
   {
     (void)surface;
-    
+
     /* the title will be set on the next listen_event, just */
     /* record it there..                                    */
     the_title = title;
@@ -206,17 +206,17 @@
                      grEvent*    grevent )
   {
     MSG  msg;
-    
+
     (void)surface;
     (void)event_mask;
-    
+
     if ( hwndGraphic && !title_set )
     {
       SetWindowText( hwndGraphic, the_title );
       title_set = 1;
     }
 
-    eventToProcess = 0;    
+    eventToProcess = 0;
     while (GetMessage( &msg, 0, 0, 0 ))
     {
       TranslateMessage( &msg );
@@ -224,7 +224,7 @@
       if (eventToProcess)
         break;
     }
-    
+
     *grevent = ourevent;
   }
 
@@ -243,7 +243,7 @@
 {
   static RGBQUAD  black = {    0,    0,    0, 0 };
   static RGBQUAD  white = { 0xFF, 0xFF, 0xFF, 0 };
-  
+
   if( ! RegisterTheClass() ) return 0;  /* if already running, fails. */
 
   /* find some memory for the bitmap header */
@@ -298,7 +298,7 @@
       int   count = bitmap->grays;
       int   x;
       RGBQUAD*  color = pbmi->bmiColors;
-      
+
       for ( x = 0; x < count; x++, color++ )
       {
         color->rgbRed   =
@@ -324,7 +324,7 @@
     free ( pbmi );
     return 0;
   }
-  
+
   surface->done         = (grDoneSurfaceFunc) done_surface;
   surface->refresh_rect = (grRefreshRectFunc) refresh_rectangle;
   surface->set_title    = (grSetTitleFunc)    set_title;
@@ -452,7 +452,7 @@
         return DefWindowProc( handle, mess, wParam, lParam );
       }
 
-      
+
     case WM_KEYDOWN:
       switch ( wParam )
       {
@@ -476,7 +476,7 @@
               goto Do_Key_Event;
             }
         }
-        
+
         /* the key isn't found, default processing               */
         /* return DefWindowProc( handle, mess, wParam, lParam ); */
         return DefWindowProc( handle, mess, wParam, lParam );
@@ -485,7 +485,7 @@
     case WM_CHAR:
       {
         ourevent.key = wParam;
-        
+
     Do_Key_Event:
         ourevent.type  = gr_event_key;
         eventToProcess = 1;
@@ -511,12 +511,12 @@
   {
     sizeof( grSurface ),
     "win32",
-    
+
     init_device,
     done_device,
-    
+
     (grDeviceInitSurfaceFunc) init_surface,
-    
+
     0,
     0
   };
diff --git a/demos/graph/x11/grx11.c b/demos/graph/x11/grx11.c
index b73fa9e..8ca4f7f 100644
--- a/demos/graph/x11/grx11.c
+++ b/demos/graph/x11/grx11.c
@@ -24,9 +24,9 @@
   {
     KeySym  xkey;
     grKey   grkey;
-    
+
   } Translator;
-  
+
   static
   Translator  key_translators[] =
   {
@@ -59,9 +59,9 @@
 
 
 #ifdef TEST
-  
+
 #define grAlloc  malloc
-  
+
 #endif
 
 
@@ -76,7 +76,7 @@
   typedef XPixmapFormatValues  XDepth;
 
   static int           num_pixel_modes = 0;
-  static grPixelMode   pixel_modes[ MAX_PIXEL_MODES ];  
+  static grPixelMode   pixel_modes[ MAX_PIXEL_MODES ];
   static XDepth        pixel_depth[ MAX_PIXEL_MODES ];
 
   typedef struct grXSurface_
@@ -90,9 +90,9 @@
     int            depth;
     XDepth*        xdepth;
     Bool           gray;
-    
+
     GC             gc;
-    
+
     XColor         color[256];   /* gray levels palette for 8-bit modes */
     XImage*        ximage;
 
@@ -100,10 +100,10 @@
     int            win_org_y;
     int            win_width;
     int            win_height;
-    
+
     int            image_width;
     int            image_height;
-    
+
   } grXSurface;
 
 
@@ -133,10 +133,10 @@
   {
     if ( num_pixel_modes >= MAX_PIXEL_MODES )
       Panic( "X11.Too many pixel modes\n" );
-      
+
     pixel_modes[ num_pixel_modes ] = pixel_mode;
     pixel_depth[ num_pixel_modes ] = *depth;
-    
+
     num_pixel_modes++;
   }
 
@@ -146,21 +146,21 @@
   int  init_device( void )
   {
     XDepth  dummy;
-  
+
     XrmInitialize();
-    
+
     display = XOpenDisplay( displayname );
     if (!display)
     {
       return -1;
      /* Panic( "Gr:error: cannot open X11 display\n" ); */
     }
-      
+
     idle = XCreateFontCursor( display, XC_left_ptr );
     busy = XCreateFontCursor( display, XC_watch );
-    
+
     num_pixel_modes = 0;
-    
+
     /* always enable the 8-bit gray levels pixel mode                */
     /* even if its display is emulated through a constrained palette */
     /* or another color mode                                         */
@@ -177,45 +177,45 @@
 
       formats = XListPixmapFormats( display, &count );
       format  = formats;
-       
+
 #ifdef TEST
       printf( "available pixmap formats\n" );
       printf( "depth  pixbits  scanpad\n" );
 #endif
-       
+
       while ( count-- > 0 )
       {
-#ifdef TEST 
+#ifdef TEST
         printf( " %3d     %3d      %3d\n",
                 format->depth,
                 format->bits_per_pixel,
                 format->scanline_pad );
 #endif
-      
+
         if ( format->depth == 1 )
           /* usually, this should be the first format */
           add_pixel_mode( gr_pixel_mode_mono, format );
-          
+
         else if ( format->depth == 8 )
           add_pixel_mode( gr_pixel_mode_pal8, format );
 
-        /* note, the 32-bit modes return a depth of 24, and 32 bits per pixel */          
+        /* note, the 32-bit modes return a depth of 24, and 32 bits per pixel */
         else if ( format->depth == 24 )
         {
-#ifdef TEST 
+#ifdef TEST
           {
             int           count2;
             XVisualInfo*  visuals;
             XVisualInfo*  visual;
             const char*  string = "unknown";
-    
+
             template.depth = format->depth;
             visuals        = XGetVisualInfo( display,
                                              VisualDepthMask,
                                              &template,
                                              &count2 );
             visual = visuals;
-            
+
             switch (visual->class)
             {
               case TrueColor:   string = "TrueColor";    break;
@@ -234,15 +234,15 @@
                     visual->bits_per_rgb,
                     string );
             visual++;
-          }        
+          }
 #endif
           if ( format->bits_per_pixel == 24 )
             add_pixel_mode( gr_pixel_mode_rgb24, format );
-            
+
           else if ( format->bits_per_pixel == 32 )
             add_pixel_mode( gr_pixel_mode_rgb32, format );
         }
-          
+
         else if ( format->depth == 16 )
         {
           int           count2;
@@ -255,12 +255,12 @@
                                            &template,
                                            &count2 );
           visual = visuals;
-          
+
           while ( count2-- > 0 )
           {
-#ifdef TEST 
+#ifdef TEST
             const char*  string = "unknown";
-            
+
             switch (visual->class)
             {
               case TrueColor:   string = "TrueColor";    break;
@@ -278,34 +278,34 @@
                     visual->colormap_size,
                     visual->bits_per_rgb,
                     string );
-                    
+
 #endif
             if ( visual->red_mask   == 0xf800 &&
                  visual->green_mask == 0x07e0 &&
                  visual->blue_mask  == 0x001f )
               add_pixel_mode( gr_pixel_mode_rgb565, format );
-              
+
             else if ( visual->red_mask   == 0x7c00 &&
                       visual->green_mask == 0x03e0 &&
                       visual->blue_mask  == 0x001f )
               add_pixel_mode( gr_pixel_mode_rgb555, format );
-              
-            /* other 16-bit modes are ignored */  
+
+            /* other 16-bit modes are ignored */
             visual++;
           }
-          
+
           XFree( visuals );
         }
-        
+
         format++;
       }
-      
+
       XFree( formats );
     }
-    
+
     gr_x11_device.num_pixel_modes = num_pixel_modes;
     gr_x11_device.pixel_modes     = pixel_modes;
-    
+
     return 0;
   }
 
@@ -327,13 +327,13 @@
     byte*      write   = (byte*)target->buffer + y*target->pitch + x;
     byte*      read    = (byte*)source->buffer + y*source->pitch + x;
     XColor*    palette = surface->color;
-    
+
     while (h > 0)
     {
       byte*  _write = write;
       byte*  _read  = read;
       byte*  limit  = _write + w;
-      
+
       for ( ; _write < limit; _write++, _read++ )
         *_write = (byte) palette[ *_read ].pixel;
 
@@ -356,13 +356,13 @@
     byte*      write   = (byte*)target->buffer + y*target->pitch + 2*x;
     byte*      read    = (byte*)source->buffer + y*source->pitch + x;
     XColor*    palette = surface->color;
-    
+
     while (h > 0)
     {
       byte*  _write = write;
       byte*  _read  = read;
       byte*  limit  = _write + 2*w;
-      
+
       for ( ; _write < limit; _write += 2, _read++ )
         *(short*)_write = (short)palette[ *_read ].pixel;
 
@@ -384,17 +384,17 @@
     grBitmap*  source  = &surface->root.bitmap;
     byte*      write   = (byte*)target->buffer + y*target->pitch + 3*x;
     byte*      read    = (byte*)source->buffer + y*source->pitch + x;
-    
+
     while (h > 0)
     {
       byte*  _write = write;
       byte*  _read  = read;
       byte*  limit  = _write + 3*w;
-      
+
       for ( ; _write < limit; _write += 3, _read++ )
       {
         XColor*   color = surface->color + *_read;
-       
+
         _write[0] = color->red;
         _write[1] = color->green;
         _write[2] = color->blue;
@@ -418,13 +418,13 @@
     grBitmap*  source  = &surface->root.bitmap;
     byte*      write   = (byte*)target->buffer + y*target->pitch + 4*x;
     byte*      read    = (byte*)source->buffer + y*source->pitch + x;
-    
+
     while (h > 0)
     {
       byte*  _write = write;
       byte*  _read  = read;
       byte*  limit  = _write + 4*w;
-      
+
       for ( ; _write < limit; _write += 4, _read++ )
       {
         byte  color = *_read;
@@ -447,28 +447,28 @@
                            int          h )
   {
     int  z;
-    
+
     /* first of all, clip to the surface's area */
     if ( x   >= surface->image.width ||
          x+w <= 0                    ||
          y   >= surface->image.rows  ||
          y+h <= 0 )
       return;
- 
+
     if ( x < 0 )
     {
       w += x;
       x  = 0;
     }
- 
+
     z = (x + w) - surface->image.width;
     if (z > 0)
       w -= z;
-      
+
     z = (y + h) - surface->image.rows;
     if (z > 0)
       h -= z;
-      
+
     /* convert the rectangle to the target depth for gray surfaces */
     if (surface->gray)
     {
@@ -480,7 +480,7 @@
         case 32: convert_gray_to_32  ( surface, x, y, w, h ); break;
       }
     }
-  } 
+  }
 
 
   static
@@ -492,7 +492,7 @@
   {
     if (surface->gray)
       convert_rectangle( surface, x, y, w, h );
-    
+
     XPutImage( display,
                surface->win,
                surface->gc,
@@ -500,7 +500,7 @@
                x, y, x, y, w, h );
   }
 
-  
+
   static
   void  set_title( grXSurface*  surface,
                    const char*  title )
@@ -535,7 +535,7 @@
 
 
 
-  static  
+  static
   void  listen_event( grXSurface*  surface,
                       int          event_mask,
                       grEvent*     grevent )
@@ -565,7 +565,7 @@
 
       switch ( x_event.type )
       {
-      case KeyPress: 
+      case KeyPress:
         key_number = XLookupString( &x_event.xkey,
                                     key_buffer,
                                     sizeof ( key_buffer ),
@@ -579,7 +579,7 @@
           /* this may be a special key like F1, F2, etc.. */
           grkey = KeySymTogrKey(key);
           if (grkey != grKeyNone)
-            goto Set_Key;  
+            goto Set_Key;
         }
         else
           bool_exit = 1;
@@ -588,7 +588,7 @@
       case MappingNotify:
         XRefreshKeyboardMapping( &x_event.xmapping );
         break;
-      
+
       case Expose:
         refresh_rectangle( surface,
                            x_event.xexpose.x,
@@ -608,7 +608,7 @@
     /* If this wasn't part of the simple translated keys, simply get the charcode */
     /* from the character buffer                                                  */
     grkey = grKEY(key_buffer[key_cursor++]);
-      
+
   Set_Key:
     grevent->type = gr_key_down;
     grevent->key  = grkey;
@@ -625,12 +625,12 @@
     char       grays;
     XDepth*    format;
     int        image_depth;
-    
+
     screen = DefaultScreen( display );
-    
+
     surface->colormap = DefaultColormap( display, screen );
     surface->depth    = DefaultDepth( display, screen );
-    surface->visual   = DefaultVisual( display, screen ); 
+    surface->visual   = DefaultVisual( display, screen );
 
     image  = &surface->image;
 
@@ -644,7 +644,7 @@
               bitmap->grays >= 2 );
 
     surface->gray = grays;
- 
+
     /* copy dimensions */
     image->width  = bitmap->width;
     image->rows   = bitmap->rows;
@@ -656,7 +656,7 @@
     /* find the supported format corresponding to the request */
     format = 0;
 
-    if (grays)    
+    if (grays)
     {
       /* choose the default depth in case of grays rendering */
       int  i;
@@ -672,7 +672,7 @@
     {
       /* otherwise, select the format depending on the pixel mode */
       int  i;
-      
+
       format = 0;
       for ( i = 0; i < num_pixel_modes; i++ )
         if ( pixel_modes[i] == bitmap->mode )
@@ -682,7 +682,7 @@
           break;
         }
     }
-    
+
     if (!format)
     {
       grError = gr_err_bad_argument;
@@ -695,17 +695,17 @@
     if ( format->depth          == 24 &&
          format->bits_per_pixel == 32 )
       image_depth = 32;
-     
+
     /* allocate surface image */
     {
       int  bits, over;
 
       bits = image->width * format->bits_per_pixel;
       over = bits % format->scanline_pad;
-          
+
       if (over)
         bits += format->scanline_pad - over;
-      
+
       if (!grays)
       {
         image->width  = bits;
@@ -733,9 +733,9 @@
     }
 
     surface->root.bitmap = *bitmap;
- 
+
     /* Now create the surface X11 image */
-    surface->ximage = XCreateImage( display, 
+    surface->ximage = XCreateImage( display,
                                     surface->visual,
                                     format->depth,
                                     format->depth == 1 ? XYBitmap : ZPixmap,
@@ -747,20 +747,20 @@
                                     0 );
     if ( !surface->ximage )
       Panic( "grX11: cannot create surface X11 image\n" );
- 
+
 
     /* allocate gray levels in the case of gray surface */
     if ( grays )
     {
       XColor*  color = surface->color;
       int      i;
-      
+
       for ( i = 0; i < bitmap->grays; i++, color++ )
       {
         color->red   =
         color->green =
         color->blue  = 65535 - ( i * 65535 ) / bitmap->grays;
-  
+
         if ( !XAllocColor( display, surface->colormap, color ) )
           Panic( "ERROR: cannot allocate Color\n" );
       }
@@ -775,13 +775,13 @@
         XTextProperty         xtp;
         XSizeHints            xsh;
         XSetWindowAttributes  xswa;
-    
+
         xswa.border_pixel     = BlackPixel( display, screen );
         xswa.background_pixel = WhitePixel( display, screen );
         xswa.cursor           = busy;
-    
+
         xswa.event_mask = KeyPressMask | ExposureMask;
-    
+
         surface->win = XCreateWindow( display,
                                       RootWindow( display, screen ),
                                       0,
@@ -790,45 +790,45 @@
                                       image->rows,
                                       10,
                                       surface->depth,
-                                      InputOutput, 
+                                      InputOutput,
                                       surface->visual,
                                       CWBackPixel | CWBorderPixel |
                                         CWEventMask | CWCursor,
                                       &xswa );
-    
+
         XMapWindow( display, surface->win );
- 
+
         surface->gc = XCreateGC( display, RootWindow( display, screen ), 0L, NULL );
         XSetForeground( display, surface->gc, xswa.border_pixel     );
         XSetBackground( display, surface->gc, xswa.background_pixel );
-    
-    
+
+
         /* make window manager happy :-) */
         xtp.value    = (unsigned char*)"FreeType";
         xtp.encoding = 31;
         xtp.format   = 8;
         xtp.nitems   = strlen( (char*)xtp.value );
-    
+
         xsh.x = 0;
         xsh.y = 0;
-    
+
         xsh.width  = image->width;
         xsh.height = image->rows;
         xsh.flags  = (PPosition | PSize);
         xsh.flags  = 0;
-    
+
         XSetWMProperties( display, surface->win, &xtp, &xtp, NULL, 0, &xsh, NULL, NULL );
     }
-    
+
     surface->root.done         = (grDoneSurfaceFunc) done_surface;
     surface->root.refresh_rect = (grRefreshRectFunc) refresh_rectangle;
     surface->root.set_title    = (grSetTitleFunc)    set_title;
     surface->root.listen_event = (grListenEventFunc) listen_event;
-    
+
     convert_rectangle( surface, 0, 0, bitmap->width, bitmap->rows );
     return surface;
   }
-  
+
 
 
 
@@ -836,15 +836,15 @@
   {
     sizeof( grXSurface ),
     "x11",
-    
+
     init_device,
     done_device,
-    
+
     (grDeviceInitSurfaceFunc) init_surface,
-    
+
     0,
     0
-    
+
   };
 
 #ifdef TEST
@@ -875,7 +875,7 @@
   { grKeyEsc,  "Esc" },
   { grKeyHome, "Home" },
   { grKeyEnd,  "End"  },
-    
+
   { grKeyPageUp,   "Page_Up" },
   { grKeyPageDown, "Page_Down" },
   { grKeyLeft,     "Left" },
@@ -891,7 +891,7 @@
 {
   grSurface*  surface;
   int         n;
-  
+
   grInit();
   surface = grNewScreenSurface( 0, gr_pixel_mode_gray, 320, 400, 128 );
   if (!surface)
@@ -902,10 +902,10 @@
     grEvent      event;
     const char*  string;
     int          x;
-    
+
     grSetSurfaceRefresh( surface, 1 );
     grSetTitle(surface,"X11 driver demonstration" );
-    
+
     for ( x = -10; x < 10; x++ )
     {
       for ( n = 0; n < 128; n++ )
@@ -919,15 +919,15 @@
     }
     color.value = 64;
     grWriteCellString( surface, 0, 0, "just an example", color );
-    
+
     do
     {
       listen_event((grXSurface*)surface, 0, &event);
-    
+
       /* return if ESC was pressed */
       if ( event.key == grKeyEsc )
         return 0;
-      
+
       /* otherwise, display key string */
       color.value = (color.value + 8) & 127;
       {
@@ -936,7 +936,7 @@
         grKeyName*  limit = name + count;
         const char* kname  = 0;
         char        kname_temp[16];
-      
+
         while (name < limit)
         {
           if ( name->key == event.key )
@@ -946,23 +946,23 @@
           }
           name++;
         }
-      
+
         if (!kname)
         {
           sprintf( kname_temp, "char '%c'", (char)event.key );
           kname = kname_temp;
         }
-        
+
         grWriteCellString( surface, 30, 30, kname, color );
         grRefreshSurface(surface);
         paint_rectangle( surface, 0, 0, surface->bitmap.width, surface->bitmap.rows );
       }
     } while (1);
   }
-    
+
   return 0;
-  
-  
+
+
 }
 #endif /* O */
 #endif /* TEST */
diff --git a/demos/graph/xtest.c b/demos/graph/xtest.c
index 4c6295e..7bc806b 100644
--- a/demos/graph/xtest.c
+++ b/demos/graph/xtest.c
@@ -37,7 +37,7 @@
   { grKeyEsc,  "Esc" },
   { grKeyHome, "Home" },
   { grKeyEnd,  "End"  },
-    
+
   { grKeyPageUp,   "Page_Up" },
   { grKeyPageDown, "Page_Down" },
   { grKeyLeft,     "Left" },
@@ -52,7 +52,7 @@
 {
   grSurface*  surface;
   int         n;
-  
+
   grInit();
   surface = grNewScreenSurface( 0, gr_pixel_mode_gray, 320, 400, 128 );
   if (!surface)
@@ -63,10 +63,10 @@
     grEvent      event;
     const char*  string;
     int          x;
-    
+
     grSetSurfaceRefresh( surface, 1 );
     grSetTitle(surface,"X11 driver demonstration" );
-    
+
     for ( x = -10; x < 10; x++ )
     {
       for ( n = 0; n < 128; n++ )
@@ -80,15 +80,15 @@
     }
     color.value = 64;
     grWriteCellString( surface, 0, 0, "just an example", color );
-    
+
     do
     {
       grListenSurface( surface, 0, &event);
-    
+
       /* return if ESC was pressed */
       if ( event.key == grKeyEsc )
         return 0;
-      
+
       /* otherwise, display key string */
       color.value = (color.value + 8) & 127;
       {
@@ -97,7 +97,7 @@
         grKeyName*  limit = name + count;
         const char* kname  = 0;
         char        kname_temp[16];
-      
+
         while (name < limit)
         {
           if ( name->key == event.key )
@@ -107,13 +107,13 @@
           }
           name++;
         }
-      
+
         if (!kname)
         {
           sprintf( kname_temp, "char '%c'", (char)event.key );
           kname = kname_temp;
         }
-        
+
         grWriteCellString( surface, 30, 30, kname, color );
         grRefreshSurface(surface);
       }
diff --git a/demos/src/common.c b/demos/src/common.c
index fe59e9b..0c96347 100644
--- a/demos/src/common.c
+++ b/demos/src/common.c
@@ -209,7 +209,7 @@
     current = name;
 
     c = *current;
-  
+
     while ( c )
     {
 #ifndef macintosh
diff --git a/demos/src/compos.c b/demos/src/compos.c
index 2ae0b0f..976d4ab 100644
--- a/demos/src/compos.c
+++ b/demos/src/compos.c
@@ -56,7 +56,7 @@
   }
 
 
-  int  main( int  argc, char**  argv ) 
+  int  main( int  argc, char**  argv )
   {
     int           i, file_index;
     unsigned int  id;
@@ -112,7 +112,7 @@
           fname = filename + i + 1;
           i = -1;
         }
-        else 
+        else
           i--;
 
       printf( "%s:\n", fname );
@@ -136,7 +136,7 @@
         for ( id = 0; id < num_glyphs; id++ )
         {
           int  has_scale;
-          
+
           error = FT_Load_Glyph( face, id, FT_LOAD_NO_RECURSE );
           if (!error && slot->format == ft_glyph_format_composite)
           {
@@ -150,19 +150,19 @@
                             FT_SUBGLYPH_FLAG_SCALE |
                             FT_SUBGLYPH_FLAG_XY_SCALE |
                             FT_SUBGLYPH_FLAG_2X2 );
-              
+
               printf( " [%d%c",
                       subg->index,
                       subg->flags & FT_SUBGLYPH_FLAG_USE_MY_METRICS ? '*' : ' ' );
-                      
+
               if ( subg->arg1|subg->arg2 )
               {
-                if ( subg->flags & FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES ) 
+                if ( subg->flags & FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES )
                   printf( "(%d,%d)", subg->arg1, subg->arg2 );
                 else
                   printf( "<%d,%d>", subg->arg1, subg->arg2 );
               }
-                
+
               if (has_scale)
                 printf( "-{%0.3f %0.3f %0.3f %0.3f}",
                         subg->transform.xx/65536.0,
diff --git a/demos/src/ftlint.c b/demos/src/ftlint.c
index 5066906..3df69e0 100644
--- a/demos/src/ftlint.c
+++ b/demos/src/ftlint.c
@@ -56,7 +56,7 @@
   }
 
 
-  int  main( int  argc, char**  argv ) 
+  int  main( int  argc, char**  argv )
   {
     int           i, file_index;
     unsigned int  id;
@@ -115,7 +115,7 @@
           fname = filename + i + 1;
           i = -1;
         }
-        else 
+        else
           i--;
 
       printf( "%s: ", fname );
diff --git a/demos/src/ftsbit.c b/demos/src/ftsbit.c
index 14f3553..11e3108 100644
--- a/demos/src/ftsbit.c
+++ b/demos/src/ftsbit.c
@@ -115,14 +115,14 @@
   }
 
 
-  
+
   static
   void  dump_range( FT_GlyphSlot  glyph,
                     int           first_glyph,
                     int           last_glyph )
   {
     int  i;
-    
+
     for ( i = first_glyph; i <= last_glyph; i++ )
     {
       error = FT_Load_Glyph( glyph,
@@ -137,7 +137,7 @@
                 TT_ErrToString18( error ) );
         continue;
       }
-      
+
       dump_bitmap(glyph,i);
     }
   }
@@ -270,7 +270,7 @@
         char*  base = argv[i];
         char*  cur  = base;
         int    first, last;
-        
+
         while (*cur)
         {
           if (*cur == '-')
@@ -285,14 +285,14 @@
         {
           if ( sscanf( argv[i], "%d-%d", &first, &last ) != 2 )
             Usage( execname );
-            
+
           dump_range( glyph, first, last );
         }
         else
         {
           if ( sscanf( argv[i], "%d", &first ) != 1 )
             Usage( execname );
-            
+
           dump_range( glyph, first, first );
         }
       }
diff --git a/demos/src/ftstring.c b/demos/src/ftstring.c
index 859fcfe..c0c1349 100644
--- a/demos/src/ftstring.c
+++ b/demos/src/ftstring.c
@@ -37,7 +37,7 @@
   static char* new_header = 0;
 
   static char*  Text = "The quick brown fox jumps over the lazy dog";
-  
+
   static FT_Library    library;      /* the FreeType library            */
   static FT_Face       face;         /* the font face                   */
   static FT_Error      error;        /* error returned by FreeType ?    */
@@ -49,7 +49,7 @@
   static int  Num;
   static int  Rotation = 0;
   static int  Fail;
-  
+
   static int  hinted    = 1;       /* is glyph hinting active ?    */
   static int  antialias = 1;       /* is anti-aliasing active ?    */
   static int  use_sbits = 1;       /* do we use embedded bitmaps ? */
@@ -68,7 +68,7 @@
 
   static FT_Matrix      trans_matrix;
   static int            transform = 0;
-  
+
   static FT_Vector      string_center;
 
   typedef struct TGlyph_
@@ -76,7 +76,7 @@
     FT_UInt    glyph_index;    /* glyph index in face      */
     FT_Vector  pos;            /* position of glyph origin */
     FT_Glyph   image;          /* glyph image              */
-  
+
   } TGlyph, *PGlyph;
 
 #define FLOOR(x)  ((x) & -64)
@@ -176,7 +176,7 @@
   static void  clear_display( void )
   {
     long  size = (long)bit.pitch * bit.rows;
-    
+
     if (size < 0) size = -size;
     memset( bit.buffer, 0, size );
   }
@@ -192,7 +192,7 @@
                                     res );
     return FT_Err_Ok;
   }
-  
+
 
  /**************************************************************
   *
@@ -204,17 +204,17 @@
     PGlyph  glyph = glyphs;
     FT_BBox bbox;
     int     n;
-    
+
     bbox.xMin = 32000; bbox.xMax = -32000;
     bbox.yMin = 32000; bbox.yMax = -32000;
-    
+
     for ( n = 0; n < num_glyphs; n++, glyph++ )
     {
       FT_BBox  cbox;
       FT_Pos   x, y;
-      
+
       if (!glyph->image) continue;
-      
+
       x = glyph->pos.x >> 6;
       y = glyph->pos.y >> 6;
 
@@ -224,7 +224,7 @@
       cbox.yMin += y;
       cbox.xMax += x;
       cbox.yMax += y;
-      
+
       if (cbox.xMin < bbox.xMin) bbox.xMin = cbox.xMin;
       if (cbox.xMax > bbox.xMax) bbox.xMax = cbox.xMax;
       if (cbox.yMin < bbox.yMin) bbox.yMin = cbox.yMin;
@@ -253,11 +253,11 @@
     load_flags = FT_LOAD_DEFAULT;
     if( !hinted )
       load_flags |= FT_LOAD_NO_HINTING;
-      
+
     num_grays = 128;
     if (!antialias)
       num_grays = 0;
-    
+
     for ( n = 0; n < num_glyphs; n++, glyph++ )
     {
       /* compute glyph origin */
@@ -266,11 +266,11 @@
         if (prev_index)
         {
           FT_Vector  kern;
-          
+
           FT_Get_Kerning( face, prev_index, glyph->glyph_index, &kern );
           kern.x = FT_MulFix( kern.x, face->size->metrics.x_scale );
           if (hinted) kern.x = (kern.x+32) & -64;
-          
+
           origin_x += kern.x;
         }
         prev_index = glyph->glyph_index;
@@ -285,7 +285,7 @@
       /* clear existing image if there is one */
       if (glyph->image)
         FT_Done_Glyph(glyph->image);
-    
+
       /* load the glyph image                       */
       /* for now, we take a monochrome glyph bitmap */
       error = FT_Get_Glyph_Bitmap( face, glyph->glyph_index,
@@ -294,9 +294,9 @@
                                    &origin,
                                    (FT_BitmapGlyph*)&glyph->image );
       if (error) continue;
-      
+
       glyph->pos = origin;
-      
+
       origin_x  += glyph->image->advance;
     }
     string_center.x = origin_x / 2;
@@ -315,12 +315,12 @@
     PGlyph    glyph = glyphs;
     grBitmap  bit3;
     int       n;
-    
+
     for ( n = 0; n < num_glyphs; n++, glyph++ )
     {
       if (!glyph->image)
         continue;
-        
+
       switch (glyph->image->glyph_type)
       {
         case ft_glyph_type_bitmap:
@@ -329,42 +329,42 @@
             FT_BitmapGlyph  bitm   = (FT_BitmapGlyph)glyph->image;
             FT_Bitmap*      source = &bitm->bitmap;
             FT_Pos          x_top, y_top;
-            
+
             bit3.rows   = source->rows;
             bit3.width  = source->width;
             bit3.pitch  = source->pitch;
             bit3.buffer = source->buffer;
-            
+
             switch (source->pixel_mode)
             {
               case ft_pixel_mode_mono:
                 bit3.mode  = gr_pixel_mode_mono;
                 break;
-                
+
               case ft_pixel_mode_grays:
                 bit3.mode  = gr_pixel_mode_gray;
                 bit3.grays = source->num_grays;
                 break;
-              
+
               default:
                 continue;
             }
-            
+
             /* now render the bitmap into the display surface */
             x_top = x + (glyph->pos.x >> 6) + bitm->left;
             y_top = y - (glyph->pos.y >> 6) - bitm->top;
             grBlitGlyphToBitmap( &bit, &bit3, x_top, y_top, fore_color );
           }
           break;
-#if 0        
+#if 0
         case ft_glyph_type_outline:
           {
             /* in the case of outlines, we directly render it into the */
             /* target surface with the smooth renderer..               */
             FT_OutlineGlyph  out = (FT_OutlineGlyph)glyph->image;
-            
+
             FT_Outline_Translate( (x+pen_pos[n]) << 6, (y+
-            error = FT_Outline_Render( 
+            error = FT_Outline_Render(
           }
           break;
 #endif
@@ -387,7 +387,7 @@
     const unsigned char*  p     = (const unsigned char*)string;
     PGlyph                glyph = glyphs;
     FT_UInt               glyph_index;
-    
+
     num_glyphs = 0;
     while (*p)
     {
@@ -399,7 +399,7 @@
         break;
       p++;
     }
-  }  
+  }
 
 
   static void  reset_transform( void )
@@ -407,13 +407,13 @@
     double    angle   = Rotation*3.14159/64.0;
     FT_Fixed  cosinus = (FT_Fixed)(cos(angle)*65536.0);
     FT_Fixed  sinus   = (FT_Fixed)(sin(angle)*65536.0);
-    
+
     transform       = (angle != 0);
     trans_matrix.xx = cosinus;
     trans_matrix.xy = -sinus;
     trans_matrix.yx = sinus;
     trans_matrix.yy = cosinus;
-    
+
     FT_Set_Transform(face,&trans_matrix, 0);
   }
 
@@ -437,7 +437,7 @@
     grGotoxy( 0, 0 );
     grSetMargin( 2, 1 );
     grGotobitmap( &bit );
-    
+
     grWriteln("FreeType String Viewer - part of the FreeType test suite" );
     grLn();
     grWriteln("This program is used to display a string of text using" );
@@ -462,7 +462,7 @@
     grWriteln("  F8        : big rotate clockwise");
     grLn();
     grWriteln("press any key to exit this help screen");
-        
+
     grRefreshSurface( surface );
     grListenSurface( surface, gr_event_key, &dummy_event );
   }
@@ -471,11 +471,11 @@
   static void  reset_raster( void )
   {
     FT_Error  error;
-    
+
     error = 1;
     if ( use_grays && antialias )
       error = FT_Set_Raster( library, &ft_grays_raster );
-      
+
     if (error)
       (void)FT_Set_Raster( library, &std_raster );
   }
@@ -484,7 +484,7 @@
   static int  Process_Event( grEvent*  event )
   {
     int  i;
-    
+
     switch ( event->key )
     {
     case grKeyEsc:            /* ESC or q */
@@ -497,7 +497,7 @@
                    ? "kerning is now active"
                    : "kerning is now ignored" );
       return 1;
-      
+
     case grKEY('a'):
       antialias = !antialias;
       new_header = ( antialias
@@ -512,7 +512,7 @@
                    ? "embedded bitmaps are now used when available"
                    : "embedded bitmaps are now ignored" );
       return 1;
-      
+
     case grKEY('n'):
     case grKEY('p'):
       return (int)event->key;
@@ -524,7 +524,7 @@
                    : "now using the standard anti-aliaser" );
       reset_raster();
       break;
-                   
+
     case grKEY('h'):
       hinted = !hinted;
       new_header = ( hinted
@@ -575,13 +575,13 @@
     if (ptsize > MAXPTSIZE) ptsize = MAXPTSIZE;
     return 1;
 
-#if 0    
+#if 0
   Do_Glyph:
     Num += i;
     if (Num < 0)           Num = 0;
     if (Num >= num_glyphs) Num = num_glyphs-1;
     return 1;
-#endif    
+#endif
   }
 
 
@@ -614,7 +614,7 @@
   }
 
 
-  int  main( int  argc, char**  argv ) 
+  int  main( int  argc, char**  argv )
   {
     int    i, old_ptsize, orig_ptsize, file;
     int    first_glyph = 0;
@@ -627,7 +627,7 @@
 
     FT_Error  error;
     grEvent   event;
- 
+
     execname = ft_basename( argv[0] );
 
     while ( 1 )
@@ -650,7 +650,7 @@
           usage( execname );
         Text = optarg;
         break;
-        
+
       default:
         usage( execname );
         break;
@@ -686,7 +686,7 @@
     {
       if ( argv[file][i] == '.' )
         i = 0;
-      i--; 
+      i--;
     }
 #endif
 
@@ -713,10 +713,10 @@
     prepare_text( (unsigned char*)Text );
 
     file_loaded++;
-    
+
     error = reset_scale( ptsize );
     if (error) goto Display_Font;
-        
+
   Display_Font:
     /* initialise graphics if needed */
     if ( !XisSetup )
@@ -724,7 +724,7 @@
       XisSetup = 1;
       init_display();
     }
-  
+
     grSetTitle( surface, "FreeType String Viewer - press F1 for help" );
     old_ptsize = ptsize;
 
@@ -732,10 +732,10 @@
     {
       Fail = 0;
       Num  = first_glyph;
-    
+
       if ( Num >= num_glyphs )
         Num = num_glyphs-1;
-      
+
       if ( Num < 0 )
         Num = 0;
     }
@@ -751,7 +751,7 @@
         /* layout & render string */
         {
           FT_BBox  bbox;
-          
+
           reset_transform();
           layout_glyphs();
           compute_bbox( &bbox );
@@ -766,7 +766,7 @@
 
         if (!new_header)
           new_header = Header;
-              
+
         grWriteCellString( &bit, 0, 0, new_header, fore_color );
         new_header = 0;
 
@@ -782,7 +782,7 @@
 
       grWriteCellString( &bit, 0, 8, Header, fore_color );
       grRefreshSurface( surface );
-      
+
       grListenSurface( surface, 0, &event );
       if ( !( key = Process_Event( &event ) ) )
         goto Fin;
@@ -791,7 +791,7 @@
       {
         if (file_loaded >= 1)
           FT_Done_Face( face );
-          
+
         if ( file < argc - 1 )
           file++;
 
@@ -802,7 +802,7 @@
       {
         if (file_loaded >= 1)
           FT_Done_Face( face );
-          
+
         if ( file > 1 )
           file--;
 
diff --git a/demos/src/fttimer.c b/demos/src/fttimer.c
index 78a3ec0..5e057db 100644
--- a/demos/src/fttimer.c
+++ b/demos/src/fttimer.c
@@ -63,7 +63,7 @@
   int             cur_glyph;
   int             cur_point;
   unsigned short  cur_contour;
-  
+
   int             pixel_size   = CHARSIZE;
   int             repeat_count = 1;
   int             use_grays    = 0;
@@ -80,7 +80,7 @@
   short  antialias; /* smooth fonts with gray levels  */
   short  force_low;
 
-  
+
 #define RASTER_BUFF_SIZE   128000
   char     raster_buff[ RASTER_BUFF_SIZE ];
 
@@ -176,8 +176,8 @@
 
     /* create a new outline */
     FT_Outline_New( library,
-                    glyph->outline.n_points, 
-                    glyph->outline.n_contours, 
+                    glyph->outline.n_points,
+                    glyph->outline.n_contours,
                     &outlines[cur_glyph] );
 
     /* copy the glyph outline into it */
@@ -190,7 +190,7 @@
     /* center outline around 0 */
     {
       FT_BBox  bbox;
-      
+
       FT_Outline_Get_CBox( &glyph->outline, &bbox );
       FT_Outline_Translate( &outlines[cur_glyph],
                             - ( bbox.xMax - bbox.xMin )/2,
@@ -265,7 +265,7 @@
       case 'a':
         use_grays = 1;
         break;
-        
+
       case 'l':
         force_low = 1;
         break;
@@ -334,7 +334,7 @@
       error = FT_Set_Raster( library, &ft_grays_raster );
       if (error) Panic( "Could not initialize smooth anti-aliasing renderer" );
     }
-    
+
     /* Load face */
 
     error = FT_New_Face( library, filename, 0, &face );
@@ -347,7 +347,7 @@
 
     num_glyphs = face->num_glyphs;
     glyph      = face->glyph;
-        
+
     tab_glyphs = MAX_GLYPHS;
     if ( tab_glyphs > num_glyphs )
       tab_glyphs = num_glyphs;
@@ -361,12 +361,12 @@
     bit.width = 640;
     bit.rows  = 480;
     bit.grays = 128;
- 
+
     if ( visual )
     {
       if ( !grInitDevices() )
         Panic( "Could not initialize graphics.\n" );
-        
+
       surface = grNewSurface( 0, &bit );
       if (!surface)
         Panic( "Could not open graphics window/screen.\n" );
@@ -398,12 +398,12 @@
     while ( total > 0 )
     {
       int  repeat;
-      
+
       /* First, preload 'tab_glyphs' in memory */
       cur_glyph   = 0;
       cur_point   = 0;
       cur_contour = 0;
-  
+
       printf( "loading %d glyphs", tab_glyphs );
 
       for ( Num = 0; Num < tab_glyphs; Num++ )
@@ -417,7 +417,7 @@
 
       base += tab_glyphs;
 
-      if ( tab_glyphs > total ) 
+      if ( tab_glyphs > total )
         tab_glyphs = total;
 
       printf( ", rendering... " );
@@ -432,7 +432,7 @@
         {
           if ( (error = ConvertRaster( Num )) )
             Fail++;
-            
+
           else
   	  {
             rendered_glyphs ++;
@@ -468,7 +468,7 @@
     printf( "rendered glyphs  = %d\n", rendered_glyphs );
     printf( "render time      = %f s\n", (double)t0 / 10000 );
     printf( "fails            = %d\n", Fail );
-    printf( "average glyphs/s = %f\n", 
+    printf( "average glyphs/s = %f\n",
              (double)rendered_glyphs / t0 * 10000 );
 
     printf( "total timing     = %f s\n", (double)tz0 / 10000 );
diff --git a/demos/src/fttry.c b/demos/src/fttry.c
index 1dd878e..c0b9cac 100644
--- a/demos/src/fttry.c
+++ b/demos/src/fttry.c
@@ -53,7 +53,7 @@
     exit(1);
   }
 
-  int  main( int  argc, char**  argv ) 
+  int  main( int  argc, char**  argv )
   {
     int           i, file_index, glyph_index;
     char          filename[128 + 4];
@@ -119,7 +119,7 @@
           fname = filename + i + 1;
           i = -1;
         }
-        else 
+        else
           i--;
 
       printf( "%s: ", fname );
@@ -132,7 +132,7 @@
 
       error = FT_Set_Char_Size( face, ptsize << 6, 0, 0, 0 );
       if (error) Panic( "Could not set character size" );
-      
+
       error = FT_Load_Glyph( face,
                              glyph_index,
                              load_unscaled ? FT_LOAD_NO_SCALE
diff --git a/demos/src/ftview.c b/demos/src/ftview.c
index 3448e86..dca3a69 100644
--- a/demos/src/ftview.c
+++ b/demos/src/ftview.c
@@ -49,7 +49,7 @@
   FT_Face       face;         /* the font face                   */
   FT_Size       size;         /* the font size                   */
   FT_GlyphSlot  glyph;        /* the glyph slot                  */
-  
+
   FT_Error      error;        /* error returned by FreeType ?    */
 
   grSurface*     surface;     /* current display surface         */
@@ -57,7 +57,7 @@
 
   int  num_glyphs;            /* number of glyphs */
   int  ptsize;                /* current point size */
-  
+
   int  hinted      = 1;       /* is glyph hinting active ?    */
   int  antialias   = 0;       /* is anti-aliasing active ?    */
   int  use_sbits   = 1;       /* do we use embedded bitmaps ? */
@@ -146,7 +146,7 @@
 
   static
   char   bit_buffer[ MAX_BUFFER ];
-  
+
   /* Render a single glyph with the "grays" component */
   static FT_Error  Render_Glyph( int  x_offset,
                                  int  y_offset )
@@ -161,19 +161,19 @@
     left  = FLOOR( glyph->metrics.horiBearingX );
     right = CEIL( glyph->metrics.horiBearingX + glyph->metrics.width );
     width = TRUNC(right - left);
-    
+
     top    = CEIL( glyph->metrics.horiBearingY );
     bottom = FLOOR( glyph->metrics.horiBearingY - glyph->metrics.height );
     height = TRUNC( top - bottom );
 
     if ( glyph->format == ft_glyph_format_outline )
-    {    
+    {
       pitch  = ( antialias ? (width+3) & -4 : (width+7) >> 3 );
-      size   = pitch*height; 
+      size   = pitch*height;
 
       if (size > MAX_BUFFER)
         return FT_Err_Out_Of_Memory;
-    
+
       bit2.width      = width;
       bit2.rows       = height;
       bit2.pitch      = pitch;
@@ -192,7 +192,7 @@
 
       if (low_prec)
         glyph->outline.flags &= ~ft_outline_high_precision;
-      
+
       error = FT_Outline_Get_Bitmap( library, &glyph->outline, &bit2 );
     }
     else
@@ -230,14 +230,14 @@
     }
     return FT_Err_Ok;
   }
-  
+
 
   static FT_Error  LoadChar( int  idx, int  hint )
   {
     int  flags;
 
     flags = FT_LOAD_DEFAULT;
-    
+
     if ( !hint )
       flags |= FT_LOAD_NO_HINTING;
 
@@ -287,7 +287,7 @@
           LOG(( "-------------------------\n"));
         }
         #endif
-        
+
         Render_Glyph( x, y );
 
         x += ( glyph->metrics.horiAdvance >> 6 ) + 1;
@@ -348,7 +348,7 @@
           LOG(( "-------------------------\n"));
         }
         #endif
-        
+
         Render_Glyph( x, y );
 
         x += ( glyph->metrics.horiAdvance >> 6 ) + 1;
@@ -381,7 +381,7 @@
     grGotoxy( 0, 0 );
     grSetMargin( 2, 1 );
     grGotobitmap( &bit );
-    
+
     grWriteln("FreeType Glyph Viewer - part of the FreeType test suite" );
     grLn();
     grWriteln("This program is used to display all glyphs from one or" );
@@ -413,7 +413,7 @@
     grWriteln("  F10       : increment first glyph index by 1000");
     grLn();
     grWriteln("press any key to exit this help screen");
-        
+
     grRefreshSurface( surface );
     grListenSurface( surface, gr_event_key, &dummy_event );
   }
@@ -430,7 +430,7 @@
   static int  Process_Event( grEvent*  event )
   {
     int  i;
-    
+
     switch ( event->key )
     {
     case grKeyEsc:            /* ESC or q */
@@ -451,7 +451,7 @@
                    ? "embedded bitmaps are now used when available"
                    : "embedded bitmaps are now ignored" );
       return 1;
-      
+
     case grKEY('n'):
     case grKEY('p'):
       return (int)event->key;
@@ -463,14 +463,14 @@
                    : "now using the standard anti-aliaser" );
       reset_raster();
       break;
-                   
+
     case grKEY('l'):
       low_prec = !low_prec;
       new_header = ( low_prec
                    ? "rendering precision is now forced to low"
                    : "rendering precision is now normal" );
       break;
-      
+
     case grKEY('h'):
       hinted = !hinted;
       new_header = ( hinted
@@ -515,7 +515,7 @@
     }
     return 1;
 
-#if 0    
+#if 0
   Do_Rotate:
     Rotation = (Rotation + i) & 1023;
     return 1;
@@ -526,7 +526,7 @@
     if (ptsize < 1)         ptsize = 1;
     if (ptsize > MAXPTSIZE) ptsize = MAXPTSIZE;
     return 1;
-    
+
   Do_Glyph:
     Num += i;
     if (Num < 0)           Num = 0;
@@ -553,7 +553,7 @@
   }
 
 
-  int  main( int  argc, char**  argv ) 
+  int  main( int  argc, char**  argv )
   {
     int    i, old_ptsize, orig_ptsize, file;
     int    first_glyph = 0;
@@ -566,7 +566,7 @@
 
     FT_Error  error;
     grEvent   event;
- 
+
     execname = ft_basename( argv[0] );
 
     while ( 1 )
@@ -581,7 +581,7 @@
       case 'f':
         first_glyph = atoi( optarg );
         break;
-        
+
       case 'r':
         res = atoi( optarg );
         if ( res < 1 )
@@ -624,7 +624,7 @@
     {
       if ( argv[file][i] == '.' )
         i = 0;
-      i--; 
+      i--;
     }
 #endif
 
@@ -648,10 +648,10 @@
     if (error) goto Display_Font;
 
     file_loaded++;
-    
+
     error = Reset_Scale( ptsize );
     if (error) goto Display_Font;
-        
+
     num_glyphs = face->num_glyphs;
     glyph      = face->glyph;
     size       = face->size;
@@ -663,7 +663,7 @@
       XisSetup = 1;
       Init_Display();
     }
-  
+
     grSetTitle( surface, "FreeType Glyph Viewer - press F1 for help" );
     old_ptsize = ptsize;
 
@@ -671,10 +671,10 @@
     {
       Fail = 0;
       Num  = first_glyph;
-    
+
       if ( Num >= num_glyphs )
         Num = num_glyphs-1;
-      
+
       if ( Num < 0 )
         Num = 0;
     }
@@ -692,7 +692,7 @@
           case 0:
             Render_Text( Num, ptsize );
             break;
-            
+
           default:
             Render_All( Num, ptsize );
         }
@@ -704,7 +704,7 @@
 
         if (!new_header)
           new_header = Header;
-              
+
         grWriteCellString( &bit, 0, 0, new_header, fore_color );
         new_header = 0;
 
@@ -720,7 +720,7 @@
 
       grWriteCellString( &bit, 0, 8, Header, fore_color );
       grRefreshSurface( surface );
-      
+
       grListenSurface( surface, 0, &event );
       if ( !( key = Process_Event( &event ) ) )
         goto Fin;
@@ -729,7 +729,7 @@
       {
         if (file_loaded >= 1)
           FT_Done_Face( face );
-          
+
         if ( file < argc - 1 )
           file++;
 
@@ -740,7 +740,7 @@
       {
         if (file_loaded >= 1)
           FT_Done_Face( face );
-          
+
         if ( file > 1 )
           file--;
 
diff --git a/demos/src/memtest.c b/demos/src/memtest.c
index 1cb9279..b510ef3 100644
--- a/demos/src/memtest.c
+++ b/demos/src/memtest.c
@@ -51,11 +51,11 @@
     fprintf( stderr, "adding a block with non-positive length - should not happen \n" );
     exit(1);
   }
-  
+
   if ( num_my_blocks < MAX_RECORDED_BLOCKS )
   {
     MyBlock*  block;
-    
+
 #ifdef CHECK_DUPLICATES
     MyBlock*  limit;
     block = my_blocks;
@@ -86,7 +86,7 @@
 void  forget_my_block( void*  base )
 {
   MyBlock*  block = my_blocks + num_my_blocks-1;
-  
+
   /* we scan in reverse, because transient blocks are always located */
   /* at the end of the table.. (it supposedly faster then..)         */
   for ( ; block >= my_blocks; block-- )
@@ -118,7 +118,7 @@
   void*  p = malloc(size);
   if (p)
     record_my_block(p,size);
-    
+
   return p;
 }
 
@@ -161,7 +161,7 @@
   int       bad   = 0;
 
   printf( "total allocated blocks = %d\n", num_my_blocks );
-  
+
   /* we scan in reverse, because transient blocks are always located */
   /* at the end of the table.. (it supposedly faster then..)         */
   for ( ; block >= my_blocks; block-- )
@@ -221,7 +221,7 @@
     /* Create a new library with our own memory manager */
     error = FT_New_Library( &my_memory, &library );
     if (error) Panic( "Could not create library object" );
-    
+
     /* the new library has no drivers in it, add the default ones */
     /* (implemented in ftinit.c)..                                */
     FT_Default_Drivers(library);
@@ -265,7 +265,7 @@
           fname = filename + i + 1;
           i = -1;
         }
-        else 
+        else
           i--;
 
       printf( "%s: ", fname );
diff --git a/demos/src/ttdebug.c b/demos/src/ttdebug.c
index c983013..a7c45dd 100644
--- a/demos/src/ttdebug.c
+++ b/demos/src/ttdebug.c
@@ -617,20 +617,20 @@
 #ifdef UNIX
 
  struct termios  old_termio;
- 
+
  static
  void Init_Keyboard( void )
  {
    struct termios  termio;
 
 #ifndef HAVE_TCGETATTR
-   ioctl( 0, TCGETS, &old_termio ); 
+   ioctl( 0, TCGETS, &old_termio );
 #else
    tcgetattr( 0, &old_termio );
 #endif
 
    termio = old_termio;
-   
+
 /*   termio.c_lflag &= ~(ICANON+ECHO+ECHOE+ECHOK+ECHONL+ECHOKE); */
    termio.c_lflag &= ~(ICANON+ECHO+ECHOE+ECHOK+ECHONL);
 
@@ -838,7 +838,7 @@
     exc->pts.n_contours = exc->zp0.n_contours;
 
     pts = exc->pts;
-    
+
 
     save.n_points   = pts.n_points;
     save.n_contours = pts.n_contours;
@@ -1205,7 +1205,7 @@
     memory = library->memory;
     driver = FT_Get_Driver( library, "truetype" );
     if (!driver) Panic( "could not find the TrueType driver in FreeType 2\n" );
-    
+
     FT_Set_Debug_Hook( library,
                        FT_DEBUG_HOOK_TRUETYPE,
                        (FT_DebugHook_Func)RunIns );
@@ -1219,7 +1219,7 @@
       error = FT_Err_Invalid_File_Format;
       Panic( "This is not a TrueType font" );
     }
-  
+
     size = (TT_Size)face->root.size;
 
     if (glyph_index < 0)
diff --git a/docs/design/build-system.html b/docs/design/build-system.html
index acc4ced..b548b45 100644
--- a/docs/design/build-system.html
+++ b/docs/design/build-system.html
@@ -56,7 +56,7 @@
     <li><a href="#overview-1-b">b. Selecting another build configuration</a>
   </ul>
   </p>
-  
+
   <li><a href="#overview-2">2. Library compilation</a>
 </ul>
 <p><font size="+1"><a href="#setup">III. Build setup details</a></font></p>
@@ -274,17 +274,17 @@
     <font color="purple">C:\FreeType> make</font>
 
     FreeType build system -- automatic system detection
-     
+
     The following settings are used:
-     
+
       platform                     win32
       compiler                     gcc
       configuration directory      ./config/win32
-      configuration rules          ./config/win32/w32-gcc.mk  
-     
+      configuration rules          ./config/win32/w32-gcc.mk
+
     If this does not correspond to your system or settings please remove the file
     'config.mk' from this directory then read the INSTALL file for help.
-     
+
     Otherwise, simply type 'make' again to build the library.
 
     <font color="purple">C:\FreeType></font>
@@ -353,20 +353,20 @@
 
   <ul>
     <li><p><b>Compiling the <tt>ftsystem</tt> component</b><br><ul>
-        It encapsulates all low-level operations (memory management + 
+        It encapsulates all low-level operations (memory management +
         i/o access) for the library. Its default version, located in
         <tt>./src/base/ftsystem.c</tt> uses the ANSI C library but
         system-specific implementations are also available to
         improve performance (e.g. memory-mapped files on Unix).
         </ul></p>
-        
+
     <li><p><b>Compiling the <em>base layer</em> and optional components</b><br><ul>
         They provide the library's high-level API as well as various useful
         routines for client applications. Many features of the base layer can
         be activated or not depending on a configuration file named
         <tt>ftoption.h</tt>
         </ul></p>
-        
+
     <li><p><b>Compiling the <em>modules</em></b><br><ul>
         Each module is used to support a specific font format (it is then
         called a <em>font driver</em>), or to provide helper services to
@@ -374,7 +374,7 @@
         sub-directories of <tt>./src</tt>, like <tt>./src/truetype</tt>,
         <tt>./src/type1</tt>.
         </ul></p>
-        
+
     <li><p><b>Compiling the <tt>ftinit</tt> component</b><br><ul>
         This one is in charge of implementing <tt>FT_Init_FreeType</tt>,
         the library initialisation routine. It also selects what modules
@@ -414,16 +414,16 @@
     <p><center>
         <img src="platform-detection.png" border=0>
     </center></p>
-    
+
  <p>Each system-specific <b><tt>detect.mk</tt></b> works as follows:</p>
  <ul>
    <li><p>It checks that the value of <tt>PLATFORM</tt> is currently set
           to <b>ansi</b>, which indicates that no platform was detected
           for now. If this isn't true, it doesn't do anything</p>
-          
+
    <li><p>Otherwise, it runs a series of test to see wether it is on a
           system it knows about. Here are a few examples of tests:</p>
-    
+
        <p><center><table width="80%" cellpadding=5><tr valign=top><td>
        <em><b>Unix</b></em>
        </td><td>
@@ -446,10 +446,10 @@
        we're on a Win32 system.</p>
        </td></tr></table></center>
        </p>
-    
+
    <li><p>It sets the value of <tt>PLATFORM</tt> to a new value corresponding
           to its platform.</p>
-    
+
    <li><p>It then tries to select a configuration
           sub-makefile, depending on the current platform and any optional
           make target (like "visualc" or "devel", etc..). Note that it can
@@ -465,17 +465,17 @@
  <ul>
     <li>A new subdirectory, in <tt>./config</tt>, with a file named
         <tt>detect.mk</tt> in it, containing relevant checks for the system.
-        
+
     <li>One or more configuration sub-makefiles that will get copied to
         <tt>config.mk</tt> at build setup time. You can use the one in
         <tt>./config/ansi/config.mk</tt> as a template.
- </ul> 
+ </ul>
 
  <p>Similary, supporting a new compiler on an existing system simply means:</p>
  <ul>
     <li>Writing a new config sub-makefile that contains definitions used to
         specify the compiler and flags for the build.
-        
+
     <li>Change your <tt>./config/<em>system</em>/detect.mk</tt> to recognize
         a new optional build target that will copy your new config sub-makefile
         instead of the default one.
@@ -496,14 +496,14 @@
          the host environment, like the compiler, compilation flags,
          object file suffix, the directory where all object files are
          placed, etc..</p>
-         
+
   <li><p>If <tt>BUILD_FREETYPE</tt> is defined, it includes the file
          <tt><b>./config/freetype.mk</b></tt>, which is in charge of
          defining all the rules used to build the library object files.
          (The test is useful to use the <tt>config.mk</tt> file to
           compile other projects that rely on FreeType 2, like its
           demonstration programs).</p>
-         
+
   <li><p>Finally, it defines the rule(s) used to link FreeType 2 object files
          into a library file (e.g. <tt>libfreetype.a</tt>, <tt>freetype.lib</tt>,
          <tt>freetype.dll</tt>, ...). Unfortunately, the command line interface of link tools is
@@ -525,7 +525,7 @@
 <pre><font color="blue">
     #include &lt;freetype/freetype.h&gt;
     #include &lt;freetype/ftglyph.h&gt;
-</font></pre>    
+</font></pre>
 
  <p>to include one the FreeType 2 public header files. <tt>freetype.mk</tt>
     uses a variable named <tt><b>INCLUDES</b></tt> to hold the inclusion
@@ -535,17 +535,17 @@
  <p><tt>freetype.mk</tt> uses a variable named <tt><b>INCLUDES</b></tt>
     to hold directory inclusion-path to be used when compiling the library.
     It always add <tt>./include</tt> to this variable, which means
-     
+
 </ul>
 
 <h4>b. Configuration header files:</h4>
-<ul>  
+<ul>
   <p>Three header files used to configure the compilation of the
      FreeType 2 library. Their default versions are all located in the
      directory <tt><b>./include/freetype/config/</b></tt>, even though
      project specific versions can be provided on a given build, as
      described later:</p>
-     
+
   <ul>
     <p><b><tt>#include &lt;freetype/config/ftoption.h&gt;</tt></b><br><ul>
         This file contains a set of configuration macro definitions that
@@ -557,7 +557,7 @@
         You might need to provide an alternative version of <tt>ftoption.h</tt>
         for one of your own projects.
         </ul></p>
-        
+
     <p><b><tt>#include &lt;freetype/config/ftconfig.h&gt;</tt></b><br><ul>
         This file includes <tt>ftoption.h</tt> but also contains some automatic
         macro definitions used to indicate some important system-specific
@@ -566,7 +566,7 @@
         You shouldn't normally need to change or provide an alternative
         version of this file.
         </ul></p>
-        
+
 
     <p><b><tt>#include &lt;freetype/config/ftmodule.h&gt;</tt></b><br><ul>
         This file is very special, as it is normally machine-generated, and
@@ -583,13 +583,13 @@
         <tt>./src</tt>.
         </ul></p>
   </ul>
-  
+
   <p>Note that we strongly advise you to avoid modifying the config files
      within the FreeType 2 source directory hierarchy. Rather, it's possible
      to specify alternative versions through the help of a build-specific
      include path that is include before <tt>./include</tt> in the inclusion
      path.</p>
-     
+
   <p>For example, imagine that your platform, named <em>foo</em>, needs a
      specific version of <tt>ftoption.h</tt>
 </ul>
@@ -600,14 +600,14 @@
      and i/o access) within a single component called <tt><b>ftsystem</b></tt>.
      Its default implementation uses the <em>ANSI C Library</em> and is located
      in <tt>./src/base/ftsystem.c</tt>.</p>
-     
+
   <p>However, some alternate, system-specific, implementations of
      <tt>ftsystem</tt> are provided with the library in order to support more
      efficient and advanced features. As an example, the file
      <tt>./config/unix/ftsystem.c</tt> is an implementation that
      uses memory-mapped files rather than the slow ANSI <tt>fopen</tt>,
      <tt>fread</tt> and <tt>fseek</tt>, boosting performance significantly.</p>
-     
+
   <p>The build system is thus capable of managing alternate implementations
      of <tt>ftsystem</tt></p>
 </ul>
@@ -638,7 +638,7 @@
      code located in a sub-directory of <tt>./src</tt> that contains a file
      named <tt><b>rules.</b></tt>, for example:
      <tt>src/sfnt</tt>, <tt>src/truetype</tt>, <tt>src/type1</tt>, ...</p>
-     
+
   <p>The <tt><b>rules.</b></tt> file simply contains directives used by the
      build system to compile the corresponding module into a single object
      file.</p>
diff --git a/docs/design/io-frames.html b/docs/design/io-frames.html
index 61ad381..6bd515a 100644
--- a/docs/design/io-frames.html
+++ b/docs/design/io-frames.html
@@ -51,10 +51,10 @@
      <font color="blue"><pre>
      error = read_short(stream, &str.value1);
      if (error) goto ...
-           
+
      error = read_ulong(stream, &str.value2);
      if (error) goto ...
-     
+
      error = read_ulong(stream, &str.value3);
      if (error) goto ...
      </pre></font>
@@ -63,11 +63,11 @@
      <font color="blue"><pre>
      error = FT_Access_Frame(stream, 2+4+4);
      if (error) goto ...
-     
+
      str.value1 = FT_Get_Short(stream);
      str.value2 = FT_Get_ULong(stream);
      str.value3 = FT_Get_ULong(stream);
-     
+
      FT_Forget_Frame(stream);
      </pre></font>
   <p>
@@ -126,63 +126,63 @@
 		<table>
 			<tr>
                 <td><b>Macro name</b>    <td>Translation  <td>Description
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_Byte()
                 </b></tt></font><td><font color="blue"><tt>
                 (FT_Get_Byte(stream))
                 </tt></font><td>
                 reads an 8-bit unsigned byte
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_Char()
                 </b></tt></font><td><font color="blue"><tt>
                 ((FT_Char)FT_Get_Byte(stream))
                 </tt></font><td>
                 reads an 8-bit <em>signed</em> byte
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_Short()
                 </b></tt></font><td><font color="blue"><tt>
                 (FT_Get_Short(stream))
                 </tt></font><td>
                 reads a 16-bit signed big-endian integer
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_UShort()
                 </b></tt></font><td><font color="blue"><tt>
                 ((FT_UShort)FT_Get_Short(stream))
                 </tt></font><td>
                 reads a 16-bit unsigned big-endian integer
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_Offset()
                 </b></tt></font><td><font color="blue"><tt>
                 (FT_Get_Offset(stream))
                 </tt></font><td>
                 reads a 24-bit signed big-endian integer
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_UOffset()
                 </b></tt></font><td><font color="blue"><tt>
                 ((FT_UOffset)FT_Get_Offset(stream))
                 </tt></font><td>
                 reads a 24-bit unsigned big-endian integer
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_Long()
                 </b></tt></font><td><font color="blue"><tt>
                 (FT_Get_Long(stream))
                 </tt></font><td>
                 reads a 32-bit signed big-endian integer
-                
+
             <tr><td><font color="purple"><tt><b>
                 GET_ULong()
                 </b></tt></font><td><font color="blue"><tt>
                 ((FT_ULong)FT_Get_Long(stream))
                 </tt></font><td>
                 reads a 32-bit unsigned big-endian integer
-                
+
 		</table>
 	</ul>
 	<p>
@@ -192,22 +192,22 @@
 	<font color="blue"><pre>
       error = FT_Access_Frame(stream, 2+4+4);
       if (error) goto ...
-      
+
       str.value1 = FT_Get_Short(stream);
       str.value2 = FT_Get_ULong(stream);
       str.value3 = FT_Get_ULong(stream);
-      
+
       FT_Forget_Frame(stream);<br>
 	</pre></font>
 	<p>
 	Can be replaced with macros by:<p>
 	<font color="blue"><pre>
       if ( ACCESS_Frame( 2+4+4 ) ) goto ...
-      
+
       str.value1 = GET_Short();
       str.value2 = GET_ULong();
       str.value3 = GET_ULong();
-      
+
       FORGET_Frame();
 	</pre></font>
 	<p>
diff --git a/docs/tutorial/index.html b/docs/tutorial/index.html
index f6413cb..0f4c74c 100644
--- a/docs/tutorial/index.html
+++ b/docs/tutorial/index.html
@@ -56,14 +56,14 @@
 <ul>
   Simply create a variable of type <tt>FT_Library</tt> named, for example,
   <tt>library</tt>, and call the function <tt>FT_Init_FreeType</tt> as in:
-  
+
   <font color="blue"><pre>
        #include &lt;freetype/freetype.h&gt;
-       
+
        FT_Library  library;
-       
+
        ....
-       
+
        {
          ..
          error = FT_Init_FreeType( &library );
@@ -76,7 +76,7 @@
       <li>Creating a new instance of the FreeType 2 library, and set
           the handle <tt>library</tt> to it.
           <p>
-          
+
       <li>Load each font driver that FreeType knows about in the library.
           This means that by default, your new <tt>library</tt> object is
           able to handle TrueType and Type 1 fonts gracefully.
@@ -101,13 +101,13 @@
     two different faces.
     <p>
     <font color="blue"><pre>
-    
+
       FT_Library   library;   /* handle to library     */
       FT_Face      face;      /* handle to face object */
 
       error = FT_Init_FreeType( &library );
       if (error) { ..... }
-      
+
       error = FT_New_Face( library,
                            "/usr/share/fonts/truetype/arial.ttf",
                            0,
@@ -131,17 +131,17 @@
     <tr valign="top"><td><tt><b>library</b></tt>
         <td>handle to the FreeType library instance where the face object is
             created
-                                               
+
     <tr valign="top"><td><tt><b>filepathname</b></tt>
         <td>the font file pathname (standard C string).
-        
+
     <tr valign="top"><td><tt><b>face_index</b></tt>
         <td>Certain font formats allow several font faces to be embedded in
             a single file.<br>
             This index tells which face you want to load. An
             error will be returned if its value is too large.<br>
             Index 0 always work though.
-        
+
     <tr><td><tt><b>face</b></tt>
         <td>A <em>pointer</em> to the handle that will be set to
             describe the new face object.<br>
@@ -155,7 +155,7 @@
     the font file.
   </ul>
   <p>
-  
+
   <h4>b. From memory:</h4>
   <ul>
     In the case where you have already loaded the font file in memory, you
@@ -163,13 +163,13 @@
     <tt>FT_New_Memory_Face</tt> as in:
     <p>
     <font color="blue"><pre>
-    
+
       FT_Library   library;   /* handle to library     */
       FT_Face      face;      /* handle to face object */
 
       error = FT_Init_FreeType( &library );
       if (error) { ..... }
-      
+
       error = FT_New_Memory_Face( library,
                                   buffer,    /* first byte in memory */
                                   size,      /* size in bytes        */
@@ -184,7 +184,7 @@
     <tt>FT_New_Face</tt>.
   </ul>
   <p>
-  
+
   <h4>c. From other sources: (compressed files, network, etc..)</h4>
   <ul>
     There are cases where using a filepathname or preloading the file in
@@ -215,7 +215,7 @@
      <td>gives the number of <em>glyphs</em> available in the font face. A glyph
          is simply a character image. It doesn't necessarily correspond to
          a <em>character code</em> though.
-         
+
   <tr valign="top">
      <td><tt><b>face&minus;>flags</b></tt>
      <td>a 32-bit integer containing bit flags used to describe some face
@@ -224,13 +224,13 @@
          glyph images can be rendered for all character pixel sizes. For more
          information on face flags, please read the <a href="#">FreeType API
          Reference</a>
-     
+
   <tr valign="top">
      <td><tt><b>face&minus;>units_per_EM</b></tt>
      <td>This field is only valid for scalable formats (it is set to 0
          otherwise). It indicates the number of font units covered by the
          EM.
-         
+
   <tr valign="top">
      <td><tt><b>face&minus;>num_fixed_sizes</b></tt>
      <td>this field gives the number of embedded bitmap <em>strikes</em> in
@@ -280,16 +280,16 @@
   You'll notice that:<p>
   <ul>
      <li>The character width and heights are specified in 1/64th of points.<p>
-     
+
      <li>The horizontal and vertical device resolutions are expressed in
          <em>dots-per-inch</em>, or <em>dpi</em>. You can use 72 or 96 dpi
          for display devices like the screen.<p>
-         
+
      <li>A value of 0 for the character width means "<em>same as character
          height</em>", a value of 0 for the character height means
          "<em>same as character width</em>". Otherwise, it is possible to
          specify different char width and height.<p>
-         
+
      <li>Using a value of 0 for the horizontal or vertical resolution means
          72 dpi, which is the default.
 	 <p>
@@ -362,7 +362,7 @@
      <p>
   </ul>
   <p>
-  
+
   <h4>b. Loading a glyph from the face:</h4>
   <ul>
      Once you have a glyph index, you can load the corresponding glyph image.
@@ -397,13 +397,13 @@
              bitmaps are favored over outlines as they usually correspond to
              higher-quality images of the same glyph).
              <p>
-             
+
          <li>if there is an outline for the corresponding glyph, load it
              unless <tt>FT_LOAD_NO_OUTLINE</tt> is set. Otherwise, scale it
              to the current size, unless the <tt>FT_LOAD_NO_SCALE</tt> flag
              is set.
              <p>
-             
+
          <li>if the outline was loaded and scaled, try to grid-fit it (which
              dramatically improves its quality) unless the flag
              <tt>FT_LOAD_NO_HINTING</tt> is set.
@@ -413,7 +413,7 @@
      details see the <a href="#">FreeType 2 API Reference</a>.
   </ul>
   <p>
-  
+
   <h4>c. Using other charmaps:</h4>
   <ul>
     As said before, when a new face object is created, it will look for
@@ -445,7 +445,7 @@
         FT_CharMap  found = 0;
         FT_CharMap  charmap;
         int         n;
-        
+
         for ( n = 0; n &lt; face-&gt;num_charmaps; n++ )
         {
           charmap = face&gt;charmaps[n];
@@ -457,7 +457,7 @@
         }
 
         if (!found) { ... }
-                 
+
         /* now, select the charmap for the face object */
         error = FT_Set_CharMap( face, found );
         if (error) { .... }
@@ -465,7 +465,7 @@
     <p>
     One might now call <tt>FT_Get_Char_Index</tt> with Big5 character codes
     to retrieve glyph indices.
-    <p>     
+    <p>
   </ul>
   <p>
 </ul>
@@ -506,7 +506,7 @@
        <td>Indicates the type of the loaded glyph image. Can be either
            <tt>ft_glyph_format_bitmap</tt>, <tt>ft_glyph_format_outline</tt>
            or other values.
-       
+
     <tr valign="top">
        <td><tt><b>glyph&minus;&gt;metrics</b></tt>
        <td>A simple structure used to hold the glyph image's metrics. Note
@@ -526,7 +526,7 @@
            describes it. See the definition of the <tt>FT_Outline</tt>
            structure.
   </table>
-  <p> 
+  <p>
 </ul>
 
 <h3>8. Rendering glyph outlines into bitmaps:</h3>
@@ -542,9 +542,9 @@
   or something else, the library provides a means to convert such glyph
   images to bitmaps through what are called <b>rasters</b>.
   <p>
-  
-  
-  
+
+
+
   On the other hand, when the image is a scalable outline, or something else,
   FreeType provides a function to convert the glyph image into a
   pre-existing bitmap that you'll handle to it, named
@@ -556,26 +556,26 @@
        FT_GlyphSlot  glyph;
 
        .... load glyph ...
-       
+
        glyph = face-&gt;glyph;   /* shortcut to glyph data */
        if (glyph->format == ft_glyph_format_outline )
        {
          FT_Bitmap  bit;
-         
+
          /* set-up a bitmap descriptor for our target bitmap */
          bit.rows       = bitmap_height;
          bit.width      = bitmap_width;
          bit.pitch      = bitmap_row_bytes;
          bit.pixel_mode = ft_pixel_mode_mono;  /* render into a mono bitmap */
          bit.buffer     = bitmap_buffer;
-         
+
          /* render the outline directly into the bitmap */
          error = FT_Get_Glyph_Bitmap( face, &bit );
          if (error) { ... }
-       }       
+       }
      }
   </pre></font>
-  <p>  
+  <p>
   You should note that <b><em><tt>FT_Get_Glyph_Bitmap</tt> doesn't create the
   bitmap.</em></b> It only needs a descriptor, of type <tt>FT_Bitmap</tt>,
   and writes directly into it.
@@ -590,12 +590,12 @@
        FT_GlyphSlot  glyph;
 
        .... load glyph ...
-       
+
        glyph = face-&gt;glyph;   /* shortcut to glyph data */
        if (glyph->format == ft_glyph_format_outline )
        {
          FT_Bitmap  bit;
-         
+
          /* set-up a bitmap descriptor for our target bitmap */
          bit.rows       = bitmap_height;
          bit.width      = bitmap_width;
@@ -606,11 +606,11 @@
 
          /* clean the bitmap - IMPORTANT */
          memset( bit.buffer, 0, bit.rows*bit.pitch );
-         
+
          /* render the outline directly into the bitmap */
          error = FT_Get_Glyph_Bitmap( face, &bit );
          if (error) { ... }
-       }       
+       }
      }
   </pre></font>
   <p>
@@ -618,17 +618,17 @@
   <ul>
      <li>As previously, <tt>FT_Get_Glyph_Bitmap</tt> doesn't generate the
          bitmap, it simply renders to it.<p>
-         
+
      <li>The target bitmap must be cleaned before calling the function. This
          is a limitation of our current anti-aliasing algorithm and is
          EXTREMELY important.<p>
-         
+
      <li>The anti-aliaser uses 128 levels of grays exclusively for now (this
          will probably change in a near future). This means that you <b>must</b>
          set <tt>bit.grays</tt> to 128. The generated image uses values from
          0 (back color) to 127 (foreground color).
-         <p>                           
-         
+         <p>
+
      <li>It is <b>not</b> possible to render directly an anti-aliased outline into
          a pre-existing gray-level bitmap, or even any colored-format one
          (like RGB16 or paletted 8-bits). We will not discuss this issue in
@@ -640,6 +640,6 @@
 </ul>
 
 </td></tr></table>
-</center>  
+</center>
 <p><hr>
 
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index c1c5253..5a6fcab 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -943,12 +943,12 @@
   /*                returned by FT_Load_Glyph().                           */
   /*                                                                       */
   /*                                                                       */
-  
+
   enum
   {
     ft_glyph_own_bitmap = 1
   };
-  
+
   typedef struct  FT_GlyphSlotRec_
   {
     FT_Face           face;
diff --git a/include/freetype/fterrors.h b/include/freetype/fterrors.h
index aa67c20..e918f16 100644
--- a/include/freetype/fterrors.h
+++ b/include/freetype/fterrors.h
@@ -47,15 +47,15 @@
   FT_ERRORDEF( FT_Err_Cannot_Open_Resource,    0x0001, "can't open stream"   )
   FT_ERRORDEF( FT_Err_Unknown_File_Format,     0x0002, "unknown file format" )
   FT_ERRORDEF( FT_Err_Invalid_File_Format,     0x0003, "broken file" )
-  
+
   FT_ERRORDEF( FT_Err_Invalid_Argument,        0x0010, "invalid argument" )
   FT_ERRORDEF( FT_Err_Invalid_Handle,          0x0011, "invalid object handle" )
   FT_ERRORDEF( FT_Err_Invalid_Glyph_Index,     0x0012, "invalid glyph index" )
   FT_ERRORDEF( FT_Err_Invalid_Character_Code,  0x0013, "invalid character code" )
-  
+
   FT_ERRORDEF( FT_Err_Unimplemented_Feature,   0x0020, "unimplemented feature" )
   FT_ERRORDEF( FT_Err_Invalid_Glyph_Format,    0x0021, "invalid glyph image format" )
-  
+
   FT_ERRORDEF( FT_Err_Invalid_Library_Handle,  0x0030, "invalid library handle" )
   FT_ERRORDEF( FT_Err_Invalid_Driver_Handle,   0x0031, "invalid module handle" )
   FT_ERRORDEF( FT_Err_Invalid_Face_Handle,     0x0032, "invalid face handle" )
@@ -64,7 +64,7 @@
   FT_ERRORDEF( FT_Err_Invalid_CharMap_Handle,  0x0035, "invalid charmap handle" )
   FT_ERRORDEF( FT_Err_Invalid_Outline,         0x0036, "invalid outline" )
   FT_ERRORDEF( FT_Err_Invalid_Dimensions,      0x0037, "invalid dimensions" )
-  
+
   FT_ERRORDEF( FT_Err_Unavailable_Outline,     0x0040, "unavailable outline" )
   FT_ERRORDEF( FT_Err_Unavailable_Bitmap,      0x0041, "unavailable bitmap" )
   FT_ERRORDEF( FT_Err_File_Is_Not_Collection,  0x0042, "file is not a font collection" )
@@ -84,7 +84,7 @@
   FT_ERRORDEF( FT_Err_Invalid_Frame_Operation, 0x0066, "invalid frame operation" )
   FT_ERRORDEF( FT_Err_Nested_Frame_Access,     0x0067, "nested frame access" )
   FT_ERRORDEF( FT_Err_Invalid_Frame_Read,      0x0068, "invalid frame read" )
-  
+
   FT_ERRORDEF( FT_Err_Too_Many_Points,         0x0070, "too many points in glyph" )
   FT_ERRORDEF( FT_Err_Too_Many_Contours,       0x0071, "too many contours in glyph" )
   FT_ERRORDEF( FT_Err_Invalid_Composite,       0x0072, "invalid composite glyph" )
@@ -97,7 +97,7 @@
 /* range 0x500 - 0x5FF is reserved for TrueDoc  specific stuff */
 
 /* range 0x600 - 0x6FF is reserved for Type1    specific stuff */
-  
+
   FT_ERRORDEF( FT_Err_Raster_Uninitialized,   0x0080, "raster uninitialized" )
   FT_ERRORDEF( FT_Err_Raster_Corrupted,       0x0081, "raster corrupted !!" )
   FT_ERRORDEF( FT_Err_Raster_Overflow,        0x0082, "raster overflow !!" )
diff --git a/include/freetype/ftglyph.h b/include/freetype/ftglyph.h
index 71138ca..853dc25 100644
--- a/include/freetype/ftglyph.h
+++ b/include/freetype/ftglyph.h
@@ -29,11 +29,11 @@
 #include <freetype/freetype.h>
 
   typedef enum {
-  
+
     ft_glyph_type_none    = 0,
     ft_glyph_type_bitmap  = 1,
     ft_glyph_type_outline = 2
-  
+
   } FT_GlyphType;
 
  /***********************************************************************
@@ -68,7 +68,7 @@
   *    float sub-pixels (i.e. 1/64th of pixels).
   *
   *    the vertical bearing has a positive value when the glyph top is
-  *    above the baseline, and negative when it is under.. 
+  *    above the baseline, and negative when it is under..
   *
   ***********************************************************************/
 
@@ -81,7 +81,7 @@
     FT_Int        bearingX;
     FT_Int        bearingY;
     FT_Int        advance;
-    
+
   } FT_GlyphRec, *FT_Glyph;
 
 
@@ -91,7 +91,7 @@
   *    FT_BitmapGlyphRec
   *
   * <Description>
-  *    A structure used to describe a bitmap glyph image..              
+  *    A structure used to describe a bitmap glyph image..
   *    Note that the FT_BitmapGlyph type is a pointer to FT_BitmapGlyphRec
   *
   * <Field>
@@ -111,14 +111,14 @@
   *    and is thus creatde and destroyed with it..
   *
   ***********************************************************************/
-  
+
   typedef struct FT_BitmapGlyphRec_
   {
     FT_GlyphRec  metrics;
     FT_Int       left;
     FT_Int       top;
     FT_Bitmap    bitmap;
-  
+
   } FT_BitmapGlyphRec_, *FT_BitmapGlyph;
 
 
@@ -128,7 +128,7 @@
   *    FT_OutlineGlyphRec
   *
   * <Description>
-  *    A structure used to describe a vectorial outline glyph image..              
+  *    A structure used to describe a vectorial outline glyph image..
   *    Note that the FT_OutlineGlyph type is a pointer to FT_OutlineGlyphRec
   *
   * <Field>
@@ -147,12 +147,12 @@
   *    function FT_OutlineGlyph_Render()
   *
   ***********************************************************************/
-  
+
   typedef struct FT_OutlineGlyphRec_
   {
     FT_GlyphRec  metrics;
     FT_Outline   outline;
-    
+
   } FT_OutlineGlyphRec_, *FT_OutlineGlyph;
 
 
@@ -221,7 +221,7 @@
   *    face        :: handle to source face object
   *    glyph_index :: glyph index in face
   *    load_flags  :: load flags, see FT_LOAD_FLAG_XXXX constants..
-  * 
+  *
   * <Output>
   *    vecglyph :: pointer to the new outline glyph
   *
@@ -236,7 +236,7 @@
   *    FT_LOAD_NO_RECURSE are set..
   *
   ***********************************************************************/
-  
+
   EXPORT_DEF(FT_Error)  FT_Get_Glyph_Outline( FT_Face           face,
                                               FT_UInt           glyph_index,
                                               FT_UInt           load_flags,
@@ -250,7 +250,7 @@
   *
   * <Description>
   *    A function used to set the transform that is applied to glyph images
-  *    just after they're loaded in the face's glyph slot, and before they're 
+  *    just after they're loaded in the face's glyph slot, and before they're
   *    returned by either FT_Get_Glyph_Bitmap or FT_Get_Glyph_Outline
   *
   * <Input>
@@ -263,7 +263,7 @@
   *    in a font face. It is unable to transform embedded glyph bitmaps
   *
   ***********************************************************************/
-  
+
   EXPORT_DEF(void)  FT_Set_Transform( FT_Face     face,
                                       FT_Matrix*  matrix,
                                       FT_Vector*  delta );
@@ -278,10 +278,10 @@
   *    Destroys a given glyph..
   *
   * <Input>
-  *    glyph  :: handle to target glyph object 
+  *    glyph  :: handle to target glyph object
   *
   ***********************************************************************/
-  
+
   EXPORT_DEF(void)  FT_Done_Glyph( FT_Glyph  glyph );
 
 
@@ -294,7 +294,7 @@
   *    Returns the glyph image's bounding box in pixels.
   *
   * <Input>
-  *    glyph :: handle to target glyph object 
+  *    glyph :: handle to target glyph object
   *
   * <Output>
   *    box   :: the glyph bounding box. Coordinates are expressed in
@@ -308,7 +308,7 @@
   *    The height is box.yMax - box.yMin
   *
   ***********************************************************************/
-  
+
   EXPORT_DEF(void)  FT_Glyph_Get_Box( FT_Glyph  glyph,
                                       FT_BBox  *box );
 
diff --git a/include/freetype/ftimage.h b/include/freetype/ftimage.h
index c4443df..77bb368 100644
--- a/include/freetype/ftimage.h
+++ b/include/freetype/ftimage.h
@@ -857,7 +857,7 @@
   *
   * <Input>
   *    raster    :: handle to new raster object
-  *    mode      :: a 4-byte tag used to name the mode or property           
+  *    mode      :: a 4-byte tag used to name the mode or property
   *    args      :: a pointer to the new mode/property to use
   *
   **************************************************************************/
diff --git a/include/freetype/internal/autohint.h b/include/freetype/internal/autohint.h
index fced489..4a995f8 100644
--- a/include/freetype/internal/autohint.h
+++ b/include/freetype/internal/autohint.h
@@ -190,11 +190,11 @@
     FT_AutoHinter_Init_Func   init_autohinter;
     FT_AutoHinter_Done_Func   done_autohinter;
     FT_AutoHinter_Load_Func   load_glyph;
-    
+
     FT_AutoHinter_Get_Global_Func   get_global_hints;
     FT_AutoHinter_Done_Global_Func  done_global_hints;
 
-  } FT_AutoHinter_Interface;					 
+  } FT_AutoHinter_Interface;
 
 #endif /* AUTOHINT_H */
 
diff --git a/include/freetype/internal/ftcalc.h b/include/freetype/internal/ftcalc.h
index 5acbc6c..8a00da1 100644
--- a/include/freetype/internal/ftcalc.h
+++ b/include/freetype/internal/ftcalc.h
@@ -42,7 +42,7 @@
 #define SQRT_64( z )  FT_Sqrt64( z )
 
   EXPORT_DEF(FT_Int32)  FT_Sqrt64( FT_Int64  x );
-  
+
 #endif /* OLD_CALCS */
 
 #else /* LONG64 */
@@ -61,7 +61,7 @@
   EXPORT_DEF(void)      FT_Add64    ( FT_Int64* x, FT_Int64* y, FT_Int64*  z );
 
   EXPORT_DEF(void)      FT_MulTo64  ( FT_Int32  x, FT_Int32  y, FT_Int64*  z );
-                      
+
   EXPORT_DEF(FT_Int32)  FT_Div64by32( FT_Int64* x, FT_Int32  y );
 
 #ifdef FT_CONFIG_OPTION_OLD_CALCS
@@ -69,7 +69,7 @@
 #define SQRT_64( z )  FT_Sqrt64( &z )
 
   EXPORT_DEF(FT_Int32)  FT_Sqrt64( FT_Int64*  x );
-  
+
 #endif /* OLD_CALC */
 
 #endif /* LONG64 */
diff --git a/include/freetype/internal/ftdriver.h b/include/freetype/internal/ftdriver.h
index 68d416b..b89afef 100644
--- a/include/freetype/internal/ftdriver.h
+++ b/include/freetype/internal/ftdriver.h
@@ -72,7 +72,7 @@
   /*                                                                       */
   typedef FT_Error  (*FTDriver_doneDriver)( FT_Driver  driver );
 
-  
+
   typedef void  (*FTDriver_Interface)( void );
 
   /*************************************************************************/
diff --git a/include/freetype/internal/ftextend.h b/include/freetype/internal/ftextend.h
index 7c5c526..73dbb59 100644
--- a/include/freetype/internal/ftextend.h
+++ b/include/freetype/internal/ftextend.h
@@ -55,7 +55,7 @@
   /*    data, as the finalizer will get called later by the function's     */
   /*    caller.                                                            */
   /*                                                                       */
-  typedef FT_Error (*FT_Extension_Initializer)( void*    ext, 
+  typedef FT_Error (*FT_Extension_Initializer)( void*    ext,
                                                 FT_Face  face );
 
 
@@ -114,11 +114,11 @@
     FT_Extension_Initializer  init;
     FT_Extension_Finalizer    finalize;
     void*                     interface;
-    
+
     FT_ULong                  offset;
-    
+
   } FT_Extension_Class;
-  
+
 
   EXPORT_DEF(FT_Error)  FT_Register_Extension( FT_Driver            driver,
                                                FT_Extension_Class*  clazz );
diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h
index 55eefab..ad95592 100644
--- a/include/freetype/internal/ftobjs.h
+++ b/include/freetype/internal/ftobjs.h
@@ -181,11 +181,11 @@
   *     n_contours   :: current number of contours in zone
   *     org          :: original glyph coordinates (font units/scaled)
   *     cur          :: current glyph coordinates  (scaled/hinted)
-  *     tags         :: point control tags 
+  *     tags         :: point control tags
   *     contours     :: contour end points
   *
   ***********************************************************************/
-  
+
   typedef struct  FT_GlyphZone_
   {
     FT_Memory   memory;
@@ -209,7 +209,7 @@
                                         FT_GlyphZone*  zone );
 
   BASE_DEF(void)      FT_Done_GlyphZone( FT_GlyphZone*  zone );
-  
+
   BASE_DEF(FT_Error)  FT_Update_GlyphZone( FT_GlyphZone*  zone,
                                            FT_UShort      num_points,
                                            FT_Short       num_contours );
@@ -260,7 +260,7 @@
   /*                      ideally be changed dynamically at run-time.      */
   /*                                                                       */
   typedef  void  (*FT_DebugHook_Func)( void* arg );
-  
+
   typedef struct  FT_LibraryRec_
   {
     FT_Memory           memory;         /* library's memory object          */
diff --git a/include/freetype/internal/ftstream.h b/include/freetype/internal/ftstream.h
index bfb2a5e..ec9d331 100644
--- a/include/freetype/internal/ftstream.h
+++ b/include/freetype/internal/ftstream.h
@@ -27,15 +27,15 @@
 {
   ft_frame_end       = 0,
   ft_frame_start     = FT_MAKE_FRAME_OP( FT_FRAME_OP_START, 0, 0 ),
-  
+
   ft_frame_byte      = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE,  0, 0 ),
   ft_frame_schar     = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE,  0, 1 ),
-  
+
   ft_frame_ushort_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 0 ),
   ft_frame_short_be  = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 1 ),
   ft_frame_ushort_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 0 ),
   ft_frame_short_le  = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 1 ),
-  
+
   ft_frame_ulong_be  = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 0 ),
   ft_frame_ulong_le  = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 1 ),
   ft_frame_long_be   = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 0 ),
@@ -54,7 +54,7 @@
   FT_Frame_Op   value;
   char          size;
   FT_UShort     offset;
-  
+
 } FT_Frame_Field;
 
 /* make-up a FT_Frame_Field out of a structure type and a field name */
@@ -171,53 +171,53 @@
                                        void*          base,
                                        unsigned long  size,
                                        FT_Stream      stream );
- 
+
   BASE_DEF(FT_Error)  FT_Seek_Stream( FT_Stream  stream,
                                       FT_ULong   pos );
 
   BASE_DEF(FT_Error)  FT_Skip_Stream( FT_Stream  stream,
                                                 FT_Long    distance );
-                            
+
   BASE_DEF(FT_Long)   FT_Stream_Pos( FT_Stream  stream );
 
 
   BASE_DEF(FT_Error)  FT_Read_Stream( FT_Stream  stream,
                                       void*      buffer,
                                       FT_ULong   count );
-                                      
+
   BASE_DEF(FT_Error)  FT_Read_Stream_At( FT_Stream  stream,
                                          FT_ULong   pos,
                                          void*      buffer,
                                          FT_ULong   count );
-                               
+
   BASE_DEF(FT_Error)  FT_Access_Frame( FT_Stream  stream,
                                        FT_ULong   count );
-                             
+
   BASE_DEF(void)      FT_Forget_Frame( FT_Stream  stream );
 
 
 
   BASE_DEF(FT_Char)   FT_Get_Char( FT_Stream  stream );
-  
+
   BASE_DEF(FT_Short)  FT_Get_Short( FT_Stream  stream );
-  
+
   BASE_DEF(FT_Long)   FT_Get_Offset( FT_Stream  stream );
-  
+
   BASE_DEF(FT_Long)   FT_Get_Long( FT_Stream  stream );
 
 
 
   BASE_DEF(FT_Char)   FT_Read_Char( FT_Stream  stream,
-                                    FT_Error*  error ); 
+                                    FT_Error*  error );
 
   BASE_DEF(FT_Short)  FT_Read_Short( FT_Stream  stream,
-                                     FT_Error*  error ); 
+                                     FT_Error*  error );
 
   BASE_DEF(FT_Long)   FT_Read_Offset( FT_Stream  stream,
-                                      FT_Error*  error ); 
+                                      FT_Error*  error );
 
   BASE_DEF(FT_Long)   FT_Read_Long( FT_Stream  stream,
-                                    FT_Error*  error ); 
+                                    FT_Error*  error );
 
   BASE_DEF(FT_Error)  FT_Read_Fields( FT_Stream             stream,
                                       const FT_Frame_Field* fields,
diff --git a/include/freetype/internal/psnames.h b/include/freetype/internal/psnames.h
index 53011f3..282a2b0 100644
--- a/include/freetype/internal/psnames.h
+++ b/include/freetype/internal/psnames.h
@@ -65,8 +65,8 @@
   *     uncode      :: unicode value.
   *
   *  <Return>
-  *     The glyph index. 0xFFFF is no glyph correspond to this Unicode   
-  *     value..    
+  *     The glyph index. 0xFFFF is no glyph correspond to this Unicode
+  *     value..
   *
   *  <Note>
   *     This function is able to recognize several glyph names per
@@ -87,14 +87,14 @@
   *     PS_Macintosh_Name_Func
   *
   *  <Description>
-  *     A function used to return the glyph name corresponding to one   
+  *     A function used to return the glyph name corresponding to one
   *     Apple glyph name index.
   *
   *  <Input>
   *     name_index :: index of the Mac name
   *
   *  <Return>
-  *     The glyph name, or 0 if the index is incorrect.             
+  *     The glyph name, or 0 if the index is incorrect.
   *
   *  <Note>
   *     This function will not be compiled if the configuration macro
@@ -104,8 +104,8 @@
 
   typedef const char*  (*PS_Macintosh_Name_Func)( FT_UInt  name_index );
 
-  
-  
+
+
   typedef const char*  (*PS_Adobe_Std_Strings_Func)( FT_UInt  string_index );
 
  /***************************************************************************
@@ -130,19 +130,19 @@
   *    corresponding to a given Unicode character code.
   *
   ***************************************************************************/
-  
+
   typedef struct PS_UniMap_
   {
     FT_UInt  unicode;
     FT_UInt  glyph_index;
-    
+
   } PS_UniMap;
-  
+
   typedef struct PS_Unicodes_
   {
     FT_UInt    num_maps;
     PS_UniMap* maps;
-  
+
   } PS_Unicodes;
 
 
@@ -155,14 +155,14 @@
                                                FT_UInt       unicode );
 
  /*************************************************************************
-  *                                                                       
-  * <Struct>                                                              
-  *    PSNames_Interface                                                  
-  *                                                                       
-  * <Description>                                                         
-  *    this structure holds pointers to the functions used to load and    
-  *    free the basic tables that are required in a `sfnt' font file.     
-  *                                                                       
+  *
+  * <Struct>
+  *    PSNames_Interface
+  *
+  * <Description>
+  *    this structure holds pointers to the functions used to load and
+  *    free the basic tables that are required in a `sfnt' font file.
+  *
   * <Field>
   *    unicode_value   :: a function used to convert a glyph name into
   *                       a Unicode character code
@@ -200,11 +200,11 @@
     PS_Build_Unicodes_Func     build_unicodes;
     PS_Lookup_Unicode_Func     lookup_unicode;
     PS_Macintosh_Name_Func     macintosh_name;
-    
+
     PS_Adobe_Std_Strings_Func  adobe_std_strings;
     const unsigned short*      adobe_std_encoding;
     const unsigned short*      adobe_expert_encoding;
-  
+
   } PSNames_Interface;
 
 #endif /* PSNAMES_H */
diff --git a/include/freetype/internal/sfnt.h b/include/freetype/internal/sfnt.h
index b08492a..9e6eb11 100644
--- a/include/freetype/internal/sfnt.h
+++ b/include/freetype/internal/sfnt.h
@@ -161,7 +161,7 @@
   /*  <Note>                                                               */
   /*    The `map.buffer' field is always freed before the glyph is loaded. */
   /*                                                                       */
-  typedef  
+  typedef
   TT_Error  (*TT_Load_SBit_Image_Func)( TT_Face           face,
                                         TT_Int            x_ppem,
                                         TT_Int            y_ppem,
@@ -336,7 +336,7 @@
   typedef struct  SFNT_Interface_
   {
     TT_Goto_Table_Func      goto_table;
-  
+
     TT_Load_Any_Func        load_any;
     TT_Load_Format_Tag_Func load_format_tag;
     TT_Load_Directory_Func  load_directory;
@@ -363,7 +363,7 @@
     TT_Load_Table_Func      load_sbits;
     TT_Load_SBit_Image_Func load_sbit_image;
     TT_Free_Table_Func      free_sbits;
-    
+
     /* see `ttpost.h' */
     TT_Get_PS_Name_Func     get_psname;
     TT_Free_Table_Func      free_psnames;
@@ -371,7 +371,7 @@
     /* see `ttcmap.h' */
     TT_CharMap_Load_Func    load_charmap;
     TT_CharMap_Free_Func    free_charmap;
-    
+
   } SFNT_Interface;
 
 #endif /* SFNT_H */
diff --git a/include/freetype/internal/t1types.h b/include/freetype/internal/t1types.h
index 9c755f5..e4eaa35 100644
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -311,7 +311,7 @@
 
  /* font info dictionary */
     T1_FontInfo    font_info;
- 
+
  /* private dictionary */
     T1_Private     private_dict;
 
@@ -341,9 +341,9 @@
     T1_Long      font_id;
 
     T1_Int       stroke_width;
-  
+
   } T1_Font;
-  
+
 
 
 /*************************************************************************/
diff --git a/include/freetype/internal/tttypes.h b/include/freetype/internal/tttypes.h
index f28c0b9..2a0f46c 100644
--- a/include/freetype/internal/tttypes.h
+++ b/include/freetype/internal/tttypes.h
@@ -1574,7 +1574,7 @@
   /*                                                                       */
   /* <Fields>                                                              */
   /*    loaded    :: A flag to indicate whether the PS names are loaded.   */
-  /*                                                                       */ 
+  /*                                                                       */
   /*    format_20 :: The sub-table used for format 2.0.                    */
   /*                                                                       */
   /*    format_25 :: The sub-table used for format 2.5.                    */
@@ -1717,7 +1717,7 @@
   {
     FT_CharMapRec   root;
     TT_CMapTable    cmap;
-    
+
   } TT_CharMapRec;
 
 
@@ -1997,7 +1997,7 @@
     /* TT_Goto_Table defined in `ttload.h', but some font drivers      */
     /* might need something different, e.g. Type 42 fonts              */
     TT_Goto_Table_Func       goto_table;
-    
+
     /* a typeless pointer to the SFNT_Interface table used to load     */
     /* the basic TrueType tables in the face object                    */
     void*              sfnt;
diff --git a/include/freetype/t1tables.h b/include/freetype/t1tables.h
index 0f565aa..a25d7f2 100644
--- a/include/freetype/t1tables.h
+++ b/include/freetype/t1tables.h
@@ -35,7 +35,7 @@
   *    FontInfo.
   *
   */
-  
+
   typedef struct T1_FontInfo
   {
     FT_String*     version;
@@ -47,7 +47,7 @@
     FT_Bool        is_fixed_pitch;
     FT_Short       underline_position;
     FT_UShort      underline_thickness;
-  
+
   } T1_FontInfo;
 
 
@@ -62,7 +62,7 @@
   *    Private dict.
   *
   */
-  
+
   typedef struct T1_Private
   {
 
@@ -99,18 +99,18 @@
     FT_Long      password;
 
     FT_Short     min_feature[2];
-    
+
   } T1_Private;
 
 
  /*************************************************************************
   *
-  * <Enum>  
+  * <Enum>
   *    T1_Blend_Flags
   *
   * <Description>
   *    A set of flags used to indicate which fields are present in a
-  *    given blen dictionary (font info or private). Used to support  
+  *    given blen dictionary (font info or private). Used to support
   *    multiple masters..
   *
   */
@@ -122,8 +122,8 @@
     t1_blend_underline_position,
     t1_blend_underline_thickness,
     t1_blend_italic_angle,
-    
-    /* required fields in a Private blend dictionary */    
+
+    /* required fields in a Private blend dictionary */
     t1_blend_blue_values,
     t1_blend_other_blues,
     t1_blend_standard_width,
@@ -138,7 +138,7 @@
 
     /* never remove */
     t1_blend_max
-    
+
   } T1_Flags;
 
 
@@ -146,7 +146,7 @@
   {
     FT_Fixed  min;
     FT_Fixed  max;
-    
+
   } T1_Blend_Pos;
 
  /*************************************************************************
@@ -163,14 +163,14 @@
   {
     FT_Int       num_axis;
     FT_String*   axis_types[4];
-    
-    /* XXXX : add /BlendDesignMap entries */   
-    
+
+    /* XXXX : add /BlendDesignMap entries */
+
     FT_Int       num_blends;
     T1_Flags*    flags    [17];
     T1_Private*  privates [17];
     T1_FontInfo* fontinfos[17];
-  
+
   } T1_Blend;
 
 
@@ -183,16 +183,16 @@
     FT_UInt       num_subrs;
     FT_ULong      subrmap_offset;
     FT_Int        sd_bytes;
-  
+
   } CID_FontDict;
 
-  
+
   typedef struct CID_Info_
   {
     FT_String*  cid_font_name;
     FT_Fixed    cid_version;
     FT_Int      cid_font_type;
-  
+
     FT_String*  registry;
     FT_String*  ordering;
     FT_Int      supplement;
@@ -201,16 +201,16 @@
 
     FT_Int      num_xuid;
     FT_ULong    xuid[16];
-    
-    
+
+
     FT_ULong    cidmap_offset;
     FT_Int      fd_bytes;
     FT_Int      gd_bytes;
     FT_ULong    cid_count;
-    
+
     FT_Int         num_font_dicts;
     CID_FontDict*  font_dicts;
-  
+
   } CID_Info;
 
 
diff --git a/include/freetype/tttables.h b/include/freetype/tttables.h
index 7f98c20..3cd9e4d 100644
--- a/include/freetype/tttables.h
+++ b/include/freetype/tttables.h
@@ -360,7 +360,7 @@
     FT_UShort  usDefaultChar;
     FT_UShort  usBreakChar;
     FT_UShort  usMaxContext;
-    
+
   } TT_OS2;
 
 
@@ -493,7 +493,7 @@
     ft_sfnt_post = 5,
 
     sfnt_max   /* don't remove */
-  
+
   } FT_Sfnt_Tag;
 
   /* internal use only */
@@ -524,7 +524,7 @@
   *    You can load any table with a different function.. XXX
   *
   ***************************************************************************/
-  
+
   EXPORT_DEF(void*)  FT_Get_Sfnt_Table( FT_Face      face,
                                         FT_Sfnt_Tag  tag );
 
diff --git a/license.txt b/license.txt
index c42206a..105b6d5 100644
--- a/license.txt
+++ b/license.txt
@@ -117,7 +117,7 @@
   Neither the  FreeType authors and  contributors nor you  shall use
   the name of the  other for commercial, advertising, or promotional
   purposes without specific prior written permission.
-  
+
   We suggest,  but do not require, that  you use one or  more of the
   following phrases to refer  to this software in your documentation
   or advertising  materials: `FreeType Project',  `FreeType Engine',
diff --git a/src/base/ftcalc.c b/src/base/ftcalc.c
index c08c40b..2feee69 100644
--- a/src/base/ftcalc.c
+++ b/src/base/ftcalc.c
@@ -53,7 +53,7 @@
      536870912,  759250125, 1073741824, 1518500250,
     2147483647
   };
-#else  
+#else
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -243,12 +243,12 @@
   /* <Return>                                                              */
   /*    The 32-bit square-root.                                            */
   /*                                                                       */
-  
+
      static
      int  ft_order64( FT_Int64  z )
      {
        int  j = 0;
-   
+
        while ( z )
        {
          z = (unsigned INT64)z >> 1;
@@ -678,13 +678,13 @@
   /* <Return>                                                              */
   /*    The 32-bit square-root.                                            */
   /*                                                                       */
-  
+
       static
       int  ft_order64( FT_Int64*  z )
       {
         FT_Word32  i;
         int        j;
-    
+
         i = z->lo;
         j = 0;
         if ( z->hi )
@@ -692,7 +692,7 @@
           i = z->hi;
           j = 32;
         }
-    
+
         while ( i > 0 )
         {
           i >>= 1;
diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c
index 4bfb3ce..271a6b5 100644
--- a/src/base/ftglyph.c
+++ b/src/base/ftglyph.c
@@ -32,11 +32,11 @@
                          FT_Bool   vertical )
 {
     FT_Glyph_Metrics*  metrics = &face->glyph->metrics;
-    
+
     glyph->memory   = face->memory;
     glyph->width    = metrics->width;
     glyph->height   = metrics->height;
-    
+
     if (vertical)
     {
       glyph->bearingX = metrics->vertBearingX;
@@ -110,13 +110,13 @@
     FT_Pos           origin_y = 0;
 
     *abitglyph = 0;
-    
+
     if (origin)
     {
       origin_x = origin->x & 63;
       origin_y = origin->y & 63;
     }
-    
+
     /* check arguments if the face's format is not scalable */
     if ( !(face->face_flags & FT_FACE_FLAG_SCALABLE) && face->transform_flags )
     {
@@ -135,10 +135,10 @@
     /* disable embedded bitmaps for transformed images */
     if ( face->face_flags & FT_FACE_FLAG_SCALABLE && face->transform_flags )
       load_flags |= FT_LOAD_NO_BITMAP;
-      
+
     error = FT_Load_Glyph( face, glyph_index, load_flags );
     if (error) goto Exit;
-    
+
     /* now, handle bitmap and outline glyph images */
     memory = face->memory;
     switch ( face->glyph->format )
@@ -147,22 +147,22 @@
         {
           FT_Long     size;
           FT_Bitmap*  source;
-          
+
           if ( ALLOC( bitglyph, sizeof(*bitglyph) ) )
             goto Exit;
-            
+
           glyph             = (FT_Glyph)bitglyph;
           glyph->glyph_type = ft_glyph_type_bitmap;
           ft_prepare_glyph( glyph, face, 0 );
-          
+
           source = &face->glyph->bitmap;
           size   = source->rows * source->pitch;
           if (size < 0) size = -size;
-          
+
           bitglyph->bitmap = *source;
           if ( ALLOC( bitglyph->bitmap.buffer, size ) )
             goto Fail;
-            
+
           /* copy the content of the source glyph */
           MEM_Copy( bitglyph->bitmap.buffer, source->buffer, size );
         }
@@ -173,49 +173,49 @@
           FT_BBox  cbox;
           FT_Int   width, height, pitch;
           FT_Long  size;
-          
+
           /* transform the outline - note that the original metrics are NOT */
           /* transformed by this.. only the outline points themselves..     */
           FT_Outline_Transform( &face->glyph->outline, &face->transform_matrix );
           FT_Outline_Translate( &face->glyph->outline,
                                 face->transform_delta.x + origin_x,
                                 face->transform_delta.y + origin_y );
-                                
+
           /* compute the size in pixels of the outline */
           FT_Outline_Get_CBox( &face->glyph->outline, &cbox );
           cbox.xMin &= -64;
           cbox.yMin &= -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;
 
           /* allocate the pixel buffer for the glyph bitmap */
           if (grays) pitch = (width+3) & -4;  /* some raster implementation need this */
                 else pitch = (width+7) >> 3;
-            
+
           size  = pitch * height;
           if ( ALLOC( bitglyph, sizeof(*bitglyph) ) )
             goto Exit;
-            
+
           glyph             = (FT_Glyph)bitglyph;
           glyph->glyph_type = ft_glyph_type_bitmap;
           ft_prepare_glyph( glyph, face, 0 );
-          
+
           if ( ALLOC( bitglyph->bitmap.buffer, size ) )
             goto Fail;
-          
+
           bitglyph->bitmap.width      = width;
           bitglyph->bitmap.rows       = height;
           bitglyph->bitmap.pitch      = pitch;
           bitglyph->bitmap.pixel_mode = grays ? ft_pixel_mode_grays
                                               : ft_pixel_mode_mono;
           bitglyph->bitmap.num_grays  = (short)grays;
-          
+
           bitglyph->left = (cbox.xMin >> 6);
           bitglyph->top  = (cbox.yMax >> 6);
-          
+
           /* render the monochrome outline into the target buffer */
           FT_Outline_Translate( &face->glyph->outline, -cbox.xMin, -cbox.yMin );
           error = FT_Outline_Get_Bitmap( face->driver->library,
@@ -228,22 +228,22 @@
           }
         }
         break;
-      
+
       default:
         error = FT_Err_Invalid_Glyph_Index;
         goto Exit;
     }
-    
+
     *abitglyph = bitglyph;
   Exit:
     return error;
-    
+
   Fail:
     FREE( glyph );
     goto Exit;
   }
 
-  
+
  /***********************************************************************
   *
   * <Function>
@@ -257,7 +257,7 @@
   *    face        :: handle to source face object
   *    glyph_index :: glyph index in face
   *    load_flags  :: load flags, see FT_LOAD_FLAG_XXXX constants..
-  * 
+  *
   * <Output>
   *    vecglyph :: pointer to the new outline glyph
   *
@@ -269,7 +269,7 @@
   *    FT_LOAD_NO_RECURSE are set..
   *
   ***********************************************************************/
-  
+
   EXPORT_FUNC(FT_Error)  FT_Get_Glyph_Outline( FT_Face           face,
                                                FT_UInt           glyph_index,
                                                FT_UInt           load_flags,
@@ -280,27 +280,27 @@
     FT_OutlineGlyph  glyph;
 
     *vecglyph = 0;
-        
+
     /* check that NO_OUTLINE and NO_RECURSE are not set */
     if (load_flags & (FT_LOAD_NO_OUTLINE|FT_LOAD_NO_RECURSE))
     {
       error = FT_Err_Invalid_Argument;
       goto Exit;
     }
-    
+
     /* disable the loading of embedded bitmaps */
     load_flags |= FT_LOAD_NO_BITMAP;
-    
+
     error = FT_Load_Glyph( face, glyph_index, load_flags );
     if (error) goto Exit;
-    
+
     /* check that we really loaded an outline */
     if ( face->glyph->format != ft_glyph_format_outline )
     {
       error = FT_Err_Invalid_Glyph_Index;
       goto Exit;
     }
-    
+
     /* transform the outline - note that the original metrics are NOT */
     /* transformed by this.. only the outline points themselves..     */
     if ( face->transform_flags )
@@ -310,7 +310,7 @@
                             face->transform_delta.x,
                             face->transform_delta.y );
     }
-    
+
     /* now, create a new outline glyph and copy everything there */
     memory = face->memory;
     if ( ALLOC( glyph, sizeof(*glyph) ) )
@@ -318,20 +318,20 @@
 
     ft_prepare_glyph( (FT_Glyph)glyph, face, 0 );
     glyph->metrics.glyph_type = ft_glyph_type_outline;
-    
+
     error = FT_Outline_New( face->driver->library,
                             face->glyph->outline.n_points,
                             face->glyph->outline.n_contours,
                             &glyph->outline );
     if (!error)
       error = FT_Outline_Copy( &face->glyph->outline, &glyph->outline );
-      
+
     if (error) goto Fail;
-    
+
     *vecglyph = glyph;
   Exit:
     return error;
-    
+
   Fail:
     FREE( glyph );
     goto Exit;
@@ -344,7 +344,7 @@
   *
   * <Description>
   *    A function used to set the transform that is applied to glyph images
-  *    just after they're loaded in the face's glyph slot, and before they're 
+  *    just after they're loaded in the face's glyph slot, and before they're
   *    returned by either FT_Get_Glyph_Bitmap or FT_Get_Glyph_Outline
   *
   * <Input>
@@ -357,13 +357,13 @@
   *    in a font face. It is unable to transform embedded glyph bitmaps
   *
   ***********************************************************************/
-  
+
   EXPORT_FUNC(void) FT_Set_Transform( FT_Face     face,
                                       FT_Matrix*  matrix,
                                       FT_Vector*  delta )
   {
     face->transform_flags = 0;
-    
+
     if (!matrix)
     {
       face->transform_matrix.xx = 0x10000L;
@@ -374,7 +374,7 @@
     }
     else
       face->transform_matrix = *matrix;
-    
+
     /* set transform_flags bit flag 0 if delta isn't the null vector */
     if ( (matrix->xy | matrix->yx) ||
          matrix->xx != 0x10000L    ||
@@ -389,7 +389,7 @@
     }
     else
       face->transform_delta = *delta;
-      
+
     /* set transform_flags bit flag 1 if delta isn't the null vector */
     if ( delta->x | delta->y )
       face->transform_flags |= 2;
@@ -404,16 +404,16 @@
   *    Destroys a given glyph..
   *
   * <Input>
-  *    glyph  :: handle to target glyph object 
+  *    glyph  :: handle to target glyph object
   *
   ***********************************************************************/
-  
+
   EXPORT_FUNC(void)  FT_Done_Glyph( FT_Glyph  glyph )
   {
     if (glyph)
     {
       FT_Memory  memory = glyph->memory;
-      
+
       if ( glyph->glyph_type == ft_glyph_type_bitmap )
       {
         FT_BitmapGlyph  bit = (FT_BitmapGlyph)glyph;
@@ -429,7 +429,7 @@
           FREE( out->outline.tags );
         }
       }
-      
+
       FREE( glyph );
     }
   }
@@ -444,7 +444,7 @@
   *    Returns the glyph image's bounding box in pixels.
   *
   * <Input>
-  *    glyph :: handle to target glyph object 
+  *    glyph :: handle to target glyph object
   *
   * <Output>
   *    box   :: the glyph bounding box. Coordinates are expressed in
@@ -458,13 +458,13 @@
   *    The height is box.yMax - box.yMin
   *
   ***********************************************************************/
-  
+
   EXPORT_FUNC(void)  FT_Glyph_Get_Box( FT_Glyph  glyph,
                                        FT_BBox  *box )
   {
     box->xMin = box->xMax = 0;
     box->yMin = box->yMax = 0;
-    
+
     if (glyph) switch (glyph->glyph_type)
     {
       case ft_glyph_type_bitmap:
@@ -476,11 +476,11 @@
           box->yMin = box->yMax - bit->bitmap.rows;
         }
         break;
-        
+
       case ft_glyph_type_outline:
         {
           FT_OutlineGlyph  out = (FT_OutlineGlyph)glyph;
-          
+
           FT_Outline_Get_CBox( &out->outline, box );
           box->xMin >>= 6;
           box->yMin >>= 6;
@@ -488,7 +488,7 @@
           box->yMax  = (box->yMax+63) >> 6;
         }
         break;
-        
+
       default:
         ;
     }
@@ -502,7 +502,7 @@
  /****                                                                   ****/
  /***************************************************************************/
  /***************************************************************************/
- 
+
 #if 0
 
 /* Compute the norm of a vector */
@@ -542,21 +542,21 @@
     hi  = (FT_ULong)u >> 16;
     lo  = (FT_ULong)u & 0xFFFF;
     med = hi*lo;
-    
+
     H     = hi*hi + (med >> 15);
     med <<= 17;
     L     = lo*lo + med;
     if (L < med) H++;
-    
+
     hi  = (FT_ULong)v >> 16;
     lo  = (FT_ULong)v & 0xFFFF;
     med = hi*lo;
-    
+
     H    += hi*hi + (med >> 15);
     med <<= 17;
     L2    = lo*lo + med;
     if (L2 < med) H++;
-    
+
     L += L2;
     if (L < L2) H++;
 
@@ -598,17 +598,17 @@
     prev  = cur - 1;
     next  = cur + 1;
 
-    first = 0;    
+    first = 0;
     for ( c = 0; c < outline->n_contours; c++ )
     {
       last  = outline->contours[c];
 
       if ( n == first )
         prev = outline->points + last;
-        
+
       if ( n == last )
         next = outline->points + first;
-        
+
       first = last + 1;
     }
 
@@ -721,7 +721,7 @@
 	for ( c = 0; c < outline->n_contours; c++ )
 	{
 	  int  last = outline->contours[c];
-	  
+
 	  prev = points[last];
 
 	  for ( n = first; n <= last; n++ )
@@ -777,7 +777,7 @@
 
 		  x = distance + cur.x + FT_MulFix( d, u.x + v.x )/2;
 		  y = distance + cur.y + FT_MulFix( d, u.y + v.y )/2;
-		  
+
 		  outline->points[n].x = x;
 		  outline->points[n].y = y;
 		}
@@ -794,4 +794,4 @@
 	return 0;
   }
 
-#endif /* 0 - EXPERIMENTAL STUFF !! */  
+#endif /* 0 - EXPERIMENTAL STUFF !! */
diff --git a/src/base/ftgrays.c b/src/base/ftgrays.c
index 67ef667..95550ce 100644
--- a/src/base/ftgrays.c
+++ b/src/base/ftgrays.c
@@ -120,7 +120,7 @@
 #define FT_MAX_GRAY_SPANS  32
 
 
-#ifdef GRAYS_COMPACT  
+#ifdef GRAYS_COMPACT
 typedef struct TCell_
 {
   short  x     : 14;
@@ -599,12 +599,12 @@
     /* we compute the mid-point directly in order to avoid */
     /* calling split_conic()..                             */
     TPos   to_x, to_y, mid_x, mid_y;
-    
+
     to_x  = UPSCALE(to->x);
     to_y  = UPSCALE(to->y);
     mid_x = (ras.x + to_x + 2*UPSCALE(control->x))/4;
     mid_y = (ras.y + to_y + 2*UPSCALE(control->y))/4;
-    
+
     return render_line( RAS_VAR_ mid_x, mid_y ) ||
            render_line( RAS_VAR_ to_x, to_y );
   }
@@ -613,7 +613,7 @@
   levels    = ras.lev_stack;
   top       = 0;
   levels[0] = level;
-  
+
   arc[0].x = UPSCALE(to->x);
   arc[0].y = UPSCALE(to->y);
   arc[1].x = UPSCALE(control->x);
@@ -647,12 +647,12 @@
   Draw:
     {
       TPos   to_x, to_y, mid_x, mid_y;
-      
+
       to_x  = arc[0].x;
       to_y  = arc[0].y;
       mid_x = (ras.x + to_x + 2*arc[1].x)/4;
       mid_y = (ras.y + to_y + 2*arc[1].y)/4;
-      
+
       if ( render_line( RAS_VAR_ mid_x, mid_y ) ||
            render_line( RAS_VAR_ to_x, to_y )   ) return 1;
       top--;
@@ -723,12 +723,12 @@
   if (level <= 1)
   {
     TPos   to_x, to_y, mid_x, mid_y;
-    
+
     to_x  = UPSCALE(to->x);
     to_y  = UPSCALE(to->y);
     mid_x = (ras.x + to_x + 3*UPSCALE(control1->x+control2->x))/8;
     mid_y = (ras.y + to_y + 3*UPSCALE(control1->y+control2->y))/8;
-    
+
     return render_line( RAS_VAR_ mid_x, mid_y ) ||
            render_line( RAS_VAR_ to_x, to_y );
   }
@@ -775,12 +775,12 @@
   Draw:
     {
       TPos   to_x, to_y, mid_x, mid_y;
-      
+
       to_x  = arc[0].x;
       to_y  = arc[0].y;
       mid_x = (ras.x + to_x + 3*(arc[1].x+arc[2].x))/8;
       mid_y = (ras.y + to_y + 3*(arc[1].y+arc[2].y))/8;
-      
+
       if ( render_line( RAS_VAR_ mid_x, mid_y ) ||
            render_line( RAS_VAR_ to_x, to_y )   ) return 1;
       top --;
@@ -1015,9 +1015,9 @@
     for ( ; count > 0; count--, spans++ )
     {
       if (spans->coverage)
-#if 1      
+#if 1
         memset( p + spans->x, (spans->coverage+1) >> 1, spans->len );
-#else        
+#else
       {
         q     = p + spans->x;
         limit = q + spans->len;
@@ -1172,7 +1172,7 @@
         ++cur;
         if (cur >= limit || cur->y != start->y || cur->x != start->x)
           break;
-          
+
         area  += cur->area;
         cover += cur->cover;
       }
@@ -1226,7 +1226,7 @@
   typedef struct TBand_
   {
     FT_Pos  min, max;
-    
+
   } TBand;
 
   static
@@ -1254,7 +1254,7 @@
     if ( ras.max_ex <= 0 || ras.min_ex >= ras.target.width ||
          ras.max_ey <= 0 || ras.min_ey >= ras.target.rows  )
       return 0;
-        
+
     if (ras.min_ex < 0) ras.min_ex = 0;
     if (ras.min_ey < 0) ras.min_ey = 0;
 
@@ -1271,7 +1271,7 @@
         level++;
       if (ras.max_ex > 120 || ras.max_ey > 120)
         level+=2;
-        
+
       ras.conic_level <<= level;
       ras.cubic_level <<= level;
     }
@@ -1280,7 +1280,7 @@
     num_bands = (ras.max_ey - ras.min_ey)/ras.band_size;
     if (num_bands == 0)  num_bands = 1;
     if (num_bands >= 39) num_bands = 39;
-      
+
     ras.band_shoot = 0;
 
     min   = ras.min_ey;
@@ -1290,24 +1290,24 @@
       max = min + ras.band_size;
       if (n == num_bands-1 || max > max_y)
         max = max_y;
-        
+
       bands[0].min = min;
       bands[0].max = max;
       band         = bands;
-            
+
       while (band >= bands)
       {
         FT_Pos  bottom, top, middle;
         int     error;
-  
+
         ras.num_cells = 0;
         ras.invalid   = 1;
         ras.min_ey    = band->min;
         ras.max_ey    = band->max;
-  
+
         error = FT_Outline_Decompose( outline, &interface, &ras ) ||
                 record_cell( RAS_VAR );
-  
+
         if (!error)
         {
           #ifdef SHELL_SORT
@@ -1315,22 +1315,22 @@
           #else
           quick_sort( ras.cells, ras.num_cells );
           #endif
-      
+
           #ifdef DEBUG_GRAYS
           check_sort( ras.cells, ras.num_cells );
           dump_cells( RAS_VAR );
           #endif
-  
+
           grays_sweep( RAS_VAR_  &ras.target );
           band--;
           continue;
         }
-  
+
         /* render pool overflow, we will reduce the render band by half */
         bottom = band->min;
         top    = band->max;
         middle = bottom + ((top-bottom) >> 1);
-  
+
         /* waoow !! this is too complex for a single scanline, something */
         /* must be really rotten here !!                                 */
         if (middle == bottom)
@@ -1340,10 +1340,10 @@
           #endif
           return 1;
         }
-  
+
         if (bottom-top >= ras.band_size)
           ras.band_shoot++;
-  
+
         band[1].min = bottom;
         band[1].max = middle;
         band[0].min = middle;
@@ -1461,10 +1461,10 @@
                            long         pool_size )
   {
     PRaster  rast = (PRaster)raster;
-    
+
     if (raster && pool_base && pool_size >= 4096)
       init_cells( rast, (char*)pool_base, pool_size );
-      
+
     rast->band_size  = (pool_size / sizeof(TCell))/8;
   }
 
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 29caeea..81438e2 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -227,9 +227,9 @@
     memory   = library->memory;
     if ( ALLOC( stream, sizeof ( *stream ) ) )
       goto Exit;
-      
+
     stream->memory = memory;
-    
+
     /* now, look at the stream flags */
     if ( args->flags & ft_open_memory )
     {
@@ -253,10 +253,10 @@
     {
       error = FT_Err_Invalid_Argument;
     }
-    
+
     if ( error )
       FREE( stream );
-      
+
     *astream = stream;
   Exit:
     return error;
@@ -341,7 +341,7 @@
       face->generic.finalizer( face );
 
     /* close the stream for this face */
-    ft_done_stream( &face->stream );    
+    ft_done_stream( &face->stream );
 
     /* get rid of it */
     FREE( face );
@@ -394,8 +394,8 @@
   *   FT_Get_Raster
   *
   * <Description>
-  *   Return a pointer to the raster corresponding to a given glyph   
-  *   format tag.      
+  *   Return a pointer to the raster corresponding to a given glyph
+  *   format tag.
   *
   * <Input>
   *   library      :: handle to source library object
@@ -408,13 +408,13 @@
   *   a pointer to the corresponding raster object.
   *
   *************************************************************************/
-  
+
   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];
@@ -462,18 +462,18 @@
     FT_Raster        raster;
     FT_Error         error;
     FT_Int           n, index;
- 
+
     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;
-    
+
     raster_funcs->raster_reset( raster,
                                 library->raster_pool,
                                 library->raster_pool_size );
-    
+
     index = -1;
     for (n = 0; n < FT_MAX_GLYPH_FORMATS; n++)
     {
@@ -482,7 +482,7 @@
       /* 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)
       {
@@ -511,7 +511,7 @@
   Fail:
     raster_funcs->raster_done( raster );
     goto Exit;
-  }                           
+  }
 
   /*************************************************************************/
   /*                                                                       */
@@ -534,8 +534,8 @@
     FT_Glyph_Format  glyph_format = raster_funcs->glyph_format;
     FT_Error         error;
     FT_Int           n;
- 
-    error = FT_Err_Invalid_Argument;    
+
+    error = FT_Err_Invalid_Argument;
     if ( glyph_format == ft_glyph_format_none)
       goto Exit;
 
@@ -581,7 +581,7 @@
   {
     FT_Raster_Funcs  funcs;
     FT_Raster        raster;
-    
+
     raster = FT_Get_Raster( library, format, &funcs );
     if (raster && funcs.raster_set_mode )
       return funcs.raster_set_mode( raster, mode, args );
@@ -657,7 +657,7 @@
     /* 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;
@@ -1133,13 +1133,13 @@
       {
         FT_Int         num_params = 0;
         FT_Parameter*  params     = 0;
-        
+
         if ( args->flags & ft_open_params )
         {
           num_params = args->num_params;
           params     = args->params;
         }
-        
+
         error = open_face( driver, stream, face_index,
                            num_params, params, &face );
         if ( !error )
@@ -1164,13 +1164,13 @@
         {
           FT_Int         num_params = 0;
           FT_Parameter*  params     = 0;
-          
+
           if ( args->flags & ft_open_params )
           {
             num_params = args->num_params;
             params     = args->params;
           }
-          
+
           error = open_face( driver, stream, face_index,
                              num_params, params, &face );
           if ( !error )
@@ -1194,7 +1194,7 @@
       goto Fail;
 
     node->data = face;
-    /* don't assume driver is the same as face->driver, so use 
+    /* don't assume driver is the same as face->driver, so use
        face->driver instead. (JvR 3/5/2000) */
     FT_List_Add( &face->driver->faces_list, node );
 
@@ -1283,7 +1283,7 @@
     return FT_Attach_Stream( face, &open );
   }
 
-                            
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -1315,33 +1315,33 @@
     FT_Stream  stream;
     FT_Error   error;
     FT_Driver  driver;
-    
+
     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;
-    
+
     /* we implement FT_Attach_Stream in each driver through the */
     /* "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)
         error = reader( face, stream );
     }
-    
+
     /* close the attached stream */
     ft_done_stream( &stream );
-    
+
   Exit:
     return error;
   }
@@ -1653,7 +1653,7 @@
                                     face->units_per_EM );
     }
 
-    error = interface->set_pixel_sizes( face->size, 
+    error = interface->set_pixel_sizes( face->size,
                                         pixel_width,
                                         pixel_height );
     return error;
@@ -1814,7 +1814,7 @@
       return FT_Err_Invalid_Face_Handle;
 
     driver = face->driver;
-    
+
     /* when the flag NO_RECURSE is set, we disable hinting and scaling */
     if (load_flags & FT_LOAD_NO_RECURSE)
       load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
@@ -1940,7 +1940,7 @@
   {
     FT_CharMap*  cur   = face->charmaps;
     FT_CharMap*  limit = cur + face->num_charmaps;
-    
+
     for ( ; cur < limit; cur++ )
     {
       if ( cur[0]->encoding == encoding )
@@ -1979,7 +1979,7 @@
   {
     FT_CharMap*  cur   = face->charmaps;
     FT_CharMap*  limit = cur + face->num_charmaps;
-    
+
     for ( ; cur < limit; cur++ )
     {
       if ( cur[0] == charmap )
@@ -2048,26 +2048,26 @@
   *    You can load any table with a different function.. XXX
   *
   ***************************************************************************/
-  
-  
+
+
   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))
       goto Exit;
-    
+
     driver = face->driver;
     func = (FT_Get_Sfnt_Table_Func)driver->interface.get_interface( driver, "get_sfnt" );
     if (func)
       table = func(face,tag);
-    
+
   Exit:
     return table;
-  }			    
+  }
 
 
 
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c
index 10befb5..e3db124 100644
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -88,7 +88,7 @@
 
       v_start = outline->points[first];
       v_last  = outline->points[last];
-      
+
       v_start.x = SCALED(v_start.x);  v_start.y = SCALED(v_start.y);
       v_last.x  = SCALED(v_last.x);   v_last.y  = SCALED(v_last.y);
 
@@ -133,91 +133,91 @@
       {
         point++;
         tags++;
-  
+
         tag = FT_CURVE_TAG( tags[0] );
         switch (tag)
         {
           case FT_Curve_Tag_On:  /* emit a single line_to */
             {
               FT_Vector  vec;
-              
+
               vec.x = SCALED(point->x);
               vec.y = SCALED(point->y);
-              
+
               error = interface->line_to( &vec, user );
               if (error) goto Exit;
               continue;
             }
 
-          
+
           case FT_Curve_Tag_Conic:  /* consume conic arcs */
             {
               v_control.x = SCALED(point->x);
               v_control.y = SCALED(point->y);
-              
+
             Do_Conic:
               if (point < limit)
               {
                 FT_Vector  vec;
                 FT_Vector  v_middle;
-                
+
                 point++;
                 tags++;
                 tag = FT_CURVE_TAG( tags[0] );
-                
+
                 vec.x = SCALED(point->x);
                 vec.y = SCALED(point->y);
-                
+
                 if (tag == FT_Curve_Tag_On)
                 {
                   error = interface->conic_to( &v_control, &vec, user );
                   if (error) goto Exit;
                   continue;
                 }
-                
+
                 if (tag != FT_Curve_Tag_Conic)
                   goto Invalid_Outline;
-  
+
                 v_middle.x = (v_control.x + vec.x)/2;
                 v_middle.y = (v_control.y + vec.y)/2;
-  
+
                 error = interface->conic_to( &v_control, &v_middle, user );
                 if (error) goto Exit;
-                
+
                 v_control = vec;
                 goto Do_Conic;
               }
-              
+
               error = interface->conic_to( &v_control, &v_start, user );
               goto Close;
             }
-          
+
           default:  /* FT_Curve_Tag_Cubic */
             {
               FT_Vector  vec1, vec2;
-              
+
               if ( point+1 > limit         ||
                    FT_CURVE_TAG( tags[1] ) != FT_Curve_Tag_Cubic )
                 goto Invalid_Outline;
-                
+
               point += 2;
               tags  += 2;
-              
+
               vec1.x = SCALED(point[-2].x);  vec1.y = SCALED(point[-2].y);
               vec2.x = SCALED(point[-1].x);  vec2.y = SCALED(point[-1].y);
 
               if (point <= limit)
               {
                 FT_Vector  vec;
-                
+
                 vec.x = SCALED(point->x);
                 vec.y = SCALED(point->y);
-                
+
                 error = interface->cubic_to( &vec1, &vec2, &vec, user );
                 if (error) goto Exit;
                 continue;
               }
-              
+
               error = interface->cubic_to( &vec1, &vec2, &v_start, user );
               goto Close;
             }
@@ -226,7 +226,7 @@
 
       /* close the contour with a line segment */
       error = interface->line_to( &v_start, user );
-      
+
    Close:
       if (error) goto Exit;
       first = last+1;
@@ -235,7 +235,7 @@
     return 0;
   Exit:
     return error;
-    
+
   Invalid_Outline:
     return -1;
   }
@@ -389,7 +389,7 @@
                                         FT_BBox*     cbox )
   {
     FT_Pos  xMin, yMin, xMax, yMax;
-    
+
     if ( outline && cbox )
     {
       if ( outline->n_points == 0 )
@@ -428,7 +428,7 @@
     }
   }
 
-  
+
 
   /*************************************************************************/
   /*                                                                       */
@@ -481,18 +481,18 @@
   {
     FT_UShort  n;
     FT_Int     first, last;
-    
+
     first = 0;
     for ( n = 0; n < outline->n_contours; n++ )
     {
       last  = outline->contours[n];
-      
+
       /* reverse point table */
       {
         FT_Vector*  p = outline->points + first;
         FT_Vector*  q = outline->points + last;
         FT_Vector   swap;
-        
+
         while (p < q)
         {
           swap = *p;
@@ -502,13 +502,13 @@
           q--;
         }
       }
-      
+
       /* reverse tags table */
       {
         char*  p = outline->tags + first;
         char*  q = outline->tags + last;
         char   swap;
-        
+
         while (p < q)
         {
           swap = *p;
@@ -518,7 +518,7 @@
           q--;
         }
       }
-      
+
       first = last+1;
     }
     outline->flags ^= ft_outline_reverse_fill;
@@ -538,7 +538,7 @@
   BASE_FUNC(void)  FT_Done_GlyphZone( FT_GlyphZone*  zone )
   {
     FT_Memory  memory = zone->memory;
-    
+
     FREE( zone->contours );
     FREE( zone->tags );
     FREE( zone->cur );
@@ -547,7 +547,7 @@
     zone->max_points   = zone->n_points   = 0;
     zone->max_contours = zone->n_contours = 0;
   }
-  
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -581,7 +581,7 @@
 
     MEM_Set( zone, 0, sizeof(*zone) );
     zone->memory = memory;
-    
+
     if ( ALLOC_ARRAY( zone->org,      maxPoints*2, FT_F26Dot6 ) ||
          ALLOC_ARRAY( zone->cur,      maxPoints*2, FT_F26Dot6 ) ||
          ALLOC_ARRAY( zone->tags,    maxPoints,   FT_Byte    ) ||
@@ -621,7 +621,7 @@
   {
     FT_Error      error  = FT_Err_Ok;
     FT_Memory     memory = zone->memory;
-    
+
     newPoints += 2;
     if ( zone->max_points < newPoints )
     {
@@ -630,16 +630,16 @@
            REALLOC_ARRAY( zone->cur,   zone->max_points*2, newPoints*2, FT_F26Dot6 ) ||
            REALLOC_ARRAY( zone->tags, zone->max_points*2, newPoints,   FT_Byte    ) )
         goto Exit;
-        
+
       zone->max_points = newPoints;
     }
-    
+
     if ( zone->max_contours < newContours )
     {
       /* reallocate the contours array */
       if ( REALLOC_ARRAY( zone->contours, zone->max_contours, newContours, FT_UShort ) )
         goto Exit;
-        
+
       zone->max_contours = newContours;
     }
   Exit:
@@ -692,7 +692,7 @@
     params.flags  = 0;
     if (map->pixel_mode == ft_pixel_mode_grays)
       params.flags |= ft_raster_flag_aa;
-    
+
     error = funcs.raster_render( raster, &params );
   Exit:
     return error;
@@ -732,7 +732,7 @@
   EXPORT_FUNC(FT_Error)  FT_Outline_Render( FT_Library        library,
                                             FT_Outline*       outline,
                                             FT_Raster_Params* params )
-  {                               
+  {
     FT_Error         error;
     FT_Raster        raster;
     FT_Raster_Funcs  funcs;
@@ -788,7 +788,7 @@
                                         FT_Outline*  target )
   {
     FT_Int  is_owner;
-    
+
     if ( !source            || !target            ||
          source->n_points   != target->n_points   ||
          source->n_contours != target->n_contours )
@@ -806,7 +806,7 @@
     /* copy all flags, except the "ft_outline_owner" one */
     is_owner = target->flags & ft_outline_owner;
     target->flags = source->flags;
-    
+
     target->flags &= ~ft_outline_owner;
     target->flags |= is_owner;
     return FT_Err_Ok;
diff --git a/src/base/ftraster.c b/src/base/ftraster.c
index 93c25af..26a9a2b 100644
--- a/src/base/ftraster.c
+++ b/src/base/ftraster.c
@@ -189,14 +189,14 @@
   /**                                                            **/
   /****************************************************************/
   /****************************************************************/
-  
+
   typedef int            Int;
   typedef unsigned int   UInt;
   typedef short          Short;
   typedef unsigned short UShort, *PUShort;
   typedef long           Long, *PLong;
   typedef unsigned long  ULong;
-  
+
   typedef unsigned char  Byte, *PByte;
   typedef char           Bool;
 
@@ -204,7 +204,7 @@
   {
     Long  x;
     Long  y;
-    
+
   } TPoint;
 
 
@@ -213,7 +213,7 @@
     Flow_None = 0,
     Flow_Up   = 1,
     Flow_Down = -1
-  
+
   } TFlow;
 
 
@@ -224,7 +224,7 @@
     Ascending,
     Descending,
     Flat
-    
+
   } TStates;
 
 
@@ -257,7 +257,7 @@
   {
     Short  y_min;   /* band's minimum */
     Short  y_max;   /* band's maximum */
-    
+
   } TBand;
 
 
@@ -410,7 +410,7 @@
                         /* in bytes of at least 'gray_width*2'              */
 
 #endif /* FT_RASTER_ANTI_ALIASING */
-    
+
 #if 0
     PByte     flags;                /* current flags table    */
     PUShort   outs;                 /* current outlines table */
@@ -428,7 +428,7 @@
 
   static TRaster_Instance  cur_ras;
   #define ras  cur_ras
-  
+
 #else
 
   #define ras  (*raster)
@@ -442,7 +442,7 @@
   /**                                                            **/
   /****************************************************************/
   /****************************************************************/
-  
+
 
 /************************************************************************/
 /*                                                                      */
@@ -1415,7 +1415,7 @@
       SWAP_(v_start.x,v_start.y);
       SWAP_(v_last.x,v_last.y);
     }
-    
+
     v_control = v_start;
 
     point = points + first;
@@ -1457,14 +1457,14 @@
     {
       point++;
       tags++;
-  
+
       tag = FT_CURVE_TAG( tags[0] );
       switch (tag)
       {
         case FT_Curve_Tag_On:  /* emit a single line_to */
           {
             Long  x, y;
-            
+
             x = SCALED(point->x);
             y = SCALED(point->y);
             if (flipped) SWAP_(x,y);
@@ -1473,64 +1473,64 @@
             continue;
           }
 
-          
+
         case FT_Curve_Tag_Conic:  /* consume conic arcs */
           {
             v_control.x = SCALED(point[0].x);
             v_control.y = SCALED(point[0].y);
             if (flipped) SWAP_(v_control.x,v_control.y);
-              
+
           Do_Conic:
             if (point < limit)
             {
               FT_Vector  v_middle;
               Long       x, y;
-              
+
               point++;
               tags++;
               tag = FT_CURVE_TAG( tags[0] );
-              
+
               x = SCALED(point[0].x);
               y = SCALED(point[0].y);
               if (flipped) SWAP_(x,y);
-                
+
               if (tag == FT_Curve_Tag_On)
               {
                 if (Conic_To( RAS_VARS v_control.x, v_control.y, x, y ))
                   goto Fail;
                 continue;
               }
-                
+
               if (tag != FT_Curve_Tag_Conic)
                 goto Invalid_Outline;
 
               v_middle.x = (v_control.x + x)/2;
               v_middle.y = (v_control.y + y)/2;
 
-              if (Conic_To( RAS_VARS v_control.x, v_control.y, 
+              if (Conic_To( RAS_VARS v_control.x, v_control.y,
                                      v_middle.x,  v_middle.y )) goto Fail;
-                
+
               v_control.x = x;
               v_control.y = y;
               goto Do_Conic;
             }
-          
+
             if (Conic_To( RAS_VARS v_control.x, v_control.y,
                                    v_start.x,   v_start.y )) goto Fail;
             goto Close;
           }
-          
+
         default:  /* FT_Curve_Tag_Cubic */
           {
             Long  x1, y1, x2, y2, x3, y3;
-            
+
             if ( point+1 > limit         ||
                  FT_CURVE_TAG( tags[1] ) != FT_Curve_Tag_Cubic )
               goto Invalid_Outline;
-                
+
             point += 2;
             tags  += 2;
-            
+
             x1 = SCALED(point[-2].x);
             y1 = SCALED(point[-2].y);
             x2 = SCALED(point[-1].x);
@@ -1549,7 +1549,7 @@
                 goto Fail;
               continue;
             }
-            
+
             if (Cubic_To( RAS_VARS x1, y1, x2, y2, v_start.x, v_start.y ))
               goto Fail;
             goto Close;
@@ -1563,14 +1563,14 @@
 
   Close:
     return SUCCESS;
-    
+
   Invalid_Outline:
     ras.error = Raster_Err_Invalid;
-  
+
   Fail:
     return FAILURE;
   }
-  
+
 /****************************************************************************/
 /*                                                                          */
 /* Function:    Convert_Glyph                                               */
@@ -1650,7 +1650,7 @@
   /**                                                            **/
   /****************************************************************/
   /****************************************************************/
-  
+
 
 /************************************************/
 /*                                              */
@@ -1820,14 +1820,14 @@
   static void  Vertical_Sweep_Init( RAS_ARGS Short*  min, Short*  max )
   {
     Long  pitch = ras.target.pitch;
-    
+
     UNUSED(max);
-    
+
     ras.traceIncr = (Short)- pitch;
     ras.traceOfs  = - *min * pitch;
     if (pitch > 0)
       ras.traceOfs += (ras.target.rows-1)*pitch;
-  
+
     ras.gray_min_x = 0;
     ras.gray_max_x = 0;
   }
@@ -2039,7 +2039,7 @@
 
     UNUSED(left);
     UNUSED(right);
-    
+
     if ( x2-x1 < ras.precision )
     {
       e1 = CEILING( x1 );
@@ -2059,7 +2059,7 @@
           p = bits - e1*ras.target.pitch;
           if (ras.target.pitch > 0)
             p += (ras.target.rows-1)*ras.target.pitch;
-         
+
           p[0] |= f1;
         }
       }
@@ -2191,7 +2191,7 @@
   static void  Vertical_Gray_Sweep_Init( RAS_ARGS Short*  min, Short*  max )
   {
     Long  pitch, byte_len;
-    
+
     *min = *min & -2;
     *max = ( *max + 3 ) & -2;
 
@@ -2232,7 +2232,7 @@
         Int    last_cell  = last_pixel >> 2;
         Int    last_bit   = last_pixel & 3;
         Bool   over       = 0;
-      
+
         if (ras.gray_max_x >= last_cell && last_bit != 3)
         {
           ras.gray_max_x = last_cell-1;
@@ -2267,7 +2267,7 @@
           pix += 4;
           c1  --;
         }
-        
+
         if (over)
         {
           c2 = count[*bit] + count[*bit2];
@@ -2800,7 +2800,7 @@
 
     ras.bWidth  = ras.gray_width;
     pixel_width = 2*((ras.target.width + 3) >> 2);
-      
+
     if ( ras.bWidth > pixel_width )
       ras.bWidth = pixel_width;
 
@@ -2850,7 +2850,7 @@
   {
     FT_UInt  n;
     FT_ULong c;
-    
+
     /* setup count table */
     for ( n = 0; n < 256; n++ )
     {
@@ -2860,14 +2860,14 @@
           ((c << 4) & 0x0300) |
           ((c << 2) & 0x0030) |
                 (c  & 0x0003);
-                 
+
       raster->count_table[n] = c;
     }
-    
+
     /* set default 5-levels gray palette */
     for ( n = 0; n < 5; n++ )
       raster->grays[n] = (n*127/4);
-      
+
     raster->gray_width = RASTER_GRAY_LINES/2;
   }
 
@@ -2879,7 +2879,7 @@
   int  ft_black_new( void*  memory, FT_Raster *araster )
   {
      static FT_RasterRec_  the_raster;
-     *araster = &the_raster;  
+     *araster = &the_raster;
      memset( &the_raster, sizeof(the_raster), 0 );
      ft_black_init( &the_raster );
      return 0;
@@ -2901,7 +2901,7 @@
   {
     FT_Error           error;
     TRaster_Instance*  raster;
-    
+
     *araster = 0;
     if ( !ALLOC( raster, sizeof(*raster) ))
     {
@@ -2910,17 +2910,17 @@
 
       *araster = raster;
     }
-      
+
     return error;
   }
-  
+
   static
   void ft_black_done( TRaster_Instance*  raster )
   {
     FT_Memory  memory = (FT_Memory)raster->memory;
     FREE( raster );
   }
-  
+
 #endif
 
 
@@ -2949,8 +2949,8 @@
       raster->grays[3] = palette[3];
       raster->grays[4] = palette[4];
     }
-  }                                 
-  
+  }
+
 
   static
   int  ft_black_render( TRaster_Instance*  raster,
@@ -2958,7 +2958,7 @@
   {
     FT_Outline*  outline    = (FT_Outline*)params->source;
     FT_Bitmap*   target_map = params->target;
-    
+
     if ( !raster || !raster->buff || !raster->sizeBuff )
       return Raster_Err_Not_Ini;
 
@@ -2981,8 +2981,8 @@
 
     ras.outline  = *outline;
     ras.target   = *target_map;
-    
-    return ( params->flags & ft_raster_flag_aa 
+
+    return ( params->flags & ft_raster_flag_aa
            ? Render_Gray_Glyph( raster )
            : Render_Glyph( raster ) );
   }
diff --git a/src/base/ftstream.c b/src/base/ftstream.c
index d759a43..2179ba1 100644
--- a/src/base/ftstream.c
+++ b/src/base/ftstream.c
@@ -428,29 +428,29 @@
   {
     FT_Error  error;
     FT_Bool   frame_accessed = 0;
-    
+
     if (!fields || !stream)
       return FT_Err_Invalid_Argument;
-      
+
     error = FT_Err_Ok;
     do
     {
       FT_ULong  value;
       FT_Int    sign_shift;
       FT_Byte*  p;
-      
+
       switch (fields->value)
       {
         case ft_frame_start:  /* access a new frame */
           {
             error = FT_Access_Frame( stream, fields->offset );
             if (error) goto Exit;
-            
+
             frame_accessed = 1;
             fields++;
             continue;  /* loop ! */
           }
-          
+
         case ft_frame_byte:
         case ft_frame_schar:  /* read a single byte */
           {
@@ -458,7 +458,7 @@
             sign_shift = 24;
             break;
           }
-          
+
         case ft_frame_short_be:
         case ft_frame_ushort_be:  /* read a 2-byte big-endian short */
           {
@@ -538,13 +538,13 @@
           /* otherwise, exit the loop */
           goto Exit;
       }
-      
+
       /* now, compute the signed value is necessary */
       if (fields->value & FT_FRAME_OP_SIGNED)
         value   = (FT_ULong)((FT_Long)(value << sign_shift) >> sign_shift);
-      
+
       /* finally, store the value in the object */
-      
+
       p = (FT_Byte*)structure + fields->offset;
       switch (fields->size)
       {
@@ -553,7 +553,7 @@
         case 4: *(FT_ULong*)p  = (FT_ULong) value; break;
         default:  ; /* ignore !! */
       }
-      
+
       /* go to next field */
       fields++;
     }
@@ -563,7 +563,7 @@
     /* close the frame if it was opened by this read */
     if (frame_accessed)
       FT_Forget_Frame(stream);
-      
+
     return error;
   }
 
diff --git a/src/base/ftsystem.c b/src/base/ftsystem.c
index e9dae85..165b2f1 100644
--- a/src/base/ftsystem.c
+++ b/src/base/ftsystem.c
@@ -6,20 +6,20 @@
  *
  *    This file contains the definition of interface used by FreeType
  *    to access low-level, i.e. memory management, i/o access as well
- *    as thread synchronisation.              
+ *    as thread synchronisation.
  *
  *
- *  Copyright 1996-1999 by                                                   
- *  David Turner, Robert Wilhelm, and Werner Lemberg                         
- *                                                                           
- *  This file is part of the FreeType project, and may only be used          
- *  modified and distributed under the terms of the FreeType project         
- *  license, LICENSE.TXT.  By continuing to use, modify, or distribute       
- *  this file you indicate that you have read the license and                 
- *  understand and accept it fully.                                          
- *                                                                           
+ *  Copyright 1996-1999 by
+ *  David Turner, Robert Wilhelm, and Werner Lemberg
+ *
+ *  This file is part of the FreeType project, and may only be used
+ *  modified and distributed under the terms of the FreeType project
+ *  license, LICENSE.TXT.  By continuing to use, modify, or distribute
+ *  this file you indicate that you have read the license and
+ *  understand and accept it fully.
+ *
  **************************************************************************/
- 
+
 #include <freetype/config/ftconfig.h>
 #include <freetype/ftsystem.h>
 #include <freetype/fterrors.h>
@@ -48,7 +48,7 @@
  * <Output>
  *    block     :: address of newly allocated block
  *
- * <Return>  
+ * <Return>
  *    Error code. 0 means success.
  *
  * <Note>
@@ -90,7 +90,7 @@
  *    Error code. 0 means success.
  *
  * <Note>
- *    This function is _never_ called when the system flag 
+ *    This function is _never_ called when the system flag
  *    FT_SYSTEM_FLAG_NO_REALLOC is set. Instead, the engine will emulate
  *    realloc through "alloc" and "free".
  *
@@ -165,10 +165,10 @@
                                unsigned long  count )
   {
     FILE*  file;
-    
+
     file = STREAM_FILE(stream);
 
-    fseek( file, offset, SEEK_SET );    
+    fseek( file, offset, SEEK_SET );
     return (unsigned long)fread( buffer, 1, count, file );
   }
 
@@ -177,18 +177,18 @@
                                    FT_Stream    stream )
   {
     FILE*  file;
-    
+
     file = fopen( filepathname, "rb" );
     if (!file)
       return FT_Err_Cannot_Open_Resource;
-      
+
     fseek( file, 0, SEEK_END );
     stream->size = ftell(file);
     fseek( file, 0, SEEK_SET );
-    
+
     stream->descriptor.pointer = file;
     stream->pos                = 0;
-    
+
     stream->read  = ft_io_stream;
     stream->close = ft_close_stream;
 
@@ -199,7 +199,7 @@
   EXPORT_FUNC(FT_Memory)  FT_New_Memory( void )
   {
     FT_Memory  memory;
-    
+
     memory = (FT_Memory)malloc( sizeof(*memory) );
     if (memory)
     {
diff --git a/src/oldapi/truetype.h b/src/oldapi/truetype.h
index fbde469..e97656e 100644
--- a/src/oldapi/truetype.h
+++ b/src/oldapi/truetype.h
@@ -19,13 +19,13 @@
  *
  *  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 
+ *  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.
  *
  *  Note:
  *
- *    This is the only file that should be included by client            
+ *    This is the only file that should be included by client
  *    application sources.  All other types and functions defined
  *    in the "tt*.h" files are library internals and should not be
  *    included.
@@ -115,7 +115,7 @@
 
 
   struct  TT_UnitVector_      /* guess what...  */
-  { 
+  {
     TT_F2Dot14  x;
     TT_F2Dot14  y;
   };
@@ -215,7 +215,7 @@
 
   typedef struct TT_Outline_  TT_Outline;
 
- 
+
   /* A structure used to return glyph metrics.                          */
   /*                                                                    */
   /* The "bearingX" isn't called "left-side bearing" anymore because    */
@@ -427,7 +427,7 @@
 
     TT_Short   metric_Data_Format;
     TT_UShort  number_Of_HMetrics;
-    
+
     /* The following fields are not defined by the TrueType specification */
     /* but they're used to connect the metrics header to the relevant     */
     /* "HMTX" or "VMTX" table.                                            */
@@ -463,7 +463,7 @@
 
     TT_Short   metric_Data_Format;
     TT_UShort  number_Of_VMetrics;
-    
+
     /* The following fields are not defined by the TrueType specification */
     /* but they're used to connect the metrics header to the relevant     */
     /* "HMTX" or "VMTX" table.                                            */
@@ -979,7 +979,7 @@
 
 
 
-  
+
   /*************************************************************/
   /*                                                           */
   /* <Struct> TT_SBit_Component                                */
@@ -1225,7 +1225,7 @@
   EXPORT_DEF
   TT_Error  TT_Set_Raster_Gray_Palette( TT_Engine       engine,
                                         const TT_Byte*  palette );
-  
+
 
   /* ----------------------- face management ----------------------- */
 
@@ -1450,7 +1450,7 @@
   /* Return glyph outline pointers in 'outline'.  Note that the returned */
   /* pointers are owned by the glyph object, and will be destroyed with  */
   /* it.  The client application should _not_ change the pointers.       */
-  
+
   EXPORT_DEF
   TT_Error  TT_Get_Glyph_Outline( TT_Glyph     glyph,
                                   TT_Outline*  outline );
@@ -1580,7 +1580,7 @@
   EXPORT_DEF
   void      TT_Matrix_Multiply( TT_Matrix*  a,
                                 TT_Matrix*  b );
-                 
+
 
   /* Invert a transformation matrix. */
 
@@ -1593,7 +1593,7 @@
   EXPORT_DEF
   TT_Long   TT_MulDiv( TT_Long A, TT_Long B, TT_Long C );
 
-  
+
   /* Compute A*B/0x10000 with 64 bits intermediate precision. */
   /* Useful to multiply by a 16.16 fixed float value.         */
 
@@ -1697,7 +1697,7 @@
                                 TT_UShort*   length );  /* string length
                                                            address */
 
- 
+
 
 #ifdef __cplusplus
   }
diff --git a/src/oldapi/ttapi.c b/src/oldapi/ttapi.c
index 6367251..1d07219 100644
--- a/src/oldapi/ttapi.c
+++ b/src/oldapi/ttapi.c
@@ -1,6 +1,6 @@
 /*******************************************************************
  *
- *  ttapi.c    
+ *  ttapi.c
  *
  *    High-level interface implementation
  *
@@ -9,7 +9,7 @@
  *
  *  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 
+ *  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.
  *
@@ -17,7 +17,7 @@
  *
  *    This file is used to implement most of the functions that are
  *    defined in the file "freetype.h". However, two functions are
- *    implemented elsewhere :                                
+ *    implemented elsewhere :
  *
  ******************************************************************/
 
@@ -47,7 +47,7 @@
 
   static
   const FT_DriverInterface*  tt_interface = &tt_driver_interface;
-  
+
   static
   const TT_DriverInterface*  tt_extension = &tt_format_interface;
 
@@ -84,7 +84,7 @@
 
     error = FT_New_System( &system );
     if (error) return error;
-    
+
     error = FT_New_Library( system, &library );
     if (!error)
       /* Now create a new TrueType driver object */
@@ -163,12 +163,12 @@
   EXPORT_FUNC
   TT_Error  TT_Set_Raster_Gray_Palette( TT_Engine       engine,
                                         const TT_Byte*  palette )
-  {  
+  {
     FT_Library  library;
-    
+
     if (!engine)
       return TT_Err_Invalid_Engine;
-    
+
     library = (FT_Library)engine;
     return FT_Set_Raster_Palette( library, 5, (unsigned char*)palette );
   }
@@ -216,13 +216,13 @@
         {
           TT_Error    error;
           FT_Resource resource;
-      
+
           *aface = 0;
-      
+
           error = FT_New_Resource( library, pathname, &resource );
           if (error) return error;
 
-#if 0      
+#if 0
           error = FT_Add_Resource( library, resource );
           if (error) goto Fail_Install;
 #endif
@@ -231,10 +231,10 @@
           /* Destroy glyph slot to comply with the 1.x API */
           if (!error)
             FT_Done_GlyphSlot( (*aface)->root.slot );
-      
+
           if (error)
             FT_Done_Resource(resource);
-      
+
           return error;
         }
 
@@ -249,7 +249,7 @@
 
     return  open_face( (FT_Library)engine, pathname, 0, aface );
   }
-  
+
 
   /***********************************************************************/
   /*                                                                     */
@@ -318,7 +318,7 @@
   TT_Error  TT_Close_Face( TT_Face  face )
   {
     FT_Resource  resource;
-    
+
     if (!face)
       return TT_Err_Invalid_Face_Handle;
 
@@ -377,7 +377,7 @@
     props->num_Names    = face->num_names;
     props->header       = &face->header;
     props->horizontal   = &face->horizontal;
-      
+
       /* The driver supports old Mac fonts where there are no OS/2  */
       /* tables present in the file. However, this is not true of   */
       /* FreeType 1.1. For the sake of backwards compatibility, we  */
@@ -390,7 +390,7 @@
       /*                                                            */
 
     props->os2          = &face->os2;
-      
+
     props->postscript    = &face->postscript;
     props->hdmx          = &face->hdmx;
     props->vertical      = ( face->vertical_info ? &face->vertical : 0 );
@@ -508,7 +508,7 @@
         /* This function will much probably move to another     */
         /* component in the short future, but I haven't decided */
         /* which yet...                                         */
-    
+
           static
           void  get_metrics( TT_HoriHeader*  header,
                              TT_Int          index,
@@ -516,10 +516,10 @@
                              TT_UShort*      advance )
           {
             TT_LongMetrics*  longs_m;
-    
+
             TT_UShort  k = header->number_Of_HMetrics;
-    
-    
+
+
             if ( index < k )
             {
               longs_m = (TT_LongMetrics*)header->long_metrics + index;
@@ -532,7 +532,7 @@
               *advance = ((TT_LongMetrics*)header->long_metrics)[k - 1].advance;
             }
           }
-    
+
 
 
   EXPORT_FUNC
@@ -769,7 +769,7 @@
   {
     /* The point size is now ignored by the driver */
     (void)pointSize;
-    
+
     return FT_Set_Pixel_Sizes( (FT_Size)ins, pixelWidth, pixelHeight );
   }
 
@@ -814,7 +814,7 @@
     metrics->x_ppem       = size->root.metrics.x_ppem;
     metrics->y_ppem       = size->root.metrics.y_ppem;
 
-    metrics->pointSize    = size->root.metrics.pointSize;    
+    metrics->pointSize    = size->root.metrics.pointSize;
     return TT_Err_Ok;
   }
 
@@ -936,7 +936,7 @@
     (void)instance;   /* the parameters are unused, the (void) prevents */
     (void)rotated;    /* warnings from pedantic compilers..             */
     (void)stretched;
-    
+
     return TT_Err_Ok;
   }
 
@@ -1130,7 +1130,7 @@
     metrics->bearingX  = slot->metrics.horiBearingX;
     metrics->bearingY  = slot->metrics.horiBearingY;
     metrics->advance   = slot->metrics.horiAdvance;
-    
+
     return TT_Err_Ok;
   }
 
@@ -1182,7 +1182,7 @@
 
     metrics->linearVertAdvance  = met2->vertAdvance;
     metrics->linearVertBearingY = met2->vertBearingY;
-   
+
     return TT_Err_Ok;
   }
 
@@ -1441,7 +1441,7 @@
 
 #include <stdlib.h>  /* for malloc and free */
 
-  static  TT_Outline  null_api_outline = { 0, 0, NULL, NULL, NULL, 
+  static  TT_Outline  null_api_outline = { 0, 0, NULL, NULL, NULL,
                                            0, 0, 0, 0 };
 
   EXPORT_FUNC
@@ -1459,7 +1459,7 @@
       outline->points   = (TT_Vector*)malloc( numPoints * sizeof(TT_Vector) );
       outline->flags    = (TT_Byte*)  malloc( numPoints * sizeof(TT_Char)   );
       outline->contours = (TT_UShort*)malloc( numPoints * sizeof(TT_UShort) );
-    
+
       if ( !outline->points || !outline->flags || !outline->contours )
         goto Fail;
 
@@ -1573,7 +1573,7 @@
                               TT_Matrix*   matrix )
   {
     FT_Transform_Outline( (FT_Outline*)outline, (FT_Matrix*)matrix );
-  }  
+  }
 
 /*******************************************************************
  *
@@ -1679,7 +1679,7 @@
     return FT_MulDiv( A, B, C );
   }
 
-  
+
   /***********************************************************************/
   /*                                                                     */
   /* <Function>                                                          */
@@ -1910,12 +1910,12 @@
 
     if (!face)
       return TT_Err_Invalid_Face_Handle;
-      
+
     if ( nameIndex >= face->num_names )
       return TT_Err_Bad_Argument;
 
     name = face->name_table.names + nameIndex;
-        
+
     *platformID = name->platformID;
     *encodingID = name->encodingID;
     *languageID = name->languageID;
@@ -1953,18 +1953,18 @@
                                 TT_UShort*   length )
   {
     TT_NameRec* name;
-    
+
     if (!face)
       return TT_Err_Invalid_Face_Handle;
-      
+
     if ( nameIndex >= face->num_names )
       return TT_Err_Bad_Argument;
 
     name = face->name_table.names + nameIndex;
 
     *stringPtr = (TT_String*)name->string;
-    *length    = name->stringLength;        
-    
+    *length    = name->stringLength;
+
     return TT_Err_Ok;
   }
 
diff --git a/src/otlayout/oltypes.c b/src/otlayout/oltypes.c
index 619b7a1..bd2fa22 100644
--- a/src/otlayout/oltypes.c
+++ b/src/otlayout/oltypes.c
@@ -21,23 +21,23 @@
     TT_UInt   count, max_langs;
     TT_Error  error;
 
-    /* skip version of the JSTF table */    
+    /* skip version of the JSTF table */
     if (otl_type == otl_jstf)
       start += 4;
-      
+
     p = start;
-      
+
     /* we must allocate the script_tags and language_tags arrays     */
     /* this requires that we compute the maximum number of languages */
     /* per script..                                                  */
-    
+
     count     = table->num_scripts = OTL_UShort(p);
     max_langs = 0;
     for ( ; count > 0; count++ )
     {
       TT_Byte*  script;
       TT_UInt   num_langs;
-      
+
       p += 4; /* skip tag */
       script = bytes + OTL_UShort(p);
 
@@ -48,10 +48,10 @@
       /* test if there is a default language system */
       if ( OTL_UShort(script) )
         num_langs++;
-      
+
       /* test other language systems */
       num_langs += OTL_UShort(script); /* add other lang sys */
-      
+
       if (num_langs > max_langs)
         max_langs = num_langs;
     }
@@ -65,15 +65,15 @@
       table->max_languages = max_langs;
       table->num_languages = 0;
       table->otl_type      = otl_type;
-  
+
       table->scripts_table = bytes;
       table->scripts_len   = len;
-      
+
       /* fill the script_tags array */
       {
         TT_UInt  n;
         TT_Byte* p = start + 2; /* skip count */
-        
+
         for ( n = 0; n < table->num_scripts; n++ )
         {
           table->script_tags[n] = OTL_ULong(p);
@@ -96,7 +96,7 @@
     TT_Error  error;
     TT_Byte*  p = bytes;
     TT_UInt   count;
-    
+
     table->max_features = count = OTL_UShort(p);
     if ( !ALLOC_ARRAY( table->feature_tags, count, TT_ULong ) &&
          !ALLOC_ARRAY( table->features,     count, TT_Bool  ) )
@@ -104,7 +104,7 @@
       table->features_table = bytes;
       table->features_len   = len;
     }
-    return error;     
+    return error;
   }
 
 
@@ -118,14 +118,14 @@
     TT_Error  error;
     TT_Byte*  p = bytes;
     TT_UInt   count;
-    
+
     table->max_lookups = count = OTL_UShort(p);
     if ( !ALLOC_ARRAY( table->lookups, count, TT_Bool ) )
     {
       table->lookups_table = bytes;
       table->lookups_len   = len;
     }
-    return error;     
+    return error;
   }
 
  /* discard table arrays */
@@ -149,12 +149,12 @@
     TT_Byte* p;
     TT_Byte* script = 0;
     TT_Byte* start = table->scripts_table;
-    
+
     if ( table->otl_type == otl_type_jstf )  /* skip version for JSTF */
       start += 4;
-      
+
     p = start + 6; /* skip count+first tag */
-    
+
     for ( n = 0; n < table->num_scripts; n++, p += 6 )
     {
       if ( table->script_tags[n] == script_tag )
@@ -163,7 +163,7 @@
         break;
       }
     }
-    
+
     table->cur_script = script;
     if (!script)
       table->num_languages = 0;
@@ -173,31 +173,31 @@
       /* not that we put a '0' tag in front of the list to indicate that */
       /* there is a default language for this script..                   */
       TT_ULong* tags = table->language_tags;
-      
+
       switch (table->otl_type)
       {
         case otl_type_base:
         case otl_type_jstf:
           script += 2;    /* skip basevalue or extenders */
           /* fall-through */
-          
+
         default:
           if ( OTL_UShort(script) )
             *tags++ = 0;
       }
-      
+
       count = OTL_UShort(script);
       for ( ; count > 0; count-- )
       {
         *tags++ = OTL_ULong(script);
         script += 2; /* skip offset */
       }
-      
+
       table->num_langs = tags - table->language_tags;
     }
   }
 
-  
+
  /* return the list of available features for the current script/language */
  /* use with a GPOS or GSUB script table                                  */
   LOCAL_FUNC
@@ -218,14 +218,14 @@
     {
       offset = OTL_UShort(script);
       if (!offset) return; /* if there is no default language, exit */
-        
+
       language = script - 2 + offset;
     }
     else
     {
       TT_Byte*  p = script + 8; /* skip default+count+1st tag */
       TT_UShort index;
-      
+
       for ( n = 0; n < table->num_languages; n++, p+=6 )
       {
         if ( table->language_tags[n] == language_tag )
@@ -235,9 +235,9 @@
         }
       }
 
-      table->cur_language = language; 
+      table->cur_language = language;
       if (!language) return;
-      
+
       p     = language + 2;   /* skip lookup order */
       index = OTL_UShort(p);  /* required feature index */
       if (index != 0xFFFF)
@@ -245,7 +245,7 @@
         if (index < table->max_features)
           table->features[index] = 1;
       }
-      
+
       count = OTL_UShort(p);
       for ( ; count > 0; count-- )
       {
@@ -265,11 +265,11 @@
     TT_UInt  n;
     TT_Byte* features = table->features_table;
     TT_Byte* p        = features + 6; /* skip count+1st tag */
-    
+
     /* clear lookup list */
     for ( n = 0; n < table->max_lookups; n++ )
       table->lookups[n] = 0;
-      
+
     /* now, parse the features list */
     for ( n = 0; n < table->features; n++ )
     {
@@ -278,10 +278,10 @@
         TT_UInt   count;
         TT_UShort index;
         TT_Byte*  feature;
-        
+
         feature = features + OTL_UShort(p);
         p      += 4;  /* skip tag */
-        
+
         /* now, select all lookups from this feature */
         count = OTL_UShort(feature);
         for ( ; count > 0; count-- )
@@ -293,9 +293,9 @@
       }
     }
   }
-  
 
- /* find the basevalues and minmax for the current script/language */  
+
+ /* find the basevalues and minmax for the current script/language */
  /* only use it with a BASE table..                                */
   LOCAL_FUNC
   void OTL_Get_Baseline_Values( OTL_Table*  table,
@@ -307,12 +307,12 @@
 
     table->cur_basevalues = 0;
     table->cur_minmax     = 0;
-    
-    /* read basevalues */    
+
+    /* read basevalues */
     offset = OTL_UShort(p);
     if (offset)
       table->cur_basevalues = script + offset;
-      
+
     offset = OTL_UShort(p);
     if (offset)
       table->cur_minmax = script + offset;
@@ -321,7 +321,7 @@
     for ( ; count > 0; count-- )
     {
       TT_ULong  tag;
-      
+
       tag = OTL_ULong(p);
       if ( language_tag == tag )
       {
@@ -341,7 +341,7 @@
     TT_Long    result = -1;
     TT_UInt    count, index, start, end;
     TT_Byte*   p = coverage;
-    
+
     switch ( OTL_UShort(p) )
     {
       case 1:  /* coverage format 1 - array of glyph indices */
@@ -357,7 +357,7 @@
           }
         }
         break;
-        
+
       case 2:
         {
           count = OTL_UShort(p);
@@ -387,14 +387,14 @@
     TT_Byte*  p = class_def;
     TT_UInt   result = 0;
     TT_UInt   start, end, count, index;
-    
+
     switch ( OTL_UShort(p) )
     {
       case 1:
         {
           start = OTL_UShort(p);
           count = OTL_UShort(p);
-          
+
           glyph_id -= start;
           if (glyph_id < count)
           {
@@ -403,7 +403,7 @@
           }
         }
         break;
-      
+
       case 2:
         {
           count = OTL_UShort(p);
@@ -434,7 +434,7 @@
     TT_Int    result = 0;
     TT_UInt   start, end;
     TT_Short  value;
-    
+
     start = OTL_UShort(p);
     end   = OTL_UShort(p);
     if (size >= start && size <= end)
@@ -442,7 +442,7 @@
       /* I know we could do all of this without a switch, with */
       /* clever shifts and everything, but it makes the code   */
       /* really difficult to understand..                      */
-      
+
       size -= start;
       switch ( OTL_UShort(p) )
       {
@@ -454,7 +454,7 @@
             result = value >> 14;
           }
           break;
-          
+
         case 2: /* 4-bits per value */
           {
             p     += 2*(size >> 2);
@@ -463,7 +463,7 @@
             result = value >> 12;
           }
           break;
-          
+
         case 3: /* 8-bits per value */
           {
             p     += 2*(size >> 1);
@@ -476,7 +476,7 @@
     }
     return result;
   }
-  
+
  /* extract a BaseCoord value */
   LOCAL_FUNC
   void    OTL_Get_Base_Coordinate( TT_Byte*          base_coord,
@@ -484,7 +484,7 @@
   {
     TT_Byte*  p = base_coord;
     TT_Int    result = 0;
-    
+
     coord->format     = OTL_UShort(p);
     coord->coordinate = OTL_Short(p);
     coord->device     = 0;
@@ -495,13 +495,13 @@
         coord->ref_glyph = OTL_UShort(p);
         coord->ref_point = OTL_UShort(p);
         break;
-        
+
       case 3: /* format 3 */
         coord->device = p - 4 + OTL_UShort(p);
         break;
 
       default:
-        ;     
+        ;
     }
   }
 
@@ -514,13 +514,13 @@
 
    /* each bit in the value format corresponds to a single ushort */
    /* we thus count the bits, and multiply the result by 2        */
-   
+
    count = (TT_Int)(format & 0xFF);
    count = ((count & 0xAA) >> 1) + (count & 0x55);
    count = ((count & 0xCC) >> 2) + (count & 0x33);
    count = ((count & 0xF0) >> 4) + (count & 0x0F);
 
-   return count*2;    
+   return count*2;
  }
 
 
@@ -533,28 +533,28 @@
 			    OTL_ValueRecord*  record )
  {
    TT_Byte*  p = value_record;
-   
+
    /* clear vectors */
    record->placement.x = 0;
    record->placement.y = 0;
    record->advance.x   = 0;
    record->advance.y   = 0;
-   
+
    record->device_pla_x = 0;
    record->device_pla_y = 0;
    record->device_adv_x = 0;
    record->device_adv_y = 0;
-   
+
    if (value_format & 1) record->placement.x = NEXT_Short(p);
    if (value_format & 2) record->placement.y = NEXT_Short(p);
    if (value_format & 4) record->advance.x   = NEXT_Short(p);
    if (value_format & 8) record->advance.y   = NEXT_Short(p);
-   
+
    if (value_format & 16)  record->device_pla_x = pos_table + NEXT_UShort(p);
    if (value_format & 32)  record->device_pla_y = pos_table + NEXT_UShort(p);
    if (value_format & 64)  record->device_adv_x = pos_table + NEXT_UShort(p);
    if (value_format & 128) record->device_adv_y = pos_table + NEXT_UShort(p);
- }			    
+ }
 
 
 
@@ -564,32 +564,32 @@
                        OTL_Anchor*  anchor )
  {
    TT_Byte*  p = anchor_table;
-   
+
    anchor->format   = NEXT_UShort(p);
    anchor->coord.x  = NEXT_Short(p);
    anchor->coord.y  = NEXT_Short(p);
    anchor->point    = 0;
    anchor->device_x = 0;
    anchor->device_y = 0;
-   
+
    switch (anchor->format)
    {
      case 2:
        anchor->point = NEXT_UShort(p);
        break;
-       
+
      case 3:
        anchor->device_x = anchor_table + NEXT_UShort(p);
        anchor->device_y = anchor_table + NEXT_UShort(p);
        break;
-       
+
      default:
        ;
    }
  }
 
 
- 
+
  /* extract Mark from MarkArray */
  LOCAL_FUNC
  void  OTL_Get_Mark( TT_Byte*     mark_array,
@@ -599,10 +599,10 @@
  {
    TT_Byte* p = mark_array;
    TT_UInt  count;
-   
+
    *clazz = 0;
    MEM_Set( anchor, 0, sizeof(*anchor) );
-   
+
    count = NEXT_UShort(p);
    if (index < count)
    {
diff --git a/src/otlayout/oltypes.h b/src/otlayout/oltypes.h
index dc92908..b4a4d80 100644
--- a/src/otlayout/oltypes.h
+++ b/src/otlayout/oltypes.h
@@ -25,7 +25,7 @@
   *    max_features  :: total number of features in table
   *    feature_tags  :: tags of all features for current script/language
   *    features      :: selection flags for all features in current script/lang
-  *    
+  *
   *    max_lookups   :: total number of lookups in table
   *    lookups       :: selection flags for all lookups for current
   *                     feature list.
@@ -40,17 +40,17 @@
     otl_type_gpos,
     otl_type_gsub,
     otl_type_jstf
-  
+
   } OTL_Type;
-  
-  
+
+
   typedef struct OTL_Table_
   {
     FT_Memory memory;
 
     TT_Int    num_scripts;
     TT_Tag*   script_tags;
-    
+
     TT_Int    max_languages;
     TT_Int    num_languages;
     TT_Tag*   language_tags;
@@ -61,19 +61,19 @@
 
     TT_Int    max_lookups;
     TT_Bool*  lookups;
-    
+
     TT_Byte*  scripts_table;
     TT_Long   scripts_len;
-    
+
     TT_Byte*  features_table;
     TT_Long*  features_len;
-    
+
     TT_Byte*  lookups_table;
     TT_Byte*  lookups_len;
 
     TT_Byte*  cur_script;   /* current script   */
     TT_Byte*  cur_language; /* current language */
-    
+
     TT_Byte*  cur_base_values;
     TT_Byte*  cur_min_max;
 
@@ -89,7 +89,7 @@
     TT_UShort  ref_glyph;
     TT_UShort  ref_point;
     TT_Byte*   device;
-  
+
   } OTL_BaseCoord;
 
 
@@ -102,7 +102,7 @@
     TT_Byte*   device_pla_y;
     TT_Byte*   device_adv_x;
     TT_Byte*   device_adv_y;
-  
+
   } OTL_ValueRecord;
 
 
@@ -113,7 +113,7 @@
     TT_UInt    anchor_point;
     TT_Byte*   device_x;
     TT_Byte*   device_y;
-  
+
   } OTL_Anchor;
 
   LOCAL_DEF
@@ -153,7 +153,7 @@
  *      table->num_scripts is the number of scripts
  *
  */
- 
+
 /********************************************************
  *
  *  - after calling OTL_Table_Set_Features:
@@ -169,7 +169,7 @@
  *      it is empty (zero-filled) by default.
  *
  */
- 
+
 /*******************************************************************
  *
  *  - after calling OTL_Get_Languages_List(script_tag):
@@ -217,7 +217,7 @@
   LOCAL_DEF
   void OTL_Get_Justification( OTL_Table*  table,
                               TT_ULong    language_tag );
- 
+
 /*******************************************************************
  *
  *  - after calling OTL_Get_Lookups_List():
diff --git a/src/psnames/psdriver.c b/src/psnames/psdriver.c
index 78283b7..0e532f4 100644
--- a/src/psnames/psdriver.c
+++ b/src/psnames/psdriver.c
@@ -20,7 +20,7 @@
     FT_Int  n;
     char    first = glyph_name[0];
     char    temp[64];
-    
+
     /* if the name begins with "uni", then the glyph name may be a */
     /* hard-coded unicode character code..                         */
     if ( glyph_name[0] == 'u' &&
@@ -36,7 +36,7 @@
       {
         char           c = *p;
         unsigned char  d;
-        
+
         d = (unsigned char)c-'0';
         if (d >= 10)
         {
@@ -49,7 +49,7 @@
         /* exit if one non-uppercase-hexadecimal character was found */
         if (d >= 16)
           break;
-          
+
         value = (value << 4) + d;
         if (count == 0)
           return value;
@@ -61,11 +61,11 @@
     {
       const char*  p;
       int          len;
-      
+
       p = glyph_name;
       while ( *p && *p != '.' ) p++;
       len = p-glyph_name;
-      
+
       if ( *p && len < 64 )
       {
         strncpy( temp, glyph_name, len );
@@ -73,12 +73,12 @@
         glyph_name = temp;
       }
     }
-        
+
     /* now, lookup the glyph in the Adobe Glyph List */
     for ( n = 0; n < NUM_ADOBE_GLYPHS; n++ )
     {
       const char*  name = t1_standard_glyphs[n];
-      
+
       if ( first == name[0] && strcmp( glyph_name, name ) == 0 )
         return names_to_unicode[n];
     }
@@ -86,14 +86,14 @@
     return 0;
   }
 
-  
+
  /* qsort callback to sort the unicode map */
   static
   int  compare_uni_maps( const void* a, const void* b )
   {
     PS_UniMap*  map1 = (PS_UniMap*)a;
     PS_UniMap*  map2 = (PS_UniMap*)b;
-    
+
     return ( map1->unicode < map2->unicode ? -1 :
              map1->unicode > map2->unicode ?  1 : 0 );
   }
@@ -107,18 +107,18 @@
                                     PS_Unicodes  *table )
   {
     FT_Error  error;
-    
+
     /* we first allocate the table */
     table->num_maps = 0;
     table->maps     = 0;
-    
+
     if ( !ALLOC_ARRAY( table->maps, num_glyphs, PS_UniMap ) )
     {
       FT_UInt     n;
       FT_UInt     count;
       PS_UniMap*  map;
       FT_ULong    uni_char;
-      
+
       map = table->maps;
       for ( n = 0; n < num_glyphs; n++ )
       {
@@ -143,7 +143,7 @@
       {
         count = 0;
       }
-      
+
       if (count == 0)
       {
         FREE( table->maps );
@@ -167,23 +167,23 @@
     /* perform a binary search on the table */
     min = table->maps;
     max = min + table->num_maps - 1;
-    
+
     while (min <= max)
     {
       mid = min + (max-min)/2;
       if ( mid->unicode == unicode )
         return mid->glyph_index;
-        
+
       if (min == max)
         break;
-        
+
       if ( mid->unicode < unicode ) min = mid+1;
                                else max = mid-1;
     }
 
     return 0xFFFF;
   }
-  
+
 #endif
 
   static
@@ -191,17 +191,17 @@
   {
     if (name_index >= 258)
       name_index = 0;
-      
+
     return standard_glyph_names[ mac_standard_names[name_index] ];
   }
 
-  
+
   static
   const char*  PS_Standard_Strings( FT_UInt  sid )
   {
     return (sid < NUM_STD_GLYPHS ? t1_standard_glyphs[sid] : 0);
   }
-  
+
   static const  PSNames_Interface  psnames_interface =
   {
 #ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
@@ -216,11 +216,11 @@
 
     (PS_Macintosh_Name_Func)    PS_Macintosh_Name,
     (PS_Adobe_Std_Strings_Func) PS_Standard_Strings,
-    
+
     t1_standard_encoding,
     t1_expert_encoding
   };
-  
+
 
   const FT_DriverInterface  psnames_driver_interface =
   {
diff --git a/src/psnames/rules.mk b/src/psnames/rules.mk
index a97797b..af226b7 100644
--- a/src/psnames/rules.mk
+++ b/src/psnames/rules.mk
@@ -29,7 +29,7 @@
   # compilation flags for the driver
   #
   PSNAMES_CFLAGS  := $(PSNAMES_INCLUDE:%=$I%)
-  PSNAMES_COMPILE := $(FT_COMPILE) $(PSNAMES_CFLAGS) 
+  PSNAMES_COMPILE := $(FT_COMPILE) $(PSNAMES_CFLAGS)
 
 
   # driver sources (i.e., C files)
diff --git a/src/sfnt/rules.mk b/src/sfnt/rules.mk
index 31f7a8d..0969c35 100644
--- a/src/sfnt/rules.mk
+++ b/src/sfnt/rules.mk
@@ -29,7 +29,7 @@
   # compilation flags for the driver
   #
   SFNT_CFLAGS  := $(SFNT_INCLUDE:%=$I%)
-  SFNT_COMPILE := $(FT_COMPILE) $(SFNT_CFLAGS) 
+  SFNT_COMPILE := $(FT_COMPILE) $(SFNT_CFLAGS)
 
 
   # driver sources (i.e., C files)
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c
index 8fe6609..23682c4 100644
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -8,7 +8,7 @@
   static const SFNT_Interface  sfnt_interface =
   {
     TT_Goto_Table,
-    
+
     TT_Load_Any,
     TT_Load_Format_Tag,
     TT_Load_Directory,
@@ -38,22 +38,22 @@
     0,
     0,
     0,
-#endif  
-    
+#endif
+
     /* see `ttpost.h' */
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES 
+#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
     TT_Get_PS_Name,
-    TT_Free_Post_Names,    
+    TT_Free_Post_Names,
 #else
     0,
     0,
-#endif 
+#endif
 
     /* see `ttcmap.h' */
     TT_CharMap_Load,
     TT_CharMap_Free,
   };
-  
+
 
   const FT_DriverInterface  sfnt_driver_interface =
   {
diff --git a/src/sfnt/ttcmap.c b/src/sfnt/ttcmap.c
index 32604e0..08bee12 100644
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -30,7 +30,7 @@
   static TT_UInt  code_to_index0( TT_CMapTable*  charmap, TT_ULong  char_code );
   static TT_UInt  code_to_index2( TT_CMapTable*  charmap, TT_ULong  char_code );
   static TT_UInt  code_to_index4( TT_CMapTable*  charmap, TT_ULong  char_code );
-  static TT_UInt  code_to_index6( TT_CMapTable*  charmap, TT_ULong  char_code );      
+  static TT_UInt  code_to_index6( TT_CMapTable*  charmap, TT_ULong  char_code );
 
   /*************************************************************************/
   /*                                                                       */
@@ -152,7 +152,7 @@
         cmap2->glyphIdArray[i] = GET_UShort();
 
       FORGET_Frame();
-      
+
       cmap->get_index = code_to_index2;
       break;
 
@@ -212,7 +212,7 @@
         cmap4->glyphIdArray[i] = GET_UShort();
 
       FORGET_Frame();
-      
+
       cmap->get_index = code_to_index4;
       break;
 
@@ -338,7 +338,7 @@
                           TT_ULong       charCode )
   {
     TT_CMap0*  cmap0 = &cmap->c.cmap0;
-    
+
     return ( charCode <= 0xFF ? cmap0->glyphIdArray[charCode] : 0 );
   }
 
diff --git a/src/sfnt/ttload.c b/src/sfnt/ttload.c
index b2a678c..c764d28 100644
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -56,7 +56,7 @@
   {
     TT_Table*  entry;
     TT_Table*  limit;
-    
+
     FT_TRACE4(( "TT_LookUp_Table( %08lx, %c%c%c%c )\n",
                   (TT_Long)face,
                   (TT_Char)(tag >> 24),
@@ -70,7 +70,7 @@
     {
       if ( entry->Tag == tag )
         return entry;
-    }    
+    }
     FT_TRACE4(( "    Could not find table!\n" ));
     return 0;
   }
@@ -99,18 +99,18 @@
   {
     TT_Table*  table;
     TT_Error   error;
-    
+
     table = TT_LookUp_Table( face, tag );
     if (table)
     {
       if (length)
         *length = table->Length;
-        
+
       (void)FILE_Seek( table->Offset );
     }
     else
       error = TT_Err_Table_Missing;
-      
+
     return error;
   }
 
@@ -147,7 +147,7 @@
   {
     TT_Error   error;
     FT_Memory  memory = stream->memory;
-    
+
 #ifdef READ_FIELDS
     const FT_Frame_Field  ttc_header_fields[] = {
            FT_FRAME_START(8),  /* frame of 8 bytes */
@@ -173,9 +173,9 @@
     if ( *format_tag == TTAG_ttcf )
     {
       TT_Int  n;
-    
+
       FT_TRACE4(( "TT_Load_Format_Tag: file is a collection\n" ));
-      
+
       /* it's a TrueType collection, i.e. a file containing several */
       /* font files. Read the font directory now                    */
       /*                                                            */
@@ -183,7 +183,7 @@
       if ( READ_Fields( ttc_header_fields, &face->ttc_header ) )
         goto Exit;
     #else
-      if ( ACCESS_Frame( 8 ) ) goto Exit;   
+      if ( ACCESS_Frame( 8 ) ) goto Exit;
 
       face->ttc_header.version  = GET_Long();
       face->ttc_header.DirCount = GET_Long();
@@ -209,12 +209,12 @@
       {
         error = TT_Err_Bad_Argument;
         goto Exit;
-      }      
-      
+      }
+
       /* if we're checking the font format, exit immediately */
       if (faceIndex < 0)
         goto Exit;
-        
+
       /* seek to the appropriate TrueType file, then read tag */
       if ( FILE_Seek( face->ttc_header.TableDirectory[faceIndex] ) ||
            READ_Long( *format_tag )                                )
@@ -544,7 +544,7 @@
                 FT_FRAME_USHORT( TT_MaxProfile, numGlyphs ),
                 FT_FRAME_USHORT( TT_MaxProfile, maxPoints ),
                 FT_FRAME_USHORT( TT_MaxProfile, maxContours ),
-                FT_FRAME_USHORT( TT_MaxProfile, maxCompositePoints ),  
+                FT_FRAME_USHORT( TT_MaxProfile, maxCompositePoints ),
                 FT_FRAME_USHORT( TT_MaxProfile, maxCompositeContours ),
                 FT_FRAME_USHORT( TT_MaxProfile, maxZones ),
                 FT_FRAME_USHORT( TT_MaxProfile, maxTwilightPoints ),
@@ -998,17 +998,17 @@
            FILE_Read_At( table_pos + names->storageOffset,
                          (void*)names->storage, storageSize ) )
         goto Exit;
-  
+
       /* Go through and assign the string pointers to the name records. */
       {
         TT_NameRec*  cur   = names->names;
         TT_NameRec*  limit = cur + names->numNameRecords;
-  
+
         for ( ; cur < limit; cur++ )
           cur->string = names->storage + cur->stringOffset;
       }
 
-#ifdef FT_DEBUG_LEVEL_TRACE  
+#ifdef FT_DEBUG_LEVEL_TRACE
       /* Print Name Record Table in case of debugging */
       {
         TT_NameRec*  cur   = names->names;
@@ -1017,20 +1017,20 @@
         for ( ; cur < limit; cur++ )
         {
           TT_UInt  j;
-    
+
           FT_TRACE2(( "%d %d %x %d ",
                        cur->platformID,
                        cur->encodingID,
                        cur->languageID,
                        cur->nameID ));
-    
+
           /* I know that M$ encoded strings are Unicode,            */
           /* but this works reasonable well for debugging purposes. */
           if ( cur->string )
             for ( j = 0; j < cur->stringLength; j++ )
             {
               TT_Char  c = *(cur->string + j);
-    
+
               if ( (TT_Byte)c < 128 )
                 FT_TRACE2(( "%c", c ));
             }
@@ -1165,12 +1165,12 @@
         cmap->offset             = (TT_ULong)GET_Long();
       }
       FORGET_Frame();
-      
+
       /* now read the rest of each table */
       for ( charmap = face->charmaps; charmap < limit; charmap++ )
       {
         TT_CMapTable* cmap = &charmap->cmap;
-        
+
 #ifdef READ_FIELDS
         if ( FILE_Seek( table_start + (TT_Long)cmap->offset ) ||
              READ_Fields( cmap_rec_fields, cmap )             )
@@ -1179,11 +1179,11 @@
         if ( FILE_Seek( table_start + (TT_Long)cmap->offset ) ||
              ACCESS_Frame(6L) )
           goto Exit;
-        
+
         cmap->format  = GET_UShort();
         cmap->length  = GET_UShort();
         cmap->version = GET_UShort();
-        
+
         FORGET_Frame();
 #endif
         cmap->offset = FILE_Pos();
@@ -1264,7 +1264,7 @@
                 FT_FRAME_USHORT( TT_OS2, usWinAscent ),
                 FT_FRAME_USHORT( TT_OS2, usWinDescent ),
               FT_FRAME_END };
-              
+
     const FT_Frame_Field  os2_fields_extra[] = {
               FT_FRAME_START(8),
                 FT_FRAME_ULONG( TT_OS2, ulCodePageRange1 ),
@@ -1579,7 +1579,7 @@
       coverage = GET_UShort();
 
       FORGET_Frame();
-      
+
       if ( coverage == 0x0001 )
       {
         TT_UInt          num_pairs;
@@ -1615,7 +1615,7 @@
         face->kern_table_index = n;
         goto Exit;
       }
-      
+
       if ( FILE_Skip( length ) )
         goto Exit;
     }
@@ -1646,7 +1646,7 @@
   /*    TrueType error code.  0 means success.                             */
   /*                                                                       */
   LOCAL_FUNC
-  TT_Error  TT_Load_Hdmx( TT_Face    face, 
+  TT_Error  TT_Load_Hdmx( TT_Face    face,
                           FT_Stream  stream )
   {
     TT_Error  error;
@@ -1692,11 +1692,11 @@
         if ( READ_Byte( cur->ppem      ) ||
              READ_Byte( cur->max_width ) )
           goto Exit;
-  
+
         if ( ALLOC( cur->widths, num_glyphs )  ||
              FILE_Read( cur->widths, num_glyphs ) )
           goto Exit;
-  
+
         /* skip padding bytes */
         if ( record_size > 0 && FILE_Skip(record_size) )
             goto Exit;
diff --git a/src/sfnt/ttsbit.c b/src/sfnt/ttsbit.c
index 7eeac20..57cf6a5 100644
--- a/src/sfnt/ttsbit.c
+++ b/src/sfnt/ttsbit.c
@@ -75,7 +75,7 @@
     /* first of all, compute starting write position */
     line_incr = target->pitch;
     line_buff = target->buffer;
-    
+
     if (line_incr < 0)
       line_buff -= line_incr*(target->rows-1);
 
@@ -354,7 +354,7 @@
       range->glyph_codes[n] = GET_UShort();
 
       if (load_offsets)
-        range->glyph_offsets[n] = (TT_ULong)range->image_offset + 
+        range->glyph_offsets[n] = (TT_ULong)range->image_offset +
                                   GET_UShort();
     }
 
@@ -1226,19 +1226,19 @@
       switch ( strike->bit_depth )
       {
       case 1:
-        map->pixel_mode = ft_pixel_mode_mono; 
+        map->pixel_mode = ft_pixel_mode_mono;
         map->pitch      = (map->width+7) >> 3;
         break;
       case 2:
-        map->pixel_mode = ft_pixel_mode_pal2; 
+        map->pixel_mode = ft_pixel_mode_pal2;
         map->pitch      = (map->width+3) >> 2;
         break;
       case 4:
-        map->pixel_mode = ft_pixel_mode_pal4; 
+        map->pixel_mode = ft_pixel_mode_pal4;
         map->pitch      = (map->width+1) >> 1;
         break;
       case 8:
-        map->pixel_mode = ft_pixel_mode_grays; 
+        map->pixel_mode = ft_pixel_mode_grays;
         map->pitch      = map->width;
         break;
 
@@ -1399,13 +1399,13 @@
     /* the font file                                 */
     error = face->goto_table( face, TTAG_EBDT, stream, 0 );
     if (error) goto Exit;
-    
+
     ebdt_pos = FILE_Pos();
 
     /* clear the bitmap & load the bitmap */
     if (face->root.glyph->flags & ft_glyph_own_bitmap)
       FREE( map->buffer );
-      
+
     map->rows = map->pitch = map->width = 0;
 
     error = Load_SBit_Image( strike, range, ebdt_pos, glyph_offset,
@@ -1415,7 +1415,7 @@
 
     /* the glyph slot owns this bitmap buffer */
     face->root.glyph->flags |= ft_glyph_own_bitmap;
-    
+
     /* setup vertical metrics if needed */
     if ( strike->flags & 1 )
     {
diff --git a/src/truetype/rules.mk b/src/truetype/rules.mk
index 8ed78a7..bfb1f5e 100644
--- a/src/truetype/rules.mk
+++ b/src/truetype/rules.mk
@@ -38,7 +38,7 @@
 # compilation flags for the driver
 #
 TT_CFLAGS  := $(TT_INCLUDE:%=$I%)
-TT_COMPILE := $(FT_COMPILE) $(TT_CFLAGS) 
+TT_COMPILE := $(FT_COMPILE) $(TT_CFLAGS)
 
 
 # driver sources (i.e., C files)
diff --git a/src/truetype/ttdriver.c b/src/truetype/ttdriver.c
index 091a370..9137758 100644
--- a/src/truetype/ttdriver.c
+++ b/src/truetype/ttdriver.c
@@ -49,7 +49,7 @@
   *    find_encoding
   *
   * <Description>
-  *    return the FT_Encoding corresponding to a given 
+  *    return the FT_Encoding corresponding to a given
   *    (platform_id,encoding_id) pair, as found in TrueType charmaps
   *
   * <Input>
@@ -60,7 +60,7 @@
   *   the corresponding FT_Encoding tag. ft_encoding_none by default
   *
   *****************************************************************/
-  
+
   static
   FT_Encoding   find_encoding( int  platform_id,
                                int  encoding_id )
@@ -70,28 +70,28 @@
       int          platform_id;
       int          encoding_id;
       FT_Encoding  encoding;
-  
+
     } TEncoding;
 
     static
     const TEncoding   tt_encodings[] =
     {
       { TT_PLATFORM_ISO,                         -1, ft_encoding_unicode },
-        
+
       { TT_PLATFORM_APPLE_UNICODE,               -1, ft_encoding_unicode },
-      
+
       { TT_PLATFORM_MACINTOSH,      TT_MAC_ID_ROMAN, ft_encoding_apple_roman },
-      
+
       { TT_PLATFORM_MICROSOFT,  TT_MS_ID_UNICODE_CS, ft_encoding_unicode },
       { TT_PLATFORM_MICROSOFT,  TT_MS_ID_SJIS,       ft_encoding_sjis },
       { TT_PLATFORM_MICROSOFT,  TT_MS_ID_BIG_5,      ft_encoding_big5 }
     };
-    
+
     const TEncoding  *cur, *limit;
-   
+
     cur   = tt_encodings;
     limit = cur + sizeof(tt_encodings)/sizeof(tt_encodings[0]);
-    
+
     for ( ; cur < limit; cur++ )
     {
       if (cur->platform_id == platform_id)
@@ -235,7 +235,7 @@
         /* now, set root->charmap with a unicode charmap wherever available */
         if (!root->charmap && charmap->root.encoding == ft_encoding_unicode)
           root->charmap = (FT_CharMap)charmap;
-        
+
         root->charmaps[n] = (FT_CharMap)charmap;
       }
 
@@ -443,7 +443,7 @@
       metrics->x_ppem    = (TT_UShort)(dim_x >> 6);
       metrics->y_ppem    = (TT_UShort)(dim_y >> 6);
     }
-    
+
     size->ttmetrics.valid = FALSE;
 
     return TT_Reset_Size( size );
@@ -593,7 +593,7 @@
     TT_Error       error;
     TT_Face        face;
     TT_CMapTable*  cmap;
-    
+
     cmap = &charmap->cmap;
     face = (TT_Face)charmap->root.face;
 
@@ -601,7 +601,7 @@
     if ( !cmap->loaded )
     {
       SFNT_Interface*  sfnt = (SFNT_Interface*)face->sfnt;
-      
+
       error = sfnt->load_charmap( face, cmap, face->root.stream );
       if (error)
         return error;
@@ -620,7 +620,7 @@
   void*  tt_get_sfnt_table( TT_Face  face, FT_Sfnt_Tag  tag )
   {
     void*  table;
-    
+
     switch (tag)
     {
       case ft_sfnt_head: table = &face->header; break;
@@ -629,7 +629,7 @@
       case ft_sfnt_os2:  table = (face->os2.version == 0xFFFF ? 0 : &face->os2 ); break;
       case ft_sfnt_post: table = &face->postscript; break;
       case ft_sfnt_maxp: table = &face->max_profile; break;
-      
+
       default:
         table = 0;
     }
@@ -641,10 +641,10 @@
   FTDriver_Interface  tt_get_interface( TT_Driver  driver, const char* interface )
   {
     UNUSED(driver);
-    
+
     if (strcmp(interface,"get_sfnt")==0)
       return (FTDriver_Interface)tt_get_sfnt_table;
-      
+
     return 0;
   }
 
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index bd66e8f..2413066 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -198,10 +198,10 @@
 
     TT_UShort      n_ins;
     TT_Int         n, n_points;
-        
+
     /*********************************************************************/
     /* simple check                                                      */
-    
+
     if ( n_contours > load->left_contours )
     {
       FT_TRACE0(( "ERROR: Glyph index %ld has %d contours > left %d\n",
@@ -216,7 +216,7 @@
 
     /*********************************************************************/
     /* reading the contours endpoints                                    */
-    
+
     if ( ACCESS_Frame( byte_count ) )
       return error;
 
@@ -230,7 +230,7 @@
 
     /*********************************************************************/
     /* reading the bytecode instructions                                 */
-    
+
     n_ins = GET_UShort();
     load->face->root.glyph->control_len = n_ins;
 
@@ -269,15 +269,15 @@
 #endif
 
     stream->cursor += n_ins;
-    
+
     /*********************************************************************/
     /* reading the point tags                                           */
 
-    {    
+    {
       TT_Byte*  flag  = load->zone.tags;
       TT_Byte*  limit = flag + n_points;
       TT_Byte   c, count;
-      
+
       for (; flag < limit; flag++)
       {
         *flag = c = GET_Byte();
@@ -291,17 +291,17 @@
 
     /*********************************************************************/
     /* reading the X coordinates                                         */
-    
+
     {
       TT_Vector*  vec   = zone->org;
       TT_Vector*  limit = vec + n_points;
       TT_Byte*    flag  = zone->tags;
       TT_Pos      x     = 0;
-      
+
       for ( ; vec < limit; vec++, flag++ )
       {
         TT_Pos  y = 0;
-        
+
         if ( *flag & 2 )
         {
           y = GET_Byte();
@@ -309,7 +309,7 @@
         }
         else if ((*flag & 16) == 0)
           y = GET_Short();
-          
+
         x     += y;
         vec->x = x;
       }
@@ -323,11 +323,11 @@
       TT_Vector*  limit = vec + n_points;
       TT_Byte*    flag  = zone->tags;
       TT_Pos      x     = 0;
-      
+
       for ( ; vec < limit; vec++, flag++ )
       {
         TT_Pos  y = 0;
-        
+
         if ( *flag & 4 )
         {
           y = GET_Byte();
@@ -335,7 +335,7 @@
         }
         else if ((*flag & 32) == 0)
           y = GET_Short();
-          
+
         x     += y;
         vec->y = x;
       }
@@ -345,24 +345,24 @@
 
     /*********************************************************************/
     /* Add shadow points                                                  */
-    
+
     /* Now add the two shadow points at n and n + 1.    */
     /* We need the left side bearing and advance width. */
 
     {
       TT_Vector*  pp1;
       TT_Vector*  pp2;
-      
+
       /* pp1 = xMin - lsb */
       pp1    = zone->org + n_points;
       pp1->x = load->bbox.xMin - load->left_bearing;
       pp1->y = 0;
-  
+
       /* pp2 = pp1 + aw */
       pp2    = pp1 + 1;
       pp2->x = pp1->x + load->advance;
       pp2->y = 0;
-        
+
       /* clear the touch tags */
       for ( n = 0; n < n_points; n++ )
         zone->tags[n] &= FT_Curve_Tag_On;
@@ -439,7 +439,7 @@
     }
 
     return TT_Err_Ok;
-    
+
   Fail:
     FORGET_Frame();
     return error;
@@ -472,7 +472,7 @@
     TT_UInt      index, num_points, num_contours, count;
     TT_Fixed     x_scale, y_scale;
     TT_ULong     ins_offset;
-    
+
     /* check glyph index */
     index = glyph_index;
     if ( index >= (TT_UInt)face->root.num_glyphs )
@@ -485,7 +485,7 @@
     num_contours = 0;
     num_points   = 0;
     ins_offset   = 0;
-    
+
     x_scale = 0x10000;
     y_scale = 0x10000;
     if ( (loader->load_flags & FT_LOAD_NO_SCALE)==0 )
@@ -514,7 +514,7 @@
     count  = 0;
     if (index < (TT_UInt)face->num_locations-1)
        count = face->glyph_locations[index+1] - offset;
-          
+
 
     if (count == 0)
     {
@@ -574,7 +574,7 @@
     loader->pp1.y = 0;
     loader->pp2.x = loader->pp1.x + loader->advance;
     loader->pp2.y = 0;
-    
+
     if ((loader->load_flags & FT_LOAD_NO_SCALE)==0)
     {
       loader->pp1.x = FT_MulFix( loader->pp1.x, x_scale );
@@ -590,7 +590,7 @@
     if (contours_count >= 0)
     {
       TT_UInt  num_base_points;
-      
+
 #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
       error = Load_Simple( loader,
                            count,
@@ -599,7 +599,7 @@
                                       loader->size->debug ) );
 #else
       error = Load_Simple( loader, count, contours_count, 0 );
-#endif                                      
+#endif
       if ( error )
         goto Fail;
 
@@ -607,7 +607,7 @@
       /*       but the code is fat enough already :-)           */
       num_points   = loader->zone.n_points;
       num_contours = loader->zone.n_contours;
-      
+
       num_base_points = loader->base.n_points;
       {
         TT_UInt  k;
@@ -633,16 +633,16 @@
     {
       /* for each subglyph, read composite header */
       FT_SubGlyph*  subglyph = subglyphs;
-      
+
       if (ACCESS_Frame(count)) goto Fail;
-      
+
       num_subglyphs = 0;
       do
       {
         TT_Fixed  xx, xy, yy, yx;
-        
+
         subglyph->arg1 = subglyph->arg2 = 0;
-        
+
         subglyph->flags = GET_UShort();
         subglyph->index = GET_UShort();
 
@@ -657,11 +657,11 @@
           subglyph->arg1 = GET_Char();
           subglyph->arg2 = GET_Char();
         }
-        
+
         /* read transform */
         xx = yy = 0x10000;
         xy = yx = 0;
-        
+
         if (subglyph->flags & WE_HAVE_A_SCALE)
         {
           xx = (TT_Fixed)GET_Short() << 2;
@@ -679,12 +679,12 @@
           yx = (TT_Fixed)GET_Short() << 2;
           yy = (TT_Fixed)GET_Short() << 2;
         }
-        
+
         subglyph->transform.xx = xx;
         subglyph->transform.xy = xy;
         subglyph->transform.yx = yx;
         subglyph->transform.yy = yy;
-        
+
         subglyph++;
         num_subglyphs++;
         if (num_subglyphs >= TT_MAX_SUBGLYPHS)
@@ -709,22 +709,22 @@
       {
         FT_GlyphSlot  glyph = loader->glyph;
 
-        /* reallocate subglyph array if necessary */        
+        /* reallocate subglyph array if necessary */
         if (glyph->max_subglyphs < num_subglyphs)
         {
           FT_Memory  memory = loader->face->root.memory;
-          
+
           if ( REALLOC_ARRAY( glyph->subglyphs, glyph->max_subglyphs,
                               num_subglyphs, FT_SubGlyph ) )
             goto Fail;
-            
+
           glyph->max_subglyphs = num_subglyphs;
         }
 
         /* copy subglyph array */
         MEM_Copy( glyph->subglyphs, subglyphs,
                   num_subglyphs*sizeof(FT_SubGlyph));
-                  
+
         /* set up remaining glyph fields */
         glyph->num_subglyphs = num_subglyphs;
         glyph->format        = ft_glyph_format_composite;
@@ -740,18 +740,18 @@
       /* Now, read each subglyph independently..                           */
       {
         TT_Int  n, num_base_points, num_new_points;
-        
+
         subglyph = subglyphs;
         for ( n = 0; n < num_subglyphs; n++, subglyph++ )
         {
           TT_Vector  pp1, pp2;
           TT_Pos     x, y;
-          
+
           pp1 = loader->pp1;
           pp2 = loader->pp2;
 
           num_base_points = loader->base.n_points;
-          
+
           error = load_truetype_glyph( loader, subglyph->index );
           if ( subglyph->flags & USE_MY_METRICS )
           {
@@ -763,15 +763,15 @@
             loader->pp1 = pp1;
             loader->pp2 = pp2;
           }
-          
+
           num_points   = loader->base.n_points;
           num_contours = loader->base.n_contours;
-          
+
           num_new_points = num_points - num_base_points;
-          
+
           /********************************************************/
           /* now perform the transform required for this subglyph */
-          
+
           if ( subglyph->flags & ( WE_HAVE_A_SCALE     |
                                    WE_HAVE_AN_XY_SCALE |
                                    WE_HAVE_A_2X2       ) )
@@ -783,7 +783,7 @@
             for ( ; cur < limit; cur++, org++ )
             {
               TT_Pos  nx, ny;
-              
+
               nx = FT_MulFix( cur->x, subglyph->transform.xx ) +
                    FT_MulFix( cur->y, subglyph->transform.yx );
 
@@ -818,8 +818,8 @@
               goto Fail;
             }
 
-            l += num_base_points; 
-	    
+            l += num_base_points;
+
             x = loader->base.cur[k].x - loader->base.cur[l].x;
             y = loader->base.cur[k].y - loader->base.cur[l].y;
           }
@@ -832,7 +832,7 @@
             {
               x = FT_MulFix( x, x_scale );
               y = FT_MulFix( y, y_scale );
-              
+
               if ( subglyph->flags & ROUND_XY_TO_GRID )
 	          {
 	            x = (x + 32) & -64;
@@ -844,7 +844,7 @@
           translate_array( num_new_points, loader->zone.cur, x, y );
           cur_to_org( num_new_points, &loader->zone );
         }
-        
+
     /*************************************************************************/
     /*************************************************************************/
     /*************************************************************************/
@@ -861,12 +861,12 @@
           TT_UInt         n_points = loader->base.n_points;
           FT_GlyphZone*   pts;
           TT_Vector*      pp1;
-          
+
           /* read size of instructions */
           if ( FILE_Seek( ins_offset ) ||
                READ_UShort(n_ins)      ) goto Fail;
           FT_TRACE4(( "Instructions size = %d\n", n_ins ));
-    
+
           /* check it */
           if ( n_ins > face->max_profile.maxSizeOfInstructions )
           {
@@ -874,68 +874,68 @@
                         subglyph->index ));
             return TT_Err_Too_Many_Ins;
           }
-     
+
           if (exec)
           {
           }
           /* read the instructions */
           if ( FILE_Read( exec->glyphIns, n_ins ) )
             goto Fail;
-    
+
           error = TT_Set_CodeRange( exec,
                                     tt_coderange_glyph,
                                     exec->glyphIns,
                                     n_ins );
           if ( error ) goto Fail;
-          
+
           /* prepare the execution context */
           exec->pts   = loader->base;
           pts         = &exec->pts;
-      
+
           pts->n_points   = num_points + 2;
           pts->n_contours = num_contours;
-      
+
           /* add phantom points */
           pp1    = pts->cur + num_points;
           pp1[0] = loader->pp1;
           pp1[1] = loader->pp2;
-      
+
           pts->tags[num_points + 1] = 0;
           pts->tags[num_points + 2] = 0;
-      
+
           /* if hinting, round the phantom points */
           if ( IS_HINTED(loader->load_flags) )
           {
             pp1[0].x = ((loader->pp1.x + 32) & -64);
             pp1[1].x = ((loader->pp2.x + 32) & -64);
           }
-      
+
           {
             TT_UInt  k;
             for ( k = 0; k < n_points; k++ )
               pts->tags[k] &= FT_Curve_Tag_On;
           }
-      
+
           cur_to_org( n_points, pts );
-      
+
           /* now consider hinting */
           if ( IS_HINTED(loader->load_flags) && n_ins > 0 )
           {
             exec->is_composite     = TRUE;
             exec->pedantic_hinting =
                 (TT_Bool)(loader->load_flags & FT_LOAD_PEDANTIC);
-      
+
             error = TT_Run_Context( exec, loader->size->debug );
             if ( error && exec->pedantic_hinting )
               goto Fail;
           }
-          
+
           /* save glyph origin and advance points */
           loader->pp1 = pp1[0];
           loader->pp2 = pp1[1];
         }
 #endif
-          
+
       }
     }
 
@@ -948,7 +948,7 @@
     error = TT_Err_Ok;
 
   Fail:
-    return error;    
+    return error;
   }
 
 
@@ -966,7 +966,7 @@
     TT_Fixed      x_scale, y_scale;
     TT_GlyphSlot  glyph = loader->glyph;
     TT_Size       size = loader->size;
-    
+
     /* when a simple glyph was loaded, the value of        */
     /* "base.n_points" and "base.n_contours" is 0, we must */
     /* take those in the "zone" instead..                  */
@@ -975,7 +975,7 @@
       num_points   = loader->zone.n_points;
       num_contours = loader->zone.n_contours;
     }
-    
+
     x_scale = 0x10000;
     y_scale = 0x10000;
     if ( (loader->load_flags & FT_LOAD_NO_SCALE) == 0)
@@ -983,7 +983,7 @@
       x_scale = size->root.metrics.x_scale;
       y_scale = size->root.metrics.y_scale;
     }
-    
+
     if ( glyph->format != ft_glyph_format_composite )
     {
       TT_UInt  u;
@@ -1000,13 +1000,13 @@
       glyph->outline.flags      &= ~ft_outline_single_pass;
       glyph->outline.n_points    = num_points;
       glyph->outline.n_contours  = num_contours;
-  
+
       /* translate array so that (0,0) is the glyph's origin */
       translate_array( (TT_UShort)(num_points + 2),
                        glyph->outline.points,
                        -loader->pp1.x,
                        0 );
-  
+
       FT_Outline_Get_CBox( &glyph->outline, &bbox );
 
       if ( IS_HINTED(loader->load_flags) )
@@ -1199,7 +1199,7 @@
     TT_Error         error;
     TT_Loader        loader;
     FT_GlyphZone*    zone;
-    
+
     face   = (TT_Face)glyph->face;
     sfnt   = (SFNT_Interface*)face->sfnt;
     stream = face->root.stream;
@@ -1223,7 +1223,7 @@
     if ( size && (load_flags & FT_LOAD_NO_BITMAP) == 0 && sfnt->load_sbits )
     {
       TT_SBit_Metrics  metrics;
- 
+
       error = sfnt->load_sbit_image( face,
                                      size->root.metrics.x_ppem,
                                      size->root.metrics.y_ppem,
@@ -1279,7 +1279,7 @@
       goto Exit;
     }
     loader.base = *zone;
-    
+
     loader.zone.n_points   = 0;
     loader.zone.n_contours = 0;
 
@@ -1290,7 +1290,7 @@
       loader.exec = size->debug ? size->context : TT_New_Context(face);
       if ( !loader.exec )
         return TT_Err_Could_Not_Find_Context;
-        
+
       TT_Load_Context( loader.exec, face, size );
 
       /* load default graphics state - if needed */
@@ -1301,7 +1301,7 @@
 
     /* clear all outline flags, except the "owner" one */
     glyph->outline.flags &= ft_outline_owner;
-    
+
     if (size && size->root.metrics.y_ppem < 24 )
       glyph->outline.flags |= ft_outline_high_precision;
 
@@ -1315,7 +1315,7 @@
     loader.size   = size;
     loader.glyph  = glyph;
     loader.stream = stream;
-    
+
     loader.glyf_offset = FILE_Pos();
 
 #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
diff --git a/src/truetype/ttgload.h b/src/truetype/ttgload.h
index 5350d64..93a8d23 100644
--- a/src/truetype/ttgload.h
+++ b/src/truetype/ttgload.h
@@ -49,13 +49,13 @@
     TT_Bool         preserve_pps;
     TT_Vector       pp1;
     TT_Vector       pp2;
-        
+
     TT_ULong        glyf_offset;
-        
+
     /* the zone where we load our glyphs */
     FT_GlyphZone    base;
     FT_GlyphZone    zone;
-    
+
 #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
     TT_ExecContext  exec;
     TT_Byte*        instructions;
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 1ef9dc4..64bce53 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -1561,7 +1561,7 @@
   {
     TT_F26Dot6  val;
 
- 
+
    UNUSED_EXEC;
 
     if ( distance >= 0 )
@@ -2040,7 +2040,7 @@
                                   TT_Vector*  v2 )
   {
     UNUSED_EXEC;
- 
+
    return (v1->y - v2->y);
   }
 
@@ -2153,7 +2153,7 @@
     TT_Bool     S1, S2;
 
     UNUSED_EXEC;
-    
+
     if ( ABS( Vx ) < 0x10000L && ABS( Vy ) < 0x10000L )
     {
       Vx *= 0x100;
@@ -2236,7 +2236,7 @@
 
     return SUCCESS;
   }
-#else  
+#else
   static
   TT_Bool  Normalize( EXEC_OP_ TT_F26Dot6      Vx,
                                TT_F26Dot6      Vy,
@@ -2258,7 +2258,7 @@
 
     R->x = 0;
     R->y = 0;
-    
+
     /* check that we're not trying to normalise zero !! */
     if (u==0) return SUCCESS;
 
@@ -2266,21 +2266,21 @@
     hi  = (TT_ULong)u >> 16;
     lo  = (TT_ULong)u & 0xFFFF;
     med = hi*lo;
-    
+
     H     = hi*hi + (med >> 15);
     med <<= 17;
     L     = lo*lo + med;
     if (L < med) H++;
-    
+
     hi  = (TT_ULong)v >> 16;
     lo  = (TT_ULong)v & 0xFFFF;
     med = hi*lo;
-    
+
     H    += hi*hi + (med >> 15);
     med <<= 17;
     L2    = lo*lo + med;
     if (L2 < med) H++;
-    
+
     L += L2;
     if (L < L2) H++;
 
@@ -2293,7 +2293,7 @@
         L <<= 2;
         shift++;
       }
-      
+
       d = FT_Sqrt32(L);
       R->x = (TT_F2Dot14)TT_MULDIV( Vx << shift, 0x4000, d );
       R->y = (TT_F2Dot14)TT_MULDIV( Vy << shift, 0x4000, d );
@@ -2308,7 +2308,7 @@
         H >>= 2;
         shift++;
       }
-      
+
       d = FT_Sqrt32(L);
       R->x = (TT_F2Dot14)TT_MULDIV( Vx >> shift, 0x4000, d );
       R->y = (TT_F2Dot14)TT_MULDIV( Vy >> shift, 0x4000, d );
@@ -2322,7 +2322,7 @@
       sy = ( R->y >= 0 ? 1 : -1 );
       x  = (TT_ULong)sx*R->x;
       y  = (TT_ULong)sy*R->y;
-      
+
       w = x*x+y*y;
 
       /* we now want to adjust (x,y) in order to have sqrt(w) == 0x4000 */
@@ -2332,10 +2332,10 @@
         /* increment the smallest coordinate */
         if ( x < y )  x++;
                  else y++;
-                 
+
         w = x*x+y*y;
       }
-      
+
       while ( w >= 0x10040000L )
       {
         /* decrement the smallest coordinate */
@@ -4055,13 +4055,13 @@
     rec   = CUR.FDefs;
     limit = rec + CUR.numFDefs;
     n     = args[0];
-    
+
     for ( ; rec < limit; rec++ )
     {
       if (rec->opc == n)
         break;
     }
-    
+
     if ( rec == limit )
     {
       /* check that there is enough room for new functions */
@@ -4072,15 +4072,15 @@
       }
       CUR.numFDefs++;
     }
-    
+
     rec->range  = CUR.curRange;
     rec->opc    = n;
     rec->start  = CUR.IP+1;
     rec->active = TRUE;
-    
+
     if ( n > CUR.maxFunc )
       CUR.maxFunc = n;
-    
+
     /* Now skip the whole function definition. */
     /* We don't allow nested IDEFS & FDEFs.    */
 
@@ -4164,7 +4164,7 @@
     /* first of all, check the index */
     F = args[0];
     if ( BOUNDS( F, CUR.maxFunc+1 ) ) goto Fail;
-    
+
     /* Except for some old Apple fonts, all functions in a TrueType */
     /* font are defined in increasing order, starting from 0. This  */
     /* means that we normally have                                  */
@@ -4179,20 +4179,20 @@
     {
       /* look up the FDefs table */
       TT_DefRecord*  limit;
-      
+
       def   = CUR.FDefs;
       limit = def + CUR.numFDefs;
-      
+
       while (def < limit && def->opc != F)
         def++;
-        
+
       if (def == limit) goto Fail;
     }
-    
+
     /* check that the function is active */
     if (!def->active)
       goto Fail;
-      
+
     /* check the call stack */
     if ( CUR.callTop >= CUR.callSize )
     {
@@ -4211,10 +4211,10 @@
 
     INS_Goto_CodeRange( def->range,
                         def->start );
-                        
+
     CUR.step_ins = FALSE;
     return;
-    
+
   Fail:
     CUR.error = TT_Err_Invalid_Reference;
   }
@@ -4236,7 +4236,7 @@
     /* first of all, check the index */
     F = args[1];
     if ( BOUNDS( F, CUR.maxFunc+1 ) ) goto Fail;
-    
+
     /* Except for some old Apple fonts, all functions in a TrueType */
     /* font are defined in increasing order, starting from 0. This  */
     /* means that we normally have                                  */
@@ -4251,21 +4251,21 @@
     {
       /* look up the FDefs table */
       TT_DefRecord*  limit;
-      
+
       def   = CUR.FDefs;
       limit = def + CUR.numFDefs;
-      
+
       while (def < limit && def->opc != F)
         def++;
-        
+
       if (def == limit) goto Fail;
     }
-    
+
     /* check that the function is active */
     if (!def->active)
       goto Fail;
 
-    /* check stack */      
+    /* check stack */
     if ( CUR.callTop >= CUR.callSize )
     {
       CUR.error = TT_Err_Stack_Overflow;
@@ -4312,7 +4312,7 @@
     for ( ; def < limit; def++ )
       if (def->opc == (TT_ULong)args[0] )
         break;
-        
+
     if ( def == limit )
     {
       /* check that there is enough room for a new instruction */
@@ -4323,15 +4323,15 @@
       }
       CUR.numIDefs++;
     }
-    
+
     def->opc    = args[0];
     def->start  = CUR.IP+1;
     def->range  = CUR.curRange;
     def->active = TRUE;
-    
+
     if ( (TT_ULong)args[0] > CUR.maxIns )
       CUR.maxIns = args[0];
-    
+
     /* Now skip the whole function definition. */
     /* We don't allow nested IDEFs & FDEFs.    */
 
@@ -6320,30 +6320,30 @@
   {
     TT_DefRecord*  def   = CUR.IDefs;
     TT_DefRecord*  limit = def + CUR.numIDefs;
-    
+
     UNUSED_ARG;
- 
+
     for ( ; def < limit; def++ )
     {
       if (def->opc == CUR.opcode && def->active )
       {
         TT_CallRec*  call;
-        
+
         if ( CUR.callTop >= CUR.callSize )
         {
           CUR.error = TT_Err_Stack_Overflow;
           return;
         }
-        
+
         call = CUR.callStack + CUR.callTop++;
 
         call->Caller_Range = CUR.curRange;
         call->Caller_IP    = CUR.IP+1;
         call->Cur_Count    = 1;
         call->Cur_Restart  = def->start;
-        
+
         INS_Goto_CodeRange( def->range, def->start );
-        
+
         CUR.step_ins = FALSE;
         return;
       }
@@ -7292,29 +7292,29 @@
           {
             TT_DefRecord*  def   = CUR.IDefs;
             TT_DefRecord*  limit = def + CUR.numIDefs;
-            
+
             for ( ; def < limit; def++ )
             {
               if ( def->active && CUR.opcode == def->opc )
               {
                 TT_CallRec*  callrec;
-    
+
                 if ( CUR.callTop >= CUR.callSize )
                 {
                   CUR.error = TT_Err_Invalid_Reference;
                   goto LErrorLabel_;
                 }
-    
+
                 callrec = &CUR.callStack[CUR.callTop];
-    
+
                 callrec->Caller_Range = CUR.curRange;
                 callrec->Caller_IP    = CUR.IP + 1;
                 callrec->Cur_Count    = 1;
                 callrec->Cur_Restart  = def->start;
-    
+
                 if ( INS_Goto_CodeRange( def->range, def->start ) == FAILURE )
                   goto LErrorLabel_;
-    
+
                 goto LSuiteLabel_;
               }
             }
diff --git a/src/truetype/ttobjs.h b/src/truetype/ttobjs.h
index 33457e0..3bace38 100644
--- a/src/truetype/ttobjs.h
+++ b/src/truetype/ttobjs.h
@@ -365,7 +365,7 @@
 
 
  /*************************************************************************/
- /*  Face Funcs                                                           */ 
+ /*  Face Funcs                                                           */
 
   LOCAL_DEF TT_Error  TT_Init_Face( FT_Stream      stream,
                                     TT_Face        face,
@@ -377,7 +377,7 @@
 
 
  /*************************************************************************/
- /*  Size funcs                                                           */ 
+ /*  Size funcs                                                           */
 
   LOCAL_DEF TT_Error  TT_Init_Size ( TT_Size  size );
   LOCAL_DEF void      TT_Done_Size ( TT_Size  size );
@@ -385,14 +385,14 @@
 
 
  /*************************************************************************/
- /*  GlyphSlot funcs                                                      */ 
+ /*  GlyphSlot funcs                                                      */
 
   LOCAL_DEF TT_Error  TT_Init_GlyphSlot( TT_GlyphSlot  slot );
   LOCAL_DEF void      TT_Done_GlyphSlot( TT_GlyphSlot  slot );
 
 
  /*************************************************************************/
- /*  Driver funcs                                                         */ 
+ /*  Driver funcs                                                         */
 
   LOCAL_DEF  TT_Error  TT_Init_Driver( TT_Driver  driver );
   LOCAL_DEF  void      TT_Done_Driver( TT_Driver  driver );
diff --git a/src/type1/t1afm.c b/src/type1/t1afm.c
index 2b904af..ec216f5 100644
--- a/src/type1/t1afm.c
+++ b/src/type1/t1afm.c
@@ -34,27 +34,27 @@
     FT_UInt  result = 0;
     char     temp[64];
 
-    /* skip whitespace */    
+    /* skip whitespace */
     while ( (*p == ' ' || *p == '\t' || *p == ':' || *p == ';') && p < limit )
       p++;
     *start = p;
-    
+
     /* now, read glyph name */
     while ( IS_ALPHANUM(*p) && p < limit ) p++;
     len = p - *start;
     if (len > 0 && len < 64)
     {
       FT_Int  n;
-      
+
       /* copy glyph name to intermediate array */
       MEM_Copy( temp, *start, len );
       temp[len] = 0;
-      
+
       /* lookup glyph name in face array */
       for ( n = 0; n < type1->num_glyphs; n++ )
       {
         char*  gname = (char*)type1->glyph_names[n];
-        
+
         if ( gname && gname[0] == temp[0] && strcmp(gname,temp) == 0 )
         {
           result = n;
@@ -74,17 +74,17 @@
     FT_Byte*  p    = *start;
     int       sum  = 0;
     int       sign = 1;
-    
+
     /* skip everything that is not a number */
     while ( p < limit && (*p < '0' || *p > '9') )
     {
       sign = 1;
       if (*p == '-')
         sign = -1;
-        
+
       p++;
     }
-    
+
     while ( p < limit && (*p >= '0' && *p < '9') )
     {
       sum = sum*10 + (*p - '0');
@@ -104,10 +104,10 @@
   {
     T1_Kern_Pair*  pair1 = (T1_Kern_Pair*)a;
     T1_Kern_Pair*  pair2 = (T1_Kern_Pair*)b;
-    
+
     T1_ULong  index1 = KERN_INDEX(pair1->glyph1,pair1->glyph2);
     T1_ULong  index2 = KERN_INDEX(pair2->glyph1,pair2->glyph2);
-    
+
     return ( index1 < index2 ? -1 :
            ( index1 > index2 ?  1 : 0 ));
   }
@@ -127,14 +127,14 @@
     T1_Kern_Pair*  pair;
     T1_Font*       type1 = &((T1_Face)t1_face)->type1;
     T1_AFM*        afm   = 0;
-    
+
     if ( ACCESS_Frame(stream->size) )
       return error;
-      
+
     start = (FT_Byte*)stream->cursor;
     limit = (FT_Byte*)stream->limit;
     p     = start;
-    
+
     /* we are now going to count the occurences of "KP" or "KPX" in */
     /* the AFM file..                                               */
     count = 0;
@@ -147,16 +147,16 @@
    /* Actually, kerning pairs are simply optional !! */
     if (count == 0)
       goto Exit;
-    
+
     /* allocate the pairs */
     if ( ALLOC(       afm, sizeof(*afm ) )                   ||
          ALLOC_ARRAY( afm->kern_pairs, count, T1_Kern_Pair ) )
       goto Exit;
-    
+
     /* now, read each kern pair */
     pair           = afm->kern_pairs;
     afm->num_pairs = count;
-    
+
     /* save in face object */
     ((T1_Face)t1_face)->afm_data = afm;
 
@@ -165,26 +165,26 @@
       if ( IS_KERN_PAIR(p) )
       {
         FT_Byte*  q;
-        
+
         /* skip keyword (KP or KPX) */
         q = p+2;
         if (*q == 'X') q++;
-        
+
         pair->glyph1    = afm_atoindex( &q, limit, type1 );
         pair->glyph2    = afm_atoindex( &q, limit, type1 );
         pair->kerning.x = afm_atoi( &q, limit );
-        
+
         pair->kerning.y = 0;
         if ( p[2] != 'X' )
           pair->kerning.y = afm_atoi( &q, limit );
-          
+
         pair++;
       }
     }
-    
+
     /* now, sort the kern pairs according to their glyph indices */
     qsort( afm->kern_pairs, count, sizeof(T1_Kern_Pair), compare_kern_pairs );
-    
+
   Exit:
     if (error)
       FREE( afm );
@@ -194,7 +194,7 @@
   }
 
 
- /* find the kerning for a given glyph pair */  
+ /* find the kerning for a given glyph pair */
   LOCAL_FUNC
   void  T1_Get_Kerning( T1_AFM*     afm,
                         FT_UInt     glyph1,
@@ -203,23 +203,23 @@
   {
     T1_Kern_Pair  *min, *mid, *max;
     T1_ULong       index = KERN_INDEX(glyph1,glyph2);
-    
+
     /* simple binary search */
     min = afm->kern_pairs;
     max = min + afm->num_pairs-1;
-    
+
     while (min <= max)
     {
       T1_ULong  midi;
-      
+
       mid = min + (max-min)/2;
-      midi = KERN_INDEX(mid->glyph1,mid->glyph2); 
+      midi = KERN_INDEX(mid->glyph1,mid->glyph2);
       if ( midi == index )
       {
         *kerning = mid->kerning;
         return;
       }
-      
+
       if ( midi < index ) min = mid+1;
                      else max = mid-1;
     }
diff --git a/src/type1/t1afm.h b/src/type1/t1afm.h
index 61e18b8..984ae94 100644
--- a/src/type1/t1afm.h
+++ b/src/type1/t1afm.h
@@ -18,7 +18,7 @@
   FT_UInt   glyph1;
   FT_UInt   glyph2;
   FT_Vector kerning;
-  
+
 } T1_Kern_Pair;
 
 
diff --git a/src/type1/t1driver.c b/src/type1/t1driver.c
index 6998460..d96eddf 100644
--- a/src/type1/t1driver.c
+++ b/src/type1/t1driver.c
@@ -9,7 +9,7 @@
  *
  *  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 
+ *  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.
  *
@@ -59,10 +59,10 @@
                                      const FT_String*  interface )
   {
     UNUSED(driver);
-    
+
     if ( strcmp( (const char*)interface, "attach_file" ) == 0 )
       return (FTDriver_Interface)T1_Read_AFM;
-      
+
     return 0;
   }
 
@@ -107,7 +107,7 @@
                          T1_Vector*  kerning )
   {
     T1_AFM*  afm;
-    
+
     kerning->x = 0;
     kerning->y = 0;
 
@@ -185,7 +185,7 @@
     UNUSED(pixel_width);
     UNUSED(pixel_height);
 
-    size->valid = FALSE; 
+    size->valid = FALSE;
     return T1_Reset_Size(size);
   }
 
@@ -214,7 +214,7 @@
 
     face = (T1_Face)charmap->face;
     psnames = (PSNames_Interface*)face->psnames;
-    if (psnames)    
+    if (psnames)
       switch (charmap->encoding)
       {
        /********************************************************************/
@@ -233,7 +233,7 @@
               result = 0;
             goto Exit;
           }
-  
+
        /********************************************************************/
        /*                                                                  */
        /* Custom Type 1 encoding                                           */
@@ -248,7 +248,7 @@
             }
             goto Exit;
           }
-          
+
        /********************************************************************/
        /*                                                                  */
        /* Adobe Standard & Expert encoding support                         */
@@ -259,18 +259,18 @@
            FT_UInt      code;
            FT_Int       n;
            const char*  glyph_name;
-           
+
            code = psnames->adobe_std_encoding[charcode];
            if (charmap->encoding == ft_encoding_adobe_expert)
              code = psnames->adobe_expert_encoding[charcode];
-           
+
            glyph_name = psnames->adobe_std_strings(code);
            if (!glyph_name) break;
-           
+
            for ( n = 0; n < face->type1.num_glyphs; n++ )
            {
              const char*  gname = face->type1.glyph_names[n];
-             
+
              if ( gname && gname[0] == glyph_name[0] &&
                   strcmp( gname, glyph_name ) == 0 )
              {
@@ -280,7 +280,7 @@
            }
          }
       }
-  Exit:      
+  Exit:
     return result;
   }
 
@@ -366,7 +366,7 @@
     sizeof( T1_FaceRec ),
     sizeof( T1_SizeRec ),
     sizeof( T1_GlyphSlotRec ),
-    
+
     "type1",
     100,
     200,
@@ -385,7 +385,7 @@
     (FTDriver_initFace)             T1_Init_Face,
     (FTDriver_doneFace)             T1_Done_Face,
 
-#ifdef T1_CONFIG_OPTION_NO_AFM    
+#ifdef T1_CONFIG_OPTION_NO_AFM
     (FTDriver_getKerning)           0,
 #else
     (FTDriver_getKerning)           Get_Kerning,
@@ -425,12 +425,12 @@
   /*                                                                */
 
 #ifdef FT_CONFIG_OPTION_DYNAMIC_DRIVERS
-  
+
   EXPORT_FUNC(FT_DriverInterface*)  getDriverInterface( void )
   {
     return &t1_driver_interface;
   }
-  
+
 #endif /* FT_CONFIG_OPTION_DYNAMIC_DRIVERS */
 
 
diff --git a/src/type1/t1driver.h b/src/type1/t1driver.h
index d1feadc..35fe57d 100644
--- a/src/type1/t1driver.h
+++ b/src/type1/t1driver.h
@@ -9,7 +9,7 @@
  *
  *  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 
+ *  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.
  *
diff --git a/src/type1/t1errors.h b/src/type1/t1errors.h
index 01f5e4a..7984f54 100644
--- a/src/type1/t1errors.h
+++ b/src/type1/t1errors.h
@@ -34,7 +34,7 @@
 #define  T1_Err_Ok                       FT_Err_Ok
 
 /* ----------- high level API errors -------- */
-  
+
 #define  T1_Err_Invalid_File_Format      FT_Err_Invalid_File_Format
 #define  T1_Err_Invalid_Argument         FT_Err_Invalid_Argument
 #define  T1_Err_Invalid_Driver_Handle    FT_Err_Invalid_Driver_Handle
@@ -53,7 +53,7 @@
 #define  T1_Err_Invalid_Engine           FT_Err_Invalid_Driver_Handle
 
 /* ------------- internal errors ------------ */
-  
+
 #define  T1_Err_Out_Of_Memory            FT_Err_Out_Of_Memory
 #define  T1_Err_Unlisted_Object          FT_Err_Unlisted_Object
 
diff --git a/src/type1/t1gload.c b/src/type1/t1gload.c
index 19df387..585204d 100644
--- a/src/type1/t1gload.c
+++ b/src/type1/t1gload.c
@@ -168,7 +168,7 @@
  *    to implement the SEAC Type 1 operator.
  *
  * <Input>
- *    face     :: current face object         
+ *    face     :: current face object
  *    charcode :: charcode to look for
  *
  * <Return>
@@ -184,18 +184,18 @@
     T1_Int              n;
     const T1_String*    glyph_name;
     PSNames_Interface*  psnames = (PSNames_Interface*)face->psnames;
-    
+
     /* check range of standard char code */
     if (charcode < 0 || charcode > 255)
       return -1;
-      
+
     glyph_name = psnames->adobe_std_strings(
                     psnames->adobe_std_encoding[charcode]);
-    
+
     for ( n = 0; n < face->type1.num_glyphs; n++ )
     {
       T1_String*  name = (T1_String*)face->type1.glyph_names[n];
-      
+
       if ( name && strcmp(name,glyph_name) == 0 )
         return n;
     }
@@ -221,7 +221,7 @@
  *    achar    :: accent character's StandardEncoding charcode
  *
  * <Return>
- *    Error code. 0 means success.                               
+ *    Error code. 0 means success.
  *
  *********************************************************************/
 
@@ -240,10 +240,10 @@
     FT_Outline*  base = &decoder->builder.base;
     T1_Vector    left_bearing, advance;
     T1_Font*     type1 = &face->type1;
-    
+
     bchar_index = lookup_glyph_by_stdcharcode( face, bchar );
     achar_index = lookup_glyph_by_stdcharcode( face, achar );
-    
+
     if (bchar_index < 0 || achar_index < 0)
     {
       FT_ERROR(( "T1.Parse_Seac : invalid seac character code arguments\n" ));
@@ -275,20 +275,20 @@
       FT_GlyphSlot  glyph = (FT_GlyphSlot)decoder->builder.glyph;
       FT_SubGlyph*  subg;
 
-      /* reallocate subglyph array if necessary */        
+      /* reallocate subglyph array if necessary */
       if (glyph->max_subglyphs < 2)
       {
         FT_Memory  memory = decoder->builder.face->root.memory;
-        
+
         if ( REALLOC_ARRAY( glyph->subglyphs, glyph->max_subglyphs,
                             2, FT_SubGlyph ) )
           return error;
-          
+
         glyph->max_subglyphs = 2;
       }
 
       subg = glyph->subglyphs;
-      
+
       /* subglyph 0 = base character */
       subg->index = bchar_index;
       subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES |
@@ -296,7 +296,7 @@
       subg->arg1  = 0;
       subg->arg2  = 0;
       subg++;
-      
+
       /* subglyph 1 = accent character */
       subg->index = achar_index;
       subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES;
@@ -313,19 +313,19 @@
       /* as they will be erased by the next load..             */
       left_bearing = decoder->builder.left_bearing;
       advance      = decoder->builder.advance;
-  
+
       decoder->builder.left_bearing.x = 0;
-      decoder->builder.left_bearing.y = 0;    
-  
+      decoder->builder.left_bearing.y = 0;
+
       /* Now load "achar" on top of */
       /* the base outline           */
-      /*                            */ 
+      /*                            */
       cur->n_points   = 0;
       cur->n_contours = 0;
       cur->points     = base->points   + base->n_points;
       cur->tags       = base->tags     + base->n_points;
       cur->contours   = base->contours + base->n_contours;
-  
+
       error = T1_Parse_CharStrings( decoder,
                                     type1->charstrings    [achar_index],
                                     type1->charstrings_len[achar_index],
@@ -333,20 +333,20 @@
                                     type1->subrs,
                                     type1->subrs_len );
       if (error) return error;
-  
+
       /* adjust contours in accented character outline */
       {
         T1_Int  n;
-  
+
         for ( n = 0; n < cur->n_contours; n++ )
           cur->contours[n] += n_base_points;
       }
-  
+
       /* restore the left side bearing and   */
       /* advance width of the base character */
       decoder->builder.left_bearing = left_bearing;
       decoder->builder.advance      = advance;
-  
+
       /* Finally, move the accent */
       FT_Outline_Translate( cur, adx - asb, ady );
     }
@@ -368,7 +368,7 @@
  *    end_y     :: position of final flex point
  *
  * <Return>
- *    Error code. 0 means success.                               
+ *    Error code. 0 means success.
  *
  *********************************************************************/
 
@@ -434,7 +434,7 @@
  *    subrs_len        :: array of sub-routines lengths
  *
  * <Return>
- *    Error code. 0 means success.                               
+ *    Error code. 0 means success.
  *
  *********************************************************************/
 
@@ -454,7 +454,7 @@
     T1_Builder_Funcs*   builds  = &builder->funcs;
     T1_Hinter_Funcs*    hints   = &decoder->hinter;
 
-    static const T1_Int  args_count[ op_max ] = 
+    static const T1_Int  args_count[ op_max ] =
     {
       0, /* none */
       0, /* endchar */
@@ -959,11 +959,11 @@
 
       if ( REALLOC_ARRAY( builder->base.points,
                           current, builder->max_points, T1_Vector )  ||
-  
+
            REALLOC_ARRAY( builder->base.tags,
                           current, builder->max_points, T1_Byte )    )
         return error;
-    
+
       builder->current.points = builder->base.points + increment;
       builder->current.tags  = builder->base.tags  + increment;
     }
@@ -1015,7 +1015,7 @@
       if ( REALLOC_ARRAY( builder->base.contours,
                           current, builder->max_contours, T1_Short ) )
         return error;
-  
+
       builder->current.contours = builder->base.contours + increment;
     }
 
@@ -1160,7 +1160,7 @@
     FT_Outline*  cur = &builder->current;
     T1_Int       num_points;
     T1_Int       first_point;
-      
+
     /* Some fonts, like Hershey, are made of "open paths" which are    */
     /* now managed directly by FreeType. In this case, it is necessary */
     /* to close the path by duplicating its points in reverse order,   */
@@ -1171,7 +1171,7 @@
       first_point = cur->contours[ cur->n_contours-2 ]+1;
     else
       first_point = 0;
-        
+
     num_points = cur->n_points - first_point - 2;
     if ( num_points > 0 )
     {
@@ -1179,19 +1179,19 @@
       char*       source_tags;
       T1_Vector*  point;
       char*       tags;
-              
+
       error = T1_Add_Points( builder, num_points );
       if (error) return error;
 
       point = cur->points + cur->n_points;
       tags = cur->tags  + cur->n_points;
-        
+
       source_point   = point - 2;
       source_tags   = tags - 2;
 
       cur->n_points += num_points;
 
-      if ( builder->load_points )  
+      if ( builder->load_points )
         do
         {
           *point++ = *source_point--;
@@ -1241,7 +1241,7 @@
       if (error) return error;
     }
 
-    error = gload_closepath( builder );  
+    error = gload_closepath( builder );
 
     builder->base.n_points   += cur->n_points;
     builder->base.n_contours += cur->n_contours;
@@ -1324,7 +1324,7 @@
         if (error) return error;
       }
     }
-    
+
     /* grow buffer if necessary */
     error = T1_Add_Contours( builder, 1 ) ||
             T1_Add_Points  ( builder, 1 );
@@ -1391,7 +1391,7 @@
 
       builder->last = vec;
     }
-    
+
     cur->n_points      += 3;
     builder->path_begun = 1;
     return T1_Err_Ok;
@@ -1532,9 +1532,9 @@
 
       T1_Init_Builder( &decoder.builder, face, size, glyph,
                        &gload_builder_interface );
-  
+
       decoder.builder.no_recurse = !!(load_flags & FT_LOAD_NO_RECURSE);
-  
+
       /* now load the unscaled outline */
       error = T1_Parse_CharStrings( &decoder,
                                     type1->charstrings    [glyph_index],
@@ -1542,7 +1542,7 @@
                                     type1->num_subrs,
                                     type1->subrs,
                                     type1->subrs_len );
-  
+
       /* save new glyph tables */
       T1_Done_Builder( &decoder.builder );
     }
@@ -1564,9 +1564,9 @@
       {
         FT_BBox           cbox;
         FT_Glyph_Metrics* metrics = &glyph->root.metrics;
-  
+
         FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-  
+
         /* grid fit the bounding box if necessary */
         if (hinting)
         {
@@ -1575,36 +1575,36 @@
           cbox.xMax = ( cbox.xMax+63 ) & -64;
           cbox.yMax = ( cbox.yMax+63 ) & -64;
         }
-  
+
         metrics->width  = cbox.xMax - cbox.xMin;
         metrics->height = cbox.yMax - cbox.yMin;
-  
+
         metrics->horiBearingX = cbox.xMin;
         metrics->horiBearingY = cbox.yMax;
-  
+
         /* copy the _unscaled_ advance width */
         metrics->horiAdvance  = decoder.builder.advance.x;
-  
+
         /* make up vertical metrics */
         metrics->vertBearingX = 0;
         metrics->vertBearingY = 0;
         metrics->vertAdvance  = 0;
-  
+
         glyph->root.format = ft_glyph_format_outline;
-  
+
         glyph->root.outline.flags &= ft_outline_owner;
-        
+
         if ( size->root.metrics.y_ppem < 24 )
           glyph->root.outline.flags |= ft_outline_high_precision;
 
         glyph->root.outline.flags |= ft_outline_reverse_fill;
-                
+
         /*
         glyph->root.outline.second_pass    = TRUE;
         glyph->root.outline.high_precision = ( size->root.metrics.y_ppem < 24 );
         glyph->root.outline.dropout_mode   = 2;
         */
-  
+
         if ( hinting )
         {
           /* adjust the advance width                  */
@@ -1620,30 +1620,30 @@
           T1_Vector*   vec = cur->points;
           T1_Fixed     x_scale = glyph->x_scale;
           T1_Fixed     y_scale = glyph->y_scale;
-  
+
           /* First of all, scale the points */
           for ( n = cur->n_points; n > 0; n--, vec++ )
           {
             vec->x = FT_MulFix( vec->x, x_scale );
             vec->y = FT_MulFix( vec->y, y_scale );
           }
-  
+
           /* Then scale the metrics */
           metrics->width  = FT_MulFix( metrics->width,  x_scale );
           metrics->height = FT_MulFix( metrics->height, y_scale );
-  
+
           metrics->horiBearingX = FT_MulFix( metrics->horiBearingX, x_scale );
           metrics->horiBearingY = FT_MulFix( metrics->horiBearingY, y_scale );
           metrics->horiAdvance  = FT_MulFix( metrics->horiAdvance,  x_scale );
-  
+
           metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
           metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
           metrics->vertAdvance  = FT_MulFix( metrics->vertAdvance,  x_scale );
-  
+
         }
       }
     }
-    
+
     return error;
   }
 
diff --git a/src/type1/t1gload.h b/src/type1/t1gload.h
index 53d1d53..37a9aad 100644
--- a/src/type1/t1gload.h
+++ b/src/type1/t1gload.h
@@ -181,7 +181,7 @@
 /*     a structure used to store the address of various functions        */
 /*     used by a Type 1 hinter to perform outline hinting.               */
 /*                                                                       */
- 
+
   typedef T1_Error  (*T1_Hinter_ChangeHints)( T1_Builder*  builder );
 
   typedef T1_Error  (*T1_Hinter_DotSection)( T1_Builder*  builder );
diff --git a/src/type1/t1hinter.c b/src/type1/t1hinter.c
index f9d5db9..d7dd894 100644
--- a/src/type1/t1hinter.c
+++ b/src/type1/t1hinter.c
@@ -2,7 +2,7 @@
  *
  *  t1hinter.c                                                 1.2
  *
- *    Type1 hinter.         
+ *    Type1 hinter.
  *
  *  Copyright 1996-1999 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -66,7 +66,7 @@
  *      1. It extracts the bottom and top blue zones from the
  *         face object.
  *
- *      2. Each zone is then grown by  BlueFuzz, overlapping 
+ *      2. Each zone is then grown by  BlueFuzz, overlapping
  *         is eliminated by adjusting the zone edges appropriately
  *
  *      3. For each zone, we keep its original font units position, its
@@ -83,7 +83,7 @@
       {
         T1_Int  i, swap;
         T1_Int* cur;
-    
+
         for ( i = 2; i < count; i += 2 )
         {
           cur = blues + i;
@@ -91,7 +91,7 @@
           {
             if ( cur[-1] < cur[0] )
               break;
-    
+
             swap = cur[-2]; cur[-2] = cur[0]; cur[0] = swap;
             swap = cur[-1]; cur[-1] = cur[1]; cur[1] = swap;
             cur -= 2;
@@ -210,27 +210,27 @@
       }
     }
 
-    
+
     /* Compare the current pixel size with the BlueScale value */
     /* to know wether to supress overshoots..                  */
-    
-    hints->supress_overshoots = 
+
+    hints->supress_overshoots =
       ( size->root.metrics.y_ppem < FT_MulFix(1000,priv->blue_scale) );
 
     /* Now print the new blue values in tracing mode */
 #ifdef FT_DEBUG_LEVEL_TRACE
-    
+
     FT_TRACE2(( "Blue Zones for size object at $%08lx :\n", (long)size ));
     FT_TRACE2(( "   orus    pix    min   max\n" ));
     FT_TRACE2(( "-------------------------------\n" ));
-    
+
     zone = hints->blue_zones;
     for ( n = 0; n < hints->num_blue_zones; n++ )
     {
       FT_TRACE2(( "    %3d   %.2f   %.2f  %.2f\n",
-                zone->orus, 
+                zone->orus,
                 zone->pix/64.0,
-                zone->min/64.0, 
+                zone->min/64.0,
                 zone->max/64.0 ));
       zone++;
     }
@@ -238,7 +238,7 @@
               hints->supress_overshoots ? "supressed" : "active" ));
 
 #endif /* DEBUG_LEVEL_TRACE */
-                               
+
     return T1_Err_Ok;
   }
 
@@ -262,7 +262,7 @@
  *    This function performs the following :
  *
  *      1. It reads and scales the stem snap widths from the parent face
- *     
+ *
  *      2. A "snap zone" is computed for each snap width, by "growing"
  *         it with a threshold of a 1/2 pixel. Overlapping is avoided
  *         through proper edge adjustment.
@@ -296,7 +296,7 @@
     base_zone      = hints->snap_widths;
     orgs           = priv->stem_snap_widths;
     scale          = size->root.metrics.x_scale;
-    
+
     while (direction < 2)
     {
       /*****************************************************************/
@@ -305,7 +305,7 @@
       /*  font record.                                                 */
       /*                                                               */
       T1_Pos  prev, orus, pix, min, max, threshold;
-      
+
       threshold = ONE_PIXEL/4;
       zone      = base_zone;
 
@@ -347,14 +347,14 @@
 
       /* print the scaled stem snap values in tracing modes */
 #ifdef FT_DEBUG_LEVEL_TRACE
-      
-      FT_TRACE2(( "Set_Snap_Zones : first %s pass\n", 
+
+      FT_TRACE2(( "Set_Snap_Zones : first %s pass\n",
                 direction ? "vertical" : "horizontal" ));
-                
+
       FT_TRACE2(( "Scaled original stem snap zones :\n" ));
       FT_TRACE2(( "   orus   pix   min   max\n" ));
       FT_TRACE2(( "-----------------------------\n" ));
-      
+
       zone = base_zone;
       for ( n = 0; n < n_zones; n++, zone++ )
         FT_TRACE2(( "  %3d  %.2f  %.2f  %.2f\n",
@@ -363,7 +363,7 @@
                   zone->min/64.0,
                   zone->max/64.0 ));
       FT_TRACE2(( "\n" ));
-      
+
       FT_TRACE2(( "Standard width = %d\n", standard_width ));
 #endif
 
@@ -378,7 +378,7 @@
         T1_Snap_Zone*  parent;
         T1_Pos         std_pix, std_min, std_max;
 
-        std_pix = SCALE( standard_width );        
+        std_pix = SCALE( standard_width );
 
         std_min = std_pix-threshold;
         std_max = std_pix+threshold;
@@ -402,29 +402,29 @@
           }
           zone++;
         }
-        
+
         /**********************************************/
         /*  Now, insert the standard width zone       */
-        
+
         zone = base_zone+num_zones;
         while ( zone > base_zone && zone[-1].pix > std_max )
         {
           zone[0] = zone[-1];
           zone --;
         }
-        
+
         /* check border zones */
         if ( zone > base_zone && zone[-1].max > std_min )
           zone[-1].max = std_min;
-          
+
         if ( zone < base_zone+num_zones && zone[1].min < std_max )
           zone[1].min = std_max;
-        
+
         zone->orus = standard_width;
         zone->pix  = std_pix;
         zone->min  = std_min;
         zone->max  = std_max;
-        
+
         num_zones++;
       }
       else
@@ -436,14 +436,14 @@
 
       /* print the scaled stem snap values in tracing modes */
 #ifdef FT_DEBUG_LEVEL_TRACE
-      
-      FT_TRACE2(( "Set_Snap_Zones : second %s pass\n", 
+
+      FT_TRACE2(( "Set_Snap_Zones : second %s pass\n",
                 direction ? "vertical" : "horizontal" ));
-                
+
       FT_TRACE2(( "Scaled clipped stem snap zones :\n" ));
       FT_TRACE2(( "   orus   pix   min   max\n" ));
       FT_TRACE2(( "-----------------------------\n" ));
-      
+
       zone = base_zone;
       for ( n = 0; n < num_zones; n++, zone++ )
         FT_TRACE2(( "  %3d  %.2f  %.2f  %.2f\n",
@@ -452,10 +452,10 @@
                   zone->min/64.0,
                   zone->max/64.0 ));
       FT_TRACE2(( "\n" ));
-      
+
       FT_TRACE2(( "Standard width = %d\n", standard_width ));
 #endif
-     
+
       /* continue with vertical snap zone */
       direction++;
       standard_width = priv->standard_height;
@@ -467,7 +467,7 @@
 
     return T1_Err_Ok;
   }
-  
+
 
 /************************************************************************
  *
@@ -489,7 +489,7 @@
   T1_Error  T1_New_Size_Hinter( T1_Size  size )
   {
     FT_Memory  memory = size->root.face->memory;
-    
+
     return MEM_Alloc( size->hints, sizeof(*size->hints) );
   }
 
@@ -562,7 +562,7 @@
   T1_Error  T1_New_Glyph_Hinter( T1_GlyphSlot  glyph )
   {
     FT_Memory  memory = glyph->root.face->memory;
-    
+
     return MEM_Alloc( glyph->hints, sizeof(*glyph->hints) );
   }
 
@@ -846,7 +846,7 @@
  *    table     :: the horizontal stem hints table
  *    hints     :: the current size's hint structure
  *    blueShift :: the value of the /BlueShift as taken from the
- *                 face object.                               
+ *                 face object.
  *    scale     :: the 16.16 scale used to convert outline
  *                 units to 26.6 pixels
  *
@@ -895,7 +895,7 @@
         for ( ; zone < zone_limit; zone++ )
         {
           T1_Pos  dist;
-          
+
           dist = width_pix - zone->min; if (dist < 0) dist = -dist;
           if (dist < best_dist)
           {
@@ -903,7 +903,7 @@
             best_dist = dist;
           }
         }
-        
+
         if (best_zone)
         {
           if (width_pix > best_zone->pix)
@@ -948,7 +948,7 @@
             if (!hints->supress_overshoots)
             {
               T1_Pos  delta = blue->pix - bottom_pix;
-              
+
               delta   = ( delta < blueShift ? 0 : ROUND( delta ) );
               bottom -= delta;
             }
@@ -960,7 +960,7 @@
       /******************************************************************/
       /* Check for top blue zones alignement */
       {
-        T1_Int         num_blues  = hints->num_blue_zones - 
+        T1_Int         num_blues  = hints->num_blue_zones -
                                     hints->num_bottom_zones;
 
         T1_Snap_Zone*  blue       = hints->blue_zones +
@@ -982,7 +982,7 @@
             if (!hints->supress_overshoots)
             {
               T1_Pos  delta = top - blue->pix;
-              
+
               delta  = ( delta < blueShift ? 0 : ROUND( delta ) );
               top   += delta;
             }
@@ -999,27 +999,27 @@
           bottom_pix = bottom;
           top_pix    = bottom + width_pix;
           break;
-          
+
         case T1_ALIGN_TOP:  /* top zone alignement */
           top_pix    = top;
           bottom_pix = top - width_pix;
-          
+
           break;
-          
+
         case T1_ALIGN_BOTH:  /* bottom+top zone alignement */
           bottom_pix = bottom;
           top_pix    = top;
           break;
-          
+
         default:  /* no alignement */
 
-          /* XXXX : TODO : Add management of controlled stems */        
+          /* XXXX : TODO : Add management of controlled stems */
           bottom = ( SCALE(bottom_orus+top_orus) - width_pix )/2;
-        
+
           bottom_pix = ROUND(bottom);
           top_pix    = bottom_pix + width_pix;
       }
-      
+
       stem->min_edge.pix = bottom_pix;
       stem->max_edge.pix = top_pix;
     }
@@ -1079,7 +1079,7 @@
         for ( ; zone < zone_limit; zone++ )
         {
           T1_Pos  dist;
-          
+
           dist = width_pix - zone->min; if (dist < 0) dist = -dist;
           if (dist < best_dist)
           {
@@ -1087,7 +1087,7 @@
             best_dist = dist;
           }
         }
-        
+
         if (best_zone)
         {
           if (width_pix > best_zone->pix)
@@ -1104,7 +1104,7 @@
           }
         }
       }
-   
+
       /* round width - minimum 1 pixel if this isn't a ghost stem */
       if ( width_pix > 0 )
         width_pix = ( width_pix < ONE_PIXEL ? ONE_PIXEL :
@@ -1227,7 +1227,7 @@
  *
  * <Description>
  *   this function grid-fits several points in a given Type 1 builder
- *   at once. 
+ *   at once.
  *
  * <Input>
  *   builder  :: handle to target Type 1 builder
diff --git a/src/type1/t1hinter.h b/src/type1/t1hinter.h
index 4bf753a..b5c9327 100644
--- a/src/type1/t1hinter.h
+++ b/src/type1/t1hinter.h
@@ -2,7 +2,7 @@
  *
  *  t1hinter.h                                                 1.2
  *
- *    Type1 hinter.         
+ *    Type1 hinter.
  *
  *  Copyright 1996-1999 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -56,10 +56,10 @@
   typedef struct T1_Snap_Zone_
   {
     T1_Pos  orus;
-    T1_Pos  pix; 
-    T1_Pos  min; 
-    T1_Pos  max;  
-  
+    T1_Pos  pix;
+    T1_Pos  min;
+    T1_Pos  max;
+
   } T1_Snap_Zone;
 
 
@@ -80,8 +80,8 @@
   typedef struct T1_Edge_
   {
     T1_Pos  orus;
-    T1_Pos  pix;  
-  
+    T1_Pos  pix;
+
   } T1_Edge;
 
 
@@ -209,7 +209,7 @@
  *
  * <Description>
  *   A structure used to model the stem hints of a given glyph outline
- *   during glyph loading. 
+ *   during glyph loading.
  *
  * <Fields>
  *   hori_stems  :: horizontal stem hints table
@@ -344,7 +344,7 @@
  *
  * <Description>
  *   this function grid-fits several points in a given Type 1 builder
- *   at once. 
+ *   at once.
  *
  * <Input>
  *   builder  :: handle to target Type 1 builder
diff --git a/src/type1/t1load.c b/src/type1/t1load.c
index f59f226..f8df353 100644
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -1131,7 +1131,7 @@
                    error = Expect_Dict_Arguments( parser, 1, tok_error,
                                                   dict_font, 0 );
                    if (error) goto Exit;
-                   
+
                    /* clear stack from all the previous content. This   */
                    /* could be some stupid Postscript code ...          */
                    parser->top = parser->stack;
@@ -1384,7 +1384,7 @@
                   /* syntax, we never escape from the private dictionary     */
                   if (dict_state != dict_private)
                     parser->state_index--;
-               
+
                   /* many fonts use a NP instead of def or put, so */
                   /* we simply ignore the nest token..             */
 #if 0
diff --git a/src/type1/t1load.h b/src/type1/t1load.h
index 673316a..8cd5c80 100644
--- a/src/type1/t1load.h
+++ b/src/type1/t1load.h
@@ -2,7 +2,7 @@
  *
  *  t1load.h                                                    1.0
  *
- *    Type1 Loader.                          
+ *    Type1 Loader.
  *
  *  Copyright 1996-1998 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
diff --git a/src/type1/t1objs.c b/src/type1/t1objs.c
index 2546896..b272a97 100644
--- a/src/type1/t1objs.c
+++ b/src/type1/t1objs.c
@@ -2,7 +2,7 @@
  *
  *  t1objs.c                                                     1.0
  *
- *    Type1 Objects manager.        
+ *    Type1 Objects manager.
  *
  *  Copyright 1996-1998 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -88,9 +88,9 @@
   T1_Error  T1_Init_Size( T1_Size  size )
   {
     T1_Error    error;
-      
+
     size->valid = 0;
-    
+
 #ifndef T1_CONFIG_OPTION_DISABLE_HINTER
     error = T1_New_Size_Hinter( size );
     return error;
@@ -117,7 +117,7 @@
  *     Error code.
  *
  ******************************************************************/
- 
+
   LOCAL_FUNC
   T1_Error  T1_Reset_Size( T1_Size  size )
   {
@@ -148,7 +148,7 @@
  *     face  :: typeless pointer to the face object to destroy
  *
  *  <Return>
- *     Error code.                       
+ *     Error code.
  *
  ******************************************************************/
 
@@ -161,11 +161,11 @@
     if (face)
     {
       memory = face->root.memory;
-      
-      /* release font info strings */      
+
+      /* release font info strings */
       {
         T1_FontInfo*  info = &type1->font_info;
-        
+
         FREE( info->version );
         FREE( info->notice );
         FREE( info->full_name );
@@ -173,21 +173,21 @@
         FREE( info->weight );
       }
 
-      /* release top dictionary */      
+      /* release top dictionary */
       FREE( type1->charstrings_len );
       FREE( type1->charstrings );
       FREE( type1->glyph_names );
 
       FREE( type1->subrs );
       FREE( type1->subrs_len );
-      
+
       FREE( type1->subrs_block );
       FREE( type1->charstrings_block );
       FREE( type1->glyph_names_block );
 
       FREE( type1->encoding.char_index );
       FREE( type1->font_name );
-      
+
 #ifndef T1_CONFIG_OPTION_NO_AFM
       /* release afm data if present */
       if ( face->afm_data)
@@ -242,7 +242,7 @@
     {
       /* look-up the PSNames driver */
       FT_Driver  psnames_driver;
-      
+
       psnames_driver = FT_Get_Driver( face->root.driver->library, "psnames" );
       if (psnames_driver)
         face->psnames = (PSNames_Interface*)
@@ -278,15 +278,15 @@
       {
         FT_Face  root  = (FT_Face)&face->root;
         T1_Font* type1 = &face->type1;
-        
+
         root->num_glyphs   = type1->num_glyphs;
         root->num_charmaps = 1;
-  
+
         root->face_index = face_index;
         root->face_flags = FT_FACE_FLAG_SCALABLE;
-        
+
         root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-                              
+
         if ( type1->font_info.is_fixed_pitch )
           root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
 
@@ -299,13 +299,13 @@
         {
           char*  full   = type1->font_info.full_name;
           char*  family = root->family_name;
-          
+
           while ( *family && *full == *family )
           {
             family++;
             full++;
           }
-          
+
           root->style_name = ( *full == ' ' ? full+1 : "Regular" );
         }
         else
@@ -317,17 +317,17 @@
             root->style_name  = "Regular";
           }
         }
-  
+
         /* no embedded bitmap support */
         root->num_fixed_sizes = 0;
         root->available_sizes = 0;
-  
+
         root->bbox         = type1->font_bbox;
         root->units_per_EM = 1000;
         root->ascender     =  (T1_Short)type1->font_bbox.yMax;
         root->descender    = -(T1_Short)type1->font_bbox.yMin;
         root->height       = ((root->ascender + root->descender)*12)/10;
-  
+
         /* now compute the maximum advance width */
 
         root->max_advance_width = type1->private_dict.standard_width;
@@ -347,10 +347,10 @@
         }
 
         root->max_advance_height = root->height;
-        
+
         root->underline_position  = type1->font_info.underline_position;
         root->underline_thickness = type1->font_info.underline_thickness;
-  
+
         root->max_points   = 0;
         root->max_contours = 0;
       }
@@ -381,7 +381,7 @@
             charmap->encoding_id = 1;
             charmap++;
           }
-          
+
           /* simply clear the error in case of failure (which really) */
           /* means that out of memory or no unicode glyph names       */
           error = 0;
@@ -391,25 +391,25 @@
       /* now, support either the standard, expert, or custom encodings */
       charmap->face        = (FT_Face)face;
       charmap->platform_id = 7;  /* a new platform id for Adobe fonts ?? */
-      
+
       switch (face->type1.encoding_type)
       {
         case t1_encoding_standard:
           charmap->encoding    = ft_encoding_adobe_standard;
           charmap->encoding_id = 0;
           break;
-        
+
         case t1_encoding_expert:
           charmap->encoding    = ft_encoding_adobe_expert;
           charmap->encoding_id = 1;
           break;
-        
+
         default:
           charmap->encoding    = ft_encoding_adobe_custom;
           charmap->encoding_id = 2;
           break;
       }
-      
+
       root->charmaps = face->charmaps;
       root->num_charmaps = charmap - face->charmaprecs + 1;
       face->charmaps[0] = &face->charmaprecs[0];
@@ -432,7 +432,7 @@
  *
  *  Input  :  _glyph  typeless pointer to the glyph record to destroy
  *
- *  Output :  Error code.                       
+ *  Output :  Error code.
  *
  ******************************************************************/
 
@@ -459,7 +459,7 @@
  *  Description :  The glyph object constructor.
  *
  *  Input  :  glyph   glyph record to build.
- *            face    the glyph's parent face.              
+ *            face    the glyph's parent face.
  *
  *  Output :  Error code.
  *
diff --git a/src/type1/t1objs.h b/src/type1/t1objs.h
index 53fe3db..dd4220f 100644
--- a/src/type1/t1objs.h
+++ b/src/type1/t1objs.h
@@ -2,7 +2,7 @@
  *
  *  t1objs.h                                                    1.0
  *
- *    Type1 objects definition.         
+ *    Type1 objects definition.
  *
  *  Copyright 1996-1999 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -83,7 +83,7 @@
  /*    NOW BEGINS THE TYPE1 SPECIFIC STUFF ..............................  */
  /*                                                                        */
  /**************************************************************************/
- 
+
 
   /***************************************************/
   /*                                                 */
@@ -91,7 +91,7 @@
   /*                                                 */
   /*    Type 1 size record..                         */
   /*                                                 */
-  
+
   typedef struct T1_SizeRec_
   {
     FT_SizeRec      root;
@@ -110,14 +110,14 @@
   /*                                                 */
   /*    TrueDoc glyph record..                       */
   /*                                                 */
-  
+
   typedef struct T1_GlyphSlotRec_
   {
     FT_GlyphSlotRec  root;
 
     T1_Bool          hint;
     T1_Bool          scaled;
-    
+
     T1_Int           max_points;
     T1_Int           max_contours;
 
@@ -251,7 +251,7 @@
  *
  *  <Input>  glyph  :: handle to glyph slot object
  *
- *  <Output>  Error code.                       
+ *  <Output>  Error code.
  *
  ******************************************************************/
 
diff --git a/src/type1/t1parse.c b/src/type1/t1parse.c
index d897d74..9a71f99 100644
--- a/src/type1/t1parse.c
+++ b/src/type1/t1parse.c
@@ -157,16 +157,16 @@
     old_base = table->block;
     if (!old_base)
       return;
-    
+
     (void)REALLOC( table->block, table->capacity, table->cursor );
     table->capacity = table->cursor;
-    
+
     if (old_base != table->block)
     {
       T1_Long   delta   = table->block - old_base;
       T1_Byte** element = table->elements;
       T1_Byte** limit   = element + table->max_elems;
-      
+
       for ( ; element < limit; element++ )
         if (element[0])
           element[0] += delta;
diff --git a/src/type1/t1tokens.c b/src/type1/t1tokens.c
index 6f2f58e..53e5a9e 100644
--- a/src/type1/t1tokens.c
+++ b/src/type1/t1tokens.c
@@ -170,7 +170,7 @@
 
       FT_TRACE2(( "Growing tokenizer buffer by %d bytes\n", left_bytes ));
 
-      if ( !REALLOC( tokzer->base, tokzer->limit, 
+      if ( !REALLOC( tokzer->base, tokzer->limit,
                      tokzer->limit + left_bytes )                 &&
            !FILE_Read( tokzer->base + tokzer->limit, left_bytes ) )
         tokzer->limit += left_bytes;
@@ -309,13 +309,13 @@
    tokzer->cursor = 0;
 
    *tokenizer = tokzer;
-   
+
    /* Now check font format, we must see a '%!PS-AdobeFont-1' */
    /* or a '%!FontType'                                       */
    {
      if ( 16 > tokzer->limit )
        grow( tokzer );
-       
+
      if ( tokzer->limit <= 16 ||
           ( strncmp( (const char*)tokzer->base, "%!PS-AdobeFont-1", 16 ) &&
             strncmp( (const char*)tokzer->base, "%!FontType", 10 )       ) )
@@ -817,7 +817,7 @@
              case '(':
              case '<':
              case '/':
-               goto Any_Token;           
+               goto Any_Token;
 
              case  ' ':
              case '\r':
@@ -842,7 +842,7 @@
      case '+':
        if (token_started)
          goto Next;
-         
+
        token_started    = 1;
        tok->token.start = cur-1;
        for (;;)
diff --git a/src/type1z/t1afm.c b/src/type1z/t1afm.c
index b9f8d83..56eb84a 100644
--- a/src/type1z/t1afm.c
+++ b/src/type1z/t1afm.c
@@ -34,27 +34,27 @@
     FT_UInt  result = 0;
     char     temp[64];
 
-    /* skip whitespace */    
+    /* skip whitespace */
     while ( (*p == ' ' || *p == '\t' || *p == ':' || *p == ';') && p < limit )
       p++;
     *start = p;
-    
+
     /* now, read glyph name */
     while ( IS_ALPHANUM(*p) && p < limit ) p++;
     len = p - *start;
     if (len > 0 && len < 64)
     {
       FT_Int  n;
-      
+
       /* copy glyph name to intermediate array */
       MEM_Copy( temp, *start, len );
       temp[len] = 0;
-      
+
       /* lookup glyph name in face array */
       for ( n = 0; n < type1->num_glyphs; n++ )
       {
         char*  gname = (char*)type1->glyph_names[n];
-        
+
         if ( gname && gname[0] == temp[0] && strcmp(gname,temp) == 0 )
         {
           result = n;
@@ -74,17 +74,17 @@
     FT_Byte*  p    = *start;
     int       sum  = 0;
     int       sign = 1;
-    
+
     /* skip everything that is not a number */
     while ( p < limit && (*p < '0' || *p > '9') )
     {
       sign = 1;
       if (*p == '-')
         sign = -1;
-        
+
       p++;
     }
-    
+
     while ( p < limit && (*p >= '0' && *p < '9') )
     {
       sum = sum*10 + (*p - '0');
@@ -104,10 +104,10 @@
   {
     T1_Kern_Pair*  pair1 = (T1_Kern_Pair*)a;
     T1_Kern_Pair*  pair2 = (T1_Kern_Pair*)b;
-    
+
     T1_ULong  index1 = KERN_INDEX(pair1->glyph1,pair1->glyph2);
     T1_ULong  index2 = KERN_INDEX(pair2->glyph1,pair2->glyph2);
-    
+
     return ( index1 < index2 ? -1 :
            ( index1 > index2 ?  1 : 0 ));
   }
@@ -127,14 +127,14 @@
     T1_Kern_Pair*  pair;
     T1_Font*       type1 = &((T1_Face)t1_face)->type1;
     T1_AFM*        afm   = 0;
-    
+
     if ( ACCESS_Frame(stream->size) )
       return error;
-      
+
     start = (FT_Byte*)stream->cursor;
     limit = (FT_Byte*)stream->limit;
     p     = start;
-    
+
     /* we are now going to count the occurences of "KP" or "KPX" in */
     /* the AFM file..                                               */
     count = 0;
@@ -147,16 +147,16 @@
    /* Actually, kerning pairs are simply optional !! */
     if (count == 0)
       goto Exit;
-    
+
     /* allocate the pairs */
     if ( ALLOC(       afm, sizeof(*afm ) )                   ||
          ALLOC_ARRAY( afm->kern_pairs, count, T1_Kern_Pair ) )
       goto Exit;
-    
+
     /* now, read each kern pair */
     pair           = afm->kern_pairs;
     afm->num_pairs = count;
-    
+
     /* save in face object */
     ((T1_Face)t1_face)->afm_data = afm;
 
@@ -165,26 +165,26 @@
       if ( IS_KERN_PAIR(p) )
       {
         FT_Byte*  q;
-        
+
         /* skip keyword (KP or KPX) */
         q = p+2;
         if (*q == 'X') q++;
-        
+
         pair->glyph1    = afm_atoindex( &q, limit, type1 );
         pair->glyph2    = afm_atoindex( &q, limit, type1 );
         pair->kerning.x = afm_atoi( &q, limit );
-        
+
         pair->kerning.y = 0;
         if ( p[2] != 'X' )
           pair->kerning.y = afm_atoi( &q, limit );
-          
+
         pair++;
       }
     }
-    
+
     /* now, sort the kern pairs according to their glyph indices */
     qsort( afm->kern_pairs, count, sizeof(T1_Kern_Pair), compare_kern_pairs );
-    
+
   Exit:
     if (error)
       FREE( afm );
@@ -194,7 +194,7 @@
   }
 
 
- /* find the kerning for a given glyph pair */  
+ /* find the kerning for a given glyph pair */
   LOCAL_FUNC
   void  T1_Get_Kerning( T1_AFM*     afm,
                         FT_UInt     glyph1,
@@ -203,23 +203,23 @@
   {
     T1_Kern_Pair  *min, *mid, *max;
     T1_ULong       index = KERN_INDEX(glyph1,glyph2);
-    
+
     /* simple binary search */
     min = afm->kern_pairs;
     max = min + afm->num_pairs-1;
-    
+
     while (min <= max)
     {
       T1_ULong  midi;
-      
+
       mid = min + (max-min)/2;
-      midi = KERN_INDEX(mid->glyph1,mid->glyph2); 
+      midi = KERN_INDEX(mid->glyph1,mid->glyph2);
       if ( midi == index )
       {
         *kerning = mid->kerning;
         return;
       }
-      
+
       if ( midi < index ) min = mid+1;
                      else max = mid-1;
     }
diff --git a/src/type1z/t1afm.h b/src/type1z/t1afm.h
index 61e18b8..984ae94 100644
--- a/src/type1z/t1afm.h
+++ b/src/type1z/t1afm.h
@@ -18,7 +18,7 @@
   FT_UInt   glyph1;
   FT_UInt   glyph2;
   FT_Vector kerning;
-  
+
 } T1_Kern_Pair;
 
 
diff --git a/src/type1z/t1driver.c b/src/type1z/t1driver.c
index 7479fab..c6dba1a 100644
--- a/src/type1z/t1driver.c
+++ b/src/type1z/t1driver.c
@@ -9,7 +9,7 @@
  *
  *  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 
+ *  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.
  *
@@ -59,10 +59,10 @@
                                      const FT_String*  interface )
   {
     UNUSED(driver);
-    
+
     if ( strcmp( (const char*)interface, "attach_file" ) == 0 )
       return (FTDriver_Interface)T1_Read_AFM;
-      
+
     return 0;
   }
 
@@ -107,7 +107,7 @@
                          T1_Vector*  kerning )
   {
     T1_AFM*  afm;
-    
+
     kerning->x = 0;
     kerning->y = 0;
 
@@ -185,7 +185,7 @@
     UNUSED(pixel_width);
     UNUSED(pixel_height);
 
-    size->valid = FALSE; 
+    size->valid = FALSE;
     return T1_Reset_Size(size);
   }
 
@@ -214,7 +214,7 @@
 
     face = (T1_Face)charmap->face;
     psnames = (PSNames_Interface*)face->psnames;
-    if (psnames)    
+    if (psnames)
       switch (charmap->encoding)
       {
        /********************************************************************/
@@ -233,7 +233,7 @@
               result = 0;
             goto Exit;
           }
-  
+
        /********************************************************************/
        /*                                                                  */
        /* Custom Type 1 encoding                                           */
@@ -248,7 +248,7 @@
             }
             goto Exit;
           }
-          
+
        /********************************************************************/
        /*                                                                  */
        /* Adobe Standard & Expert encoding support                         */
@@ -259,18 +259,18 @@
            FT_UInt      code;
            FT_Int       n;
            const char*  glyph_name;
-           
+
            code = psnames->adobe_std_encoding[charcode];
            if (charmap->encoding == ft_encoding_adobe_expert)
              code = psnames->adobe_expert_encoding[charcode];
-           
+
            glyph_name = psnames->adobe_std_strings(code);
            if (!glyph_name) break;
-           
+
            for ( n = 0; n < face->type1.num_glyphs; n++ )
            {
              const char*  gname = face->type1.glyph_names[n];
-             
+
              if ( gname && gname[0] == glyph_name[0] &&
                   strcmp( gname, glyph_name ) == 0 )
              {
@@ -280,7 +280,7 @@
            }
          }
       }
-  Exit:      
+  Exit:
     return result;
   }
 
@@ -365,7 +365,7 @@
     sizeof( T1_FaceRec ),
     sizeof( T1_SizeRec ),
     sizeof( T1_GlyphSlotRec ),
-    
+
     "type1",
     100,
     200,
@@ -384,7 +384,7 @@
     (FTDriver_initFace)             T1_Init_Face,
     (FTDriver_doneFace)             T1_Done_Face,
 
-#ifdef T1_CONFIG_OPTION_NO_AFM    
+#ifdef T1_CONFIG_OPTION_NO_AFM
     (FTDriver_getKerning)           0,
 #else
     (FTDriver_getKerning)           Get_Kerning,
@@ -424,12 +424,12 @@
   /*                                                                */
 
 #ifdef FT_CONFIG_OPTION_DYNAMIC_DRIVERS
-  
+
   EXPORT_FUNC(FT_DriverInterface*)  getDriverInterface( void )
   {
     return &t1_driver_interface;
   }
-  
+
 #endif /* FT_CONFIG_OPTION_DYNAMIC_DRIVERS */
 
 
diff --git a/src/type1z/t1driver.h b/src/type1z/t1driver.h
index ec43946..76f244a 100644
--- a/src/type1z/t1driver.h
+++ b/src/type1z/t1driver.h
@@ -9,7 +9,7 @@
  *
  *  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 
+ *  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.
  *
diff --git a/src/type1z/t1errors.h b/src/type1z/t1errors.h
index 93731c1..a799115 100644
--- a/src/type1z/t1errors.h
+++ b/src/type1z/t1errors.h
@@ -32,7 +32,7 @@
 #define  T1_Err_Ok                       FT_Err_Ok
 
 /* ----------- high level API errors -------- */
-  
+
 #define  T1_Err_Invalid_File_Format      FT_Err_Invalid_File_Format
 #define  T1_Err_Invalid_Argument         FT_Err_Invalid_Argument
 #define  T1_Err_Invalid_Driver_Handle    FT_Err_Invalid_Driver_Handle
@@ -51,7 +51,7 @@
 #define  T1_Err_Invalid_Engine           FT_Err_Invalid_Driver_Handle
 
 /* ------------- internal errors ------------ */
-  
+
 #define  T1_Err_Out_Of_Memory            FT_Err_Out_Of_Memory
 #define  T1_Err_Unlisted_Object          FT_Err_Unlisted_Object
 
diff --git a/src/type1z/t1gload.c b/src/type1z/t1gload.c
index 51d3f44..71a7173 100644
--- a/src/type1z/t1gload.c
+++ b/src/type1z/t1gload.c
@@ -55,7 +55,7 @@
 
   } T1_Operator;
 
-  static const T1_Int  t1_args_count[ op_max ] = 
+  static const T1_Int  t1_args_count[ op_max ] =
   {
     0, /* none */
     0, /* endchar */
@@ -223,7 +223,7 @@
       return T1_Err_Ok;
 
     count += base->n_points + outline->n_points;
-        
+
     /* realloc points table if necessary */
     if ( count >= builder->max_points )
     {
@@ -237,14 +237,14 @@
 
       if ( REALLOC_ARRAY( base->points, current,
                           builder->max_points, T1_Vector )  ||
-  
+
            REALLOC_ARRAY( base->tags, current,
                           builder->max_points, T1_Byte )    )
       {
         builder->error = error;
         return error;
       }
-    
+
       outline->points = base->points + increment;
       outline->tags  = base->tags  + increment;
     }
@@ -265,17 +265,17 @@
     {
       FT_Vector*  point   = outline->points + outline->n_points;
       FT_Byte*    control = (FT_Byte*)outline->tags + outline->n_points;
-      
+
       point->x = x;
       point->y = y;
       *control = ( flag ? FT_Curve_Tag_On : FT_Curve_Tag_Cubic );
-      
+
       builder->last = *point;
     }
-    
+
     outline->n_points++;
   }
-    
+
 
   /* check room for a new on-curve point, then add it */
   static
@@ -284,7 +284,7 @@
                         FT_Pos       y )
   {
     T1_Error  error;
-    
+
     error = check_points(builder,1);
     if (!error)
       add_point( builder, x, y, 1 );
@@ -305,7 +305,7 @@
       outline->n_contours++;
       return T1_Err_Ok;
     }
-    
+
     /* realloc contours array if necessary */
     if ( base->n_contours + outline->n_contours >= builder->max_contours &&
          builder->load_points )
@@ -323,7 +323,7 @@
         builder->error = error;
         return error;
       }
-  
+
       outline->contours = base->contours + increment;
     }
 
@@ -344,7 +344,7 @@
     if (!builder->path_begun)
     {
       T1_Error  error;
-    
+
       builder->path_begun = 1;
       error = add_contour( builder );
       if (error) return error;
@@ -374,7 +374,7 @@
  *    to implement the SEAC Type 1 operator.
  *
  * <Input>
- *    face     :: current face object         
+ *    face     :: current face object
  *    charcode :: charcode to look for
  *
  * <Return>
@@ -390,18 +390,18 @@
     T1_Int              n;
     const T1_String*    glyph_name;
     PSNames_Interface*  psnames = (PSNames_Interface*)face->psnames;
-    
+
     /* check range of standard char code */
     if (charcode < 0 || charcode > 255)
       return -1;
-      
+
     glyph_name = psnames->adobe_std_strings(
                     psnames->adobe_std_encoding[charcode]);
-    
+
     for ( n = 0; n < face->type1.num_glyphs; n++ )
     {
       T1_String*  name = (T1_String*)face->type1.glyph_names[n];
-      
+
       if ( name && strcmp(name,glyph_name) == 0 )
         return n;
     }
@@ -428,7 +428,7 @@
  *    achar    :: accent character's StandardEncoding charcode
  *
  * <Return>
- *    Error code. 0 means success.                               
+ *    Error code. 0 means success.
  *
  *********************************************************************/
 
@@ -447,10 +447,10 @@
     FT_Outline*  base = &decoder->builder.base;
     T1_Vector    left_bearing, advance;
     T1_Font*     type1 = &face->type1;
-    
+
     bchar_index = lookup_glyph_by_stdcharcode( face, bchar );
     achar_index = lookup_glyph_by_stdcharcode( face, achar );
-    
+
     if (bchar_index < 0 || achar_index < 0)
     {
       FT_ERROR(( "T1.Parse_Seac : invalid seac character code arguments\n" ));
@@ -482,20 +482,20 @@
       FT_GlyphSlot  glyph = (FT_GlyphSlot)decoder->builder.glyph;
       FT_SubGlyph*  subg;
 
-      /* reallocate subglyph array if necessary */        
+      /* reallocate subglyph array if necessary */
       if (glyph->max_subglyphs < 2)
       {
         FT_Memory  memory = decoder->builder.face->root.memory;
-        
+
         if ( REALLOC_ARRAY( glyph->subglyphs, glyph->max_subglyphs,
                             2, FT_SubGlyph ) )
           return error;
-          
+
         glyph->max_subglyphs = 2;
       }
 
       subg = glyph->subglyphs;
-      
+
       /* subglyph 0 = base character */
       subg->index = bchar_index;
       subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES |
@@ -503,7 +503,7 @@
       subg->arg1  = 0;
       subg->arg2  = 0;
       subg++;
-      
+
       /* subglyph 1 = accent character */
       subg->index = achar_index;
       subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES;
@@ -520,19 +520,19 @@
       /* as they will be erase by the next load..              */
       left_bearing = decoder->builder.left_bearing;
       advance      = decoder->builder.advance;
-  
+
       decoder->builder.left_bearing.x = 0;
-      decoder->builder.left_bearing.y = 0;    
-  
+      decoder->builder.left_bearing.y = 0;
+
       /* Now load "achar" on top of */
       /* the base outline           */
-      /*                            */ 
+      /*                            */
       cur->n_points   = 0;
       cur->n_contours = 0;
       cur->points     = base->points   + base->n_points;
       cur->tags      = base->tags    + base->n_points;
       cur->contours   = base->contours + base->n_contours;
-  
+
       error = T1_Parse_CharStrings( decoder,
                                     type1->charstrings    [achar_index],
                                     type1->charstrings_len[achar_index],
@@ -540,21 +540,21 @@
                                     type1->subrs,
                                     type1->subrs_len );
       if (error) return error;
-  
+
       /* adjust contours in accented character outline */
       if (decoder->builder.load_points)
       {
         T1_Int  n;
-  
+
         for ( n = 0; n < cur->n_contours; n++ )
           cur->contours[n] += n_base_points;
       }
-  
+
       /* restore the left side bearing and   */
       /* advance width of the base character */
       decoder->builder.left_bearing = left_bearing;
       decoder->builder.advance      = advance;
-  
+
       /* Finally, move the accent */
       if (decoder->builder.load_points)
         FT_Outline_Translate( cur, adx - asb, ady );
@@ -580,7 +580,7 @@
  *    subrs_len        :: array of sub-routines lengths
  *
  * <Return>
- *    Error code. 0 means success.                               
+ *    Error code. 0 means success.
  *
  *********************************************************************/
 
@@ -615,7 +615,7 @@
 
     error   = T1_Err_Ok;
     outline = &builder->current;
-    
+
     x = builder->pos_x;
     y = builder->pos_y;
 
@@ -749,27 +749,27 @@
         FT_TRACE4(( " callothersubr" ));
         if ( top - decoder->stack < 2 )
           goto Stack_Underflow;
-          
+
         top -= 2;
         switch ( top[1] )
         {
           case 1: /* start flex feature ---------------------- */
             {
               if ( top[0] != 0 ) goto Unexpected_OtherSubr;
-              
+
               decoder->flex_state        = 1;
               decoder->num_flex_vectors  = 0;
               if ( start_point(builder, x, y) ||
                    check_points(builder,6) ) goto Memory_Error;
             }
             break;
-  
+
           case 2: /* add flex vectors ------------------------ */
             {
               T1_Int      index;
-              
+
               if ( top[0] != 0 ) goto Unexpected_OtherSubr;
-              
+
               /* note that we should not add a point for index 0 */
               /* this will move our current position to the flex */
               /* point without adding any point to the outline   */
@@ -781,18 +781,18 @@
                            (T1_Byte)( index==3 || index==6 ) );
             }
             break;
-            
+
           case 0: /* end flex feature ------------------------- */
             {
               if ( top[0] != 3 ) goto Unexpected_OtherSubr;
-              
+
               if ( decoder->flex_state       == 0 ||
                    decoder->num_flex_vectors != 7 )
               {
                 FT_ERROR(( "T1.Parse_CharStrings: unexpected flex end\n" ));
                 goto Syntax_Error;
               }
-              
+
               /* now consume the remaining "pop pop setcurpoint" */
               if ( ip+6 > limit ||
                    ip[0] != 12  || ip[1] != 17 || /* pop */
@@ -802,16 +802,16 @@
                 FT_ERROR(( "T1.Parse_CharStrings: invalid flex charstring\n" ));
                 goto Syntax_Error;
               }
-              
+
               ip += 6;
               decoder->flex_state = 0;
               break;
             }
-            
+
           case 3:  /* change hints ---------------------------- */
             {
               if ( top[0] != 1 ) goto Unexpected_OtherSubr;
-              
+
               /* eat the following "pop" */
               if (ip+2 > limit)
               {
@@ -819,7 +819,7 @@
                          ip[-1] ));
                 goto Syntax_Error;
               }
-  
+
               if (ip[0] != 12 || ip[1] != 17)
               {
                 FT_ERROR(( "T1.Parse_CharStrings: 'pop' expected, found (%d %d)\n",
@@ -829,7 +829,7 @@
               ip += 2;
               break;;
             }
-            
+
           default:
           Unexpected_OtherSubr:
             FT_ERROR(( "T1.Parse_CharStrings: invalid othersubr [%d %d]!!\n",
@@ -852,12 +852,12 @@
           case op_endchar: /*************************************************/
           {
             FT_TRACE4(( " endchar" ));
-            close_contour( builder );  
+            close_contour( builder );
 
             /* add current outline to the glyph slot */
             builder->base.n_points   += builder->current.n_points;
             builder->base.n_contours += builder->current.n_contours;
-            
+
             /* return now !! */
             FT_TRACE4(( "\n\n" ));
             return T1_Err_Ok;
@@ -870,16 +870,16 @@
             builder->left_bearing.x += top[0];
             builder->advance.x       = top[1];
             builder->advance.y       = 0;
-        
+
             builder->last.x = x = top[0];
             builder->last.y = y = 0;
-            
+
             /* the "metrics_only" indicates that we only want to compute */
             /* the glyph's metrics (lsb + advance width), not load the   */
             /* rest of it.. so exit immediately                          */
             if (builder->metrics_only)
               return T1_Err_Ok;
-              
+
             break;
           }
 
@@ -896,16 +896,16 @@
             builder->left_bearing.y += top[1];
             builder->advance.x       = top[2];
             builder->advance.y       = top[3];
-        
+
             builder->last.x = x = top[0];
             builder->last.y = y = top[1];
-            
+
             /* the "metrics_only" indicates that we only want to compute */
             /* the glyph's metrics (lsb + advance width), not load the   */
             /* rest of it.. so exit immediately                          */
             if (builder->metrics_only)
               return T1_Err_Ok;
-        
+
             break;
           }
 
@@ -942,7 +942,7 @@
             FT_TRACE4(( " hvcurveto" ));
             if ( start_point( builder, x, y ) ||
                  check_points( builder, 3 )   ) goto Memory_Error;
-                 
+
             x += top[0];
             add_point( builder, x, y, 0 );
             x += top[1];
@@ -958,7 +958,7 @@
           {
             FT_TRACE4(( " rlineto" ));
             if ( start_point( builder, x, y ) ) goto Memory_Error;
-              
+
             x += top[0];
             y += top[1];
    Add_Line:
@@ -980,11 +980,11 @@
             FT_TRACE4(( " rcurveto" ));
             if ( start_point( builder, x, y ) ||
                  check_points( builder, 3 )   ) goto Memory_Error;
-              
+
             x += top[0];
             y += top[1];
             add_point( builder, x, y, 0 );
-            
+
             x += top[2];
             y += top[3];
             add_point( builder, x, y, 0 );
@@ -993,7 +993,7 @@
             y += top[5];
             add_point( builder, x, y, 1 );
             break;
-          }    
+          }
 
 
           case op_vhcurveto:  /**********************************************/
@@ -1001,7 +1001,7 @@
             FT_TRACE4(( " vhcurveto" ));
             if ( start_point( builder, x, y ) ||
                  check_points( builder, 3 )   ) goto Memory_Error;
-                 
+
             y += top[0];
             add_point( builder, x, y, 0 );
             x += top[1];
@@ -1017,7 +1017,7 @@
             {
               FT_TRACE4(( " vlineto" ));
               if ( start_point( builder, x, y ) ) goto Memory_Error;
-                
+
               y += top[0];
               goto Add_Line;
             }
@@ -1150,10 +1150,10 @@
         }
 
         decoder->top = top;
-      
+
       } /* general operator processing */
 
-      
+
     } /* while ip < limit */
     FT_TRACE4(( "..end..\n\n" ));
     return error;
@@ -1163,7 +1163,7 @@
 
   Stack_Underflow:
     return T1_Err_Stack_Underflow;
-    
+
   Memory_Error:
     return builder->error;
   }
@@ -1269,9 +1269,9 @@
     {
       T1_Init_Decoder( &decoder );
       T1_Init_Builder( &decoder.builder, face, size, glyph );
-  
+
       decoder.builder.no_recurse = (FT_Bool)!!(load_flags & FT_LOAD_NO_RECURSE);
-      
+
       /* now load the unscaled outline */
       error = T1_Parse_CharStrings( &decoder,
                                     type1->charstrings    [glyph_index],
@@ -1279,7 +1279,7 @@
                                     type1->num_subrs,
                                     type1->subrs,
                                     type1->subrs_len );
-  
+
       /* save new glyph tables */
       T1_Done_Builder( &decoder.builder );
     }
@@ -1300,29 +1300,29 @@
       {
         FT_BBox           cbox;
         FT_Glyph_Metrics* metrics = &glyph->root.metrics;
-  
+
         /* copy the _unscaled_ advance width */
         metrics->horiAdvance  = decoder.builder.advance.x;
-  
+
         /* make up vertical metrics */
         metrics->vertBearingX = 0;
         metrics->vertBearingY = 0;
         metrics->vertAdvance  = 0;
-  
+
         glyph->root.format = ft_glyph_format_outline;
-  
+
         glyph->root.outline.flags &= ft_outline_owner;
         if ( size && size->root.metrics.y_ppem < 24 )
           glyph->root.outline.flags |= ft_outline_high_precision;
 
         glyph->root.outline.flags |= ft_outline_reverse_fill;
-                
+
         /*
         glyph->root.outline.second_pass    = TRUE;
         glyph->root.outline.high_precision = ( size->root.metrics.y_ppem < 24 );
         glyph->root.outline.dropout_mode   = 2;
         */
-  
+
         if ( (load_flags & FT_LOAD_NO_SCALE) == 0 )
         {
           /* scale the outline and the metrics */
@@ -1331,7 +1331,7 @@
           T1_Vector*   vec = cur->points;
           T1_Fixed     x_scale = glyph->x_scale;
           T1_Fixed     y_scale = glyph->y_scale;
-  
+
           /* First of all, scale the points */
           for ( n = cur->n_points; n > 0; n--, vec++ )
           {
@@ -1340,10 +1340,10 @@
           }
 
           FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-    
+
           /* Then scale the metrics */
           metrics->horiAdvance  = FT_MulFix( metrics->horiAdvance,  x_scale );
-  
+
           metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
           metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
           metrics->vertAdvance  = FT_MulFix( metrics->vertAdvance,  x_scale );
@@ -1351,7 +1351,7 @@
 
         /* compute the other metrics */
         FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-        
+
         /* grid fit the bounding box if necessary */
         if (hinting)
         {
diff --git a/src/type1z/t1gload.h b/src/type1z/t1gload.h
index 3c2de5e..0ac000a 100644
--- a/src/type1z/t1gload.h
+++ b/src/type1z/t1gload.h
@@ -108,10 +108,10 @@
     T1_Bool       path_begun;
     T1_Bool       load_points;
     T1_Bool       no_recurse;
-    
+
     T1_Error      error;         /* only used for memory errors */
     T1_Bool       metrics_only;
-    
+
   } T1_Builder;
 
 
diff --git a/src/type1z/t1load.c b/src/type1z/t1load.c
index b2589c2..e53e914 100644
--- a/src/type1z/t1load.c
+++ b/src/type1z/t1load.c
@@ -2,7 +2,7 @@
  *
  *  t1load.h                                                    2.0
  *
- *    Type1 Loader.                          
+ *    Type1 Loader.
  *
  *  Copyright 1996-2000 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -32,7 +32,7 @@
  *
  *      ..... /Field <data> ....
  *
- *  where <data> can be a number, a boolean, a string, or an 
+ *  where <data> can be a number, a boolean, a string, or an
  *  array of numbers. There are a few exceptions, namely the
  *  encoding, font name, charstrings and subrs and they are
  *  handled with a special pattern-matching routine.
@@ -72,17 +72,17 @@
 
   typedef  void  (*T1_Parse_Func)( T1_Face   face, T1_Loader*  loader );
 
-  typedef  struct T1_KeyWord_  
+  typedef  struct T1_KeyWord_
   {
     const char*    name;
     T1_Parse_Func  parsing;
-  
+
   } T1_KeyWord;
 
   /* some handy macros used to easily define parsing callback functions */
   /* each callback is in charge of loading a value and storing it in a  */
   /* given field of the Type 1 face..                                   */
- 
+
 #define PARSE_(x)  static void FT_XCAT(parse_,x) ( T1_Face  face, T1_Loader* loader )
 
 #define FIELD   FACE.x
@@ -98,7 +98,7 @@
           FACE.x = (t)T1_ToInt(&loader->parser);                  \
           FT_TRACE2(( "type1.parse_%s: \"%d\"\n", #x, FACE.x ));   \
         }
-        
+
 #define PARSE_INT(s,x)   PARSE_(x)                                  \
         {                                                           \
           FACE.x = T1_ToInt(&loader->parser);                     \
@@ -111,19 +111,19 @@
           FT_TRACE2(( "type1.parse_%s : \"%s\"\n",                \
                        #x, FACE.x ? "true" : "false" ));              \
         }
- 
+
 #define PARSE_FIXED(s,x)   PARSE_(x)                                        \
         {                                                                   \
           FACE.x = T1_ToFixed(&loader->parser,3);                         \
           FT_TRACE2(( "type1.parse_%s: \"%f\"\n", #x, FACE.x/65536.0 ));   \
         }
- 
+
 #define PARSE_COORDS(s,c,m,x)   PARSE_(x)                                         \
         {                                                                         \
           FACE.c = T1_ToCoordArray(&loader->parser, m, (T1_Short*)FACE.x );   \
           FT_TRACE2(( "type1.parse_%s\n", #x ));                                   \
         }
-           
+
 #define PARSE_FIXEDS(s,c,m,x)   PARSE_(x)                                           \
         {                                                                           \
           FACE.c = T1_ToFixedArray(&loader->parser, m, (T1_Fixed*)FACE.x, 3 );  \
@@ -168,49 +168,49 @@
   void  skip_whitespace( T1_Parser* parser )
   {
     T1_Byte*  cur = parser->cursor;
-    
+
     while ( cur < parser->limit && is_space(*cur) )
       cur++;
-      
+
     parser->cursor = cur;
   }
-  
+
   static
   void skip_blackspace( T1_Parser* parser )
   {
     T1_Byte*  cur = parser->cursor;
-    
+
     while ( cur < parser->limit && !is_space(*cur) )
       cur++;
-      
+
     parser->cursor = cur;
   }
-  
+
   static
   int   read_binary_data( T1_Parser*  parser, T1_Int *size, T1_Byte* *base )
   {
     T1_Byte*  cur;
     T1_Byte*  limit = parser->limit;
-    
+
     /* the binary data has the following format */
     /*                                          */
     /* "size" [white*] RD white ....... ND      */
     /*                                          */
-    
+
     skip_whitespace(parser);
     cur = parser->cursor;
-    
+
     if ( cur < limit && (T1_Byte)(*cur-'0') < 10 )
     {
       *size = T1_ToInt(parser);
-      
+
       skip_whitespace(parser);
       skip_blackspace(parser);  /* "RD" or "-|" or something else */
-      
+
       /* there is only one whitespace char after the */
       /* "RD" or "-|" token                          */
       *base = parser->cursor + 1;
-      
+
       parser->cursor += *size+1;
       return 1;
     }
@@ -235,12 +235,12 @@
     T1_Byte*    cur;
     T1_Byte*    cur2;
     T1_Byte*    limit;
-    
+
     skip_whitespace(parser);
     cur   = parser->cursor;
     limit = parser->limit;
     if ( cur >= limit-1 || *cur != '/' ) return;
-    
+
     cur++;
     cur2 = cur;
     while (cur2 < limit && is_alpha(*cur2)) cur2++;
@@ -252,7 +252,7 @@
         parser->error = error;
         return;
       }
-      
+
       MEM_Copy( face->type1.font_name, cur, len );
       face->type1.font_name[len] = '\0';
     }
@@ -265,7 +265,7 @@
     T1_Parser*  parser = &loader->parser;
     T1_Short    temp[4];
     T1_BBox*    bbox = &face->type1.font_bbox;
-    
+
     (void)T1_ToCoordArray( parser, 4, temp );
     bbox->xMin = temp[0];
     bbox->yMin = temp[1];
@@ -279,7 +279,7 @@
     T1_Parser*  parser = &loader->parser;
     T1_Byte*    cur   = parser->cursor;
     T1_Byte*    limit = parser->limit;
-    
+
     /* skip whitespace */
     while (is_space(*cur))
     {
@@ -291,7 +291,7 @@
         return;
       }
     }
-    
+
     /* if we have a number, then the encoding is an array, */
     /* and we must load it now                             */
     if ((T1_Byte)(*cur - '0') < 10)
@@ -301,7 +301,7 @@
       T1_Table*     char_table = &loader->encoding_table;
       FT_Memory     memory     = parser->memory;
       FT_Error      error;
-      
+
       /* read the number of entries in the encoding, should be 256 */
       count = T1_ToInt( parser );
       if (parser->error) return;
@@ -315,7 +315,7 @@
         parser->error = error;
         return;
       }
-      
+
       /* now, we will need to read a record of the form         */
       /* ... charcode /charname ... for each entry in our table */
       /*                                                        */
@@ -337,9 +337,9 @@
       for ( ; cur < limit; )
       {
         T1_Byte  c;
-        
+
         c = *cur;
-        
+
         /* we stop when we encounter a 'def' */
         if ( c == 'd' && cur+3 < limit )
         {
@@ -352,39 +352,39 @@
               break;
           }
         }
-        
+
         /* otherwise, we must find a number before anything else */
         if ( (T1_Byte)(c-'0') < 10 )
         {
           T1_Int  charcode;
-          
+
           parser->cursor = cur;
           charcode = T1_ToInt(parser);
           cur = parser->cursor;
-          
+
           /* skip whitespace */
           while (cur < limit && is_space(*cur)) cur++;
-          
+
           if (cur < limit && *cur == '/')
           {
             /* bingo, we have an immediate name - it must be a */
             /* character name                                  */
             FT_Byte*  cur2 = cur+1;
             T1_Int    len;
-            
+
             while (cur2 < limit && is_alpha(*cur2)) cur2++;
             len = cur2-cur-1;
             parser->error = T1_Add_Table( char_table, charcode, cur+1, len+1 );
             char_table->elements[charcode][len] = '\0';
             if (parser->error) return;
-            
+
             cur = cur2;
           }
         }
         else
           cur++;
       }
-      
+
       face->type1.encoding_type = t1_encoding_array;
       parser->cursor            = cur;
     }
@@ -395,7 +395,7 @@
       if ( cur+17 < limit &&
            strncmp( (const char*)cur, "StandardEncoding", 16 ) == 0 )
         face->type1.encoding_type = t1_encoding_standard;
-        
+
       else if ( cur+15 < limit &&
                 strncmp( (const char*)cur, "ExpertEncoding", 14 ) == 0 )
         face->type1.encoding_type = t1_encoding_expert;
@@ -404,7 +404,7 @@
       {
         FT_ERROR(( "type1.parse_encoding: invalid token !!\n" ));
         parser->error = FT_Err_Invalid_File_Format;
-      }      
+      }
     }
   }
 
@@ -417,10 +417,10 @@
     FT_Memory   memory = parser->memory;
     FT_Error    error;
     T1_Int      n;
-    
-    loader->num_subrs = T1_ToInt( parser );    
+
+    loader->num_subrs = T1_ToInt( parser );
     if (parser->error) return;
-    
+
     /* initialise subrs array */
     error = T1_New_Table( table, loader->num_subrs, memory );
     if (error) goto Fail;
@@ -429,16 +429,16 @@
     /*                                                       */
     /*   "index" + binary data                               */
     /*                                                       */
-    
+
     for ( n = 0; n < loader->num_subrs; n++ )
     {
       T1_Int    index, size;
       T1_Byte*  base;
-      
+
       index = T1_ToInt(parser);
       if (!read_binary_data(parser,&size,&base)) return;
-      
-      T1_Decrypt( base, size, 4330 );      
+
+      T1_Decrypt( base, size, 4330 );
       size -= face->type1.private_dict.lenIV;
       base += face->type1.private_dict.lenIV;
 
@@ -466,21 +466,21 @@
     T1_Byte*    cur;
     T1_Byte*    limit = parser->limit;
     T1_Int      n;
-    
-    loader->num_glyphs = T1_ToInt( parser );    
+
+    loader->num_glyphs = T1_ToInt( parser );
     if (parser->error) return;
-    
+
     /* initialise tables */
     error = T1_New_Table( code_table, loader->num_glyphs, memory ) ||
             T1_New_Table( name_table, loader->num_glyphs, memory );
     if (error) goto Fail;
-    
+
     n = 0;
     for ( ;; )
     {
       T1_Int    size;
       T1_Byte*  base;
-      
+
       /* the format is simple :                   */
       /*   "/glyphname" + binary data             */
       /*                                          */
@@ -491,7 +491,7 @@
       if (cur >= limit) break;
 
       /* we stop when we find a "def" or "end" keyword */
-      if (*cur    == 'd' && 
+      if (*cur    == 'd' &&
            cur+3 < limit &&
            cur[1] == 'e' &&
            cur[2] == 'f' )
@@ -509,26 +509,26 @@
       {
         T1_Byte*  cur2 = cur+1;
         T1_Int    len;
-        
+
         while (cur2 < limit && is_alpha(*cur2)) cur2++;
         len = cur2-cur-1;
-        
+
         error = T1_Add_Table( name_table, n, cur+1, len+1 );
         if (error) goto Fail;
-       
+
         /* add a trailing zero to the name table */
         name_table->elements[n][len] = '\0';
-       
-        parser->cursor = cur2; 
+
+        parser->cursor = cur2;
         if (!read_binary_data(parser,&size,&base)) return;
 
-        T1_Decrypt( base, size, 4330 );      
+        T1_Decrypt( base, size, 4330 );
         size -= face->type1.private_dict.lenIV;
         base += face->type1.private_dict.lenIV;
 
         error = T1_Add_Table( code_table, n, base, size );
         if (error) goto Fail;
-        
+
         n++;
         if (n >= loader->num_glyphs)
           break;
@@ -536,7 +536,7 @@
     }
     loader->num_glyphs = n;
     return;
-    
+
   Fail:
     parser->error = error;
   }
@@ -586,15 +586,15 @@
                         T1_Long     size )
   {
     T1_Parser*  parser = &loader->parser;
-    
+
     parser->cursor = base;
     parser->limit  = base + size;
     parser->error  = 0;
-    
+
     {
       T1_Byte*  cur     = base;
       T1_Byte*  limit   = cur + size;
-      
+
       for ( ;cur < limit; cur++ )
       {
         /* look for immediates */
@@ -602,21 +602,21 @@
         {
           T1_Byte* cur2;
           T1_Int   len;
-          
+
           cur  ++;
           cur2 = cur;
           while (cur2 < limit && is_alpha(*cur2)) cur2++;
           len  = cur2-cur;
-          
+
           if (len > 0 && len < 20)
           {
             /* now, compare the immediate name to the keyword table */
             T1_KeyWord*  keyword = (T1_KeyWord*)t1_keywords;
-            
+
             for (;;)
             {
               T1_Byte*  name;
-              
+
               name = (T1_Byte*)keyword->name;
               if (!name) break;
 
@@ -627,7 +627,7 @@
                 for ( n = 1; n < len; n++ )
                   if (cur[n] != name[n])
                     break;
-                    
+
                 if (n >= len)
                 {
                   /* we found it - run the parsing callback !! */
@@ -654,29 +654,29 @@
   void t1_init_loader( T1_Loader* loader, T1_Face  face )
   {
     UNUSED(face);
-    
+
     MEM_Set( loader, 0, sizeof(*loader) );
     loader->num_glyphs = 0;
     loader->num_chars  = 0;
 
-    /* initialize the tables - simply set their 'init' field to 0 */    
+    /* initialize the tables - simply set their 'init' field to 0 */
     loader->encoding_table.init = 0;
     loader->charstrings.init    = 0;
     loader->glyph_names.init    = 0;
     loader->subrs.init          = 0;
   }
-  
+
   static
   void t1_done_loader( T1_Loader* loader )
   {
     T1_Parser*  parser = &loader->parser;
-    
+
     /* finalize tables */
     T1_Release_Table( &loader->encoding_table );
     T1_Release_Table( &loader->charstrings );
     T1_Release_Table( &loader->glyph_names );
     T1_Release_Table( &loader->subrs );
-    
+
     /* finalize parser */
     T1_Done_Parser( parser );
   }
@@ -693,47 +693,47 @@
 
     /* default lenIV */
     type1->private_dict.lenIV = 4;
-    
+
     parser = &loader.parser;
     error = T1_New_Parser( parser, face->root.stream, face->root.memory );
     if (error) goto Exit;
 
     error = parse_dict( face, &loader, parser->base_dict, parser->base_len );
     if (error) goto Exit;
-    
+
     error = T1_Get_Private_Dict( parser );
     if (error) goto Exit;
-    
+
     error = parse_dict( face, &loader, parser->private_dict, parser->private_len );
-    if (error) goto Exit;    
+    if (error) goto Exit;
 
     /* now, propagate the subrs, charstrings and glyphnames tables */
     /* to the Type1 data                                           */
     type1->num_glyphs = loader.num_glyphs;
-    
+
     if ( !loader.subrs.init )
     {
       FT_ERROR(( "T1.Open_Face: no subrs array in face !!\n" ));
       error = FT_Err_Invalid_File_Format;
     }
-    
+
     if ( !loader.charstrings.init )
     {
       FT_ERROR(( "T1.Open_Face: no charstrings array in face !!\n" ));
       error = FT_Err_Invalid_File_Format;
     }
-    
+
     loader.subrs.init  = 0;
     type1->num_subrs   = loader.num_subrs;
     type1->subrs_block = loader.subrs.block;
     type1->subrs       = loader.subrs.elements;
     type1->subrs_len   = loader.subrs.lengths;
-    
+
     loader.charstrings.init  = 0;
     type1->charstrings_block = loader.charstrings.block;
     type1->charstrings       = loader.charstrings.elements;
     type1->charstrings_len   = loader.charstrings.lengths;
-    
+
     /* we copy the glyph names "block" and "elements" fields */
     /* but the "lengths" field must be released later..      */
     type1->glyph_names_block    = loader.glyph_names.block;
@@ -753,16 +753,16 @@
       /* table, lookup the index of the glyph having the same name  */
       /* the index is then stored in type1.encoding.char_index, and */
       /* a the name to type1.encoding.char_name                     */
-      
+
       min_char = +32000;
       max_char = -32000;
-      
+
       charcode = 0;
       for ( ; charcode < loader.encoding_table.num_elems; charcode++ )
       {
         type1->encoding.char_index[charcode] = 0;
         type1->encoding.char_name [charcode] = ".notdef";
-        
+
         char_name = loader.encoding_table.elements[charcode];
         if (char_name)
           for ( index = 0; index < type1->num_glyphs; index++ )
@@ -773,7 +773,7 @@
             {
               type1->encoding.char_index[charcode] = index;
               type1->encoding.char_name [charcode] = (char*)glyph_name;
-              
+
               if (charcode < min_char) min_char = charcode;
               if (charcode > max_char) max_char = charcode;
               break;
@@ -784,8 +784,8 @@
       type1->encoding.code_last  = max_char;
       type1->encoding.num_chars  = loader.num_chars;
    }
-    
+
   Exit:
     t1_done_loader( &loader );
     return error;
-  } 
+  }
diff --git a/src/type1z/t1load.h b/src/type1z/t1load.h
index 093096c..629e943 100644
--- a/src/type1z/t1load.h
+++ b/src/type1z/t1load.h
@@ -2,7 +2,7 @@
  *
  *  t1load.h                                                    2.0
  *
- *    Type1 Loader.                          
+ *    Type1 Loader.
  *
  *  Copyright 1996-2000 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -32,14 +32,14 @@
     T1_Int           num_chars;       /* number of characters in encoding */
     T1_Table         encoding_table;  /* T1_Table used to store the       */
                                 /* encoding character names         */
-                           
-    T1_Int           num_glyphs;     
+
+    T1_Int           num_glyphs;
     T1_Table         glyph_names;
     T1_Table         charstrings;
-        
+
     T1_Int           num_subrs;
     T1_Table         subrs;
-    
+
   } T1_Loader;
 
   LOCAL_DEF
diff --git a/src/type1z/t1objs.c b/src/type1z/t1objs.c
index 2d25408..3a5c053 100644
--- a/src/type1z/t1objs.c
+++ b/src/type1z/t1objs.c
@@ -2,7 +2,7 @@
  *
  *  t1objs.c                                                     1.0
  *
- *    Type1 Objects manager.        
+ *    Type1 Objects manager.
  *
  *  Copyright 1996-1998 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -97,7 +97,7 @@
  *     Error code.
  *
  ******************************************************************/
- 
+
   LOCAL_FUNC
   T1_Error  T1_Reset_Size( T1_Size  size )
   {
@@ -124,7 +124,7 @@
  *     face  :: typeless pointer to the face object to destroy
  *
  *  <Return>
- *     Error code.                       
+ *     Error code.
  *
  ******************************************************************/
 
@@ -138,10 +138,10 @@
     {
       memory = face->root.memory;
 
-      /* release font info strings */      
+      /* release font info strings */
       {
         T1_FontInfo*  info = &type1->font_info;
-        
+
         FREE( info->version );
         FREE( info->notice );
         FREE( info->full_name );
@@ -149,21 +149,21 @@
         FREE( info->weight );
       }
 
-      /* release top dictionary */      
+      /* release top dictionary */
       FREE( type1->charstrings_len );
       FREE( type1->charstrings );
       FREE( type1->glyph_names );
 
       FREE( type1->subrs );
       FREE( type1->subrs_len );
-      
+
       FREE( type1->subrs_block );
       FREE( type1->charstrings_block );
       FREE( type1->glyph_names_block );
 
       FREE( type1->encoding.char_index );
       FREE( type1->font_name );
-      
+
 #ifndef T1_CONFIG_OPTION_NO_AFM
       /* release afm data if present */
       if ( face->afm_data)
@@ -217,7 +217,7 @@
     {
       /* look-up the PSNames driver */
       FT_Driver  psnames_driver;
-      
+
       psnames_driver = FT_Get_Driver( face->root.driver->library, "psnames" );
       if (psnames_driver)
         face->psnames = (PSNames_Interface*)
@@ -246,15 +246,15 @@
       /* Now set up root face fields */
       {
         FT_Face  root = (FT_Face)&face->root;
-        
+
         root->num_glyphs   = face->type1.num_glyphs;
         root->num_charmaps = 1;
-  
+
         root->face_index = face_index;
         root->face_flags = FT_FACE_FLAG_SCALABLE;
-        
+
         root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-                              
+
         if ( face->type1.font_info.is_fixed_pitch )
           root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
 
@@ -267,13 +267,13 @@
         {
           char*  full   = face->type1.font_info.full_name;
           char*  family = root->family_name;
-          
+
           while ( *family && *full == *family )
           {
             family++;
             full++;
           }
-          
+
           root->style_name = ( *full == ' ' ? full+1 : "Regular" );
         }
         else
@@ -285,17 +285,17 @@
             root->style_name  = "Regular";
           }
         }
-  
+
         /* no embedded bitmap support */
         root->num_fixed_sizes = 0;
         root->available_sizes = 0;
-  
+
         root->bbox         = face->type1.font_bbox;
         root->units_per_EM = 1000;
         root->ascender     =  (T1_Short)face->type1.font_bbox.yMax;
         root->descender    = -(T1_Short)face->type1.font_bbox.yMin;
         root->height       = ((root->ascender + root->descender)*12)/10;
-  
+
         /* now compute the maximum advance width */
 
         root->max_advance_width = face->type1.private_dict.standard_width;
@@ -315,10 +315,10 @@
         }
 
         root->max_advance_height = root->height;
-        
+
         root->underline_position  = face->type1.font_info.underline_position;
         root->underline_thickness = face->type1.font_info.underline_thickness;
-  
+
         root->max_points   = 0;
         root->max_contours = 0;
       }
@@ -349,7 +349,7 @@
             charmap->encoding_id = 1;
             charmap++;
           }
-          
+
           /* simply clear the error in case of failure (which really) */
           /* means that out of memory or no unicode glyph names       */
           error = 0;
@@ -359,25 +359,25 @@
       /* now, support either the standard, expert, or custom encodings */
       charmap->face        = (FT_Face)face;
       charmap->platform_id = 7;  /* a new platform id for Adobe fonts ?? */
-      
+
       switch (face->type1.encoding_type)
       {
         case t1_encoding_standard:
           charmap->encoding    = ft_encoding_adobe_standard;
           charmap->encoding_id = 0;
           break;
-        
+
         case t1_encoding_expert:
           charmap->encoding    = ft_encoding_adobe_expert;
           charmap->encoding_id = 1;
           break;
-        
+
         default:
           charmap->encoding    = ft_encoding_adobe_custom;
           charmap->encoding_id = 2;
           break;
       }
-      
+
       root->charmaps = face->charmaps;
       root->num_charmaps = charmap - face->charmaprecs + 1;
       face->charmaps[0] = &face->charmaprecs[0];
@@ -396,7 +396,7 @@
  *
  *  Input  :  _glyph  typeless pointer to the glyph record to destroy
  *
- *  Output :  Error code.                       
+ *  Output :  Error code.
  *
  ******************************************************************/
 
@@ -420,7 +420,7 @@
  *  Description :  The glyph object constructor.
  *
  *  Input  :  glyph   glyph record to build.
- *            face    the glyph's parent face.              
+ *            face    the glyph's parent face.
  *
  *  Output :  Error code.
  *
diff --git a/src/type1z/t1objs.h b/src/type1z/t1objs.h
index 15f1e99..7da6713 100644
--- a/src/type1z/t1objs.h
+++ b/src/type1z/t1objs.h
@@ -2,7 +2,7 @@
  *
  *  t1objs.h                                                    1.0
  *
- *    Type1 objects definition.         
+ *    Type1 objects definition.
  *
  *  Copyright 1996-1999 by
  *  David Turner, Robert Wilhelm, and Werner Lemberg.
@@ -82,7 +82,7 @@
  /*    NOW BEGINS THE TYPE1 SPECIFIC STUFF ..............................  */
  /*                                                                        */
  /**************************************************************************/
- 
+
 
   /***************************************************/
   /*                                                 */
@@ -90,7 +90,7 @@
   /*                                                 */
   /*    Type 1 size record..                         */
   /*                                                 */
-  
+
   typedef struct T1_SizeRec_
   {
     FT_SizeRec      root;
@@ -109,14 +109,14 @@
   /*                                                 */
   /*    TrueDoc glyph record..                       */
   /*                                                 */
-  
+
   typedef struct T1_GlyphSlotRec_
   {
     FT_GlyphSlotRec  root;
 
     T1_Bool          hint;
     T1_Bool          scaled;
-    
+
     T1_Int           max_points;
     T1_Int           max_contours;
 
@@ -250,7 +250,7 @@
  *
  *  <Input>  glyph  :: handle to glyph slot object
  *
- *  <Output>  Error code.                       
+ *  <Output>  Error code.
  *
  ******************************************************************/
 
diff --git a/src/type1z/t1parse.c b/src/type1z/t1parse.c
index 42743c3..b7d9506 100644
--- a/src/type1z/t1parse.c
+++ b/src/type1z/t1parse.c
@@ -27,7 +27,7 @@
  *  See "t1load.c" to see how data is loaded from the font file
  *
  ******************************************************************/
- 
+
 #include <freetype/internal/ftdebug.h>
 #include <freetype/internal/ftcalc.h>
 #include <freetype/internal/ftobjs.h>
@@ -75,7 +75,7 @@
 
   Exit:
     if (error) FREE(table->elements);
-      
+
 	return error;
   }
 
@@ -105,7 +105,7 @@
         T1_Long    delta  = table->block - old_base;
         T1_Byte**  offset = table->elements;
         T1_Byte**  limit  = offset + table->max_elems;
-    
+
         if (delta)
           for ( ; offset < limit; offset++ )
           {
@@ -113,7 +113,7 @@
               offset[0] += delta;
           }
       }
-  
+
       static
       T1_Error  reallocate_t1_table( T1_Table*  table,
                                      T1_Int     new_size )
@@ -121,17 +121,17 @@
         FT_Memory  memory   = table->memory;
         T1_Byte*   old_base = table->block;
         T1_Error   error;
-  
+
         /* realloc the base block */
         if ( REALLOC( table->block, table->capacity, new_size ) )
           return error;
-  
+
         table->capacity = new_size;
-  
+
         /* shift all offsets when needed */
         if (old_base)
           shift_elements( table, old_base );
-  
+
         return T1_Err_Ok;
       }
 
@@ -198,10 +198,10 @@
     old_base = table->block;
     if (!old_base)
       return;
-    
+
     (void)REALLOC( table->block, table->capacity, table->cursor );
     table->capacity = table->cursor;
-    
+
     if (old_base != table->block)
       shift_elements( table, old_base );
   }
@@ -211,7 +211,7 @@
   void  T1_Release_Table( T1_Table*  table )
   {
     FT_Memory  memory = table->memory;
-    
+
     if (table->init == (FT_Long)0xdeadbeef)
     {
       FREE( table->block );
@@ -228,20 +228,20 @@
     T1_Long  result = 0;
     T1_Byte* cur    = *cursor;
     T1_Byte  c, d;
-    
+
     for (; cur < limit; cur++)
     {
       c = *cur;
       d = (T1_Byte)(c - '0');
       if (d < 10) break;
-      
+
       if ( c=='-' )
       {
         cur++;
         break;
       }
     }
-    
+
     if (cur < limit)
     {
       do
@@ -249,16 +249,16 @@
         d = (T1_Byte)(cur[0] - '0');
         if (d >= 10)
           break;
-          
+
         result = result*10 + d;
         cur++;
-        
+
       } while (cur < limit);
-      
+
       if (c == '-')
         result = -result;
     }
-    
+
     *cursor = cur;
     return result;
   }
@@ -273,26 +273,26 @@
     T1_Long  num, divider, result;
     T1_Int   sign   = 0;
     T1_Byte  d;
-    
+
     if (cur >= limit) return 0;
-    
+
     /* first of all, read the integer part */
     result  = t1_toint( &cur, limit ) << 16;
     num     = 0;
     divider = 1;
-    
+
     if (result < 0)
     {
       sign   = 1;
       result = -result;
     }
     if (cur >= limit) goto Exit;
-    
+
     /* read decimal part, if any */
     if (*cur == '.' && cur+1 < limit)
     {
       cur++;
-      
+
       for (;;)
       {
         d = (T1_Byte)(*cur - '0');
@@ -307,14 +307,14 @@
         if (cur >= limit) break;
       }
     }
-    
+
     /* read exponent, if any */
     if ( cur+1 < limit && (*cur == 'e' || *cur == 'E'))
     {
       cur++;
       power_ten += t1_toint( &cur, limit );
     }
-    
+
   Exit:
     /* raise to power of ten if needed */
     while (power_ten > 0)
@@ -323,7 +323,7 @@
       num    = num*10;
       power_ten--;
     }
-    
+
     while (power_ten < 0)
     {
       result  = result/10;
@@ -336,7 +336,7 @@
 
     if (sign)
       result = -result;
-      
+
     *cursor = cur;
     return result;
   }
@@ -351,19 +351,19 @@
     T1_Byte*  cur   = *cursor;
     T1_Int    count = 0;
     T1_Byte   c, ender;
-    
+
     if (cur >= limit) goto Exit;
-    
+
     /* check for the beginning of an array. If not, only one number will be read */
     c     = *cur;
     ender = 0;
-    
+
     if (c == '[')
       ender = ']';
-      
+
     if (c == '{')
       ender = '}';
-      
+
     if (ender)
       cur++;
 
@@ -375,21 +375,21 @@
       {
         c = *cur;
         if ( c != ' ' && c != '\t' ) break;
-        
+
         cur++;
         if (cur >= limit) goto Exit;
       }
-      
+
       if (count >= max_coords || c == ender)
         break;
-      
+
       coords[count] = (T1_Short)(t1_tofixed(&cur,limit,0) >> 16);
       count++;
-      
+
       if (!ender)
         break;
     }
-    
+
   Exit:
     *cursor = cur;
     return count;
@@ -399,7 +399,7 @@
 
   static
   T1_Int  t1_tofixedarray( T1_Byte*  *cursor,
-                           T1_Byte*   limit, 
+                           T1_Byte*   limit,
                            T1_Int     max_values,
                            T1_Fixed*  values,
                            T1_Int     power_ten )
@@ -407,19 +407,19 @@
     T1_Byte*  cur   = *cursor;
     T1_Int    count = 0;
     T1_Byte   c, ender;
-    
+
     if (cur >= limit) goto Exit;
-    
+
     /* check for the beginning of an array. If not, only one number will be read */
     c     = *cur;
     ender = 0;
-    
+
     if (c == '[')
       ender = ']';
-      
+
     if (c == '{')
       ender = '}';
-      
+
     if (ender)
       cur++;
 
@@ -431,21 +431,21 @@
       {
         c = *cur;
         if ( c != ' ' && c != '\t' ) break;
-        
+
         cur++;
         if (cur >= limit) goto Exit;
       }
 
       if (count >= max_values || c == ender)
         break;
-      
+
       values[count] = t1_tofixed(&cur,limit,power_ten);
       count++;
-      
+
       if (!ender)
         break;
     }
-    
+
   Exit:
     *cursor = cur;
     return count;
@@ -472,18 +472,18 @@
 
     while ( cur < limit && (*cur == ' ' || *cur == '\t')) cur++;
     if (cur+1 >= limit) return 0;
-    
+
     if (*cur == '(') cur++;  /* skip the opening parenthesis, if there is one */
-    
+
     *cursor = cur;
     count   = 0;
-    
+
     /* then, count its length */
     for ( ; cur < limit; cur++ )
     {
       if (*cur == '(')
         count++;
-        
+
       else if (*cur == ')')
       {
         count--;
@@ -492,14 +492,14 @@
       }
     }
 
-    len = cur - *cursor;    
+    len = cur - *cursor;
     if (cur >= limit || ALLOC(result,len+1)) return 0;
-    
+
     /* now copy the string */
     MEM_Copy( result, *cursor, len );
     result[len] = '\0';
     *cursor = cur;
-    return result;    
+    return result;
   }
 
   static
@@ -507,7 +507,7 @@
   {
     T1_Byte*  cur    = *cursor;
     T1_Bool   result = 0;
-    
+
     /* return 1 if we find a "true", 0 otherwise */
     if ( cur+3 < limit &&
          cur[0] == 't' &&
@@ -583,21 +583,21 @@
   FT_Error  read_pfb_tag( FT_Stream  stream, T1_UShort *tag, T1_Long*  size )
   {
     FT_Error  error;
-    
+
     if (READ_UShort(*tag)) goto Exit;
     if (*tag == 0x8001 || *tag == 0x8002)
     {
       FT_Long  asize;
-      
+
       if (READ_ULong(asize)) goto Exit;
-      
+
       /* swap between big and little endianness */
       *size  = ((asize & 0xFF000000) >> 24) |
                ((asize & 0x00FF0000) >> 8 ) |
                ((asize & 0x0000FF00) << 8 ) |
                ((asize & 0x000000FF) << 24);
     }
-    
+
   Exit:
     return error;
   }
@@ -612,7 +612,7 @@
     FT_Error  error;
     T1_UShort tag;
     T1_Long   size;
-  
+
     parser->stream       = stream;
     parser->memory       = memory;
     parser->base_len     = 0;
@@ -622,10 +622,10 @@
     parser->in_pfb       = 0;
     parser->in_memory    = 0;
     parser->single_block = 0;
-    
+
     parser->cursor       = 0;
     parser->limit        = 0;
-    
+
     /******************************************************************/
     /*                                                                */
     /* Here's a short summary of what is going on :                   */
@@ -641,12 +641,12 @@
     /*   parser->in_pfb is set when we are in a binary (".pfb") font  */
     /*   parser->in_memory is set when we have a memory stream.       */
     /*                                                                */
-    
+
     /* try to compute the size of the base dictionary    */
     /* look for a Postscript binary file tag, i.e 0x8001 */
     if ( FILE_Seek(0L) )
       goto Exit;
-      
+
     error = read_pfb_tag( stream, &tag, &size );
     if (error) goto Exit;
 
@@ -662,14 +662,14 @@
 
     /* now, try to load the "size" bytes of the "base" dictionary we */
     /* found previously                                              */
- 
+
     /* if it's a memory-based resource, set up pointers */
     if ( !stream->read )
     {
       parser->base_dict = (T1_Byte*)stream->base + stream->pos;
       parser->base_len  = size;
       parser->in_memory = 1;
- 
+
       /* check that the "size" field is valid */
       if ( FILE_Skip(size) ) goto Exit;
     }
@@ -681,7 +681,7 @@
         goto Exit;
       parser->base_len = size;
     }
- 
+
     /* Now check font format, we must see a '%!PS-AdobeFont-1' */
     /* or a '%!FontType'                                       */
     {
@@ -764,7 +764,7 @@
     FT_Memory  memory = parser->memory;
     FT_Error   error  = 0;
     T1_Long    size;
-    
+
     if (parser->in_pfb)
     {
       /* in the case of the PFB format, the private dictionary can be  */
@@ -775,15 +775,15 @@
       T1_UShort  tag;
       T1_Long    size;
 
-      parser->private_len = 0;      
+      parser->private_len = 0;
       for (;;)
       {
         error = read_pfb_tag(stream, &tag, &size);
         if (error) goto Fail;
-        
+
         if (tag != 0x8002)
           break;
-          
+
         parser->private_len += size;
 
         if ( FILE_Skip(size) )
@@ -824,9 +824,9 @@
 
       /* first of all, look at the "eexec" keyword */
       FT_Byte*  cur   = parser->base_dict;
-      FT_Byte*  limit = cur + parser->base_len;      
+      FT_Byte*  limit = cur + parser->base_len;
       FT_Byte   c;
-      
+
       for (;;)
       {
         c = cur[0];
@@ -836,12 +836,12 @@
                cur[3] == 'e' && cur[4] == 'c' )
           {
             cur += 6; /* we skip the newling after the "eexec" */
-            
+
             /* XXX: Some fonts use DOS-linefeeds, i.e. \r\n, we need to skip */
             /*      the extra \n when we find it..                           */
             if (cur[0] == '\n')
               cur++;
-              
+
             break;
           }
         }
@@ -853,13 +853,13 @@
           goto Exit;
         }
       }
-      
+
       /* now determine wether where to write the _encrypted_ binary private    */
       /* dictionary. We overwrite the base dictionary for disk-based resources */
       /* and allocate a new block otherwise                                    */
-      
-      size = parser->base_len - (cur-parser->base_dict); 
-      
+
+      size = parser->base_len - (cur-parser->base_dict);
+
       if ( parser->in_memory )
       {
         /* note that we allocate one more byte to put a terminating '0' */
@@ -868,13 +868,13 @@
       }
       else
       {
-        parser->single_block = 1;        
+        parser->single_block = 1;
         parser->private_dict = parser->base_dict;
         parser->private_len  = size;
         parser->base_dict    = 0;
         parser->base_len     = 0;
       }
-      
+
       /* now determine wether the private dictionary is encoded in binary */
       /* or hexadecimal ASCII format..                                    */
       /* and decode it accordingly                                        */
@@ -890,40 +890,40 @@
        MEM_Copy( parser->private_dict, cur, size );
       }
       else
-      {      
+      {
         /* ASCII hexadecimal encoding.. This blows goats !!.. */
-       
+
         T1_Byte*  write;
         T1_Int    count;
 
         write = parser->private_dict;
         count = 0;
-       
+
         for ( ;cur < limit; cur++)
         {
           int  hex1;
-         
+
           /* check for newline */
           if (cur[0] == '\r' || cur[0] == '\n')
             continue;
-           
+
           /* exit if we have a non-hexadecimal digit that isn't a newline */
           hex1 = hexa_value(cur[0]);
           if (hex1 < 0 || cur+1 >= limit)
             break;
-         
+
           /* otherwise, store byte */
           *write++ = (hex1 << 4) | hexa_value(cur[1]);
           count++;
           cur++;
         }
-       
+
         /* put a safeguard */
         parser->private_len = write - parser->private_dict;
         *write++ = 0;
       }
     }
-   
+
     /* we now decrypt the encoded binary private dictionary */
     T1_Decrypt( parser->private_dict, parser->private_len, 55665 );
     parser->cursor = parser->private_dict;
@@ -933,4 +933,4 @@
   Exit:
     return error;
   }
-  
+
diff --git a/src/type1z/t1parse.h b/src/type1z/t1parse.h
index 6866918..6482d52 100644
--- a/src/type1z/t1parse.h
+++ b/src/type1z/t1parse.h
@@ -116,13 +116,13 @@
   {
     FT_Stream  stream;
     FT_Memory  memory;
-    
+
     T1_Byte*   base_dict;
     T1_Int     base_len;
-    
+
     T1_Byte*   private_dict;
     T1_Int     private_len;
-    
+
     T1_Byte    in_pfb;
     T1_Byte    in_memory;
     T1_Byte    single_block;
@@ -130,7 +130,7 @@
     T1_Byte*   cursor;
     T1_Byte*   limit;
     T1_Error   error;
-    
+
   } T1_Parser;
 
 
diff --git a/src/type1z/t1tokens.h b/src/type1z/t1tokens.h
index 0de85be..2ef03b4 100644
--- a/src/type1z/t1tokens.h
+++ b/src/type1z/t1tokens.h
@@ -26,37 +26,37 @@
   PARSE_STRING("FullName",full_name)
   PARSE_STRING("FamilyName",family_name)
   PARSE_STRING("Weight",weight)
-  
+
   PARSE_INT("ItalicAngle",italic_angle)
   PARSE_BOOL("isFixedPitch",is_fixed_pitch)
   PARSE_NUM("UnderlinePosition",underline_position,T1_Short)
   PARSE_NUM("UnderlineThickness",underline_thickness,T1_UShort)
 
- /* define the private dict parsing callbacks */ 
- 
+ /* define the private dict parsing callbacks */
+
 #undef  FACE
 #define FACE  (face->type1.private_dict)
 
    PARSE_INT("UniqueID",unique_id)
    PARSE_INT("lenIV",lenIV)
-   
+
    PARSE_COORDS( "BlueValues", num_blues,       14, blue_values)
    PARSE_COORDS( "OtherBlues", num_other_blues, 10, other_blues)
-   
+
    PARSE_COORDS( "FamilyBlues", num_family_blues,       14, family_blues)
    PARSE_COORDS( "FamilyOtherBlues", num_family_other_blues, 10, family_other_blues)
- 
+
    PARSE_FIXED( "BlueScale", blue_scale)
    PARSE_INT( "BlueShift", blue_shift)
-   
+
    PARSE_INT( "BlueFuzz", blue_fuzz)
 
    PARSE_COORDS2( "StdHW", 1, standard_width  )
    PARSE_COORDS2( "StdVW", 1, standard_height )
-   
+
    PARSE_COORDS( "StemSnapH", num_snap_widths,  12, stem_snap_widths )
    PARSE_COORDS( "StemSnapV", num_snap_heights, 12, stem_snap_heights )
-   
+
    PARSE_INT( "LanguageGroup", language_group )
    PARSE_INT( "password", password )
    PARSE_COORDS2( "MinFeature", 2, min_feature )
@@ -66,7 +66,7 @@
 #undef  FACE
 #define FACE  (face->type1)
 
- 
+
 /* PARSE_STRING( "FontName", font_name ) -- handled by special routine */
    PARSE_NUM( "PaintType", paint_type, T1_Byte )
    PARSE_NUM( "FontType", font_type, T1_Byte )