shithub: freetype+ttf2subf

Download patch

ref: 920d41e038d5f8befa4d1572ee95cb4473191ff8
parent: 4e6dd8587e07137d24a3641f69b0654b0fd72e97
author: Werner Lemberg <[email protected]>
date: Mon Jun 5 10:32:32 EDT 2000

Removing trailing whitespace.

git/fs: mount .git/fs: mount/attach disallowed
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -218,7 +218,7 @@
     /* check that we have a valid TrueType file */
     error = sfnt->load_sfnt_header( face, stream, face_index, &sfnt_header );
     if ( error )
-      goto Exit;                                    
+      goto Exit;
 
     face->format_tag = sfnt_header.format_tag;
     face->num_tables = sfnt_header.num_tables;
--- a/src/sfnt/ttcmap.c
+++ b/src/sfnt/ttcmap.c
@@ -225,7 +225,7 @@
       FORGET_Frame();
 
       cmap->get_index = code_to_index4;
-      
+
       cmap4->last_segment = cmap4->segments;
       break;
 
@@ -462,18 +462,18 @@
       /* the range here, the char code isn't in the charmap, so exit. */
       if ( charCode > seg4->endCount )
         continue;
-        
+
       if ( charCode >= seg4->startCount )
         goto Found;
     }
     return 0;
 
- Found:    
+ Found:
     cmap4->last_segment = seg4;
-    
+
     /* if the idRangeOffset is 0, we can compute the glyph index */
     /* directly                                                  */
-    
+
     if ( seg4->idRangeOffset == 0 )
       result = ( charCode + seg4->idDelta ) & 0xFFFF;
     else
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -160,7 +160,7 @@
     TT_Error  error;
     TT_ULong  format_tag;
     FT_Memory memory = stream->memory;
-    
+
     const FT_Frame_Field  sfnt_header_fields[] =
     {
       FT_FRAME_START( 8 ),
@@ -170,7 +170,7 @@
         FT_FRAME_USHORT( SFNT_Header, range_shift ),
       FT_FRAME_END
     };
-                  
+
     const FT_Frame_Field  ttc_header_fields[] =
     {
       FT_FRAME_START( 8 ),
@@ -235,7 +235,7 @@
     sfnt->format_tag = format_tag;
     if ( READ_Fields( sfnt_header_fields, sfnt ) )
       goto Exit;
-      
+
     /* now, check the values of `num_tables', `seach_range', etc. */
     {
       TT_UInt  num_tables     = sfnt->num_tables;
@@ -256,7 +256,7 @@
 
   Exit:
     return error;
-  }                                  
+  }
 
 
   /*************************************************************************/
@@ -1336,7 +1336,7 @@
         FT_FRAME_USHORT( TT_PCLT, CapHeight ),
       FT_FRAME_END
     };
-  
+
     static const FT_Frame_Field  pclt_fields2[] =
     {
       FT_FRAME_START( 4 ),
@@ -1346,11 +1346,11 @@
         FT_FRAME_BYTE( TT_PCLT, Reserved ),
       FT_FRAME_END
     };
-  
+
     TT_Error  error;
     TT_PCLT*  pclt = &face->pclt;
 
-    
+
     FT_TRACE2(( "PCLT " ));
 
     /* optional table */
@@ -1361,7 +1361,7 @@
       pclt->Version = 0;
       return TT_Err_Ok;
     }
-    
+
     if ( READ_Fields( pclt_fields, pclt )            ||
          FILE_Read  ( pclt->TypeFace, 16 )           ||
          FILE_Read  ( pclt->CharacterComplement, 8 ) ||
@@ -1368,10 +1368,10 @@
          FILE_Read  ( pclt->FileName, 6 )            ||
          READ_Fields( pclt_fields2, pclt )           )
       goto Exit;
-    
+
     FT_TRACE2(( "loaded\n" ));
 
-  Exit:    
+  Exit:
     return error;
   }
 
