shithub: freetype+ttf2subf

Download patch

ref: 917a5937802c48e089958b0923d8f9ab2d9d13ff
parent: 2acb963baf4a37f3d388ae6dd20aa83832d70d74
author: Werner Lemberg <[email protected]>
date: Wed Apr 23 03:13:54 EDT 2003

* src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]:
Convert K&R format to modern C usage.
(FT_Stream_OpenGzip): Use long constant.

Cleanups.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-04-22  Werner Lemberg  <[email protected]>
+
+	* src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]:
+	Convert K&R format to modern C usage.
+	(FT_Stream_OpenGzip): Use long constant.
+
 2003-04-21  Werner Lemberg  <[email protected]>
 
 	* src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration
@@ -165,9 +171,10 @@
 
 2003-02-25  David Turner  <[email protected]>
 
-	* src/gzip/ftgzip.c: Fixed a bug that caused FreeType to loop
-	endlessly when trying to read certain compressed gzip files.  The
-	following test could be used to reveal the bug:
+	* src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that
+	caused FreeType to loop endlessly when trying to read certain
+	compressed gzip files.  The following test could be used to reveal
+	the bug:
 
 	  touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
 
@@ -216,7 +223,9 @@
 
 	* src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]:
 	Allow metrics to be overridden.
-	* src/cid/cidgload.c, src/truetype/ttgload.c, src/type1/t1gload.c
+	* src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:
+	Ditto.
+	* src/truetype/ttgload.c, src/type1/t1gload.c
 	[FT_CONFIG_OPTION_INCREMENTAL]:
 	* include/freetype/ftincrem.h: Updated.
 
@@ -311,8 +320,8 @@
 
 2003-01-15  James Su  <[email protected]>
 
