shithub: freetype+ttf2subf

Download patch

ref: 8c90c22dbe0b89970f0fb878117c3c2a5e2e214c
parent: 5a2f39e8ed1708c9a75b1462e4a037751bd95d8a
author: Werner Lemberg <[email protected]>
date: Sat Jun 8 02:47:18 EDT 2002

* src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
[FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
Fix debugging messages.

* src/type42/t42error.h: New file.
* src/type42/t42drivr.c, src/type42/t42objs.c,
src/type42/t42parse.c: Use t42 error codes.
* src/type42/rules.mk: Updated.

* src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.

Formatting, adding copyright messages.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,27 +1,113 @@
+2002-06-08  Werner Lemberg  <[email protected]>
+
+	* src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
+	[FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
+	Fix debugging messages.
+
+	* src/type42/t42error.h: New file.
+	* src/type42/t42drivr.c, src/type42/t42objs.c,
+	src/type42/t42parse.c: Use t42 error codes.
+	* src/type42/rules.mk: Updated.
+
+	* src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
+
+2002-06-08  David Turner  <[email protected]>
+
+	* src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
+	GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
+	New macros.
+	(ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
+	ftc_cache_lookup.
+	(FTC_CMapCache_Lookup): Updated.
+
 2002-06-07  Graham Asher  <[email protected]>
 
-        * include/freetype/cache/ftccache.h, src/cache/ftccache.c,
-          src/cache/ftccache.i, src/cache/ftcsbits.c: adding various
-          experimental optimisations to the cache manager
+	Adding various experimental optimizations to the cache manager.
 
-        * src/type42/t42parse.c: removing duplicate function
+	* include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE,
+	FTC_CACHE_USE_LINEAR_HASHING): New options.
+	(FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p',
+	`mask', and `slack'.
 
-        * src/base/ftobjs.c (FT_Render_Glyph_Internal): changed definition
-          from FT_EXPORT_DEF to FT_BASE_DEF
+	* src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD,
+	FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING,
+	FTC_HASH_INITIAL_SIZE]: New macros.
+	(ftc_node_mru_link, ftc_node_mru_up): Optimized.
+	(ftc_node_hash_unlink, ftc_node_hash_link)
+	[FTC_CACHE_USE_LINEAR_HASHING]: New variants.
+	(FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest,
+	FTC_CACHE_RESIZE_TEST, ftc_cache_resize)
+	[!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally.
+	(ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]:
+	Updated.
+	(ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
 
-2002-06-07  David Turner   <[email protected]>
+	* src/cache/ftccache.i: New file.
 
-        * src/type42/t42drivr.c, src/type42/t42drivr.h, src/type42/t42parse.c,
-          src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
-          src/type42/type42.c:
+	* src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
+	GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
+	New macros.
+	(ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
+	ftc_cache_lookup.
+	(FTC_SBitCache_Lookup): Updated.
 
-            updated the Type42 driver by splitting it into several files since
-            it makes the code easier to read and maintain. Also fixed the bug
-            that prevented the correct display of fonts with "ftview"
+	* src/type42/t42parse.c: Removing duplicate function.
 
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
+	from FT_EXPORT_DEF to FT_BASE_DEF.
+
+2002-06-07  David Turner  <[email protected]>
+
+	Fixed the bug that prevented the correct display of fonts with
+	"ftview".
+
+	* src/type42/t42drivr.c: Split into...
+	* src/type42/t42drivr.h, src/type42/t42parse.c,
+	src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
+	src/type42/type42.c: New files.
+
+	(t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
+	`face->type1'.
+
+	(Get_Interface): Renamed to...
+	(T42_Get_Interface): This.
+	Updated.
+	(T42_Open_Face, T42_Face_Done): Updated.
+	(T42_Face_Init): Add new cmap support.
+	Updated.
+	(T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done,
+	T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated.
+	(Get_Char_Index, Get_Next_Char): Renamed to...
+	(T42_CMap_CharIndex, T42_CMap_CharNext): This.
+	Updated.
+	(T42_Char_Size, T42_Pixel_Size): Renamed to...
+	(T42_Size_SetChars, T42_Size_SetPixels): This.
+	(T42_Load_Glyph): Renamed to...
+	(T42_GlyphSlot_Load): This.
+
+	(t42_init_loader, t42_done_loader): Renamed to...
+	(t42_loader_init, t42_loader_done): This.
+	(T42_New_Parser, T42_Finalize_Parser): Renamed to...
+	(t42_parser_init, t42_parser_done): This.
+	(parse_dict): Renamed to...
+	(t42_parse_dict): This.
+	(is_alpha, is_space, hexval): Renamed to...
+	(t42_is_alpha, t42_is_space, t42_hexval): This.
+	(parse_font_name, parse_font_bbox, parse_font_matrix,
+	parse_encoding, parse_sfnts, parse_charstrings, parse_dict):
+	Renamed to...
+	(t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix,
+	t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings,
+	t42_parse_dict): This.
+	Updated.
+
+	(t42_keywords): Updated.
+
+	* src/type42/Jamfile, src/type42/descrip.mms: Updated.
+
 2002-06-03  Werner Lemberg  <[email protected]>
 
-	Add 8bpp support.
+	Add 8bpp support to BDF driver.
 
 	* src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
 	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
--- a/include/freetype/cache/ftccache.h
+++ b/include/freetype/cache/ftccache.h
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType internal cache interface (specification).                   */
 /*                                                                         */
-/*  Copyright 2000-2001 by                                                 */
+/*  Copyright 2000-2001, 2002 by                                           */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -25,6 +25,7 @@
 
 /* define to use linear hash table */
 #define  FTC_CACHE_USE_LINEAR_HASHING
+
 
 FT_BEGIN_HEADER
 
--- a/src/base/ftnames.c
+++ b/src/base/ftnames.c
@@ -22,6 +22,7 @@
 #include <ft2build.h>
 #include FT_SFNT_NAMES_H
 #include FT_INTERNAL_TRUETYPE_TYPES_H
+#include FT_INTERNAL_STREAM_H
 
 
 #ifdef TT_CONFIG_OPTION_SFNT_NAMES
--- a/src/cache/ftccache.c
+++ b/src/cache/ftccache.c
@@ -26,12 +26,12 @@
 
 #ifdef FTC_CACHE_USE_LINEAR_HASHING
 
-#define  FTC_HASH_MAX_LOAD  2
-#define  FTC_HASH_MIN_LOAD  1
-#define  FTC_HASH_SUB_LOAD  (FTC_HASH_MAX_LOAD-FTC_HASH_MIN_LOAD)
+#define FTC_HASH_MAX_LOAD  2
+#define FTC_HASH_MIN_LOAD  1
+#define FTC_HASH_SUB_LOAD  ( FTC_HASH_MAX_LOAD - FTC_HASH_MIN_LOAD )
 
-/* this one _must_ be a power of 2 !! */
-#define  FTC_HASH_INITIAL_SIZE  8
+/* this one _must_ be a power of 2! */
+#define FTC_HASH_INITIAL_SIZE  8
 
 #endif /* FTC_CACHE_USE_LINEAR_HASHING */
 
@@ -72,6 +72,7 @@
     {
       FTC_Node  last = first->mru_prev;
 
+
       FT_ASSERT( last->mru_next == first );
 
       node->mru_prev = last;
@@ -102,6 +103,7 @@
     FTC_Node  prev  = node->mru_prev;
     FTC_Node  next  = node->mru_next;
 
+
     FT_ASSERT( first != NULL && manager->num_nodes > 0 );
     FT_ASSERT( next->mru_prev == node );
     FT_ASSERT( prev->mru_next == node );
@@ -111,6 +113,7 @@
 
     if ( node == first )
     {
+      /* this is the last node in the list; update its head pointer */
       if ( node == next )
         manager->nodes_list = NULL;
       else
@@ -137,6 +140,7 @@
       FTC_Node  next = node->mru_next;
       FTC_Node  last;
 
+
       prev->mru_next = next;
       next->mru_prev = prev;
 
@@ -162,9 +166,10 @@
     FTC_Node  *pnode;
     FT_UInt    index, num_buckets;
 
+  
     index = (FT_UInt)( node->hash & cache->mask );
     if ( index < cache->p )
-      index = (FT_UInt)( node->hash & (2*cache->mask+1) );
+      index = (FT_UInt)( node->hash & ( 2 * cache->mask + 1 ) );
 
     pnode = cache->buckets + index;
 
@@ -172,8 +177,8 @@
     {
       if ( *pnode == NULL )
       {
-        FT_ERROR(( "FreeType.cache.hash_unlink: unknown node!\n" ));
-        return 0;
+        FT_ERROR(( "ftc_node_hash_unlink: unknown node!\n" ));
+        return FT_Err_Ok;
       }
 
       if ( *pnode == node )
@@ -186,9 +191,9 @@
       pnode = &(*pnode)->link;
     }
 
-    num_buckets = ( cache->p + cache->mask + 1) ;
+    num_buckets = ( cache->p + cache->mask + 1 );
 
-    if ( ++ cache->slack > (FT_Long)num_buckets*FTC_HASH_SUB_LOAD )
+    if ( ++cache->slack > (FT_Long)num_buckets * FTC_HASH_SUB_LOAD )
     {
       FT_UInt    p         = cache->p;
       FT_UInt    mask      = cache->mask;
@@ -195,6 +200,7 @@
       FT_UInt    old_index = p + mask;
       FTC_Node*  pold;
 
+
       FT_ASSERT( old_index >= FTC_HASH_INITIAL_SIZE );
 
       if ( p == 0 )
@@ -205,9 +211,9 @@
         cache->mask >>= 1;
         p             = cache->mask;
 
-        if ( FT_RENEW_ARRAY( cache->buckets, (mask+1)*2, (mask) ) )
+        if ( FT_RENEW_ARRAY( cache->buckets, ( mask + 1 ) * 2, mask ) )
         {
-          FT_ERROR(( "FreeType.cache.hash_unlink: couldn't shunk buckets !\n" ));
+          FT_ERROR(( "ftc_node_hash_unlink: couldn't shunk buckets!\n" ));
           goto Exit;
         }
       }
@@ -239,6 +245,7 @@
   {
     FTC_Node  *pnode = cache->buckets + ( node->hash % cache->size );
 
+
     for (;;)
     {
       if ( *pnode == NULL )
@@ -274,9 +281,10 @@
     FT_UInt    index;
     FT_Error   error = 0;
 
+
     index = (FT_UInt)( node->hash & cache->mask );
     if ( index < cache->p )
-      index = (FT_UInt)( node->hash & (2*cache->mask+1) );
+      index = (FT_UInt)( node->hash & (2 * cache->mask + 1 ) );
 
     pnode = cache->buckets + index;
 
@@ -289,9 +297,11 @@
       FT_UInt    mask  = cache->mask;
       FTC_Node   new_list;
 
+
       /* split a single bucket */
       new_list = NULL;
       pnode    = cache->buckets + p;
+
       for (;;)
       {
         node = *pnode;
@@ -298,7 +308,7 @@
         if ( node == NULL )
           break;
 
-        if ( node->hash & (mask+1) )
+        if ( node->hash & ( mask + 1 ) )
         {
           *pnode     = node->link;
           node->link = new_list;
@@ -308,7 +318,7 @@
           pnode = &node->link;
       }
 
-      cache->buckets[ p + mask + 1 ] = new_list;
+      cache->buckets[p + mask + 1] = new_list;
 
       cache->slack += FTC_HASH_MAX_LOAD;
 
@@ -317,13 +327,14 @@
         FT_Memory  memory = cache->memory;
 
 
-        if ( FT_RENEW_ARRAY( cache->buckets, (mask+1)*2, (mask+1)*4 ) )
+        if ( FT_RENEW_ARRAY( cache->buckets,
+                             ( mask + 1 ) * 2, ( mask + 1 ) * 4 ) )
         {
-          FT_ERROR(( "FreeType.cache.hash_unlink: couldn't expand buckets !\n" ));
+          FT_ERROR(( "ftc_node_hash_link: couldn't expand buckets!\n" ));
           goto Exit;
         }
 
-        cache->mask = 2*mask + 1;
+        cache->mask = 2 * mask + 1;
         cache->p    = 0;
       }
       else
@@ -343,6 +354,7 @@
   {
     FTC_Node  *pnode = cache->buckets + ( node->hash % cache->size );
 
+
     node->link = *pnode;
     *pnode     = node;
 
@@ -466,6 +478,7 @@
 
 #ifdef FTC_CACHE_USE_LINEAR_HASHING
 
+  /* nothing */
 
 #else /* !FTC_CACHE_USE_LINEAR_HASHING */
 
@@ -583,6 +596,7 @@
 
 #endif /* !FTC_CACHE_USE_LINEAR_HASHING */
 
+
   FT_EXPORT_DEF( FT_Error )
   ftc_cache_init( FTC_Cache  cache )
   {
@@ -594,13 +608,14 @@
 #ifdef FTC_CACHE_USE_LINEAR_HASHING
 
     cache->p     = 0;
-    cache->mask  = FTC_HASH_INITIAL_SIZE-1;
-    cache->slack = FTC_HASH_INITIAL_SIZE*FTC_HASH_MAX_LOAD;
+    cache->mask  = FTC_HASH_INITIAL_SIZE - 1;
+    cache->slack = FTC_HASH_INITIAL_SIZE * FTC_HASH_MAX_LOAD;
 
-    if ( FT_NEW_ARRAY( cache->buckets, FTC_HASH_INITIAL_SIZE*2 ) )
+    if ( FT_NEW_ARRAY( cache->buckets, FTC_HASH_INITIAL_SIZE * 2 ) )
       goto Exit;
 
 #else /* !FTC_CACHE_USE_LINEAR_HASHING */
+
     cache->nodes = 0;
     cache->size  = FTC_PRIMES_MIN;
 
@@ -728,7 +743,7 @@
                     FTC_Query   query,
                     FTC_Node   *anode )
   {
-    FT_Error    error = 0;
+    FT_Error    error = FT_Err_Ok;
     FT_LruNode  lru;
 
 
@@ -740,11 +755,12 @@
     query->hash   = 0;
     query->family = NULL;
 
-    /* XXX: we break encapsulation for the sake of speed !! */
 #if 1
+
+    /* XXX: we break encapsulation for the sake of speed! */
     {
       /* first of all, find the relevant family */
-      FT_LruList              list  = cache->families;
+      FT_LruList              list    = cache->families;
       FT_LruNode              fam, *pfam;
       FT_LruNode_CompareFunc  compare = list->clazz->node_compare;
 
@@ -780,10 +796,14 @@
       lru = fam;
 
     Skip:
+      ;
     }
+
 #else
+
     error = FT_LruList_Lookup( cache->families, query, &lru );
     if ( !error )
+
 #endif
     {
       FTC_Family  family = (FTC_Family) lru;
@@ -790,17 +810,21 @@
       FT_UFast    hash    = query->hash;
       FTC_Node*   bucket;
 
-
 #ifdef FTC_CACHE_USE_LINEAR_HASHING
+
       FT_UInt  index;
 
+
       index = hash & cache->mask;
       if ( index < cache->p )
-        index = hash & (cache->mask*2+1);
+        index = hash & ( cache->mask * 2 + 1 );
 
       bucket  = cache->buckets + index;
+
 #else
+
       bucket  = cache->buckets + (hash % cache->size);
+
 #endif
 
 
--- a/src/cache/ftccache.i
+++ b/src/cache/ftccache.i
@@ -1,11 +1,30 @@
+/***************************************************************************/
+/*                                                                         */
+/*  ftccache.i                                                             */
+/*                                                                         */
+/*    FreeType template for generic cache.                                 */
+/*                                                                         */
+/*  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 GEN_CACHE_FAMILY_COMPARE
-#error "GEN_CACHE_FAMILY_COMPARE not defined in template instanciation"
+#error "GEN_CACHE_FAMILY_COMPARE not defined in template instantiation"
 #endif
 
 #ifndef GEN_CACHE_NODE_COMPARE
-#error "GEN_CACHE_NODE_COMPARE not defined in template instanciation"
+#error "GEN_CACHE_NODE_COMPARE not defined in template instantiation"
 #endif
 
+
   static FT_Error
   GEN_CACHE_LOOKUP( FTC_Cache   cache,
                     FTC_Query   query,
@@ -17,12 +36,13 @@
     query->hash   = 0;
     query->family = NULL;
 
-    /* XXX: we break encapsulation for the sake of speed !! */
+    /* XXX: we break encapsulation for the sake of speed! */
     {
       /* first of all, find the relevant family */
-      FT_LruList              list  = cache->families;
-      FT_LruNode              fam, *pfam;
+      FT_LruList  list  = cache->families;
+      FT_LruNode  fam, *pfam;
 
+
       pfam = &list->nodes;
       for (;;)
       {
@@ -51,7 +71,7 @@
 
     {
       FTC_Family  family = (FTC_Family) lru;
-      FT_UFast    hash    = query->hash;
+      FT_UFast    hash   = query->hash;
       FTC_Node    node, *pnode, *bucket;
 
 
@@ -58,13 +78,14 @@
 #ifdef FTC_CACHE_USE_LINEAR_HASHING
       FT_UInt  index;
 
+
       index = hash & cache->mask;
       if ( index < cache->p )
-        index = hash & (cache->mask*2+1);
+        index = hash & ( cache->mask * 2 + 1 );
 
       bucket  = cache->buckets + index;
 #else
-      bucket  = cache->buckets + (hash % cache->size);
+      bucket  = cache->buckets + ( hash % cache->size );
 #endif
 
 #ifdef FT_DEBUG_LEVEL_ERROR
@@ -119,6 +140,7 @@
         FTC_Node     next = node->mru_next;
         FTC_Node     last;
 
+
         prev->mru_next = next;
         next->mru_prev = prev;
 
@@ -139,3 +161,6 @@
 #undef GEN_CACHE_NODE_COMPARE
 #undef GEN_CACHE_FAMILY_COMPARE
 #undef GEN_CACHE_LOOKUP
+
+
+/* END */
--- a/src/cache/ftccmap.c
+++ b/src/cache/ftccmap.c
@@ -320,20 +320,22 @@
 
 #ifdef FTC_CACHE_USE_INLINE
 
-#  define GEN_CACHE_FAMILY_COMPARE(f,q,c)  \
-             ftc_cmap_family_compare( (FTC_CMapFamily)(f), (FTC_CMapQuery)(q) )
+#define GEN_CACHE_FAMILY_COMPARE( f, q, c ) \
+          ftc_cmap_family_compare( (FTC_CMapFamily)(f), (FTC_CMapQuery)(q) )
 
-#  define GEN_CACHE_NODE_COMPARE(n,q,c)  \
-             ftc_cmap_node_compare( (FTC_CMapNode)(n), (FTC_CMapQuery)(q) )
+#define GEN_CACHE_NODE_COMPARE( n, q, c ) \
+          ftc_cmap_node_compare( (FTC_CMapNode)(n), (FTC_CMapQuery)(q) )
 
-#  define GEN_CACHE_LOOKUP          ftc_cmap_cache_lookup
-#  include "ftccache.i"
+#define GEN_CACHE_LOOKUP  ftc_cmap_cache_lookup
 
+#include "ftccache.i"
+
 #else  /* !FTC_CACHE_USE_INLINE */
 
-#  define ftc_cmap_cache_lookup  ftc_cache_lookup
+#define ftc_cmap_cache_lookup  ftc_cache_lookup
 
 #endif /* !FTC_CACHE_USE_INLINE */
+
 
   /* documentation is in ftccmap.h */
 
--- a/src/cache/ftcsbits.c
+++ b/src/cache/ftcsbits.c
@@ -464,18 +464,18 @@
 
 #ifdef FTC_CACHE_USE_INLINE
 
-#  define GEN_CACHE_FAMILY_COMPARE(f,q,c)  \
-             ftc_sbit_family_compare( (FTC_SBitFamily)(f), (FTC_SBitQuery)(q) )
+#define GEN_CACHE_FAMILY_COMPARE( f, q, c ) \
+          ftc_sbit_family_compare( (FTC_SBitFamily)(f), (FTC_SBitQuery)(q) )
 
-#  define GEN_CACHE_NODE_COMPARE(n,q,c)  \
-             ftc_sbit_node_compare( (FTC_SBitNode)(n), (FTC_SBitQuery)(q), c )
+#define GEN_CACHE_NODE_COMPARE( n, q, c ) \
+          ftc_sbit_node_compare( (FTC_SBitNode)(n), (FTC_SBitQuery)(q), c )
 
-#  define GEN_CACHE_LOOKUP          ftc_sbit_cache_lookup
-#  include "ftccache.i"
+#define GEN_CACHE_LOOKUP  ftc_sbit_cache_lookup
+#include "ftccache.i"
 
 #else  /* !FTC_CACHE_USE_INLINE */
 
-#  define ftc_sbit_cache_lookup  ftc_cache_lookup
+#define ftc_sbit_cache_lookup  ftc_cache_lookup
 
 #endif /* !FTC_CACHE_USE_INLINE */
 
--- a/src/type42/rules.mk
+++ b/src/type42/rules.mk
@@ -32,7 +32,8 @@
 
 # Type42 driver headers
 #
-T42_DRV_H := $(T42_DRV_SRC:%.c=%.h)
+T42_DRV_H := $(T42_DRV_SRC:%.c=%.h) \
+             $(T42_DIR_)t42error.h
 
 
 # Type42 driver object(s)
--- a/src/type42/t42drivr.c
+++ b/src/type42/t42drivr.c
@@ -1,10 +1,30 @@
+/***************************************************************************/
+/*                                                                         */
+/*  t42drivr.c                                                             */
+/*                                                                         */
+/*    High-level Type 42 driver interface (body).                          */
+/*                                                                         */
+/*  Copyright 2002 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      */
+/*  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 "t42drivr.h"
 #include "t42objs.h"
+#include "t42error.h"
 #include FT_INTERNAL_DEBUG_H
 
+
 #undef  FT_COMPONENT
 #define FT_COMPONENT  trace_t42
 
+
   static FT_Error
   t42_get_glyph_name( T42_Face    face,
                       FT_UInt     glyph_index,
@@ -28,7 +48,7 @@
       ((FT_Byte*)buffer)[len] = 0;
     }
 
-    return FT_Err_Ok;
+    return T42_Err_Ok;
   }
 
 
@@ -127,3 +147,5 @@
     (FT_CharMap_CharNextFunc) T42_CMap_CharNext,
   };
 
+
+/* END */
--- a/src/type42/t42drivr.h
+++ b/src/type42/t42drivr.h
@@ -4,8 +4,7 @@
 /*                                                                         */
 /*    High-level Type 42 driver interface (specification).                 */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
+/*  Copyright 2002 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      */
@@ -16,8 +15,8 @@
 /***************************************************************************/
 
 
-#ifndef __T42DRIVER_H__
-#define __T42DRIVER_H__
+#ifndef __T42DRIVR_H__
+#define __T42DRIVR_H__
 
 
 #include <ft2build.h>
@@ -32,7 +31,8 @@
 
 FT_END_HEADER
 
-#endif /* __T42DRIVER_H__ */
+
+#endif /* __T42DRIVR_H__ */
 
 
 /* END */
--- a/src/type42/t42objs.c
+++ b/src/type42/t42objs.c
@@ -1,9 +1,28 @@
+/***************************************************************************/
+/*                                                                         */
+/*  t42objs.c                                                              */
+/*                                                                         */
+/*    Type 42 objects manager (body).                                      */
+/*                                                                         */
+/*  Copyright 2002 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      */
+/*  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 "t42objs.h"
 #include "t42parse.h"
+#include "t42error.h"
 #include FT_INTERNAL_DEBUG_H
 #include FT_INTERNAL_STREAM_H
 #include FT_LIST_H
 
+
 #undef  FT_COMPONENT
 #define FT_COMPONENT  trace_t42
 
@@ -38,7 +57,7 @@
 
     if ( type1->font_type != 42 )
     {
-      error = FT_Err_Unknown_File_Format;
+      error = T42_Err_Unknown_File_Format;
       goto Exit;
     }
 
@@ -48,10 +67,10 @@
 
     if ( !loader.charstrings.init ) {
       FT_ERROR(( "T42_Open_Face: no charstrings array in face!\n" ));
-      error = FT_Err_Invalid_File_Format;
+      error = T42_Err_Invalid_File_Format;
     }
 
-    loader.charstrings.init   = 0;
+    loader.charstrings.init  = 0;
     type1->charstrings_block = loader.charstrings.block;
     type1->charstrings       = loader.charstrings.elements;
     type1->charstrings_len   = loader.charstrings.lengths;
@@ -58,8 +77,8 @@
 
     /* we copy the glyph names `block' and `elements' fields; */
     /* the `lengths' field must be released later             */
-    type1->glyph_names_block   = loader.glyph_names.block;
-    type1->glyph_names         = (FT_String**)loader.glyph_names.elements;
+    type1->glyph_names_block    = loader.glyph_names.block;
+    type1->glyph_names          = (FT_String**)loader.glyph_names.elements;
     loader.glyph_names.block    = 0;
     loader.glyph_names.elements = 0;
 
@@ -165,7 +184,7 @@
     if ( face_index != 0 )
     {
       FT_ERROR(( "T42_Face_Init: invalid face index\n" ));
-      error = FT_Err_Invalid_Argument;
+      error = T42_Err_Invalid_Argument;
       goto Exit;
     }
 
@@ -176,7 +195,7 @@
 
     root->num_glyphs   = face->type1.num_glyphs;
     root->num_charmaps = 0;
-    root->face_index  = face_index;
+    root->face_index   = face_index;
 
     root->face_flags  = FT_FACE_FLAG_SCALABLE;
     root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
@@ -242,7 +261,7 @@
     root->descender = face->ttf_face->descender;
     root->height    = face->ttf_face->height;
 
-    root->max_advance_width = face->ttf_face->max_advance_width;
+    root->max_advance_width  = face->ttf_face->max_advance_width;
     root->max_advance_height = face->ttf_face->max_advance_height;
 
     root->underline_position  = face->type1.font_info.underline_position;
@@ -318,9 +337,9 @@
         if ( clazz )
           FT_CMap_New( clazz, NULL, &charmap, NULL );
 
-	/* Select default charmap */
-	if (root->num_charmaps)
-	  root->charmap = root->charmaps[0];
+        /* Select default charmap */
+        if (root->num_charmaps)
+          root->charmap = root->charmaps[0];
       }
     }
 
@@ -328,31 +347,32 @@
 
     /* charmap support -- synthetize unicode charmap if possible */
     {
-      FT_CharMap        charmap = face->charmaprecs;
+      FT_CharMap  charmap = face->charmaprecs;
+
       
       /* synthesize a Unicode charmap if there is support in the `PSNames' */
       /* module                                                            */
       if ( psnames && psnames->unicode_value )
       {
-	error = psnames->build_unicodes( root->memory,
-					 face->type1.num_glyphs,
-					 (const char**)face->type1.glyph_names,
-					 &face->unicode_map );
-	if ( !error )
-	{
-	  root->charmap        = charmap;
-	  charmap->face        = (FT_Face)face;
-	  charmap->encoding    = ft_encoding_unicode;
-	  charmap->platform_id = 3;
-	  charmap->encoding_id = 1;
-	  charmap++;
-	}
-	
-	/* XXX: Is the following code correct?  It is used in t1objs.c */
-	
-	/* simply clear the error in case of failure (which really) */
-	/* means that out of memory or no unicode glyph names       */
-	error = FT_Err_Ok;
+        error = psnames->build_unicodes( root->memory,
+                                         face->type1.num_glyphs,
+                                         (const char**)face->type1.glyph_names,
+                                         &face->unicode_map );
+        if ( !error )
+        {
+          root->charmap        = charmap;
+          charmap->face        = (FT_Face)face;
+          charmap->encoding    = ft_encoding_unicode;
+          charmap->platform_id = 3;
+          charmap->encoding_id = 1;
+          charmap++;
+        }
+        
+        /* XXX: Is the following code correct?  It is used in t1objs.c */
+        
+        /* simply clear the error in case of failure (which really) */
+        /* means that out of memory or no unicode glyph names       */
+        error = T42_Err_Ok;
       }
       
       /* now, support either the standard, expert, or custom encoding */
@@ -362,29 +382,29 @@
       switch ( face->type1.encoding_type )
       {
       case T1_ENCODING_TYPE_STANDARD:
-	charmap->encoding    = ft_encoding_adobe_standard;
-	charmap->encoding_id = 0;
-	break;
-	
+        charmap->encoding    = ft_encoding_adobe_standard;
+        charmap->encoding_id = 0;
+        break;
+        
       case T1_ENCODING_TYPE_EXPERT:
-	charmap->encoding    = ft_encoding_adobe_expert;
-	charmap->encoding_id = 1;
-	break;
-	
+        charmap->encoding    = ft_encoding_adobe_expert;
+        charmap->encoding_id = 1;
+        break;
+        
       case T1_ENCODING_TYPE_ARRAY:
-	charmap->encoding    = ft_encoding_adobe_custom;
-	charmap->encoding_id = 2;
-	break;
-	
+        charmap->encoding    = ft_encoding_adobe_custom;
+        charmap->encoding_id = 2;
+        break;
+        
       case T1_ENCODING_TYPE_ISOLATIN1:
-	charmap->encoding    = ft_encoding_latin_1;
-	charmap->encoding_id = 3;
-	break;
-	
+        charmap->encoding    = ft_encoding_latin_1;
+        charmap->encoding_id = 3;
+        break;
+        
       default:
-	FT_ERROR(( "T42_Face_Init: invalid encoding\n" ));
-	error = FT_Err_Invalid_File_Format;
-	goto Exit;
+        FT_ERROR(( "T42_Face_Init: invalid encoding\n" ));
+        error = T42_Err_Invalid_File_Format;
+        goto Exit;
       }
       
       root->charmaps     = face->charmaps;
@@ -410,7 +430,7 @@
 
     if ( face )
     {
-      type1 = &face->type1;
+      type1  = &face->type1;
       info   = &type1->font_info;
       memory = face->root.memory;
 
@@ -454,6 +474,7 @@
     }
   }
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -477,7 +498,7 @@
     ttmodule = FT_Get_Module( FT_MODULE(driver)->library, "truetype" );
     driver->ttclazz = (FT_Driver_Class)ttmodule->clazz;
 
-    return FT_Err_Ok;
+    return T42_Err_Ok;
   }
 
 
@@ -608,7 +629,7 @@
     FT_Face   face = size->root.face;
     T42_Face  t42face = (T42_Face)face;
     FT_Size   ttsize;
-    FT_Error  error   = FT_Err_Ok;
+    FT_Error  error   = T42_Err_Ok;
 
 
     error = FT_New_Size( t42face->ttf_face, &ttsize );
@@ -641,7 +662,7 @@
     FT_Face       face    = slot->root.face;
     T42_Face      t42face = (T42_Face)face;
     FT_GlyphSlot  ttslot;
-    FT_Error      error   = FT_Err_Ok;
+    FT_Error      error   = T42_Err_Ok;
 
 
     if ( face->glyph == NULL )
@@ -879,3 +900,5 @@
     return 0;
   }
 
+
+/* END */
--- a/src/type42/t42objs.h
+++ b/src/type42/t42objs.h
@@ -1,6 +1,23 @@
-#ifndef __TYPE42_OBJS_H__
-#define __TYPE42_OBJS_H__
+/***************************************************************************/
+/*                                                                         */
+/*  t42objs.h                                                              */
+/*                                                                         */
+/*    Type 42 objects manager (specification).                             */
+/*                                                                         */
+/*  Copyright 2002 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      */
+/*  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 __T42OBJS_H__
+#define __T42OBJS_H__
+
 #include <ft2build.h>
 #include FT_FREETYPE_H
 #include FT_TYPE1_TABLES_H
@@ -10,9 +27,10 @@
 #include FT_INTERNAL_POSTSCRIPT_NAMES_H
 #include FT_INTERNAL_POSTSCRIPT_HINTS_H
 
+
 FT_BEGIN_HEADER
 
- /* Type42 face */
+  /* Type42 face */
   typedef struct  T42_FaceRec_
   {
     FT_FaceRec     root;
@@ -32,8 +50,7 @@
   } T42_FaceRec, *T42_Face;
 
 
-
- /* Type42 size */
+  /* Type42 size */
   typedef struct  T42_SizeRec_
   {
     FT_SizeRec  root;
@@ -42,7 +59,7 @@
   } T42_SizeRec, *T42_Size;
 
 
- /* Type42 slot */
+  /* Type42 slot */
   typedef struct  T42_GlyphSlotRec_
   {
     FT_GlyphSlotRec  root;
@@ -51,7 +68,7 @@
   } T42_GlyphSlotRec, *T42_GlyphSlot;
 
 
- /* Type 42 driver */
+  /* Type 42 driver */
   typedef struct  T42_DriverRec_
   {
     FT_DriverRec     root;
@@ -60,8 +77,10 @@
 
   } T42_DriverRec, *T42_Driver;
 
- /* */
 
+  /* */
+
+
   FT_LOCAL( FT_Error )
   T42_Face_Init( FT_Stream      stream,
                  T42_Face       face,
@@ -127,4 +146,8 @@
 
 FT_END_HEADER
 
-#endif /* __TYPE42_OBJS_H__ */
+
+#endif /* __T42OBJS_H__ */
+
+
+/* END */
--- a/src/type42/t42parse.c
+++ b/src/type42/t42parse.c
@@ -1,9 +1,28 @@
+/***************************************************************************/
+/*                                                                         */
+/*  t42parse.c                                                             */
+/*                                                                         */
+/*    Type 42 font parser (body).                                          */
+/*                                                                         */
+/*  Copyright 2002 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      */
+/*  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 "t42parse.h"
+#include "t42error.h"
 #include FT_INTERNAL_DEBUG_H
 #include FT_INTERNAL_STREAM_H
 #include FT_LIST_H
 #include FT_INTERNAL_POSTSCRIPT_AUX_H
 
+
   /*************************************************************************/
   /*                                                                       */
   /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
@@ -13,6 +32,7 @@
 #undef  FT_COMPONENT
 #define FT_COMPONENT  trace_t42
 
+
   static void
   t42_parse_font_name( T42_Face    face,
                        T42_Loader  loader );
@@ -118,7 +138,7 @@
                    FT_Memory      memory,
                    PSAux_Service  psaux )
   {
-    FT_Error  error = FT_Err_Ok;
+    FT_Error  error = T42_Err_Ok;
     FT_Long   size;
 
 
@@ -165,8 +185,8 @@
     else
     {
       /* read segment in memory */
-      if ( FT_ALLOC( parser->base_dict, size )      ||
-          FT_STREAM_READ( parser->base_dict, size ) )
+      if ( FT_ALLOC( parser->base_dict, size )       ||
+           FT_STREAM_READ( parser->base_dict, size ) )
         goto Exit;
 
       parser->base_len = size;
@@ -176,7 +196,7 @@
     if (size <= 17                                    ||
         ( ft_strncmp( (const char*)parser->base_dict,
                       "%!PS-TrueTypeFont", 17) )      )
-      error = FT_Err_Unknown_File_Format;
+      error = T42_Err_Unknown_File_Format;
     else
     {
       parser->root.base   = parser->base_dict;
@@ -346,7 +366,7 @@
       if ( cur >= limit )
       {
         FT_ERROR(( "t42_parse_encoding: out of bounds!\n" ));
-        parser->root.error = FT_Err_Invalid_File_Format;
+        parser->root.error = T42_Err_Invalid_File_Format;
         return;
       }
     }
@@ -485,7 +505,7 @@
 
       else {
         FT_ERROR(( "t42_parse_encoding: invalid token!\n" ));
-        parser->root.error = FT_Err_Invalid_File_Format;
+        parser->root.error = T42_Err_Invalid_File_Format;
       }
     }
   }
@@ -549,7 +569,7 @@
     else
     {
       FT_ERROR(( "t42_parse_sfnts: can't find begin of sfnts vector!\n" ));
-      error = FT_Err_Invalid_File_Format;
+      error = T42_Err_Invalid_File_Format;
       goto Fail;
     }
 
@@ -574,7 +594,7 @@
         if ( !in_string )
         {
           FT_ERROR(( "t42_parse_sfnts: found unpaired `>'!\n" ));
-          error = FT_Err_Invalid_File_Format;
+          error = T42_Err_Invalid_File_Format;
           goto Fail;
         }
 
@@ -597,7 +617,7 @@
         else
         {
           FT_ERROR(( "t42_parse_sfnts: found `%' in string!\n" ));
-          error = FT_Err_Invalid_File_Format;
+          error = T42_Err_Invalid_File_Format;
           goto Fail;
         }
 
@@ -605,7 +625,7 @@
         if ( !ft_xdigit( *cur ) || !ft_xdigit( *(cur + 1) ) )
         {
           FT_ERROR(( "t42_parse_sfnts: found non-hex characters in string" ));
-          error = FT_Err_Invalid_File_Format;
+          error = T42_Err_Invalid_File_Format;
           goto Fail;
         }
 
@@ -670,7 +690,7 @@
     }
 
     /* If control reaches this point, the format was not valid */
-    error = FT_Err_Invalid_File_Format;
+    error = T42_Err_Invalid_File_Format;
 
   Fail:
     parser->root.error = error;
@@ -780,7 +800,7 @@
     if ( ft_strcmp( (char *)name_table->elements[0], ".notdef" ) )
     {
       FT_ERROR(( "t42_parse_charstrings: Index 0 is not `.notdef'!\n" ));
-      error = FT_Err_Invalid_File_Format;
+      error = T42_Err_Invalid_File_Format;
       goto Fail;
     }
 
@@ -970,3 +990,4 @@
   }
 
 
