shithub: freetype+ttf2subf

Download patch

ref: 15b60bb513984c5f0725d45b80e8798e21502dcf
parent: cda6f49332586926393b93a58e3d4a7537d57e6a
author: Werner Lemberg <[email protected]>
date: Tue Mar 3 16:35:32 EST 2009

Formatting, copyright years.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,16 +1,17 @@
 2009-03-03  David Turner  <[email protected]>
 
-	Update documentation and bump version number to 2.3.9
+	Update documentation and bump version number to 2.3.9.
 
-	* include/freetype/freetype.h: bump patch version to 9
-	* docs/CHANGES: document the ABI break in 2.3.8
-	* docs/VERSION.DLL: update version numbers table for 2.3.9
-	* builds/unix/configure.ac: update AC_INIT and version_info
+	* include/freetype/freetype.h: Bump patch version to 9.
+	* docs/CHANGES: Document the ABI break in 2.3.8.
+	* docs/VERSION.DLL: Update version numbers table for 2.3.9.
+	* builds/unix/configure.ac: Update AC_INIT and version_info
 	numbers.
 
 2009-03-03  David Turner  <[email protected]>
 
 	Remove ABI-breaking field in public PS_InfoFontRec definition.
+
 	Instead, we define a new internal PS_FontExtraRec structure to
 	hold the additionnal field, then place it in various internal
 	positions of the corresponding FT_Face derived objects.
@@ -17,20 +18,33 @@
 
 	* include/freetype/t1tables.h (PS_FontInfoRec): Remove the
 	`fs_type' field from the public structure.
+	* include/freetype/internal/psaux.h (T1_FieldLocation): New
+	enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
+	* include/freetype/internal/t1types.h (PS_FontExtraRec): New
+	structure.
+	(T1_FontRec, CID_FaceRec): Add it.
 
-	* include/freetype/internal/psaux.h (T1_FieldLocation),
-	include/freetype/internal/t1types.h (T1_FontRec, CID_FaceRec),
-	src/type1/t1load.c, src/type1/t1tokens.h,
-	src/cid/cidload.c, src/cid/cidtoken.h,
-	src/type42/t42parse.c: modify the various font parsers to store
-	the `fs_type' field in a different places, instead of the public
-	PS_FontInfoRec.
+	* src/cid/cidload.c (cid_load_keyword): Handle
+	T1_FIELD_LOCATION_FONT_EXTRA.
+	* src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
+	Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
+	* src/type1/t1load.c (t1_load_keyword): Handle
+	T1_FIELD_LOCATION_FONT_EXTRA.
 
-	* include/freetype/internal/services/svpsinfo.h (PsInfo service),
-	src/base/ftfstype.c (FT_Get_FSType_Flags), src/cff/cffdrivr.c,
-	src/cid/cidriver.c, src/type1/t1driver.c, src/type42/t42drivr.c:
-	Modify the PsInfo service to add a GetExtra function, use it in
-	FT_Get_FSType_Flags() and modify the drivers accordingly.
+	* include/freetype/internal/services/svpsinfo.h (PsInfo service):
+	Add `PS_GetFontExtraFunc' function typedef.
+
+	* src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
+	FT_SERVICE_POSTSCRIPT_INFO_H.
+	(FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
+
+	* src/cff/cffdrivr.c (cff_service_ps_info): Updated.
+	* src/cid/cidriver.c (cid_ps_get_font_extra): New function.
+	(cid_service_ps_info): Updated.
+	* src/type1/t1driver.c (t1_ps_get_font_extra): New function.
+	(t1_service_ps_info): Updated.
+	* src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
+	(t42_service_ps_info): Updated.
 
 2009-03-02  Alexey Kryukov  <[email protected]>
 
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -2,26 +2,26 @@
 
   I. IMPORTANT BUG FIXES
 
-    - Very unfortunately, FreeType 2.3.8 contained a change that
-      broke its official ABI. The end result is that programs compiled
+    - Very unfortunately, FreeType 2.3.8 contained a change that broke
+      its  official ABI.  The  end result  is  that programs  compiled
       against previous versions of the library, but dynamically linked
-      to 2.3.8 can experience memory corruption if they call the
-      FT_Get_PS_Font_Info() function.
+      to  2.3.8 can  experience  memory corruption  if  they call  the
+      `FT_Get_PS_Font_Info' function.
 
-      We recommend all users to upgrade to 2.3.9 as soon as possible,
-      or to downgrade to a previous release of the library if this is
+      We recommend all users to  upgrade to 2.3.9 as soon as possible,
+      or to downgrade to a previous  release of the library if this is
       not an option.
 
-      The origin of the bug is that a new field was added to the
-      publicly defined PS_FontInfoRec structure. Unfortunately objects
-      of this type can be stack or heap allocated by callers of
-      FT_Get_PS_Font_Info(), resulting in a memory buffer over-write
-      with its implementation in 2.3.8.
+      The  origin of the  bug is  that a  new field  was added  to the
+      publicly  defined  `PS_FontInfoRec'  structure.   Unfortunately,
+      objects of this  type can be stack or  heap allocated by callers
+      of   `FT_Get_PS_Font_Info',  resulting   in   a  memory   buffer
+      overwrite with its implementation in 2.3.8.
 
