shithub: freetype+ttf2subf

Download patch

ref: 5edafed12a0b563e2446623a12a2b6fb1e4e6c5d
parent: facd9af5424bab34d3aae75ed151225aa5551f0a
author: Werner Lemberg <[email protected]>
date: Wed Feb 22 03:23:35 EST 2006

Clean-ups, copyright years, formatting.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,32 +7,52 @@
 
 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
 	tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
-	loading. (only tested with bit aligned sbit with x_pos == 0)
+	loading.  (Only tested with bit aligned sbit with x_pos == 0.)
 
 	* src/truetype/ttpload.c (tt_face_load_hdmx,
-	tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: hdmx is not actually
-	used.
+	tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
+	actually used.
 
 2006-02-21  David Turner  <[email protected]>
 
-    * include/freetype/ftmodapi.h, include/internal/ftserv.h,
-    include/internal/services/svtteng.h, src/base/ftobjs.c,
-    src/truetype/ttdriver.c:
+	Add a new API named FT_Get_TrueType_Engine_Type to determine whether
+	we have a patented, unpatented, or unimplemented TrueType bytecode
+	interpreter.
 
-    adding a new API named FT_Get_TrueType_Engine_Type to determine
-    wether we have a patented, unpatented or unimplemented TrueType
-    bytecode interpreter.
+	The FT_Get_Module_Flags API was removed consequently.
 
-    the FT_Get_Module_Flags API was removed consequently.
+	* include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed. 
+	Replaced with...
+	(FT_Get_TrueType_Engine_Type): This.
+	(FT_TrueTypeEngineType): New enumeration.
 
-    * src/sfnt/sfobjs.c (sfnt_face_load): fixed silly bug that
-    prevented embedded bitmaps from being correctly listed and used
+	* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
+	New macro.
 
-    * src/sfnt/sfmtx.c: disabling memory optimization when
-    FT_CONFIG_OPTION_OLD_INTERNALS is used. This is because libXfont
-    is directly accessing the HMTX data. Grrrrr....
+	* src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
+	(FT_Module_Get_Flags): Removed.  Replaced with...
+	(FT_Get_TrueType_Engine_Type): This.
 
-    * src/pfr/pfrsbit.c: fixed handling of character advances
+	* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
+	(tt_service_truetype_engine): New service structure.
+	(tt_services): Register it.
+
+	* include/freetype/internal/services/svtteng.h: New file.
+
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
+	embedded bitmaps from being correctly listed and used.
+
+
+	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
+	if FT_CONFIG_OPTION_OLD_INTERNALS is used.  The is necessary because
+	libXfont is directly accessing the HMTX data, unfortunately.
+	Fix some compiler warnings.
+	(tt_face_get_metrics): Ditto.
+
+
+	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
+	character advances.
 
 2006-02-20  David Turner  <[email protected]>
 
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -448,7 +448,7 @@
   /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook               */
   /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally activated.               */
   /*                                                                       */
-#define xxTT_CONFIG_OPTION_UNPATENTED_HINTING
+#define TT_CONFIG_OPTION_UNPATENTED_HINTING
 
 
   /*************************************************************************/
--- a/include/freetype/ftmodapi.h
+++ b/include/freetype/ftmodapi.h
@@ -307,33 +307,36 @@
   FT_Add_Default_Modules( FT_Library  library );
 
 
- /**
-  * @enum: FT_TrueTypeEngineType
-  *
-  * @description:
-  *    a list of values describing which kind of truetype bytecode
-  *    engine is implemented in a given FT_Library instance. It is used
-  *    by the @FT_Get_TrueType_Engine_Type function
-  *
-  * @values:
-  *    FT_TRUETYPE_ENGINE_TYPE_NONE ::
-  *      the library doesn't implement any kind of bytecode interpreter
-  *
-  *    FT_TRUETYPE_ENGINE_TYPE_UNPATENTED ::
-  *      the library implements a bytecode interpreter that doesn't
-  *      support the patented operations of the TrueType virtual machine.
-  *
-  *      this interpreter can only be used to load certain Asian fonts
-  *      from Dynalabs. It will produce crap output for any other font.
-  *      see @
-  *
-  *   FT_TRUETYPE_ENGINE_TYPE_PATENTED ::
-  *      the library implements a bytecode interpreter that covers
-  *      the full instruction set of the TrueType virtual machine.
-  *      Better check your legal department for license compliance !!
-  *
-  * @since: 2.2
-  */
+  /*
+   *  @enum:
+   *     FT_TrueTypeEngineType
+   *
+   *  @description:
+   *     A list of values describing which kind of truetype bytecode
+   *     engine is implemented in a given FT_Library instance.  It is used
+   *     by the @FT_Get_TrueType_Engine_Type function.
+   *
+   *  @values:
+   *     FT_TRUETYPE_ENGINE_TYPE_NONE ::
+   *       The library doesn't implement any kind of bytecode interpreter.
+   *
+   *     FT_TRUETYPE_ENGINE_TYPE_UNPATENTED ::
+   *       The library implements a bytecode interpreter that doesn't
+   *       support the patented operations of the TrueType virtual machine.
+   *
+   *       Its main use is to load certain Asian fonts which position and
+   *       scale glyph components with bytecode instructions.  It produces
+   *       bad output for most other fonts.
+   *
+   *    FT_TRUETYPE_ENGINE_TYPE_PATENTED ::
+   *       The library implements a bytecode interpreter that covers
+   *       the full instruction set of the TrueType virtual machine.
+   *       See the file `docs/PATENTS' for legal aspects.
+   *
+   *  @since:
+   *       2.2
+   *
+   */
   typedef enum
   {
     FT_TRUETYPE_ENGINE_TYPE_NONE = 0,
@@ -343,24 +346,28 @@
   } FT_TrueTypeEngineType;
 
 
- /**
-  * @func: FT_Get_TrueType_Engine_Type
-  *
-  * @description:
-  *   this function returns a @FT_TrueTypeEngineType value to indicates
-  *   which level of the TrueType virtual machine a given library instance
-  *   supports.
-  *
-  * @input:
-  *   library :: a library instance
-  *
-  * @return:
-  *   a value indicating which level is supported
-  *
-  * @since: 2.2
-  */
+  /*
+   *  @func:
+   *     FT_Get_TrueType_Engine_Type
+   *
+   *  @description:
+   *     Return a @FT_TrueTypeEngineType value to indicate which level of
+   *     the TrueType virtual machine a given library instance supports.
+   *
+   *  @input:
+   *     library ::
+   *       A library instance.
+   *
+   *  @return:
+   *     A value indicating which level is supported.
+   *
+   *  @since:
+   *     2.2
+   *
+   */
   FT_EXPORT( FT_TrueTypeEngineType )
   FT_Get_TrueType_Engine_Type( FT_Library  library );
+
 
   /* */
 
--- a/include/freetype/internal/ftserv.h
+++ b/include/freetype/internal/ftserv.h
@@ -302,6 +302,8 @@
 
 #define FT_SERVICE_BDF_H                <freetype/internal/services/svbdf.h>
 #define FT_SERVICE_GLYPH_DICT_H         <freetype/internal/services/svgldict.h>
+#define FT_SERVICE_GX_VALIDATE_H        <freetype/internal/services/svgxval.h>
+#define FT_SERVICE_KERNING_H            <freetype/internal/services/svkern.h>
 #define FT_SERVICE_MULTIPLE_MASTERS_H   <freetype/internal/services/svmm.h>
 #define FT_SERVICE_OPENTYPE_VALIDATE_H  <freetype/internal/services/svotval.h>
 #define FT_SERVICE_PFR_H                <freetype/internal/services/svpfr.h>
@@ -309,12 +311,10 @@
 #define FT_SERVICE_POSTSCRIPT_INFO_H    <freetype/internal/services/svpsinfo.h>
 #define FT_SERVICE_POSTSCRIPT_NAME_H    <freetype/internal/services/svpostnm.h>
 #define FT_SERVICE_SFNT_H               <freetype/internal/services/svsfnt.h>
-#define FT_SERVICE_GX_VALIDATE_H        <freetype/internal/services/svgxval.h>
+#define FT_SERVICE_TRUETYPE_ENGINE_H    <freetype/internal/services/svtteng.h>
 #define FT_SERVICE_TT_CMAP_H            <freetype/internal/services/svttcmap.h>
 #define FT_SERVICE_WINFNT_H             <freetype/internal/services/svwinfnt.h>
 #define FT_SERVICE_XFREE86_NAME_H       <freetype/internal/services/svxf86nm.h>
-#define FT_SERVICE_KERNING_H            <freetype/internal/services/svkern.h>
-#define FT_SERVICE_TRUETYPE_ENGINE_H    <freetype/internal/services/svtteng.h>
 
  /* */
 
--- a/include/freetype/internal/services/svsfnt.h
+++ b/include/freetype/internal/services/svsfnt.h
@@ -63,9 +63,9 @@
 
   FT_DEFINE_SERVICE( SFNT_Table )
   {
-    FT_SFNT_TableLoadFunc    load_table;
-    FT_SFNT_TableGetFunc     get_table;
-    FT_SFNT_TableInfoFunc    table_info;
+    FT_SFNT_TableLoadFunc  load_table;
+    FT_SFNT_TableGetFunc   get_table;
+    FT_SFNT_TableInfoFunc  table_info;
   };
 
   /* */
--- a/modules.cfg
+++ b/modules.cfg
@@ -1,6 +1,6 @@
 # modules.cfg
 #
-# Copyright 2005 by
+# Copyright 2005, 2006 by
 # David Turner, Robert Wilhelm, and Werner Lemberg.
 #
 # This file is part of the FreeType project, and may only be used, modified,
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -3666,21 +3666,27 @@
   {
     FT_TrueTypeEngineType  result = FT_TRUETYPE_ENGINE_TYPE_NONE;
 
+
     if ( library )
     {
       FT_Module  module = FT_Get_Module( library, "truetype" );
 
+
       if ( module )
       {
         FT_Service_TrueTypeEngine  service;
 
-        service = ft_module_get_service( module, FT_SERVICE_ID_TRUETYPE_ENGINE );
+
+        service = ft_module_get_service( module,
+                                         FT_SERVICE_ID_TRUETYPE_ENGINE );
         if ( service )
           result = service->engine_type;
       }
     }
+
     return result;
   }
+
 
 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
 
--- a/src/pfr/pfrsbit.c
+++ b/src/pfr/pfrsbit.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType PFR bitmap loader (body).                                   */
 /*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
+/*  Copyright 2002, 2003, 2006 by                                          */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -614,8 +614,8 @@
 
       glyph->root.linearHoriAdvance = advance;
 
-      /* compute default advance, i.e. scaled advance. This can be overriden */
-      /* in the bitmap header of certain glyphs...                           */
+      /* compute default advance, i.e., scaled advance.  This can be */
+      /* overridden in the bitmap header of certain glyphs.          */
       advance = FT_MulDiv( (FT_Fixed)size->root.metrics.x_ppem << 8,
                            character->advance,
                            phys->metrics_resolution );
--- a/src/sfnt/ttmtx.c
+++ b/src/sfnt/ttmtx.c
@@ -35,11 +35,12 @@
 #define FT_COMPONENT  trace_ttmtx
 
 
-/* Unfortunately, we can't enable our memory optimizations when
- * FT_CONFIG_OPTION_OLD_INTERNALS is defined. This is because some
- * rogue clients (libXfont in the X.Org XServer) is directly accessing
- * the metrics
- */
+  /*
+   *  Unfortunately, we can't enable our memory optimizations if
+   *  FT_CONFIG_OPTION_OLD_INTERNALS is defined.  This is because at least
+   *  one rogue client (libXfont in the X.Org XServer) is directly accessing
+   *  the metrics.
+   */
 
   /*************************************************************************/
   /*                                                                       */
--- a/src/sfnt/ttsbit0.c
+++ b/src/sfnt/ttsbit0.c
@@ -498,7 +498,7 @@
         if ( x_pos + w > 8 )
         {
           write++;
-          wval <<= 8;
+          wval   <<= 8;
           write[0] = (FT_Byte)( write[0] | ( wval >> x_pos ) );
         }
       }