+/* END */
--- a/src/type42/t42parse.h
+++ b/src/type42/t42parse.h
@@ -1,9 +1,28 @@
-#ifndef __TYPE42_PARSE_H__
-#define __TYPE42_PARSE_H__
+/***************************************************************************/
+/*                                                                         */
+/*  t42parse.h                                                             */
+/*                                                                         */
+/*    Type 42 font parser (specification).                                 */
+/*                                                                         */
+/*  Copyright 2002 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      */
+/*  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 __T42PARSE_H__
+#define __T42PARSE_H__
+
+
 #include "t42objs.h"
 #include FT_INTERNAL_POSTSCRIPT_AUX_H
 
+
 FT_BEGIN_HEADER
 
   typedef struct  T42_ParserRec_
@@ -63,4 +82,8 @@
 
 FT_END_HEADER
 
-#endif /* __TYPE42_PARSE_H__ */
+
+#endif /* __T42PARSE_H__ */
+
+
+/* END */
--- a/src/type42/type42.c
+++ b/src/type42/type42.c
@@ -1,11 +1,19 @@
 /***************************************************************************/
 /*                                                                         */
-/*  type42c                                                                */
+/*  type42.c                                                               */
 /*                                                                         */
-/*    FreeType Type 42 driver component                                    */
+/*    FreeType Type 42 driver component.                                   */
 /*                                                                         */
+/*  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.                                        */
+/*                                                                         */
 /***************************************************************************/
-
 
 #define FT_MAKE_OPTION_SINGLE_OBJECT