-      If you want to know if your code is vulnerable to this issue,
-      simply search for the substrings "PS_FontInfo" and
-      "PS_Font_Info" in your source code. If none is found, your code
-      is safe and will not be affected.
+      If  you want to  know whether  your code  is vulnerable  to this
+      issue,  simply  search  for  the  substrings  `PS_FontInfo'  and
+      `PS_Font_Info' in your source code.  If none is found, your code
+      is safe and is not affected.
 
       The FreeType team apologizes for the problem.
 
--- a/include/freetype/internal/services/svpsinfo.h
+++ b/include/freetype/internal/services/svpsinfo.h
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    The FreeType PostScript info service (specification).                */
 /*                                                                         */
-/*  Copyright 2003, 2004 by                                                */
+/*  Copyright 2003, 2004, 2009 by                                          */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -5,7 +5,7 @@
 /*    Basic Type1/Type2 type definitions and interface (specification      */
 /*    only).                                                               */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008 by                   */
+/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by             */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -92,18 +92,19 @@
    *
    * Note these can't be blended with multiple-masters.
    */
-  typedef struct PS_FontExtraRec_
+  typedef struct  PS_FontExtraRec_
   {
-    FT_UShort   fs_type;
+    FT_UShort  fs_type;
 
   } PS_FontExtraRec;
 
+
   typedef struct  T1_FontRec_
   {
-    PS_FontInfoRec   font_info;         /* font info dictionary */
+    PS_FontInfoRec   font_info;         /* font info dictionary   */
     PS_FontExtraRec  font_extra;        /* font info extra fields */
-    PS_PrivateRec    private_dict;      /* private dictionary   */
-    FT_String*       font_name;         /* top-level dictionary */
+    PS_PrivateRec    private_dict;      /* private dictionary     */
+    FT_String*       font_name;         /* top-level dictionary   */
 
     T1_EncodingType  encoding_type;
     T1_EncodingRec   encoding;
--- a/src/base/ftfstype.c
+++ b/src/base/ftfstype.c
@@ -42,11 +42,10 @@
       {
         PS_FontExtraRec  extra;
 
+
         if ( !service->ps_get_font_extra( face, &extra ) &&
-             extra.fs_type != 0 )
-        {
+             extra.fs_type != 0                          )
           return extra.fs_type;
-        }
       }
     }
 
--- a/src/cid/cidload.c
+++ b/src/cid/cidload.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    CID-keyed Type1 font loader (body).                                  */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006 by                   */
+/*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2009 by             */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
--- a/src/cid/cidriver.c
+++ b/src/cid/cidriver.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    CID driver interface (body).                                         */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008 by                   */
+/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by             */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -74,7 +74,8 @@
                         PS_FontInfoRec*  afont_info )
   {
     *afont_info = ((CID_Face)face)->cid.font_info;
-    return 0;
+
+    return CID_Err_Ok;
   }
 
   static FT_Error
@@ -82,7 +83,8 @@
                         PS_FontExtraRec*  afont_extra )
   {
     *afont_extra = ((CID_Face)face)->font_extra;
-    return 0;
+
+    return CID_Err_Ok;
   }
 
   static const FT_Service_PsInfoRec  cid_service_ps_info =
--- a/src/cid/cidtoken.h
+++ b/src/cid/cidtoken.h
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    CID token definitions (specification only).                          */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2006, 2008 by                         */
+/*  Copyright 1996-2001, 2002, 2003, 2006, 2008, 2009 by                   */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
--- a/src/type1/t1driver.c
+++ b/src/type1/t1driver.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Type 1 driver interface (body).                                      */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007 by                   */
+/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2009 by             */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -84,6 +84,7 @@
     return 0;
   }
 
+
   static const FT_Service_GlyphDictRec  t1_service_glyph_dict =
   {
     (FT_GlyphDict_GetNameFunc)  t1_get_glyph_name,
@@ -91,10 +92,10 @@
   };
 
 
- /*
-  *  POSTSCRIPT NAME SERVICE
-  *
-  */
+  /*
+   *  POSTSCRIPT NAME SERVICE
+   *
+   */
 
   static const char*
   t1_get_ps_name( T1_Face  face )
@@ -102,6 +103,7 @@
     return (const char*) face->type1.font_name;
   }
 
+
   static const FT_Service_PsFontNameRec  t1_service_ps_name =
   {
     (FT_PsName_GetFunc)t1_get_ps_name
@@ -108,10 +110,10 @@
   };
 
 
- /*
-  *  MULTIPLE MASTERS SERVICE
-  *
-  */
+  /*
+   *  MULTIPLE MASTERS SERVICE
+   *
+   */
 
 #ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
   static const FT_Service_MultiMastersRec  t1_service_multi_masters =
