shithub: freetype+ttf2subf

Download patch

ref: a259b6dddbdf1e23346bd8d9816c5c68adb7d433
parent: e2d12842e1e2717545643faa2a8b8f0ccb22b9ba
author: Werner Lemberg <[email protected]>
date: Mon Sep 22 05:53:56 EDT 2003

* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
Fix compilation warning (s/pptr/Pptr/).

* include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
FT_INTERNAL_FNT_TYPES_H): Removed.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,31 +1,65 @@
+2003-09-21  Werner Lemberg  <[email protected]>
+
+	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
+	Fix compilation warning (s/pptr/Pptr/).
+
+	* include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
+	FT_INTERNAL_FNT_TYPES_H): Removed.
+
 2003-09-21  David Turner  <[email protected]>
 
-        * include/freetype/internal/ftserv.h,
-        include/freetype/internal/service/svpfr.h,
-        include/freetype/internal/pfr.h,
-        src/base/ftpfr.c:
+	Migrating the PFR and WINFNT drivers to the new service-based
+	internal API.
 
-          migrating the functions of "ftpfr.h" to the new
-          service-base internal API
+	* include/freetype/internal/fnttypes.h: Removed.  Most of its data
+	are moved to winfnt.h and...
+	* include/freetype/internal/services/svwinfnt.h: New file.
 
-        * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
-        src/psaux/psobjs.c, src/sfnt/sfdriver.c, src/sfnt/sfobjs.c,
-        src/truetype/ttobjs.c, src/type1/t1driver.c, src/type1/t1objs.c,
-        src/type42/t42objs.c, src/winfonts/winfnt.c:
+	* include/freetype/internal/pfr.h: Removed.  Most of its data are
+	moved to...
+	* include/freetype/internal/services/svpfr.h: New file.
 
-          removing various compiler warnings
+	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
+	FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing
+	pointer type argument.
+	Updated all callers.
+	Update macro names of services header files.
 
+	* src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
 
