shithub: freetype+ttf2subf

Download patch

ref: 5bbb4940087afe9e6cf6fff14133f7f5d6c59b2f
parent: d490e3734d6e4b0ef46888f6f55776b36073d4bd
author: Werner Lemberg <[email protected]>
date: Thu May 30 15:22:14 EDT 2002

* src/bdf/descrip.mms, src/type42/descrip.mms: New files.
* descrip.mms (all): Updated.

* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
compilation.
* src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2002-05-29  Werner Lemberg  <[email protected]>
+
+	* src/bdf/descrip.mms, src/type42/descrip.mms: New files.
+	* descrip.mms (all): Updated.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
+	compilation.
+	* src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
+
 2002-05-28  Detlef W�rkner  <[email protected]>
 
 	* builds/amiga/makefile, builds/amiga/smakefile,
@@ -8,16 +17,16 @@
 
 2005-05-28  David Turner  <[email protected]>
 
-    * docs/CHANGES: updating file for upcoming release (2.1.1)
+	* docs/CHANGES: Updating file for next release (2.1.1).
 
-    * src/bdf/bdflib.c: removing compiler warnings
+	* src/bdf/bdflib.c: Removing compiler warnings.
 
 	* include/freetype/ftxf86.h, src/base/ftxf86.c: New files.
-	They provad a new API (FT_Get_X11_Font_Format) an X11-compatible
-	string describing the font format of a given face.  This was put in
-	a new optional base source file, corresponding to a new public
-	header (named FT_XFREE86_H since this function should only be used
-	within the XFree86 font server IMO).
+	They provide a new API (FT_Get_X11_Font_Format) to retrieve an
+	X11-compatible string describing the font format of a given face. 
+	This was put in a new optional base source file, corresponding to a
+	new public header (named FT_XFREE86_H since this function should
+	only be used within the XFree86 font server IMO).
 
 	* include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
 	documented yet).
--- a/descrip.mms
+++ b/descrip.mms
@@ -36,6 +36,8 @@
         $(MMS)$(MMSQUALIFIERS)
         set default [-.base]
         $(MMS)$(MMSQUALIFIERS)
+        set default [-.bdf]
+        $(MMS)$(MMSQUALIFIERS)
         set default [-.cache]
         $(MMS)$(MMSQUALIFIERS)
         set default [-.cff]
@@ -61,6 +63,8 @@
         set default [-.truetype]
         $(MMS)$(MMSQUALIFIERS)
         set default [-.type1]
+        $(MMS)$(MMSQUALIFIERS)
+        set default [-.type42]
         $(MMS)$(MMSQUALIFIERS)
         set default [-.winfonts]
         $(MMS)$(MMSQUALIFIERS)
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -2,52 +2,51 @@
 
   I. IMPORTANT BUG FIXES
 
-    - the 'version_info' returned by "freetype-config" in 2.1.0 returned an
-      invalid value. It now returns 9:1:3 (2.0.9 returned 9:0:3)
+    - The `version_info' returned by `freetype-config' in 2.1.0 returned an
+      invalid value. It now returns 9:1:3 (2.0.9 returned 9:0:3).
 