-	* src/gzip/ftgzip.c: Bugfix: couldn't read certain gzip-ed font
-	files.
+	* src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read
+	certain gzip-ed font files (typo: `&&' -> `&').
 
 2003-01-15  Huw D M Davies  <[email protected]>
 
@@ -507,12 +516,12 @@
 	* include/freetype/ftgzip.h: Correct the name of the controlling
 	macro (was __FTXF86_H__ ...).
 
-2002-11-27  Vincent Caron <[email protected]>
+2002-11-27  Vincent Caron  <[email protected]>
 
 	* builds/unix/unix-def.in, builds/unix/freetype-config.in,
-	builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c:
-	Adding support for system zlib installations if available on the
-	target platform (Unix only).
+	builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c
+	[FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib
+	installations if available on the target platform (Unix only).
 
 2002-11-23  David Turner  <[email protected]>
 
@@ -618,6 +627,9 @@
 
 2002-10-31  David Turner  <[email protected]>
 
+	* src/gzip/*: New files, taken from the zlib package (except
+	ftgzip.c).
+
 	* include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files, adding
 	support for gzip compressed streams.
 	* include/freetype/config/ftheader.h (FT_GZIP_H): New macro for
@@ -649,7 +661,7 @@
 	* include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
 	(FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
 
-2002-10-22  Giuseppe Ghib� <[email protected]>
+2002-10-22  Giuseppe Ghib�  <[email protected]>
 
 	* include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
 
@@ -3721,7 +3733,7 @@
 	computation of auto-hinted glyphs.  This noticeably improves the
 	spacing of letters in KDE and Gnome.
 
-2001-12-25  Antoine Leca <[email protected]>
+2001-12-25  Antoine Leca  <[email protected]>
 
 	* builds/dos/detect.mk: Correcting the order for Borland compilers:
 	16-bit bcc was never selected, always overridden by 32-bit bcc32.
@@ -3924,7 +3936,7 @@
 	* src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
 	dealing with invalid fonts (i.e. glyph size < 10 bytes).
 
-2001-12-14  Sam Latinga <[email protected]>
+2001-12-14  Sam Latinga  <[email protected]>
 
 	* builds/mac/freetype.make: A new Makefile to build with MPW on
 	MacOS classic.
@@ -4603,7 +4615,7 @@
 	* src/psaux/psobjs.c (T1_Decrypt): Ditto.
 	* src/type1/t1parse.c (T1_Get_Private_Dict): Ditto.
 
-2001-06-28  David Turner <[email protected]>
+2001-06-28  David Turner  <[email protected]>
 
 	* include/internal/ftstream.h: Modified the definitions
 	of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
@@ -4624,7 +4636,7 @@
 	=========================
 
 
-2001-06-27  David Turner <[email protected]>
+2001-06-27  David Turner  <[email protected]>
 
 	* builds/unix/ftconfig.in: Changed the definition of the
 	FT_CALLBACK_DEF macro.
@@ -4653,7 +4665,7 @@
 
 	* debian/*: Added Debian package build directory for 2.0.4.
 
-2001-06-22  David Turner <[email protected]>
+2001-06-22  David Turner  <[email protected]>
 
 	* docs/PATENTS: Added patents disclaimer.  This one was missing!
 
@@ -5137,13 +5149,13 @@
 2001-04-02  Tom Kacvinsky  <[email protected]>
 
 	* src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
-	dereference.  Submitted by Herbert Duerr <[email protected]>
+	dereference.  Submitted by Herbert Duerr <[email protected]>.
 
 2001-03-26  Tom Kacvinsky  <[email protected]>
 
 	* include/freetype/config/ftconfig.h: Changed hexadecimal
 	constants to use suffix U to avoid problems with HP-UX's c89
-	compiler.  Submitted by G.W. Lucas <[email protected]>
+	compiler.  Submitted by G.W. Lucas <[email protected]>.
 
 2001-03-24  David Turner  <[email protected]>
 
@@ -5232,17 +5244,17 @@
 	(cff_get_interface): Added support for getting a glyph name via the
 	"glyph_name" module interface.  Uses the new function
 	get_cff_glyph_name().
-	Submitted by Sander van der Wal <[email protected]>
+	Submitted by Sander van der Wal <[email protected]>.
 
 	* src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with
 	FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is
 	not defined.  This is to add support for getting a glyph name from a
 	glyph index via FT_Get_Glyph_Name().
-	Submitted by Sander van der Wal <[email protected]>
+	Submitted by Sander van der Wal <[email protected]>.
 
 	* src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for
 	deprecated operator "dotsection".
-	Submitted by Sander van der Wal <[email protected]>
+	Submitted by Sander van der Wal <[email protected]>.
 
 2001-03-12  Werner Lemberg  <[email protected]>
 
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    CID-keyed Type1 Glyph Loader (body).                                 */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
+/*  Copyright 1996-2001, 2002, 2003 by                                     */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -158,11 +158,12 @@
 #ifdef FT_CONFIG_OPTION_INCREMENTAL
 
     /* Incremental fonts can optionally override the metrics. */
-    if ( !error                                       &&
-         face->root.internal->incremental_interface   &&
+    if ( !error                                                              &&
+         face->root.internal->incremental_interface                          &&
          face->root.internal->incremental_interface->funcs->get_glyph_metrics )
     {
       FT_Incremental_MetricsRec  metrics;
+
 
       metrics.bearing_x = decoder->builder.left_bearing.x;
 	  metrics.bearing_y = decoder->builder.left_bearing.y;
--- a/src/gzip/ftgzip.c
+++ b/src/gzip/ftgzip.c
@@ -2,13 +2,13 @@
 /*                                                                         */
 /*  ftgzip.c                                                               */
 /*                                                                         */
-/*    FreeType support for .gz compressed fileds                           */
+/*    FreeType support for .gz compressed files.                           */
 /*                                                                         */
 /*  this optional component relies on zlib. It should mainly be used to    */
 /*  parse compressed PCF fonts, as found with many X11 server              */
 /*  distributions.                                                         */
 /*                                                                         */
-/*  Copyright 2002 by                                                      */
+/*  Copyright 2002, 2003 by                                                */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -19,6 +19,7 @@
 /*                                                                         */
 /***************************************************************************/
 
+
 #include <ft2build.h>
 #include FT_INTERNAL_MEMORY_H
 #include FT_INTERNAL_STREAM_H
@@ -29,35 +30,35 @@
 
 #ifdef FT_CONFIG_OPTION_SYSTEM_ZLIB
 
-#  include <zlib.h>
+#include <zlib.h>
 
-#else /* !SYSTEM_ZLIB */
+#else /* !FT_CONFIG_OPTION_SYSTEM_ZLIB */
 
- /* in this case, we include our own modified sources of the ZLib   */
- /* within the "ftgzip" component. The modifications were necessary */
- /* to #include all files without conflicts, as well as preventing  */
- /* the definition of "extern" functions that may cause linking     */
- /* conflicts when a program is linked with both FreeType and the   */
- /* original ZLib                                                   */
+ /* In this case, we include our own modified sources of the ZLib    */
+ /* within the "ftgzip" component.  The modifications were necessary */
+ /* to #include all files without conflicts, as well as preventing   */
+ /* the definition of "extern" functions that may cause linking      */
+ /* conflicts when a program is linked with both FreeType and the    */
+ /* original ZLib.                                                   */
 
-#  define  NO_DUMMY_DECL
-#  define  BUILDFIXED    /* save code size */
-#  define  MY_ZCALLOC
+#define NO_DUMMY_DECL
+#define BUILDFIXED    /* save code size */
+#define MY_ZCALLOC
 
-#  include "zlib.h"
+#include "zlib.h"
 
-#    undef   SLOW
-#    define  SLOW  1  /* we can't use asm-optimized sources here !! */
+#undef  SLOW
+#define SLOW  1  /* we can't use asm-optimized sources here !! */
 
-#    include "zutil.c"
-#    include "inftrees.c"
-#    include "infcodes.c"
-#    include "infutil.c"
-#    include "infblock.c"
-#    include "inflate.c"
-#    include "adler32.c"
+#include "zutil.c"
+#include "inftrees.c"
+#include "infcodes.c"
+#include "infutil.c"
+#include "infblock.c"
+#include "inflate.c"
+#include "adler32.c"
 
-#endif /* !SYSTEM_ZLIB */
+#endif /* !FT_CONFIG_OPTION_SYSTEM_ZLIB */
 
 
 /***************************************************************************/
@@ -68,48 +69,48 @@
 /***************************************************************************/
 /***************************************************************************/
 
- /* it's better to use FreeType memory routines instead of raw 'malloc/free' */
+  /* it is better to use FreeType memory routines instead of raw
+     'malloc/free' */
 
+  static voidpf
+  ft_gzip_alloc( FT_Memory  memory,
+                 uInt       items,
+                 uInt       size )
+  {
+    FT_ULong    sz = (FT_ULong)size * items;
+    FT_Pointer  p;
 
- static voidpf
- ft_gzip_alloc( FT_Memory  memory,
-                uInt       items,
-                uInt       size )
- {
-   FT_ULong    sz = (FT_ULong)size * items;
-   FT_Pointer  p;
 
-   FT_MEM_ALLOC( p, sz );
+    FT_MEM_ALLOC( p, sz );
 
-   return (voidpf) p;
- }
+    return (voidpf) p;
+  }
 
 
- static void
- ft_gzip_free( FT_Memory  memory,
-               voidpf     address )
- {
-   FT_MEM_FREE( address );
- }
+  static void
+  ft_gzip_free( FT_Memory  memory,
+                voidpf     address )
+  {
+    FT_MEM_FREE( address );
+  }
 
 
 #ifndef FT_CONFIG_OPTION_SYSTEM_ZLIB
 
- local voidpf
- zcalloc ( /* opaque, items, size) */
-    voidpf opaque,
-    unsigned items,
-    unsigned size )
- {
-   return ft_gzip_alloc( opaque, items, size );
- }
+  local voidpf
+  zcalloc ( voidpf    opaque,
+            unsigned  items,
+            unsigned  size )
+  {
+    return ft_gzip_alloc( opaque, items, size );
+  }
 
- local void
- zcfree( voidpf  opaque,
-         voidpf  ptr )
- {
-   ft_gzip_free( opaque, ptr );
- }
+  local void
+  zcfree( voidpf  opaque,
+          voidpf  ptr )
+  {
+    ft_gzip_free( opaque, ptr );
+  }
 
 #endif /* !SYSTEM_ZLIB */
 
@@ -124,25 +125,25 @@
 
 #define  FT_GZIP_BUFFER_SIZE          4096
 
-  typedef struct FT_GZipFileRec_
+  typedef struct  FT_GZipFileRec_
   {
-    FT_Stream    source;         /* parent/source stream        */
-    FT_Stream    stream;         /* embedding stream            */
-    FT_Memory    memory;         /* memory allocator            */
-    z_stream     zstream;        /* zlib input stream           */
+    FT_Stream  source;         /* parent/source stream        */
+    FT_Stream  stream;         /* embedding stream            */
+    FT_Memory  memory;         /* memory allocator            */
+    z_stream   zstream;        /* zlib input stream           */
 
-    FT_ULong     start;          /* starting position, after .gz header */
-    FT_Byte      input[ FT_GZIP_BUFFER_SIZE ];  /* input read buffer */
+    FT_ULong   start;          /* starting position, after .gz header */
+    FT_Byte    input[FT_GZIP_BUFFER_SIZE];  /* input read buffer */
 
-    FT_Byte      buffer[ FT_GZIP_BUFFER_SIZE ];  /* output buffer      */
-    FT_ULong     pos;                            /* position in output */
-    FT_Byte*     cursor;
-    FT_Byte*     limit;
+    FT_Byte    buffer[FT_GZIP_BUFFER_SIZE];  /* output buffer      */
+    FT_ULong   pos;                          /* position in output */
+    FT_Byte*   cursor;
+    FT_Byte*   limit;
 
   } FT_GZipFileRec, *FT_GZipFile;
 
 
-/* gzip flag byte */
+  /* gzip flag byte */
 #define FT_GZIP_ASCII_FLAG   0x01 /* bit 0 set: file probably ascii text */
 #define FT_GZIP_HEAD_CRC     0x02 /* bit 1 set: header CRC present */
 #define FT_GZIP_EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
@@ -151,7 +152,7 @@
 #define FT_GZIP_RESERVED     0xE0 /* bits 5..7: reserved */
 
 
- /* check and skip .gz header - we don't support "transparent" compression */
+  /* check and skip .gz header - we don't support "transparent" compression */
   static FT_Error
   ft_gzip_check_header( FT_Stream  stream )
   {
@@ -158,11 +159,12 @@
     FT_Error  error;
     FT_Byte   head[4];
 
+
     if ( FT_STREAM_SEEK( 0 )       ||
          FT_STREAM_READ( head, 4 ) )
       goto Exit;
 
-    /* head[0] && head[1] are the magic numbers     */
+    /* head[0] && head[1] are the magic numbers;    */
     /* head[2] is the method, and head[3] the flags */
     if ( head[0] != 0x1f              ||
          head[1] != 0x8b              ||
@@ -181,6 +183,7 @@
     {
       FT_UInt  len;
 
+
       if ( FT_READ_USHORT_LE( len ) ||
            FT_STREAM_SKIP( len )    )
         goto Exit;
@@ -192,7 +195,8 @@
       {
         FT_UInt  c;
 
-        if ( FT_READ_BYTE( c) )
+
+        if ( FT_READ_BYTE( c ) )
           goto Exit;
 
         if ( c == 0 )
@@ -205,7 +209,8 @@
       {
         FT_UInt  c;
 
-        if ( FT_READ_BYTE( c) )
+
+        if ( FT_READ_BYTE( c ) )
           goto Exit;
 
         if ( c == 0 )
@@ -222,15 +227,15 @@
   }
 
 
-
   static FT_Error
-  ft_gzip_file_init( FT_GZipFile   zip,
-                     FT_Stream     stream,
-                     FT_Stream     source )
+  ft_gzip_file_init( FT_GZipFile  zip,
+                     FT_Stream    stream,
+                     FT_Stream    source )
   {
     z_stream*  zstream = &zip->zstream;
     FT_Error   error   = 0;
 
+
     zip->stream = stream;
     zip->source = source;
     zip->memory = stream->memory;
@@ -244,7 +249,7 @@
       stream = source;
 
       error = ft_gzip_check_header( stream );
-      if (error)
+      if ( error )
         goto Exit;
 
       zip->start = FT_STREAM_POS();
@@ -270,7 +275,6 @@
   }
 
 
-
   static void
   ft_gzip_file_done( FT_GZipFile  zip )
   {
@@ -299,10 +303,12 @@
     FT_Stream  stream = zip->source;
     FT_Error   error;
 
+
     if ( !FT_STREAM_SEEK( zip->start ) )
     {
       z_stream*  zstream = &zip->zstream;
 
+
       inflateReset( zstream );
 
       zstream->avail_in  = 0;
@@ -325,9 +331,11 @@
     FT_Stream  stream  = zip->source;
     FT_ULong   size;
 
+
     if ( stream->read )
     {
-      size = stream->read( stream, stream->pos, zip->input, FT_GZIP_BUFFER_SIZE );
+      size = stream->read( stream, stream->pos, zip->input,
+                           FT_GZIP_BUFFER_SIZE );
       if ( size == 0 )
         return FT_Err_Invalid_Stream_Operation;
     }
@@ -338,7 +346,7 @@
         size = FT_GZIP_BUFFER_SIZE;
 
       if ( size == 0 )
-       return FT_Err_Invalid_Stream_Operation;
+        return FT_Err_Invalid_Stream_Operation;
 
       FT_MEM_COPY( zip->input, stream->base + stream->pos, size );
     }
@@ -351,7 +359,6 @@
   }
 
 
-
   static FT_Error
   ft_gzip_file_fill_output( FT_GZipFile  zip )
   {
@@ -358,6 +365,7 @@
     z_stream*  zstream = &zip->zstream;
     FT_Error   error   = 0;
 
+
     zip->cursor        = zip->buffer;
     zstream->next_out  = zip->cursor;
     zstream->avail_out = FT_GZIP_BUFFER_SIZE;
@@ -366,6 +374,7 @@
     {
       int  err;
 
+
       if ( zstream->avail_in == 0 )
       {
         error = ft_gzip_file_fill_input( zip );
@@ -391,7 +400,7 @@
   }
 
 
- /* fill output buffer, 'count' must be <= FT_GZIP_BUFFER_SIZE */
+  /* fill output buffer; `count' must be <= FT_GZIP_BUFFER_SIZE */
   static FT_Error
   ft_gzip_file_skip_output( FT_GZipFile  zip,
                             FT_ULong     count )
@@ -399,6 +408,7 @@
     FT_Error   error   = 0;
     FT_ULong   delta;
 
+
     for (;;)
     {
       delta = (FT_ULong)( zip->limit - zip->cursor );
@@ -422,20 +432,22 @@
 
 
   static FT_ULong
-  ft_gzip_file_io( FT_GZipFile   zip,
-                   FT_ULong      pos,
-                   FT_Byte*      buffer,
-                   FT_ULong      count )
+  ft_gzip_file_io( FT_GZipFile  zip,
+                   FT_ULong     pos,
+                   FT_Byte*     buffer,
+                   FT_ULong     count )
   {
-    FT_ULong   result = 0;
-    FT_Error   error;
+    FT_ULong  result = 0;
+    FT_Error  error;
 
-    /* reset inflate stream if we're seeking backwards        */
-    /* yes, that's not too efficient, but it saves memory :-) */
+
+    /* Reset inflate stream if we're seeking backwards.        */
+    /* Yes, that is not too efficient, but it saves memory :-) */
     if ( pos < zip->pos )
     {
       error = ft_gzip_file_reset( zip );
-      if ( error ) goto Exit;
+      if ( error )
+        goto Exit;
     }
 
     /* skip unwanted bytes */
@@ -442,7 +454,7 @@
     if ( pos > zip->pos )
     {
       error = ft_gzip_file_skip_output( zip, (FT_ULong)( pos - zip->pos ) );
-      if (error)
+      if ( error )
         goto Exit;
     }
 
@@ -452,8 +464,9 @@
     /* now read the data */
     for (;;)
     {
-      FT_ULong   delta;
+      FT_ULong  delta;
 
+
       delta = (FT_ULong)( zip->limit - zip->cursor );
       if ( delta >= count )
         delta = count;
@@ -469,7 +482,7 @@
         break;
 
       error = ft_gzip_file_fill_output( zip );
-      if (error)
+      if ( error )
         break;
     }
 
@@ -492,6 +505,7 @@
     FT_GZipFile  zip    = stream->descriptor.pointer;
     FT_Memory    memory = stream->memory;
 
+
     if ( zip )
     {
       /* finalize gzip file descriptor */
@@ -505,25 +519,27 @@
 
 
   static FT_ULong
-  ft_gzip_stream_io( FT_Stream   stream,
-                     FT_ULong    pos,
-                     FT_Byte*    buffer,
-                     FT_ULong    count )
+  ft_gzip_stream_io( FT_Stream  stream,
+                     FT_ULong   pos,
+                     FT_Byte*   buffer,
+                     FT_ULong   count )
   {
     FT_GZipFile  zip = stream->descriptor.pointer;
 
+
     return ft_gzip_file_io( zip, pos, buffer, count );
   }
 
 
   FT_EXPORT_DEF( FT_Error )
-  FT_Stream_OpenGzip( FT_Stream    stream,
-                      FT_Stream    source )
+  FT_Stream_OpenGzip( FT_Stream  stream,
+                      FT_Stream  source )
   {
     FT_Error     error;
     FT_Memory    memory = source->memory;
     FT_GZipFile  zip;
 
+
     FT_ZERO( stream );
     stream->memory = memory;
 
@@ -539,7 +555,7 @@
       stream->descriptor.pointer = zip;
     }
 
-     stream->size = 0x7FFFFFFF;  /* don't know the real size !! */
+    stream->size  = 0x7FFFFFFFL;  /* don't know the real size! */
     stream->pos   = 0;
     stream->base  = 0;
     stream->read  = ft_gzip_stream_io;
@@ -552,8 +568,8 @@
 #else  /* !FT_CONFIG_OPTION_USE_ZLIB */
 
   FT_EXPORT_DEF( FT_Error )
-  FT_Stream_OpenGzip( FT_Stream    stream,
-                      FT_Stream    source )
+  FT_Stream_OpenGzip( FT_Stream  stream,
+                      FT_Stream  source )
   {
     FT_UNUSED( stream );
     FT_UNUSED( source );
@@ -562,3 +578,6 @@
   }
 
 #endif /* !FT_CONFIG_OPTION_USE_ZLIB */
+
+
+/* END */