-        * include/freetype/internal/fnttypes.h,
-        include/freetype/internal/ftserv.h, src/base/ftbdf.c, src/base/ftmm.c,
-        src/base/ftobjs.c, src/base/ftpfr.c, src/base/ftwinfnt.c,
-        src/base/ftxf86.c, src/pfr/pfrdrivr.c, src/winfonts/winfnt.c,
-        src/winfonts/winfnt.h, include/freetype/internal/service/svwinfnt.h,:
+	* src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
+	FT_INTERNAL_PFR_H.
+	(ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
+	FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
 
-          simplification of service lookup macros, updating the PFR and
-          WINFNT font drivers to new services
+	* src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of
+	FT_INTERNAL_FNT_TYPES_H.
+	(FT_Get_WinFNT_Header): Use service provided in `WINFNT'.
 
+	* src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and
+	FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H.
+	(pfr_service_bdf): Updated.
+	(pfr_services): New services list.
+	(pfr_get_service): New function.
+	(pfr_driver_class): Updated.
 
+	* src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and
+	FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H.
+	(winfnt_get_header, winfnt_get_service): New functions.
+	(winfnt_service_rec): New structure providing WINFNT services.
+	(winfnt_services): New services list.
+	(winfnt_driver_class): Updated.
+	* src/winfonts/winfnt.h: Add most of the removed fnttypes.h data.
+
+	* src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
+
+	* src/type1/t1driver.c (t1_service_ps_name): Fix typo.
+
+	* src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
+	src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c,
+	src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler
+	warnings.
+
 2003-09-19  David Bevan  <[email protected]>
 
 	* src/type1/t1parse.c (pfb_tag_fields): Removed.
@@ -145,7 +179,7 @@
 	* src/base/ftbdf.c: Include FT_SERVICE_BDF_H.
 	(test_font_type): Removed.
 	(FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services
-	provided in `FT_SERVICE_ID_BDF'
+	provided in `FT_SERVICE_ID_BDF'.
 
 	* src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
 	(ft_face_get_mm_service): New auxiliary function to get services
--- a/include/freetype/internal/ftserv.h
+++ b/include/freetype/internal/ftserv.h
@@ -46,15 +46,12 @@
    *   id ::
    *     A string describing the service as defined in the service's
    *     header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to
-   *     `multi-masters'). It will be prefixed with "FT_SERVICE_ID_" !!
+   *     `multi-masters').  It is automatically prefixed with
+   *     `FT_SERVICE_ID_'.
    *
    *   face ::
    *     The source face handle.
    *
-   *   ptrtype ::
-   *     The pointer type of `ptr'.  This is needed to make FreeType
-   *     compile cleanly with C++.
-   *
    * @output:
    *   ptr ::
    *     A variable that receives the service pointer.  Will be NULL
@@ -63,14 +60,16 @@
 #define FT_FACE_FIND_SERVICE( ptr, face, id )                               \
   FT_BEGIN_STMNT                                                            \
     FT_Module    module = FT_MODULE( FT_FACE(face)->driver );               \
-    FT_Pointer*  pptr   = (FT_Pointer*) &(ptr);                             \
-                                                                            \
     /* the strange cast is to allow C++ compilation */                      \
-    *pptr = NULL;                                                           \
+    FT_Pointer*  Pptr = (FT_Pointer*)&(ptr);                                \
+                                                                            \
+                                                                            \
+    *Pptr = NULL;                                                           \
     if ( module->clazz->get_interface )                                     \
-      *pptr = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \
+      *Pptr = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \
   FT_END_STMNT
 
+
   /*************************************************************************/
   /*************************************************************************/
   /*****                                                               *****/
@@ -123,9 +122,9 @@
    *  All fields should have the type FT_Pointer to relax compilation
    *  dependencies.  We assume the developer isn't completely stupid.
    *
-   *  Each field must be named service_XXXX where XXX correspond to
-   *  the correct FT_SERVICE_ID_XXXX macro. see the definition of
-   *  FT_FACE_LOOKUP_SERVICE below to see why
+   *  Each field must be named `service_XXXX' where `XXX' corresponds to
+   *  the correct FT_SERVICE_ID_XXXX macro.  See the definition of
+   *  FT_FACE_LOOKUP_SERVICE below how this is implemented.
    *
    */
   typedef struct  FT_ServiceCacheRec_
@@ -163,10 +162,6 @@
    *   id ::
    *     The service ID.
    *
-   *   ptrtype ::
-   *     The pointer type of `ptr'.  This is needed to make FreeType
-   *     compile cleanly with C++.
-   *
    * @output:
    *   ptr ::
    *     A variable receiving the service data.  NULL if not available.
@@ -173,10 +168,10 @@
    */
 #define FT_FACE_LOOKUP_SERVICE( face, ptr, id )                  \
   FT_BEGIN_STMNT                                                 \
+    /* the strange cast is to allow C++ compilation */           \
     FT_Pointer*  pptr = (FT_Pointer*)&(ptr);                     \
     FT_Pointer   svc;                                            \
                                                                  \
-    /* the strange cast is to allow C++ compilation */           \
                                                                  \
     svc = FT_FACE(face)->internal->services. service_ ## id ;    \
     if ( svc == FT_SERVICE_UNAVAILABLE )                         \
@@ -191,6 +186,7 @@
       *pptr = svc;                                               \
     }                                                            \
   FT_END_STMNT
+
 
   /*
    *  A macro used to define new service structure types.
--- a/include/freetype/internal/internal.h
+++ b/include/freetype/internal/internal.h
@@ -39,9 +39,7 @@
 #define FT_INTERNAL_TYPE1_TYPES_H         <freetype/internal/t1types.h>
 #define FT_INTERNAL_TYPE42_TYPES_H        <freetype/internal/t42types.h>
 #define FT_INTERNAL_CFF_TYPES_H           <freetype/internal/cfftypes.h>
-#define FT_INTERNAL_FNT_TYPES_H           <freetype/internal/fnttypes.h>
 #define FT_INTERNAL_BDF_TYPES_H           <freetype/internal/bdftypes.h>
-#define FT_INTERNAL_PFR_H                 <freetype/internal/pfr.h>
 
 #define FT_INTERNAL_POSTSCRIPT_NAMES_H    <freetype/internal/psnames.h>
 #define FT_INTERNAL_POSTSCRIPT_AUX_H      <freetype/internal/psaux.h>
--- a/include/freetype/internal/services/svpfr.h
+++ b/include/freetype/internal/services/svpfr.h
@@ -2,9 +2,9 @@
 /*                                                                         */
 /*  svpfr.h                                                                */
 /*                                                                         */
-/*    Internal PFR service functions (specification only).                 */
+/*    Internal PFR service functions (specification).                      */
 /*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
+/*  Copyright 2003 by                                                      */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -21,24 +21,30 @@
 
 #include FT_INTERNAL_SERVICE_H
 
+
 FT_BEGIN_HEADER
 
-#define  FT_SERVICE_ID_PFR_METRICS   "pfr-metrics"
 
-  typedef FT_Error  (*FT_PFR_GetMetricsFunc)( FT_Face    face,
-                                              FT_UInt   *aoutline,
-                                              FT_UInt   *ametrics,
-                                              FT_Fixed  *ax_scale,
-                                              FT_Fixed  *ay_scale );
+#define FT_SERVICE_ID_PFR_METRICS  "pfr-metrics"
 
-  typedef FT_Error  (*FT_PFR_GetKerningFunc)( FT_Face     face,
-                                              FT_UInt     left,
-                                              FT_UInt     right,
-                                              FT_Vector  *avector );
 
-  typedef FT_Error  (*FT_PFR_GetAdvanceFunc)( FT_Face   face,
-                                              FT_UInt   gindex,
-                                              FT_Pos   *aadvance );
+  typedef FT_Error
+  (*FT_PFR_GetMetricsFunc)( FT_Face    face,
+                            FT_UInt   *aoutline,
+                            FT_UInt   *ametrics,
+                            FT_Fixed  *ax_scale,
+                            FT_Fixed  *ay_scale );
+
+  typedef FT_Error
+  (*FT_PFR_GetKerningFunc)( FT_Face     face,
+                            FT_UInt     left,
+                            FT_UInt     right,
+                            FT_Vector  *avector );
+
+  typedef FT_Error
+  (*FT_PFR_GetAdvanceFunc)( FT_Face   face,
+                            FT_UInt   gindex,
+                            FT_Pos   *aadvance );
 
 
   FT_DEFINE_SERVICE( PfrMetrics )
--- a/include/freetype/internal/services/svwinfnt.h
+++ b/include/freetype/internal/services/svwinfnt.h
@@ -2,7 +2,7 @@
 /*                                                                         */
 /*  svwinfnt.h                                                             */
 /*                                                                         */
-/*    The FreeType Windows FNT/FONT service                                */
+/*    The FreeType Windows FNT/FONT service (specification).               */
 /*                                                                         */
 /*  Copyright 2003 by                                                      */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
@@ -19,18 +19,20 @@
 #ifndef __SVWINFNT_H__
 #define __SVWINFNT_H__
 
-
 #include FT_INTERNAL_SERVICE_H
 #include FT_WINFONTS_H
 
+
 FT_BEGIN_HEADER
 
 
 #define FT_SERVICE_ID_WINFNT  "winfonts"
 
-  typedef FT_Error  (*FT_WinFnt_GetHeaderFunc)( FT_Face               face,
-                                                FT_WinFNT_HeaderRec  *aheader );
+  typedef FT_Error
+  (*FT_WinFnt_GetHeaderFunc)( FT_Face               face,
+                              FT_WinFNT_HeaderRec  *aheader );
 
+
   FT_DEFINE_SERVICE( WinFnt )
   {
     FT_WinFnt_GetHeaderFunc  get_header;
@@ -37,6 +39,7 @@
   };
 
   /* */
+
 
 FT_END_HEADER
 
--- a/include/freetype/internal/services/svxf86nm.h
+++ b/include/freetype/internal/services/svxf86nm.h
@@ -2,7 +2,7 @@
 /*                                                                         */
 /*  svxf86nm.h                                                             */
 /*                                                                         */
-/*    The FreeType XFree86 services (specification).                       */
+/*    The FreeType XFree86 services (specification only).                  */
 /*                                                                         */
 /*  Copyright 2003 by                                                      */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
--- a/src/base/ftpfr.c
+++ b/src/base/ftpfr.c
@@ -56,6 +56,7 @@
     {
       FT_Fixed  x_scale, y_scale;
 
+
       /* this is not a PFR font */
       *aoutline_resolution = face->units_per_EM;
       *ametrics_resolution = face->units_per_EM;
@@ -88,13 +89,10 @@
 
     service = ft_pfr_check( face );
     if ( service )
-    {
       error = service->get_kerning( face, left, right, avector );
-    }
     else if ( face )
-    {
-      error = FT_Get_Kerning( face, left, right, FT_KERNING_UNSCALED, avector );
-    }
+      error = FT_Get_Kerning( face, left, right,
+                              FT_KERNING_UNSCALED, avector );
     else
       error = FT_Err_Invalid_Argument;
 
@@ -117,7 +115,7 @@
       error = service->get_advance( face, gindex, aadvance );
     }
     else
-     /* XXX: TODO: PROVIDE ADVANCE-LOADING METHOD TO ALL FONT DRIVERS */
+      /* XXX: TODO: PROVIDE ADVANCE-LOADING METHOD TO ALL FONT DRIVERS */
       error = FT_Err_Invalid_Argument;
 
     return error;
--- a/src/base/ftwinfnt.c
+++ b/src/base/ftwinfnt.c
@@ -29,6 +29,7 @@
     FT_Service_WinFnt  service;
     FT_Error           error;
 
+
     error = FT_Err_Invalid_Argument;
 
     if ( face != NULL )
@@ -40,7 +41,9 @@
         error = service->get_header( face, header );
       }
     }
-    return  error;
+
+    return error;
   }
+
 
 /* END */
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -396,8 +396,10 @@
         else
           root->units_per_EM = 1000;
 
-        root->underline_position  = (FT_Short) (dict->underline_position >> 16);
-        root->underline_thickness = (FT_Short) (dict->underline_thickness >> 16);
+        root->underline_position  =
+          (FT_Short)( dict->underline_position >> 16 );
+        root->underline_thickness =
+          (FT_Short)( dict->underline_thickness >> 16 );
 
         /* retrieve font family & style name */
         root->family_name  = cff_index_get_name( &cff->name_index, face_index );
--- a/src/cid/cidobjs.c
+++ b/src/cid/cidobjs.c
@@ -423,8 +423,10 @@
       root->height    = (FT_Short)(
         ( ( root->ascender - root->descender ) * 12 ) / 10 );
 
-      root->underline_position  = (FT_Short) (info->underline_position >> 16);
-      root->underline_thickness = (FT_Short) (info->underline_thickness >> 16);
+      root->underline_position =
+        (FT_Short)( info->underline_position >> 16 );
+      root->underline_thickness =
+        (FT_Short)( info->underline_thickness >> 16 );
 
       root->internal->max_points   = 0;
       root->internal->max_contours = 0;
--- a/src/pfr/pfrsbit.c
+++ b/src/pfr/pfrsbit.c
@@ -651,11 +651,12 @@
           error = ft_glyphslot_alloc_bitmap( &glyph->root, len );
           if ( !error )
           {
-            error = pfr_load_bitmap_bits( p,
-                                          stream->limit,
-                                          format,
-                                          FT_BOOL(face->header.color_flags & 2),
-                                          &glyph->root.bitmap );
+            error = pfr_load_bitmap_bits(
+                      p,
+                      stream->limit,
+                      format,
+                      FT_BOOL(face->header.color_flags & 2),
+                      &glyph->root.bitmap );
           }
         }
       }
--- a/src/type1/t1objs.c
+++ b/src/type1/t1objs.c
@@ -434,8 +434,10 @@
 
       root->max_advance_height = root->height;
 
-      root->underline_position  = (FT_Short)( info->underline_position >> 16 );
-      root->underline_thickness = (FT_Short)( info->underline_thickness >> 16 );
+      root->underline_position =
+        (FT_Short)( info->underline_position >> 16 );
+      root->underline_thickness =
+        (FT_Short)( info->underline_thickness >> 16 );
 
       root->internal->max_points   = 0;
       root->internal->max_contours = 0;
--- a/src/winfonts/winfnt.c
+++ b/src/winfonts/winfnt.c
@@ -637,10 +637,12 @@
   {
     FNT_Font  font = ((FNT_Face)face)->font;
 
+
     *aheader = font->header;
 
     return 0;
   }
+
 
   static const FT_Service_WinFntRec  winfnt_service_rec =
   {