shithub: freetype+ttf2subf

Download patch

ref: ac812959bbe118d512d955d6d9b6a2f54c4b5522
parent: f7f82d773b7eac9e5b570a3b64bd0325b0beb62c
author: Werner Lemberg <[email protected]>
date: Sun Jan 6 11:42:44 EST 2002

formatting

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,23 +1,25 @@
 2002-01-05  David Turner  <[email protected]>
 
-	* src/autohint/ahhint.c: modified computation of auto-hinted stem
-	widths, this avoids color fringes in "ClearType-like" rendering
-	
-	* src/truetype/ttgload.c: modified the TrueType loader to make it
-	more paranoid, this avoids nasty buffer overflows in the case of
-	invalid glyph data (as encountered in the output of some buggy
-	font converters..)
+	* src/autohint/ahhint.c (ah_align_linked_edge): Modified computation
+	of auto-hinted stem widths; this avoids color fringes in
+	"ClearType-like" rendering.
 
+	* src/truetype/ttgload.c (TT_Load_Glyph_Header,
+	TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph):
+	Modified the TrueType loader to make it more paranoid; this avoids
+	nasty buffer overflows in the case of invalid glyph data (as
+	encountered in the output of some buggy font converters).
+
 2002-01-04  David Turner  <[email protected]>
 
-	* README.UNX: added special README file for Unix users
+	* README.UNX: Added special README file for Unix users.
 
-	* builds/unix/ftsystem.c (FT_New_Stream): fixed typo
-	
-	* src/base/ftobjs.c: added #include FT_OUTLINE_H to get rid
-	of compiler warnings
-	
-	* src/base/ftoutln.c (FT_Outline_Check): remove compiler warning
+	* builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
+
+	* src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
+	of compiler warnings.
+
+	* src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
 
 2002-01-03  Werner Lemberg  <[email protected]>
 
--- a/README
+++ b/README
@@ -2,20 +2,22 @@
   Special note to Unix users
   ==========================
 
-  Please read the file "README.UNX", it contains important information
-  regarding the installation of FreeType on Unix systems, especially
-  GNU based operating systems like GNU/Linux.
+  Please   read  the  file   "README.UNX",  it   contains  important
+  information  regarding  the   installation  of  FreeType  on  Unix
+  systems, especially GNU based operating systems like GNU/Linux.
 
 
   FreeType 2.0.6
   ==============
 
-  Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION.
+  Please   read  the  docs/CHANGES   file,  it   contains  IMPORTANT
+  INFORMATION.
 
-  Read the files "INSTALL" or "docs/BUILD" for installation instructions.
+  Read  the   files  "INSTALL"  or   "docs/BUILD"  for  installation
+  instructions.
 
-  Note that the FreeType 2 documentation is now available as a separate
-  package from our sites.  See:
+  Note  that the  FreeType 2  documentation  is now  available as  a
+  separate package from our sites.  See:
 
     ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.0.6.tar.bz2
     ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.0.6.tar.gz
--- a/README.UNX
+++ b/README.UNX
@@ -1,109 +1,104 @@
-SPECIAL NOTE FOR UNIX USERS:
-============================
 