-    - 2.1.0 couldn't be linked against applications on Win32 and Amiga
-      systems, due to a new debug function that wasn't properly propagated
-      to the system-specific directory in 'builds'.
+    - Version 2.1.0 couldn't be linked against applications on Win32 and
+      Amiga systems due to a new debug function that wasn't properly
+      propagated to the system-specific directory in `builds'.
 
-    - various MacOS and Mac OS X specific fixes
+    - Various MacOS and Mac OS X specific fixes.
 
-    - fixed a bug in the TrueType charmap validation routines that made
-      2.1.0 over-restrictive over the fonts it could accept.
+    - Fixed a bug in the TrueType charmap validation routines that made
+      version 2.1.0 too restrictive -- many popular fonts have been
+      rejected.
 
-    - surprisingly, there was still a very small difference between the
-      monochrome glyph bitmaps produced by FT 1.x and FT 2.x with the
-      bytecode interpreter enabled. This was caused by an invalid flag
-      setting in the TrueType glyph loader that caused the rasterizer to
-      change its drop-out control mode. This is now fixed, and results
-      should _really_ be 100% identical
+    - There was still a very small difference between the monochrome glyph
+      bitmaps produced by FreeType 1.x and FreeType 2.x with the bytecode
+      interpreter enabled.  This was caused by an invalid flag setting in
+      the TrueType glyph loader, making the rasterizer change its drop-out
+      control mode.  Now theresults should _really_ be completely identical.
 
-    - the TrueType name table loader has been improved to support many
-      popular though buggy Asian fonts. It now ignores empty name entries,
-      invalid pointer offsets and a few other sad things. Moreover, name
-      strings are now loaded on demand, which reduces the memory load of
-      many faces (e.g. the ARIAL.TTF font file contains a 10Kb name table
-      containing 70 names)
+    - The TrueType name table loader has been improved to support many
+      popular though buggy Asian fonts.  It now ignores empty name entries,
+      invalid pointer offsets and a few other incorrect subtleties. 
+      Moreover, name strings are now loaded on demand, which reduces the
+      memory load of many faces (e.g. the ARIAL.TTF font file contains a
+      10kByte name table with 70 names).
 
-    - fixed a bug in the Postscript hinter that prevented family blues
+    - Fixed a bug in the Postscript hinter that prevented family blues
       substitution to happen correctly.
 
 
   II. NEW FEATURES
 
-    - Three new font drivers in this release !!
+    - Three new font drivers in this release:
 
-        * a BDF font driver, contributed by Franco Narda Zapelli, and
-          heavily modified by Werner Lemberg, it also supports anti-aliased
-          bitmaps
+      * A BDF font driver, contributed by Franco Narda Zapelli, heavily
+        modified by Werner Lemberg.  It also supports anti-aliased bitmaps
+        (using a slightly extended BDF format).
 
-        * a Type42 font driver, contributed by ..... This one is still
-          experimental but seems to work relatively well but lacks some
-          charmap support for now
+      * A Type42 font driver, contributed by Roberto Alameda.  It is
+        still experimental but seems to work relatively well.  Currently,
+        charmap support is not fully implemented.
 
-        * a PFR font driver, contributed by David Turner himself. It doesn't
-          support PFR hinting Beware that BitStream has at least two patents
-          on this format !!
-
+      * A PFR font driver, contributed by David Turner himself.  It doesn't
+        support PFR hinting -- note that BitStream has at least two patents
+        on this format!
 
 
 ========================================================================
--- a/include/freetype/ftxf86.h
+++ b/include/freetype/ftxf86.h
@@ -1,6 +1,24 @@
-#ifndef __FT_XFREE86_H__
-#define __FT_XFREE86_H__
+/***************************************************************************/
+/*                                                                         */
+/*  ftxf86.h                                                               */
+/*                                                                         */
+/*    Support functions for X11.                                           */
+/*                                                                         */
+/*  Copyright 2002 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.                                        */
+/*                                                                         */
+/***************************************************************************/
 
+
+#ifndef __FTXF86_H__
+#define __FTXF86_H__
+
 #include <ft2build.h>
 #include FT_FREETYPE_H
 
@@ -15,21 +33,21 @@
   /*    FT_Get_X11_Font_Format                                             */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    Returns a string describing the format of a given face as a X11    */
-  /*    FONT_PROPERTY. It should only be used by FreeType 2 font backend   */
-  /*    of the XFree86 font server.                                        */
+  /*    Return a string describing the format of a given face as an X11    */
+  /*    FONT_PROPERTY.  It should only be used by the FreeType 2 font      */
+  /*    backend of the XFree86 font server.                                */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    face :: input face handle.                                         */
+  /*    face :: Input face handle.                                         */
   /*                                                                       */
   /* <Return>                                                              */
-  /*    font format string. NULL in case of error.                         */
+  /*    Font format string.  NULL in case of error.                        */
   /*                                                                       */
   FT_EXPORT_DEF( const char* )
-  FT_Get_X11_Font_Format( FT_Face    face );
+  FT_Get_X11_Font_Format( FT_Face  face );
 
  /* */
 
 FT_END_HEADER
 
-#endif /* __FT_XFREE86_H__ */
+#endif /* __FTXF86_H__ */
--- a/src/base/fttype1.c
+++ b/src/base/fttype1.c
@@ -1,26 +1,46 @@
+/***************************************************************************/
+/*                                                                         */
+/*  fttype1.c                                                              */
+/*                                                                         */
+/*    FreeType utility file for PS names support (body).                   */
+/*                                                                         */
+/*  Copyright 2002 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 <ft2build.h>
 #include FT_INTERNAL_TYPE1_TYPES_H
 #include FT_INTERNAL_OBJECTS_H
 
- /* case a FT_Face to a T1_Face when relevant                           */
- /* this implementation sucks, but a lot of things should change in the */
- /* future anyway..                                                     */
- /*                                                                     */
+
+  /* Cast a FT_Face to a T1_Face if necessary.                           */
+  /* This implementation sucks, but a lot of things should change in the */
+  /* future anyway...                                                    */
+  /*                                                                     */
   static T1_Face
-  t1_face_check_cast( FT_Face   face )
+  t1_face_check_cast( FT_Face  face )
   {
     FT_Module  driver;
     T1_Face    result = NULL;
 
+
     if ( face && face->driver != NULL )
     {
-      driver = (FT_Module) face->driver;
+      driver = (FT_Module)face->driver;
 
       if ( driver->clazz && driver->clazz->module_name &&
            ft_strcmp( driver->clazz->module_name, "type1" ) == 0 )
       {
-        /* correct typecast ! */
-        result = (T1_Face) face;
+        /* correct typecast! */
+        result = (T1_Face)face;
       }
     }
     return result;
@@ -27,9 +47,8 @@
   }
 
 
+  /* documentation is in t1tables.h */
 
- /* documentation is in t1tables.h */
-
   FT_EXPORT_DEF( FT_Error )
   FT_Get_PS_Font_Info( FT_Face          face,
                        PS_FontInfoRec*  afont_info )
@@ -37,38 +56,45 @@
     FT_Error  error   = FT_Err_Invalid_Argument;
     T1_Face   t1_face = t1_face_check_cast( face );
 
+
     if ( t1_face != NULL )
     {
       *afont_info = t1_face->type1.font_info;
-      error = FT_Err_Ok;
+      error       = FT_Err_Ok;
     }
+
     return error;
   }
 
 
- /* XXX: bad hack, but I didn't want to change several drivers here */
+  /* XXX: Bad hack, but I didn't want to change several drivers here. */
 
- /* documentation is in t1tables.h */
+  /* documentation is in t1tables.h */
 
   FT_EXPORT_DEF( FT_Int )
-  FT_Has_PS_Glyph_Names( FT_Face   face )
+  FT_Has_PS_Glyph_Names( FT_Face  face )
   {
     FT_Int       result = 0;
     const char*  driver_name;
 
+
     if ( face && face->driver && face->driver->root.clazz )
     {
-      /* for now, only the type1 and cff drivers provide reliable */
-      /* glyph names...                                           */
+      /* Currently, only the type1 and cff drivers provide reliable */
+      /* glyph names...                                             */
 
-      /* we could probably hack the TrueType driver to recognize  */
-      /* certain cases where the glyph names  are most certainly  */
-      /* correct (e.g. using a 20 or 22 format 'post' table), but */
-      /* this will probably happen later... :-)                   */
+      /* We could probably hack the TrueType driver to recognize    */
+      /* certain cases where the glyph names are most certainly     */
+      /* correct (e.g. using a 20 or 22 format `post' table), but   */
+      /* this will probably happen later...                         */
 
       driver_name = face->driver->root.clazz->module_name;
       result      = ( ft_strcmp( driver_name, "type1" ) ||
                       ft_strcmp( driver_name, "cff"   ) );
     }