@@ -125,10 +127,10 @@
 #endif
 
 
- /*
-  *  POSTSCRIPT INFO SERVICE
-  *
-  */
+  /*
+   *  POSTSCRIPT INFO SERVICE
+   *
+   */
 
   static FT_Error
   t1_ps_get_font_info( FT_Face          face,
@@ -135,21 +137,26 @@
                        PS_FontInfoRec*  afont_info )
   {
     *afont_info = ((T1_Face)face)->type1.font_info;
-    return 0;
+
+    return T1_Err_Ok;
   }
 
+
   static FT_Error
   t1_ps_get_font_extra( FT_Face           face,
                         PS_FontExtraRec*  afont_extra )
   {
     *afont_extra = ((T1_Face)face)->type1.font_extra;
-    return 0;
+
+    return T1_Err_Ok;
   }
 
+
   static FT_Int
   t1_ps_has_glyph_names( FT_Face  face )
   {
     FT_UNUSED( face );
+
     return 1;
   }
 
@@ -159,7 +166,8 @@
                           PS_PrivateRec*  afont_private )
   {
     *afont_private = ((T1_Face)face)->type1.private_dict;
-    return 0;
+
+    return T1_Err_Ok;
   }
 
 
@@ -171,6 +179,7 @@
     (PS_GetFontPrivateFunc)t1_ps_get_font_private,
   };
 
+
 #ifndef T1_CONFIG_OPTION_NO_AFM
   static const FT_Service_KerningRec  t1_service_kerning =
   {
@@ -178,10 +187,11 @@
   };
 #endif
 
- /*
-  *  SERVICE LIST
-  *
-  */
+
+  /*
+   *  SERVICE LIST
+   *
+   */
 
   static const FT_ServiceDescRec  t1_services[] =
   {
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Type 1 font loader (body).                                           */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by       */
+/*  Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
--- a/src/type1/t1tokens.h
+++ b/src/type1/t1tokens.h
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Type 1 tokenizer (specification).                                    */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008 by                   */
+/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by             */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
--- a/src/type42/t42drivr.c
+++ b/src/type42/t42drivr.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    High-level Type 42 driver interface (body).                          */
 /*                                                                         */
-/*  Copyright 2002, 2003, 2004, 2006, 2007 by Roberto Alameda.             */
+/*  Copyright 2002, 2003, 2004, 2006, 2007, 2009 by Roberto Alameda.       */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 /*  modified, and distributed under the terms of the FreeType project      */
@@ -49,11 +49,11 @@
 #define FT_COMPONENT  trace_t42
 
 
- /*
-  *
-  *  GLYPH DICT SERVICE
-  *
-  */
+  /*
+   *
+   *  GLYPH DICT SERVICE
+   *
+   */
 
   static FT_Error
   t42_get_glyph_name( T42_Face    face,
@@ -94,11 +94,11 @@
   };
 
 
- /*
-  *
-  *  POSTSCRIPT NAME SERVICE
-  *
-  */
+  /*
+   *
+   *  POSTSCRIPT NAME SERVICE
+   *
+   */
 
   static const char*
   t42_get_ps_font_name( T42_Face  face )
@@ -113,11 +113,11 @@
   };
 
 
- /*
-  *
-  *  POSTSCRIPT INFO SERVICE
-  *
-  */
+  /*
+   *
+   *  POSTSCRIPT INFO SERVICE
+   *
+   */
 
   static FT_Error
   t42_ps_get_font_info( FT_Face          face,
@@ -124,21 +124,26 @@
                         PS_FontInfoRec*  afont_info )
   {
     *afont_info = ((T42_Face)face)->type1.font_info;
+
     return T42_Err_Ok;
   }
 
+
   static FT_Error
   t42_ps_get_font_extra( FT_Face           face,
                          PS_FontExtraRec*  afont_extra )
   {
     *afont_extra = ((T42_Face)face)->type1.font_extra;
+
     return T42_Err_Ok;
   }
 
+
   static FT_Int
   t42_ps_has_glyph_names( FT_Face  face )
   {
     FT_UNUSED( face );
+
     return 1;
   }
 
@@ -148,6 +153,7 @@
                            PS_PrivateRec*  afont_private )
   {
     *afont_private = ((T42_Face)face)->type1.private_dict;
+
     return T42_Err_Ok;
   }
 
@@ -161,11 +167,11 @@
   };
 
 
- /*
-  *
-  *  SERVICE LIST
-  *
-  */
+  /*
+   *
+   *  SERVICE LIST
+   *
+   */
 
   static const FT_ServiceDescRec  t42_services[] =
   {
--- a/src/type42/t42parse.c
+++ b/src/type42/t42parse.c
@@ -4,7 +4,8 @@
 /*                                                                         */
 /*    Type 42 font parser (body).                                          */
 /*                                                                         */
-/*  Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Roberto Alameda. */
+/*  Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by            */
+/*  Roberto Alameda.                                                       */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 /*  modified, and distributed under the terms of the FreeType project      */