-  If you're installing this release of FreeType on a system that
-  already uses release 2.0.5 (or even an older version), you'll
-  need to perform a few special steps to ensure that everything
-  goes well:
-  
-  
-  I. Enable the TrueType bytecode hinter if you need it:
-  ------------------------------------------------------
-  
-    The TrueType bytecode interpreter is disabled in all
-    public releases of the FreeType packages for patents
-    reasons (see www.freetype.org/patents.html for more
-    details).
+SPECIAL NOTE FOR UNIX USERS
+===========================
+
+  If  you are installing  this release  of FreeType  on a  system that
+  already uses release  2.0.5 (or even an older  version), you have to
+  perform a few special steps to ensure that everything goes well.
+
+
+  I. Enable the TrueType bytecode hinter if you need it
+  -----------------------------------------------------
+
+    The  TrueType  bytecode  interpreter  is disabled  in  all  public
+    releases  of  the  FreeType  packages  for  patents  reasons  (see
+    http://www.freetype.org/patents.html for more details).
     
-    However, many Linux distributions do enable the
-    interpreter in the FreeType packages (DEB/RPM/etc..) they
-    produce for their platforms. If you're using TrueType fonts
-    on your system, you'll most probably want to enable it
-    manually by doing the following:
+    However, many Linux distributions do enable the interpreter in the
+    FreeType packages (DEB/RPM/etc.) they produce for their platforms.
+    If you are using TrueType  fonts on your system, you most probably
+    want to enable it manually by doing the following:
     
       - open the file "include/freetype/config/ftoption.h"
       
       - locate a line that says:
       
-          #undef  TT_CONFIG_OPTION_BYTECODE_ITNERPRETER
+          #undef TT_CONFIG_OPTION_BYTECODE_ITNERPRETER
 
       - change it to:
 
           #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
 
-    of course, this must be done _before_ compiling the
-    library
+    of course, this must be done _before_ compiling the library
 
 
-  II. Determine the correct installation path:
-  --------------------------------------------
+  II. Determine the correct installation path
+  -------------------------------------------
   
-    By default, the source package will install the library
-    in "/usr/local". However, many Unix distributions now
-    install the library in "/usr", since FreeType is becoming
-    a critical system component
+    By  default,  the  source  package  will install  the  library  in
+    "/usr/local".   However, many Unix  distributions now  install the
+    library in  "/usr", since FreeType  is becoming a  critical system
+    component.
 
-
     If FreeType is already installed on your system, type
     
-       freetype-config --prefix
+      freetype-config --prefix
        
-    on the command line. This should return the installation
-    path to use below (e.g. "/usr" or "/usr/local"). Otherwise,
-    simply use "/usr"
+    on the command line.  This  should return the installation path to
+    use below  (e.g. "/usr"  or "/usr/local").  Otherwise,  simply use
+    "/usr".
+
+    Then, to build and install the library, type:
     
+      make setup unix CFG="--prefix=<yourprefix>"
+      make
+      make install            (as root)
     
-    then, to build and install the library, type:
-    
-       make setup unix CFG="--prefix=<yourprefix>"
-       make
-       make install            (as root)
-    
-    where "<yourprefix>" must be replaced by the prefix returned
-    by the "freetype-config" command.
+    where "<yourprefix>"  must be replaced  by the prefix  returned by
+    the "freetype-config" command.
 
 
-  III. Take care of XFree86 4:
-  ----------------------------
+  III. Take care of XFree86 version 4
+  -----------------------------------
   
-    Certain recent Linux distributions will install _several_
-    versions of FreeType on your system.. For example, on a
-    fresh Mandrake 8.1 system, you'll find the following files:
+    Certain recent Linux distributions will install _several_ versions
+    of FreeType on your system.   For example, on a fresh Mandrake 8.1
+    system, you can find the following files:
     
-       /usr/lib/libfreetype.so             which links to
-       /usr/lib/libfreetype.6.1.0.so
+      /usr/lib/libfreetype.so             which links to
+      /usr/lib/libfreetype.6.1.0.so
     
-    and:
+    and
     
-       /usr/X11R6/lib/libfreetype.so       which links to
-       /usr/X11R6/lib/libfreetype.6.0.so
+      /usr/X11R6/lib/libfreetype.so       which links to
+      /usr/X11R6/lib/libfreetype.6.0.so
     
-    note that these files correspond to two distinct versions of
-    the library ! It seems that this surprising issue is due to
-    the install scripts of recent XFree86 servers (from 4.1.0)
-    which irremediably install their own (dated) version of
-    the library in "/usr/X11R6/lib"
+    Note that these  files correspond to two distinct  versions of the
+    library!   It seems  that  this  surprising issue  is  due to  the
+    install  scripts  of recent  XFree86  servers  (from 4.1.0)  which
+    irremediably install  their own (dated) version of  the library in
+    "/usr/X11R6/lib".
     
-    In certain _rare_ cases, you may experience minor problems if
-    you install this release of the library in "/usr" only, namely,
-    that certain applications will not benefit from the bug fixes
-    and rendering improvements you'd expect..
+    In certain _rare_  cases you may experience minor  problems if you
+    install this release  of the library in "/usr"  only, namely, that
+    certain  applications will  not  benefit from  the  bug fixes  and
+    rendering improvements you'd expect.
     
-    There are two good ways to deal with such nasty systems:
+    There are two good ways to deal with this situation:
     
-      - install the library _twice_, in "/usr" and in "/usr/X11R6"
-        (you'll need to do that each time you install a new
-	 FreeType release though)
+      - Install  the library  _twice_, in  "/usr" and  in "/usr/X11R6"
+        (you  have to do  that each  time you  install a  new FreeType
+        release though).
       
-      - change the link in /usr/X11R6/lib/libfreetype.so to point
-        to /usr/lib/libfreetype.so, and get rid of
-	/usr/X11R6/lib/libfreetype.6.0.so
+      - Change the link in /usr/X11R6/lib/libfreetype.so to point to
 
+          /usr/lib/libfreetype.so,
 
-    The FreeType Team is not responsible for this mess, so please contact
-    either the XFree86 development team or your Linux distributor to help
-    clear this issue.., or if the above information doesn't help..
+        and get rid of
 
+          /usr/X11R6/lib/libfreetype.6.0.so
 
-
-        
\ No newline at end of file
+    The FreeType Team  is not responsible for this  problem, so please
+    contact  either  the  XFree86   development  team  or  your  Linux
+    distributor to help clear this issue in case the information given
+    here doesn't help.
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -240,6 +240,7 @@
     FT_Stream   stream   = loader->stream;
     FT_Int      byte_len = loader->byte_len - 10;
 
+
     if ( byte_len < 0 )
       return TT_Err_Invalid_Outline;
 
@@ -281,8 +282,9 @@
       short*  cur   = gloader->current.outline.contours;
       short*  limit = cur + n_contours;
 
-      /* check room for contours array + instructions count */
-      byte_len -= 2*(n_contours+1);
+
+      /* check space for contours array + instructions count */
+      byte_len -= 2 * ( n_contours + 1 );
       if ( byte_len < 0 )
         goto Invalid_Outline;
 
@@ -376,12 +378,12 @@
       {
         if ( *flag & 2 )
           byte_len -= 1;
-        else if ( (*flag & 16) == 0 )
+        else if ( ( *flag & 16 ) == 0 )
           byte_len -= 2;
 
         if ( *flag & 4 )
           byte_len -= 1;
-        else if ( (*flag & 32) == 0 )
+        else if ( ( *flag & 32 ) == 0 )
           byte_len -= 2;
       }
 
@@ -389,7 +391,6 @@
         goto Invalid_Outline;
     }
 
-
     /* reading the X coordinates */
 
     {
@@ -487,7 +488,7 @@
       if ( error )
         goto Fail;
 
-      /* check room */
+      /* check space */
       byte_len -= 4;
       if ( byte_len < 0 )
         goto Invalid_Composite;
@@ -499,7 +500,7 @@
       subglyph->flags = GET_UShort();
       subglyph->index = GET_UShort();
 
-      /* check room */
+      /* check space */
       byte_len -= 2;
       if ( subglyph->flags & ARGS_ARE_WORDS )
         byte_len -= 2;
@@ -823,7 +824,7 @@
       goto Exit;
     }
 
-    loader->byte_len = (FT_Int) count;
+    loader->byte_len = (FT_Int)count;
 
 #if 0
     /* temporary hack */