--- a/src/sfnt/ttpost.c
+++ b/src/sfnt/ttpost.c
@@ -2,13 +2,14 @@
 /*                                                                         */
 /*  ttpost.c                                                               */
 /*                                                                         */
-/*    Postscript names table processing (body).                            */
+/*    Postcript name table processing for TrueType and OpenType fonts      */
+/*    (body).                                                              */
 /*                                                                         */
-/*  Copyright 1996-1999 by                                                 */
+/*  Copyright 1996-2000 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
+/*  This file is part of the FreeType project, and may only be used,       */
+/*  modified, and distributed under the terms of the FreeType project      */
 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 /*  this file you indicate that you have read the license and              */
 /*  understand and accept it fully.                                        */
@@ -15,7 +16,6 @@
 /*                                                                         */
 /***************************************************************************/
 
-
   /*************************************************************************/
   /*                                                                       */
   /* The post table is not completely loaded by the core engine.  This     */
@@ -24,6 +24,7 @@
   /*                                                                       */
   /*************************************************************************/
 
+
 #include <freetype/internal/ftstream.h>
 #include <freetype/internal/tterrors.h>
 #include <freetype/tttags.h>
@@ -31,20 +32,23 @@
 #include <ttpost.h>
 #include <ttload.h>
 
-/* When this configuration macro is defined, we rely on the "psnames" */
-/* module to grab the glyph names..                                   */
+  /* If this configuration macro is defined, we rely on the `psnames' */
+  /* module to grab the glyph names.                                  */
+
 #ifdef FT_CONFIG_OPTION_POSTSCRIPT_NAMES
+
 #include <freetype/internal/psnames.h>
-#define  MAC_NAME(x)  ((TT_String*)psnames->macintosh_name(x))
 
-#else
+#define MAC_NAME( x )  ( (TT_String*)psnames->macintosh_name( x ) )
 
-/* Otherwise, we ignore the "psnames" module, then provide our own */
-/* table of Mac names.. Thus, it is possible to build a version of */
-/* FreeType without the Type 1 driver & PSNames module             */
+#else /* FT_CONFIG_OPTION_POSTSCRIPT_NAMES */
 
-#define  MAC_NAME(x)  TT_Post_Default_Names[x]
+   /* Otherwise, we ignore the `psnames' module, and provide our own  */
+   /* table of Mac names.  Thus, it is possible to build a version of */
+   /* FreeType without the Type 1 driver & PSNames module.            */
 
+#define  MAC_NAME( x )  TT_Post_Default_Names[x]
+
   /* the 258 default Mac PS glyph names */
 
   FT_String*  TT_Post_Default_Names[258] =
@@ -128,9 +132,10 @@
     "Idot", "Scedilla", "scedilla", "Cacute", "cacute",
     "Ccaron", "ccaron", "dmacron",
   };
-#endif
 
+#endif /* FT_CONFIG_OPTION_POSTSCRIPT_NAMES */
 
+
   static
   TT_Error  Load_Format_20( TT_Face    face,
                             FT_Stream  stream )