+
     return result;
   }
+
+
+/* END */
--- a/src/base/ftxf86.c
+++ b/src/base/ftxf86.c
@@ -1,12 +1,30 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftxf86.c                                                               */
+/*                                                                         */
+/*    FreeType utility file for X11 support (body).                        */
+/*                                                                         */
+/*  Copyright 2002 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 <ft2build.h>
 #include FT_XFREE86_H
 #include FT_INTERNAL_OBJECTS_H
 
- /* XXX: this really is a sad hack, but I didn't want to change every     */
- /*      driver just to support this at the moment, since other important */
- /*      changes are coming anyway !!                                     */
+  /* XXX: This really is a sad hack, but I didn't want to change every     */
+  /*      driver just to support this at the moment, since other important */
+  /*      changes are coming anyway.                                       */
 
-  typedef struct
+  typedef struct  FT_FontFormatRec_
   {
     const char*  driver_name;
     const char*  format_name;
@@ -15,7 +33,7 @@
 
 
   FT_EXPORT_DEF( const char* )
-  FT_Get_X11_Font_Format( FT_Face    face )
+  FT_Get_X11_Font_Format( FT_Face  face )
   {
     static const FT_FontFormatRec  font_formats[] =
     {
@@ -35,12 +53,15 @@
 
     if ( face && face->driver )
     {
-      FT_Module  driver = (FT_Module) face->driver;
+      FT_Module  driver = (FT_Module)face->driver;
 
+
       if ( driver->clazz && driver->clazz->module_name )
       {
-        FT_Int  n, count = sizeof(font_formats)/sizeof(font_formats[0]);
+        FT_Int  n;
+        FT_Int  count = sizeof( font_formats ) / sizeof ( font_formats[0] );
 
+
         result = driver->clazz->module_name;
 
         for ( n = 0; n < count; n++ )
@@ -54,3 +75,6 @@
 
     return result;
   }
+
+
+/* END */
--- a/src/bdf/bdflib.c
+++ b/src/bdf/bdflib.c
@@ -1740,10 +1740,6 @@
         /* the scalable width from the device width.                      */
         FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG9, lineno ));
 
-        ps = (double)font->point_size;
-        rx = (double)font->resolution_x;
-        dw = (double)glyph->dwidth;
-
         glyph->swidth = (unsigned short)FT_MulDiv(
                           glyph->dwidth, 72000L,
                           (FT_Long)( font->point_size *
--- /dev/null
+++ b/src/bdf/descrip.mms
@@ -1,0 +1,23 @@
+#
+# FreeType 2 BDF driver compilation rules for VMS
+#
+
+
+# Copyright 2002 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.
+
+
+CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bdf])
+
+OBJS=bdf.obj
+
+all : $(OBJS)
+        library [--.lib]freetype.olb $(OBJS)
+
+# EOF
--- a/src/pshinter/pshglob.c
+++ b/src/pshinter/pshglob.c
@@ -488,14 +488,14 @@
 
         for ( ; count2 > 0; count2--, zone2++ )
         {
-          FT_Pos   delta;
+          FT_Pos  Delta;
 
 
-          delta = zone1->org_ref - zone2->org_ref;
-          if ( delta < 0 )
-            delta = -delta;
+          Delta = zone1->org_ref - zone2->org_ref;
+          if ( Delta < 0 )
+            Delta = -Delta;
 
-          if ( FT_MulFix( delta, scale ) < 64 )
+          if ( FT_MulFix( Delta, scale ) < 64 )
           {
             zone1->cur_top    = zone2->cur_top;
             zone1->cur_bottom = zone2->cur_bottom;
--- /dev/null
+++ b/src/type42/descrip.mms
@@ -1,0 +1,23 @@
+#
+# FreeType 2 Type 42 driver compilation rules for VMS
+#
+
+
+# Copyright 2002 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.
+
+
+CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type42])
+
+OBJS=t42drivr.obj
+
+all : $(OBJS)
+        library [--.lib]freetype.olb $(OBJS)
+
+# EOF