@@ -547,7 +547,7 @@
       goto Exit;
     }
 
-    if ( p + ( ( width  * height + 7 ) >> 3 ) > limit )
+    if ( p + ( ( width * height + 7 ) >> 3 ) > limit )
     {
       error = SFNT_Err_Invalid_File_Format;
       goto Exit;
@@ -558,8 +558,8 @@
     x_pos &= 7;
 
     /* the higher byte of `rval' is used as a buffer */
-    rval   = 0;
-    nbits  = 0;
+    rval  = 0;
+    nbits = 0;
 
     for ( h = height; h > 0; h--, line += pitch )
     {
@@ -583,7 +583,7 @@
         }
 
         *write++ |= ( ( rval >> nbits ) & 0xFF ) & ~( 0xFF << w );
-        rval <<= 8;
+        rval    <<= 8;
 
         w = width - w;
       }
--- a/src/truetype/ttdriver.c
+++ b/src/truetype/ttdriver.c
@@ -295,21 +295,25 @@
   static const FT_Service_TrueTypeEngineRec  tt_service_truetype_engine =
   {
 #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-#  ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
+
+#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
     FT_TRUETYPE_ENGINE_TYPE_UNPATENTED
-#  else
-    FT_TRUETYPE_ENGINE_TYPE_PATENTED
-#  endif
 #else
-    FT_TRUETYPE_ENGINE_TYPE_NONE
+    FT_TRUETYPE_ENGINE_TYPE_PATENTED
 #endif
+
+#else /* !TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
+
+    FT_TRUETYPE_ENGINE_TYPE_NONE
+
+#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
   };
 
   static const FT_ServiceDescRec  tt_services[] =
   {
-    { FT_SERVICE_ID_XF86_NAME,     FT_XF86_FORMAT_TRUETYPE },
+    { FT_SERVICE_ID_XF86_NAME,       FT_XF86_FORMAT_TRUETYPE },
 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-    { FT_SERVICE_ID_MULTI_MASTERS, &tt_service_gx_multi_masters },
+    { FT_SERVICE_ID_MULTI_MASTERS,   &tt_service_gx_multi_masters },
 #endif
     { FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine },
     { NULL, NULL }