@@ -164,6 +169,7 @@
     {
       TT_Int  n;
 
+
       if ( ALLOC_ARRAY ( glyph_indices, num_glyphs, TT_UShort ) ||
            ACCESS_Frame( num_glyphs * 2L )                      )
         goto Fail;
@@ -178,6 +184,7 @@
     {
       TT_Int  n;
 
+
       num_names = 0;
 
       for ( n = 0; n < num_glyphs; n++ )
@@ -184,6 +191,7 @@
       {
         TT_Int  index;
 
+
         index = glyph_indices[n];
         if ( index >= 258 )
         {
@@ -198,6 +206,7 @@
     {
       TT_Int  n;
 
+
       if ( ALLOC_ARRAY( name_strings, num_names, TT_Char* ) )
         goto Fail;
 
@@ -205,6 +214,7 @@
       {
         TT_UInt  len;
 
+
         if ( READ_Byte  ( len )                             ||
              ALLOC_ARRAY( name_strings[n], len+1, TT_Char ) ||
              FILE_Read  ( name_strings[n], len )            )
@@ -218,6 +228,7 @@
     {
       TT_Post_20*  table = &face->postscript_names.names.format_20;
 
+
       table->num_glyphs    = num_glyphs;
       table->num_names     = num_names;
       table->glyph_indices = glyph_indices;
@@ -230,6 +241,7 @@
     {
       TT_Int  n;
 
+
       for ( n = 0; n < num_names; n++ )
         FREE( name_strings[n] );
     }
@@ -317,16 +329,17 @@
 
     /* seek to the beginning of the PS names table */
     error = face->goto_table( face, TTAG_post, stream, 0 );
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
 
     /* now read postscript table */
     switch ( face->postscript.FormatType )
     {
-    case 0x00020000:
+    case 0x00020000L:
       error = Load_Format_20( face, stream );
       break;
 
-    case 0x00028000:
+    case 0x00028000L:
       error = Load_Format_25( face, stream );
       break;
 
@@ -352,7 +365,7 @@
     {
       switch ( face->postscript.FormatType )
       {
-      case 0x00020000:
+      case 0x00020000L:
         {
           TT_Post_20*  table = &names->names.format_20;
           TT_UInt      n;
@@ -369,7 +382,7 @@
         }
         break;
 
-      case 0x00028000:
+      case 0x00028000L:
         {
           TT_Post_25*  table = &names->names.format_25;
 
@@ -393,6 +406,8 @@
   /*    Gets the PostScript glyph name of a glyph.                         */
   /*                                                                       */
   /* <Input>                                                               */
+  /*    face   :: A handle to the parent face.                             */
+  /*                                                                       */
   /*    index  :: The glyph index.                                         */
   /*                                                                       */
   /*    PSname :: The address of a string pointer.  Will be NULL in case   */
@@ -410,9 +425,12 @@
   {
     TT_Error            error;
     TT_Post_Names*      names;
+
 #ifdef FT_CONFIG_OPTION_POSTSCRIPT_NAMES
     PSNames_Interface*  psnames;
 #endif
+
+
     if ( !face )
       return TT_Err_Invalid_Face_Handle;
 
@@ -421,23 +439,23 @@
 
 #ifdef FT_CONFIG_OPTION_POSTSCRIPT_NAMES
     psnames = (PSNames_Interface*)face->psnames;
-    if (!psnames)
+    if ( !psnames )
       return TT_Err_Unimplemented_Feature;
 #endif
 
-    names   = &face->postscript_names;
+    names = &face->postscript_names;
 
     /* `.notdef' by default */
-    *PSname = MAC_NAME(0);
+    *PSname = MAC_NAME( 0 );
 
     switch ( face->postscript.FormatType )
     {
-    case 0x00010000:
+    case 0x00010000L:
       if ( index < 258 )                    /* paranoid checking */
-        *PSname = MAC_NAME(index);
+        *PSname = MAC_NAME( index );
       break;
 
-    case 0x00020000:
+    case 0x00020000L:
       {
         TT_Post_20*  table = &names->names.format_20;
 
@@ -455,7 +473,7 @@
 
 
           if ( name_index < 258 )
-            *PSname = MAC_NAME(name_index);
+            *PSname = MAC_NAME( name_index );
           else
             *PSname = (TT_String*)table->glyph_names[name_index - 258];
         }
@@ -462,7 +480,7 @@
       }
       break;
 
-    case 0x00028000:
+    case 0x00028000L:
       {
         TT_Post_25*  table = &names->names.format_25;
 
@@ -477,12 +495,12 @@
         if ( index < table->num_glyphs )    /* paranoid checking */
         {
           index  += table->offsets[index];
-          *PSname = MAC_NAME(index);
+          *PSname = MAC_NAME( index );
         }
       }
       break;
 
-    case 0x00030000:
+    case 0x00030000L:
       break;                                /* nothing to do */
     }
 
--- a/src/sfnt/ttpost.h
+++ b/src/sfnt/ttpost.h
@@ -5,11 +5,11 @@
 /*    Postcript name table processing for TrueType and OpenType fonts      */
 /*    (specification).                                                     */
 /*                                                                         */
-/*  Copyright 1996-1999 by                                                 */
+/*  Copyright 1996-2000 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
+/*  This file is part of the FreeType project, and may only be used,       */
+/*  modified, and distributed under the terms of the FreeType project      */
 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 /*  this file you indicate that you have read the license and              */
 /*  understand and accept it fully.                                        */
@@ -17,15 +17,6 @@
 /***************************************************************************/
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* The post table is not completely loaded by the core engine.  This     */
-  /* file loads the missing PS glyph names and implements an API to access */
-  /* them.                                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
 #ifndef TTPOST_H
 #define TTPOST_H
 
@@ -47,25 +38,6 @@
 #endif
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Get_PS_Name                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Gets the PostScript glyph name of a glyph.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    index  :: The glyph index.                                         */
-  /*                                                                       */
-  /*    PSname :: The address of a string pointer.  Will be NULL in case   */
-  /*              of error, otherwise it is a pointer to the glyph name.   */
-  /*                                                                       */
-  /*              You must not modify the returned string!                 */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    TrueType error code.  0 means success.                             */
-  /*                                                                       */
   LOCAL_DEF
   TT_Error TT_Get_PS_Name( TT_Face      face,
                            TT_UInt      index,
--- a/src/sfnt/ttsbit.c
+++ b/src/sfnt/ttsbit.c
@@ -4,20 +4,15 @@
 /*                                                                         */
 /*    TrueType and OpenType embedded bitmap support (body).                */
 /*                                                                         */
-/*  Copyright 1996-1999 by                                                 */
+/*  Copyright 1996-2000 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
+/*  This file is part of the FreeType project, and may only be used,       */
+/*  modified, and distributed under the terms of the FreeType project      */
 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 /*  this file you indicate that you have read the license and              */
 /*  understand and accept it fully.                                        */
 /*                                                                         */
-/*                                                                         */
-/*  WARNING: This file should not be compiled directly, it is meant to be  */
-/*           included in the source of several font drivers (i.e., the TTF */
-/*           and OTF drivers).                                             */
-/*                                                                         */
 /***************************************************************************/
 
 
@@ -76,10 +71,10 @@
     line_incr = target->pitch;
     line_buff = target->buffer;
 
-    if (line_incr < 0)
-      line_buff -= line_incr*(target->rows-1);
+    if ( line_incr < 0 )
+      line_buff -= line_incr * ( target->rows - 1 );
 
-    line_buff += (x_offset >> 3) + y_offset * line_incr;
+    line_buff += ( x_offset >> 3 ) + y_offset * line_incr;
 
     /***********************************************************************/
     /*                                                                     */
@@ -112,16 +107,17 @@
           {
             FT_Byte  val;
 
+
             /* ensure that there are at least 8 bits in the accumulator */
             if ( loaded < 8 )
             {
-              acc    |= (FT_UShort)*source++ << (8 - loaded);
+              acc    |= (FT_UShort)*source++ << ( 8 - loaded );
               loaded += 8;
             }
 
             /* now write one byte */
-            val = (FT_Byte)(acc >> 8);
-            if (shift)
+            val = (FT_Byte)( acc >> 8 );
+            if ( shift )
             {
               cur[0] |= val >> shift;
               cur[1] |= val << space;
@@ -150,12 +146,12 @@
         /* ensure that there are at least `count' bits in the accumulator */
         if ( loaded < count )
         {
-          acc    |= (FT_UShort)*source++ << (8 - loaded);
+          acc    |= (FT_UShort)*source++ << ( 8 - loaded );
           loaded += 8;
         }
 
         /* now write remaining bits */
-        val     = ((FT_Byte)(acc >> 8)) & ~(0xFF >> count);
+        val     = ( (FT_Byte)( acc >> 8 ) ) & ~( 0xFF >> count );
         cur[0] |= val >> shift;
 
         if ( count > space )
@@ -288,6 +284,7 @@
   {
     TT_Error  error;
 
+
     if ( !ACCESS_Frame( 12L ) )
     {
       range->image_size = GET_ULong();
@@ -353,7 +350,7 @@
     {
       range->glyph_codes[n] = GET_UShort();
 
-      if (load_offsets)
+      if ( load_offsets )
         range->glyph_offsets[n] = (TT_ULong)range->image_offset +
                                   GET_UShort();
     }
@@ -375,6 +372,7 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    range  :: The target range.                                        */
+  /*                                                                       */
   /*    stream :: The input stream.                                        */
   /*                                                                       */
   /* <Return>                                                              */
@@ -395,24 +393,23 @@
       {
         TT_ULong  num_glyphs, n;
         TT_Int    size_elem;
-        TT_Bool   large = (range->index_format == 1);
+        TT_Bool   large = ( range->index_format == 1 );
 
 
         num_glyphs        = range->last_glyph - range->first_glyph + 1L;
         range->num_glyphs = num_glyphs;
-        num_glyphs++;    /* XXX : BEWARE - see spec */
+        num_glyphs++;                       /* XXX: BEWARE - see spec */
 
-        size_elem  = ( large ? 4 : 2 );
+        size_elem  = large ? 4 : 2;
 
         if ( ALLOC_ARRAY( range->glyph_offsets,
                           num_glyphs, TT_ULong )    ||
-
              ACCESS_Frame( num_glyphs * size_elem ) )
           goto Exit;
 
         for ( n = 0; n < num_glyphs; n++ )
           range->glyph_offsets[n] = (TT_ULong)( range->image_offset +
-                                     (large ? GET_ULong() : GET_UShort()) );
+                                     large ? GET_ULong() : GET_UShort() );
         FORGET_Frame();
       }
       break;
@@ -427,7 +424,7 @@
 
     case 5:
       error = Load_SBit_Const_Metrics( range, stream ) ||
-              Load_SBit_Range_Codes( range, stream, 0 );
+              Load_SBit_Range_Codes( range, stream, 0  );
       break;
 
     default:
@@ -449,6 +446,7 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    face   :: The target face object.                                  */
+  /*                                                                       */
   /*    stream :: The input stream.                                        */
   /*                                                                       */
   /* <Return>                                                              */
@@ -464,11 +462,12 @@
     TT_ULong   num_strikes;
     TT_ULong   table_base;
 
+
     face->num_sbit_strikes = 0;
 
     /* this table is optional */
     error = face->goto_table( face, TTAG_EBLC, stream, 0 );
-    if (error)
+    if ( error )
     {
       error = 0;
       goto Exit;
@@ -504,6 +503,7 @@
       TT_SBit_Strike*  strike = face->sbit_strikes;
       TT_ULong         count  = num_strikes;
 
+
       if ( ACCESS_Frame( 48L * num_strikes ) )
         goto Exit;
 
@@ -543,8 +543,8 @@
 
       while ( count > 0 )
       {
-        TT_SBit_Range* range;
-        TT_ULong       count2 = strike->num_ranges;
+        TT_SBit_Range*  range;
+        TT_ULong        count2 = strike->num_ranges;
 
 
         if ( ALLOC_ARRAY( strike->sbit_ranges,
@@ -630,6 +630,7 @@
         TT_SBit_Range*  range       = strike->sbit_ranges;
         TT_SBit_Range*  range_limit = range + strike->num_ranges;
 
+
         if ( range )
         {
           for ( ; range < range_limit; range++ )
@@ -772,7 +773,7 @@
   /*                                                                       */
   /* <Return>                                                              */
   /*    TrueType error code.  0 means success.  Returns                    */
-  /*    TT_Err_Invalid_Argument if no sbit exist for the requested glyph.  */
+  /*    TT_Err_Invalid_Argument if no sbit exists for the requested glyph. */
   /*                                                                       */
   static
   TT_Error  Find_SBit_Image( TT_Face           face,
@@ -788,7 +789,7 @@
     TT_SBit_Strike*  strike_limit = strike + face->num_sbit_strikes;
 
 
-    if ( !strike)
+    if ( !strike )
       goto Fail;
 
     for ( ; strike < strike_limit; strike++ )
@@ -828,6 +829,7 @@
   /*                                                                       */
   /* <Input>                                                               */
   /*    stream      :: The input stream.                                   */
+  /*                                                                       */
   /*    range       :: The SBit range containing the glyph.                */
   /*                                                                       */
   /* <Output>                                                              */
@@ -858,30 +860,31 @@
     case 2:
     case 8:
         /* variable small metrics */
-        {
-          TT_SBit_Small_Metrics  smetrics;
+      {
+        TT_SBit_Small_Metrics  smetrics;
 
-          /* read small metrics */
-          if ( ACCESS_Frame( 5L ) )
-            goto Exit;
-          TT_Load_Small_SBit_Metrics( &smetrics, stream );
-          FORGET_Frame();
 
-          /* convert it to a big metrics */
-          metrics->height       = smetrics.height;
-          metrics->width        = smetrics.width;
-          metrics->horiBearingX = smetrics.bearingX;
-          metrics->horiBearingY = smetrics.bearingY;
-          metrics->horiAdvance  = smetrics.advance;
+        /* read small metrics */
+        if ( ACCESS_Frame( 5L ) )
+          goto Exit;
+        TT_Load_Small_SBit_Metrics( &smetrics, stream );
+        FORGET_Frame();
 
-          /* these metrics are made up at a higher level when */
-          /* needed.                                          */
-          metrics->vertBearingX = 0;
-          metrics->vertBearingY = 0;
-          metrics->vertAdvance  = 0;
-        }
-        break;
+        /* convert it to a big metrics */
+        metrics->height       = smetrics.height;
+        metrics->width        = smetrics.width;
+        metrics->horiBearingX = smetrics.bearingX;
+        metrics->horiBearingY = smetrics.bearingY;
+        metrics->horiAdvance  = smetrics.advance;
 
+        /* these metrics are made up at a higher level when */
+        /* needed.                                          */
+        metrics->vertBearingX = 0;
+        metrics->vertBearingY = 0;
+        metrics->vertAdvance  = 0;
+      }
+      break;
+
     case 6:
     case 7:
     case 9:
@@ -895,7 +898,7 @@
       break;
 
     case 5:
-   default:  /* constant metrics */
+    default:  /* constant metrics */
       if ( range->index_format == 2 || range->index_format == 5 )
         *metrics = range->metrics;
       else
@@ -1058,7 +1061,7 @@
 
 
           val    = cur[1];
-          cur[0] = old | (val >> 7);
+          cur[0] = old | ( val >> 7 );
           old    = val << 1;
           cur++;
         }
@@ -1080,14 +1083,14 @@
     /*                                                                     */
     do
     {
-      TT_Int    right = map->width-1;
+      TT_Int    right = map->width - 1;
       TT_Byte*  limit;
       TT_Byte   mask;
 
 
-      line  = (TT_Byte*)map->buffer + (right >> 3);
-      limit = line + rows*line_len;
-      mask  = 0x80 >> (right & 7);
+      line  = (TT_Byte*)map->buffer + ( right >> 3 );
+      limit = line + rows * line_len;
+      mask  = 0x80 >> ( right & 7 );
 
       for ( ; line < limit; line += line_len )
         if ( line[0] & mask )
@@ -1150,10 +1153,10 @@
 
           switch ( pix_bits )
           {
-          case 1:  line_length = (glyph_width+7) >> 3;   break;
-          case 2:  line_length = (glyph_width+3) >> 2;   break;
-          case 4:  line_length = (glyph_width+1) >> 1;   break;
-          default: line_length =  glyph_width;
+          case 1:  line_length = ( glyph_width + 7 ) >> 3;   break;
+          case 2:  line_length = ( glyph_width + 3 ) >> 2;   break;
+          case 4:  line_length = ( glyph_width + 1 ) >> 1;   break;
+          default: line_length =   glyph_width;
           }
 
           glyph_size = glyph_height * line_length;
@@ -1201,8 +1204,8 @@
                             FT_Stream         stream,
                             TT_SBit_Metrics*  metrics )
   {
-    FT_Memory            memory = stream->memory;
-    TT_Error             error;
+    FT_Memory  memory = stream->memory;
+    TT_Error   error;
 
 
     /* place stream at beginning of glyph data and read metrics */
@@ -1229,15 +1232,15 @@
       {
       case 1:
         map->pixel_mode = ft_pixel_mode_mono;
-        map->pitch      = (map->width+7) >> 3;
+        map->pitch      = ( map->width + 7 ) >> 3;
         break;
       case 2:
         map->pixel_mode = ft_pixel_mode_pal2;
-        map->pitch      = (map->width+3) >> 2;
+        map->pitch      = ( map->width + 3 ) >> 2;
         break;
       case 4:
         map->pixel_mode = ft_pixel_mode_pal4;
-        map->pitch      = (map->width+1) >> 1;
+        map->pitch      = ( map->width + 1 ) >> 1;
         break;
       case 8:
         map->pixel_mode = ft_pixel_mode_grays;
@@ -1364,10 +1367,14 @@
   /*                                                                       */
   /*    glyph_index :: The current glyph index.                            */
   /*                                                                       */
+  /*    load_flags  :: The glyph load flags (the code checks for the flag  */
+  /*                   FT_LOAD_CROP_BITMAP                                 */
+  /*                                                                       */
   /*    stream      :: The input stream.                                   */
   /*                                                                       */
   /* <Output>                                                              */
   /*    map         :: The target pixmap.                                  */
+  /*                                                                       */
   /*    metrics     :: A big sbit metrics structure for the glyph image.   */
   /*                                                                       */
   /* <Return>                                                              */
@@ -1404,12 +1411,13 @@
     /* now, find the location of the `EBDT' table in */
     /* the font file                                 */
     error = face->goto_table( face, TTAG_EBDT, stream, 0 );
-    if (error) goto Exit;
+    if ( error )
+      goto Exit;
 
     ebdt_pos = FILE_Pos();
 
     /* clear the bitmap & load the bitmap */
-    if (face->root.glyph->flags & ft_glyph_own_bitmap)
+    if ( face->root.glyph->flags & ft_glyph_own_bitmap )
       FREE( map->buffer );
 
     map->rows = map->pitch = map->width = 0;
@@ -1439,7 +1447,7 @@
     }
 
     /* Crop the bitmap now, unless specified otherwise */
-    if (load_flags & FT_LOAD_CROP_BITMAP)
+    if ( load_flags & FT_LOAD_CROP_BITMAP )
       Crop_Bitmap( map, metrics );
 
   Exit:
--- a/src/sfnt/ttsbit.h
+++ b/src/sfnt/ttsbit.h
@@ -4,11 +4,11 @@
 /*                                                                         */
 /*    TrueType and OpenType embedded bitmap support (specification).       */
 /*                                                                         */
-/*  Copyright 1996-1999 by                                                 */
+/*  Copyright 1996-2000 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
+/*  This file is part of the FreeType project, and may only be used,       */
+/*  modified, and distributed under the terms of the FreeType project      */
 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 /*  this file you indicate that you have read the license and              */
 /*  understand and accept it fully.                                        */