shithub: freetype+ttf2subf

Download patch

ref: 4c80f0c9ca0b24c9cd082d2d6b09465e2d04c6a8
parent: b1aabf4c5ea25bdd1a41705c6c5ac98b2df9b056
author: Werner Lemberg <[email protected]>
date: Fri Dec 1 12:25:58 EST 2000

* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.


* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.


* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2.  Modified
all headers under "include/freetype" to reflect this change.  Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler.  Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like.  Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,27 +1,44 @@
+2000-12-01  Werner Lemberg  <[email protected]>
+
+	* INSTALL: Revised.
+	* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
+	builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
+	builds/win32/w32-bccd.mk: Revised.
+	* include/freetype/config/ftbuild.h,
+	include/freetype/internal/internal.h: Revised.
+	* include/freetype/ftimage.h: Updated to new header inclusion scheme.
+
+2000-11-30  Werner Lemberg  <[email protected]>
+
+	* builds/toplevel.mk (.PHONY): Adding `distclean'.
+	* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
+	`setup'.
+
 2000-11-30  David Turner  <[email protected]>
 
-	* INSTALL: slightly updated the quick starter documentation to
-	include IDE compilation, prevent agains BSD Make, and specify
-	"make setup" instead of a single "make" for build configuration.
+	* INSTALL: Slightly updated the quick starter documentation to
+	include IDE compilation, prevent against BSD Make, and specify "make
+	setup" instead of a single "make" for build configuration.
 
-	* include/config/ftbuild.h, include/internal/internal.h: added
-	a new configuration file used to determine where are all public,
-	configuration and internal header files for FreeType 2. I also
-	modified all headers under "include/freetype" to reflect this
-	change. Note that we still need to change the library source 
-	files themselves though..
+	* include/config/ftbuild.h, include/internal/internal.h: Added new
+	configuration files used to determine the location of all public,
+	configuration, and internal header files for FreeType 2.  Modified
+	all headers under "include/freetype" to reflect this change.  Note
+	that we still need to change the library source files themselves
+	though.
 
 	* builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk,
 	builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk,
-	builds/win32/detect.mk: added new files to support compilation with
-	the free Borland C++ command-line compiler. Modified the detection
-	rules to recognize the new "bcc32" target in "make setup bcc32"
+	builds/win32/detect.mk: Added new files to support compilation with
+	the free Borland C++ command-line compiler.  Modified the detection
+	rules to recognize the new "bcc32" target in "make setup bcc32".
 
 	* src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
-	src/truetype/ttobjs.c, src/truetype/ttgload.c, src/truetype/ttinterp.c:
-	fixed a few comparisons that Borland C++ didn't really like. Basically,
-	this compiler complains when a FT_UInt is compared to a FT_UShort
-	(apparently, it promotes the UShort to an Int in these cases)
+	src/truetype/ttobjs.c, src/truetype/ttgload.c,
+	src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
+	didn't really like.  Basically, this compiler complains when FT_UInt
+	is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
+	in these cases).
 
 2000-11-30  Tom Kacvinsky  <[email protected]>
 
--- a/INSTALL
+++ b/INSTALL
@@ -1,90 +1,93 @@
 In order to build the library, read the `BUILD' document in the `docs'
-directory. This is only a quick starter:
+directory.  This is only a quick starter:
 
 I. From the command line:
 
   You need to have GNU Make installed on your system to compile the
-  library from the command line. This will _not_ work with other
-  Make tools (including the BSD ones !!)
+  library from the command line.  This will _not_ work with other
+  make tools (including BSD make)!
   
-  - Go to the 'freetype2' directory
+  - Go to the `freetype2' directory.
 
-  - on Unix (any C compiler should work):
+  - On Unix (any C compiler should work):
 
-     - make setup (don't worry, this will invoke a configure script)
-     - make
-     - make install
+      - make setup (don't worry, this will invoke a configure script)
+      - make
+      - make install
 
-    alternatively, you can pass parameters to the configure script
-    with the CFG variable, as in:
+    Alternatively, you can pass parameters to the configure script
+    within the CFG variable, as in:
 
-     - make setup CFG="--prefix=/usr"
-     - make
-     - make install
+      - make setup CFG="--prefix=/usr"
+      - make
+      - make install
 
   - On Windows:
 
-    we provide a version of GNU Make for Win32 on the FreeType site.
-    See http://www.freetype.org/download.html for details..
+    We provide a version of GNU Make for Win32 on the FreeType site.
+    See http://www.freetype.org/download.html for details.
 
-    o if you're using gcc:
+    If you are using gcc:
 
-       - make setup
-       - make
+      - make setup
+      - make
 
-    o if you're using Visual C++:
+    If you are using Visual C++:
     
-       - make setup visualc
-       - make
+      - make setup visualc
+      - make
        
-    o if you're using Win32-lCC:
+    If you are using Win32-lCC:
     
-       - make setup lcc
-       - make
+      - make setup lcc
+      - make
        
-    o if you're using the Borland C++ Builder compiler:
+    If you are using the Borland C++ Builder compiler:
     
-       - make setup bcc32
-       - make
+      - make setup bcc32
+      - make
 
 
 II. In your own environment (IDE):
 
-  you need to add the directories "freetype2/include" and "freetype2/src"
+  You need to add the directories "freetype2/include" and "freetype2/src"
   to your include path when compiling the library.
   
-  compile each library component through the following files:
+  Compile each library component through the following files:
   
-     -- base components (required)
+    -- base components (required)
      
-     src/base/ftsystem.c
-     src/base/ftinit.c
-     src/base/ftdebug.c
-     src/base/ftbase.c
-     src/base/ftglyph.c
-     src/base/ftbbox.c
-     src/base/ftmm.c
+      src/base/ftsystem.c
+      src/base/ftinit.c
+      src/base/ftdebug.c
+      src/base/ftbase.c
+      src/base/ftglyph.c
+      src/base/ftbbox.c
+      src/base/ftmm.c
      
-     src/base/ftmac.c   -- only on the Macintosh
+      src/base/ftmac.c   -- only on the Macintosh
 
-     -- other components are optional
+    -- other components are optional
 
-     src/autohint/autohint.c   -- auto hinting module
-     src/cache/ftcache.c       -- cache sub-system (in beta)
-     src/sfnt/sfnt.c           -- SFNT files support (TrueType & OpenType)
-     src/cff/cff.c             -- CFF/OpenType font driver
-     src/psnames/psnames.c     -- Postscript glyph names support
-     src/psaux/psaux.c         -- Postscript Type 1 parsing
-     src/truetype/truetype.c   -- TrueType font driver
-     src/type1/type1.c         -- Type 1 font driver
-     src/cid/type1cid.c        -- Type 1 CID-keyed font driver
-     src/winfonts/winfonts.c   -- Windows FONT / FNT font driver
+      src/autohint/autohint.c   -- auto hinting module
+      src/cache/ftcache.c       -- cache sub-system (in beta)
+      src/sfnt/sfnt.c           -- SFNT files support (TrueType & OpenType)
+      src/cff/cff.c             -- CFF/OpenType font driver
+      src/psnames/psnames.c     -- Postscript glyph names support
+      src/psaux/psaux.c         -- Postscript Type 1 parsing
+      src/truetype/truetype.c   -- TrueType font driver
+      src/type1/type1.c         -- Type 1 font driver
+      src/cid/type1cid.c        -- Type 1 CID-keyed font driver
+      src/winfonts/winfonts.c   -- Windows FONT / FNT font driver
 
-     note that:
+    Note:
      
-         'truetype.c' needs  'sfnt.c' and 'psnames.c'
-	 'type1.c'    needs  'psaux.c' and 'psnames.c'
-	 'type1cid.c' needs  'psaux.c' and 'psnames.c'
-	 'cff.c'      needs  'sfnt.c', 'psaux.c' and 'psnames.c'
+       `truetype.c' needs `sfnt.c' and `psnames.c'
+       `type1.c'    needs `psaux.c' and `psnames.c'
+       `type1cid.c' needs `psaux.c' and `psnames.c'
+       `cff.c'      needs `sfnt.c', `psaux.c', and `psnames.c'
 
-  etc.
+       etc.
+
+
+--- end of INSTALL --
--- a/builds/compiler/bcc-dev.mk
+++ b/builds/compiler/bcc-dev.mk
@@ -1,9 +1,20 @@
-# Copyright 2000 David Turner
 #
-#  Borland C++-specific with NO OPTIMISATIONS + DEBUGGING
+#  FreeType 2 Borland C++-specific with NO OPTIMIZATIONS + DEBUGGING
 #
 
+
+# Copyright 1996-2000 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.
+
+
 # Compiler command line name
+#
 CC := bcc32
 
 # The object file extension (for standard and static libraries).  This can be
@@ -26,7 +37,7 @@
 
 
 # C flag used to define a macro before the compilation of a given source
-# object.  Usually is `-D' like in `-DDEBUG'.
+# object.  Usually it is `-D' like in `-DDEBUG'.
 #
 D := -D
 
@@ -37,7 +48,7 @@
 L :=
 
 
-# Target flag. - no trailing space
+# Target flag -- no trailing space.
 #
 T := -o
 
@@ -61,9 +72,10 @@
 # Library linking
 #
 ifndef CLEAN_LIBRARY
-CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) $(NO_OUTPUT)
+  CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) \
+                  $(NO_OUTPUT)
 endif
 TARGET_OBJECTS = $(subst $(SEP),\\,$(OBJECTS_LIST))
-LINK_LIBRARY  = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)
+LINK_LIBRARY   = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)
 
 # EOF
--- a/builds/compiler/bcc.mk
+++ b/builds/compiler/bcc.mk
@@ -1,9 +1,20 @@
-# Copyright 2000 David Turner
 #
-#  Borland C++-specific rules
+# FreeType 2 Borland C++-specific rules
 #
 
+
+# Copyright 1996-2000 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.
+
+
 # Compiler command line name
+#
 CC := bcc32
 
 # The object file extension (for standard and static libraries).  This can be
@@ -26,7 +37,7 @@
 
 
 # C flag used to define a macro before the compilation of a given source
-# object.  Usually is `-D' like in `-DDEBUG'.
+# object.  Usually it is `-D' like in `-DDEBUG'.
 #
 D := -D
 
@@ -37,7 +48,7 @@
 L :=
 
 
-# Target flag. - no trailing space
+# Target flag -- no trailing space.
 #
 T := -o
 
@@ -61,9 +72,10 @@
 # Library linking
 #
 ifndef CLEAN_LIBRARY
-CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) $(NO_OUTPUT)
+  CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) \
+                  $(NO_OUTPUT)
 endif
 TARGET_OBJECTS = $(subst $(SEP),\\,$(OBJECTS_LIST))
-LINK_LIBRARY  = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)
+LINK_LIBRARY   = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)
 
 # EOF
--- a/builds/compiler/visualage.mk
+++ b/builds/compiler/visualage.mk
@@ -15,7 +15,7 @@
 
 # command line compiler name
 #
-CC       := icc
+CC := icc
 
 
 # The object file extension (for standard and static libraries).  This can be
@@ -39,7 +39,7 @@
 
 
 # C flag used to define a macro before the compilation of a given source
-# object.  Usually is `-D' like in `-DDEBUG'.
+# object.  Usually it is `-D' like in `-DDEBUG'.
 #
 D := /D
 
--- a/builds/toplevel.mk
+++ b/builds/toplevel.mk
@@ -34,7 +34,7 @@
 # details on host platform detection and library builds.
 
 
-.PHONY: setup
+.PHONY: setup distclean
 
 # The `space' variable is used to avoid trailing spaces in defining the
 # `T' variable later.
--- a/builds/unix/detect.mk
+++ b/builds/unix/detect.mk
@@ -12,6 +12,7 @@
 # indicate that you have read the license and understand and accept it
 # fully.
 
+.PHONY: devel lcc setup unix
 
 ifeq ($(PLATFORM),ansi)
 
--- a/builds/win32/detect.mk
+++ b/builds/win32/detect.mk
@@ -89,7 +89,7 @@
       mingw32: setup
     endif
 
-    ifneq ($(findstring bcc32,$(MAKECMDGOALS)),)         # Borland C++
+    ifneq ($(findstring bcc32,$(MAKECMDGOALS)),)       # Borland C++
       CONFIG_FILE := w32-bcc.mk
       SEP         := $(BACKSLASH)
       CC          := bcc32
--- a/builds/win32/w32-bcc.mk
+++ b/builds/win32/w32-bcc.mk
@@ -1,6 +1,17 @@
 #
-#  Borland C++ on Win32
+# FreeType 2 Borland C++ on Win32
 #
+
+
+# Copyright 1996-2000 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.
+
 
 SEP := /
 include $(TOP)/builds/win32/win32-def.mk
--- a/builds/win32/w32-bccd.mk
+++ b/builds/win32/w32-bccd.mk
@@ -1,6 +1,17 @@
 #
-#  Borland C++ on Win32 + debugging
+# FreeType 2 Borland C++ on Win32 + debugging
 #
+
+
+# Copyright 1996-2000 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.
+
 
 SEP := /
 include $(TOP)/builds/win32/win32-def.mk
--- a/include/freetype/cache/ftlru.h
+++ b/include/freetype/cache/ftlru.h
@@ -139,44 +139,31 @@
   } FT_LruRec;
 
 
-  FT_EXPORT( FT_Error )
-  FT_Lru_New( const FT_Lru_Class*  clazz,
-              FT_UInt              max_elements,
-              FT_Pointer           user_data,
-              FT_Memory            memory,
-              FT_Bool              pre_alloc,
-              FT_Lru              *anlru );
+  FT_EXPORT( FT_Error )  FT_Lru_New( const FT_Lru_Class*  clazz,
+                                     FT_UInt              max_elements,
+                                     FT_Pointer           user_data,
+                                     FT_Memory            memory,
+                                     FT_Bool              pre_alloc,
+                                     FT_Lru              *anlru );
 
+  FT_EXPORT( void )      FT_Lru_Reset( FT_Lru  lru );
 
-  FT_EXPORT( void )
-  FT_Lru_Reset( FT_Lru  lru );
+  FT_EXPORT( void )      FT_Lru_Done ( FT_Lru  lru );
 
+  FT_EXPORT( FT_Error )  FT_Lru_Lookup_Node( FT_Lru        lru,
+                                             FT_LruKey     key,
+                                             FT_LruNode   *anode );
 
-  FT_EXPORT( void )
-  FT_Lru_Done ( FT_Lru  lru );
+  FT_EXPORT( FT_Error )  FT_Lru_Lookup( FT_Lru       lru,
+                                        FT_LruKey    key,
+                                        FT_Pointer  *anobject );
 
-
-  FT_EXPORT( FT_Error )
-  FT_Lru_Lookup_Node( FT_Lru        lru,
-                      FT_LruKey     key,
-                      FT_LruNode   *anode );
-
-
-  FT_EXPORT( FT_Error )
-  FT_Lru_Lookup( FT_Lru       lru,
-                 FT_LruKey    key,
-                 FT_Pointer  *anobject );
-
-
-  FT_EXPORT( void )
-  FT_Lru_Remove_Node( FT_Lru      lru,
-                      FT_LruNode  node );
+  FT_EXPORT( void )      FT_Lru_Remove_Node( FT_Lru      lru,
+                                             FT_LruNode  node );
 		      
-
-  FT_EXPORT( void )
-  FT_Lru_Remove_Selection( FT_Lru           lru,
-                           FT_Lru_Selector  selector,
-                           FT_Pointer       data );
+  FT_EXPORT( void )      FT_Lru_Remove_Selection( FT_Lru           lru,
+                                                  FT_Lru_Selector  selector,
+                                                  FT_Pointer       data );
 
 FT_END_HEADER
 
--- a/include/freetype/config/ftbuild.h
+++ b/include/freetype/config/ftbuild.h
@@ -2,8 +2,7 @@
 /*                                                                         */
 /*  ftbuild.h                                                              */
 /*                                                                         */
-/*    This file is used to define important macros needed to               */
-/*    perform a build of the FreeType 2 library..                          */
+/*    Build macros of the FreeType 2 library.                              */
 /*                                                                         */
 /*  Copyright 1996-2000 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
@@ -16,171 +15,188 @@
 /*                                                                         */
 /***************************************************************************/
 
+
 #ifndef __FT_BUILD_H__
 #define __FT_BUILD_H__
 
-/****************************************************************************
- *
- * the macro FT_ROOT is used to define the root of all public header
- * files for FreeType 2. By default, it is set to "freetype", which
- * means that all public files should be included with a line like:
- *
- *  #include <freetype/....>
- *
- * you can re-define it to something different, depending on the way
- * you installed the library on your system.
- *
- */
-#ifndef    FT_ROOT
-#  define  FT_ROOT  freetype
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_ROOT is used to define the root of all public header     */
+  /* files for FreeType 2.  By default, it is set to "freetype", which     */
+  /* means that all public files should be included with a line like:      */
+  /*                                                                       */
+  /*   #include <freetype/...>                                             */
+  /*                                                                       */
+  /* Redefine it to something different if necessary, depending where the  */
+  /* library is installed on the particular system.                        */
+  /*                                                                       */
+#ifndef FT_ROOT
+#define FT_ROOT  freetype
 #endif
 
-/****************************************************************************
- *
- * the macro FT_CONFIG_ROOT is used to define the root of all configuration
- * header files for FreeType 2. By default, it is set to "freetype/config",
- * which means that all config files should be included with a line like:
- *
- *  #include <freetype/config/...>
- *
- * you can re-define it to something different, depending on the way
- * you installed the library on your system.
- *
- */
-#ifndef    FT_CONFIG_ROOT
-#  define  FT_CONFIG_ROOT   FT_ROOT/config
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_CONFIG_ROOT is used to define the root of all            */
+  /* configuration header files for FreeType 2.  By default, it is set to  */
+  /* "freetype/config", which means that all config files should be        */
+  /* include with a line like:                                             */
+  /*                                                                       */
+  /*   #include <freetype/config/...>                                      */
+  /*                                                                       */
+  /* Redefine it to something different, depending where the library is    */
+  /* installed on the particular system.                                   */
+  /*                                                                       */
+#ifndef FT_CONFIG_ROOT
+#define FT_CONFIG_ROOT  FT_ROOT/config
 #endif
 
-/****************************************************************************
- *
- * the macro FT_PUBLIC_FILE is used to include a FreeType 2 public file
- * its parameter is the file pathname, relative to the public root of a
- * given header file.
- */
-#define    FT_PUBLIC_FILE(x)   <FT_ROOT/x>
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_PUBLIC_FILE is used to include a FreeType 2 public file. */
+  /* Its parameter is the file pathname, relative to the public root of a  */
+  /* given header file.                                                    */
+  /*                                                                       */
+#define FT_PUBLIC_FILE( x )  <FT_ROOT/x>
 
-/****************************************************************************
- *
- * the macro FT_CONFIG_FILE is used to include a FreeType 2 config file
- * its parameter is the file pathname, relative to the configurationroot of a
- * given header file.
- */
-#define    FT_CONFIG_FILE(x)   <FT_CONFIG_ROOT/x>
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_CONFIG_FILE is used to include a FreeType 2 config file. */
+  /* Its parameter is the file pathname, relative to the configuration     */
+  /* root directory of a given header file.                                */
+  /*                                                                       */
+#define FT_CONFIG_FILE( x )  <FT_CONFIG_ROOT/x>
 
-/****************************************************************************
- *
- * the macro FT_INTERNAL_FILE is used to include a FreeType 2 internal file
- * its parameter is the file pathname, relative to the configurationroot of a
- * given header file.
- */
-#define    FT_INTERNAL_FILE(x) <FT_ROOT/internal/x>
 
-/****************************************************************************
- *
- * the macro FT_COMPONENT_FILE is used to include a given FreeType 2 component
- * source file (be it a header, a C source file, or an included file).
- *
- * it's first argument is the component/module's directory according to
- * the normal FT2 source directory hierarchy, and the second one the
- * file name.
- *
- * note that you can also put all library source files in a single
- * directory and compile them normally by defining the macro
- * FT_FLAT_COMPILATION
- */
-#define    FT_COMPONENT_FILE(d,x)   <FT_ROOT/d/x>
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_INTERNAL_FILE is used to include a FreeType 2 internal   */
+  /* file.  Its parameter is the file pathname, relative to the            */
+  /* configuration root directory of a given header file.                  */
+  /*                                                                       */
+#define FT_INTERNAL_FILE( x )  <FT_ROOT/internal/x>
 
 
-/****************************************************************************
- *
- * the macro FT_SOURCE_FILE is used to include a given FreeType 2 component
- * source file (be it a header, a C source file, or an included file).
- *
- * it's first argument is the component/module's directory according to
- * the normal FT2 source directory hierarchy, and the second one the
- * file name.
- *
- * note that you can also put all library source files in a single
- * directory and compile them normally by defining the macro
- * FT_FLAT_COMPILATION
- */
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_COMPONENT_FILE is used to include a given FreeType 2     */
+  /* component source file (be it a header, a C source file, or an         */
+  /* included file).                                                       */
+  /*                                                                       */
+  /* Its first argument is the component/module's directory according to   */
+  /* the normal FreeType 2 source directory hierarchy, and the second one  */
+  /* the file name.                                                        */
+  /*                                                                       */
+  /* Note that you can also put all library source files in a single       */
+  /* directory and compile them normally by defining the macro             */
+  /* FT_FLAT_COMPILATION.                                                  */
+  /*                                                                       */
+#define FT_COMPONENT_FILE( d, x )  <FT_ROOT/d/x>
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* The macro FT_SOURCE_FILE is used to include a given FreeType 2        */
+  /* component source file (be it a header, a C source file, or an         */
+  /* included file).                                                       */
+  /*                                                                       */
+  /* Its first argument is the component/module's directory according to   */
+  /* the normal FreeType 2 source directory hierarchy, and the second one  */
+  /* the file name.                                                        */
+  /*                                                                       */
+  /* Note that you can also put all library source files in a single       */
+  /* directory and compile them normally by defining the macro             */
+  /* FT_FLAT_COMPILATION.                                                  */
+  /*                                                                       */
 #ifdef  FT_FLAT_COMPILATION
-#  define    FT_SOURCE_FILE(d,x)   <d/x>
+#define FT_SOURCE_FILE( d, x )  <d/x>
 #else
-#  define    FT_SOURCE_FILE(d,x)   "x"
+#define FT_SOURCE_FILE( d, x )  "x"
 #endif
 
 
-/****************************************************************************
- *
- * <Macro> FT_BEGIN_HEADER
- *
- * <Description>
- *    this macro is used in association with @FT_END_HEADER in header
- *    files to ensure that the declarations within are properly encapsulated
- *    in an 'extern "C" { .. }' block when included from a C++ compiler
- */
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Macro>                                                               */
+  /*    FT_BEGIN_HEADER                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    This macro is used in association with @FT_END_HEADER in header    */
+  /*    files to ensure that the declarations within are properly          */
+  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
+  /*    C++ compiler.                                                      */
+  /*                                                                       */
 #ifdef __cplusplus
-#  define  FT_BEGIN_HEADER  extern "C" {
+#define FT_BEGIN_HEADER  extern "C" {
 #else
-#  define  FT_BEGIN_HEADER  /* nothing */
+#define FT_BEGIN_HEADER  /* nothing */
 #endif
 
-/****************************************************************************
- *
- * <Macro> FT_END_HEADER
- *
- * <Description>
- *    this macro is used in association with @FT_BEGIN_HEADER in header
- *    files to ensure that the declarations within are properly encapsulated
- *    in an 'extern "C" { .. }' block when included from a C++ compiler
- */
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Macro>                                                               */
+  /*    FT_END_HEADER                                                      */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    This macro is used in association with @FT_BEGIN_HEADER in header  */
+  /*    files to ensure that the declarations within are properly          */
+  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
+  /*    C++ compiler.                                                      */
+  /*                                                                       */
 #ifdef __cplusplus
-#  define  FT_END_HEADER  }
+#define FT_END_HEADER  }
 #else
-#  define  FT_END_HEADER  /* nothing */
+#define FT_END_HEADER  /* nothing */
 #endif
 
-/****************************************************************************
- *
- * we will now define several aliases for the FreeType 2 public and
- * configuration files..
- *
- */
 
-/* configuration files */
-#define  FT_CONFIG_CONFIG_H   FT_CONFIG_FILE(ftconfig.h)
-#define  FT_CONFIG_OPTIONS_H  FT_CONFIG_FILE(ftoption.h)
-#define  FT_CONFIG_MODULES_H  FT_CONFIG_FILE(ftmodule.h)
+  /*************************************************************************/
+  /*                                                                       */
+  /* Aliases for the FreeType 2 public and configuration files.            */
+  /*                                                                       */
+  /*************************************************************************/
 
-/* public headers */
-#define  FT_ERRORS_H            FT_PUBLIC_FILE(fterrors.h)
-#define  FT_SYSTEM_H            FT_PUBLIC_FILE(ftsystem.h)
-#define  FT_IMAGE_H             FT_PUBLIC_FILE(ftimage.h)
+  /* don't add spaces around arguments to FT_CONFIG_FILE! */
 
-#define  FT_TYPES_H             FT_PUBLIC_FILE(fttypes.h)
+  /* configuration files */
+#define FT_CONFIG_CONFIG_H     FT_CONFIG_FILE(ftconfig.h)
+#define FT_CONFIG_OPTIONS_H    FT_CONFIG_FILE(ftoption.h)
+#define FT_CONFIG_MODULES_H    FT_CONFIG_FILE(ftmodule.h)
 
-#define  FT_FREETYPE_H          FT_PUBLIC_FILE(freetype.h)
-#define  FT_GLYPH_H             FT_PUBLIC_FILE(ftglyph.h)
-#define  FT_BBOX_H              FT_PUBLIC_FILE(ftbbox.h)
-#define  FT_CACHE_H             FT_PUBLIC_FILE(ftcache.h)
-#define  FT_LIST_H              FT_PUBLIC_FILE(ftlist.h)
-#define  FT_MAC_H               FT_PUBLIC_FILE(ftmac.h)
-#define  FT_MULTIPLE_MASTERS_H  FT_PUBLIC_FILE(ftmm.h)
-#define  FT_MODULE_H            FT_PUBLIC_FILE(ftmodule.h)
-#define  FT_NAMES_H             FT_PUBLIC_FILE(ftnames.h)
-#define  FT_OUTLINE_H           FT_PUBLIC_FILE(ftoutln.h)
-#define  FT_RENDER_H            FT_PUBLIC_FILE(ftrender.h)
-#define  FT_SYNTHESIS_H         FT_PUBLIC_FILE(ftsynth.h)
-#define  FT_TYPE1_TABLES_H      FT_PUBLIC_FILE(t1tables.h)
-#define  FT_TRUETYPE_NAMES_H    FT_PUBLIC_FILE(ttnameid.h)
-#define  FT_TRUETYPE_TABLES_H   FT_PUBLIC_FILE(tttables.h)
-#define  FT_TRUETYPE_TAGS_H     FT_PUBLIC_FILE(tttags.h)
+  /* public headers */
+#define FT_ERRORS_H            FT_PUBLIC_FILE(fterrors.h)
+#define FT_SYSTEM_H            FT_PUBLIC_FILE(ftsystem.h)
+#define FT_IMAGE_H             FT_PUBLIC_FILE(ftimage.h)
 
-/* now include internal headers definitions from <freetype/internal/..>*/
+#define FT_TYPES_H             FT_PUBLIC_FILE(fttypes.h)
+
+#define FT_FREETYPE_H          FT_PUBLIC_FILE(freetype.h)
+#define FT_GLYPH_H             FT_PUBLIC_FILE(ftglyph.h)
+#define FT_BBOX_H              FT_PUBLIC_FILE(ftbbox.h)
+#define FT_CACHE_H             FT_PUBLIC_FILE(ftcache.h)
+#define FT_LIST_H              FT_PUBLIC_FILE(ftlist.h)
+#define FT_MAC_H               FT_PUBLIC_FILE(ftmac.h)
+#define FT_MULTIPLE_MASTERS_H  FT_PUBLIC_FILE(ftmm.h)
+#define FT_MODULE_H            FT_PUBLIC_FILE(ftmodule.h)
+#define FT_NAMES_H             FT_PUBLIC_FILE(ftnames.h)
+#define FT_OUTLINE_H           FT_PUBLIC_FILE(ftoutln.h)
+#define FT_RENDER_H            FT_PUBLIC_FILE(ftrender.h)
+#define FT_SYNTHESIS_H         FT_PUBLIC_FILE(ftsynth.h)
+#define FT_TYPE1_TABLES_H      FT_PUBLIC_FILE(t1tables.h)
+#define FT_TRUETYPE_NAMES_H    FT_PUBLIC_FILE(ttnameid.h)
+#define FT_TRUETYPE_TABLES_H   FT_PUBLIC_FILE(tttables.h)
+#define FT_TRUETYPE_TAGS_H     FT_PUBLIC_FILE(tttags.h)
+
+
+  /* now include internal headers definitions from <freetype/internal/...> */
 #include FT_PUBLIC_FILE(internal/internal.h)
 
+
 #endif /* __FT_BUILD_H__ */
 
+
+/* END */
--- a/include/freetype/fterrors.h
+++ b/include/freetype/fterrors.h
@@ -50,16 +50,16 @@
 #undef FT_NEED_EXTERN_C
 
 
-#ifndef   FT_ERRORDEF
+#ifndef FT_ERRORDEF
 
-#  define FT_ERRORDEF( e, v, s )  e = v,
-#  define FT_ERROR_START_LIST     enum {
-#  define FT_ERROR_END_LIST       FT_Err_Max };
+#define FT_ERRORDEF( e, v, s )  e = v,
+#define FT_ERROR_START_LIST     enum {
+#define FT_ERROR_END_LIST       FT_Err_Max };
 
-#  ifdef __cplusplus
-#    define FT_NEED_EXTERN_C
-     extern "C" {
-#  endif
+#ifdef __cplusplus
+#define FT_NEED_EXTERN_C
+  extern "C" {
+#endif
 
 #endif /* !FT_ERRORDEF */
 
--- a/include/freetype/ftimage.h
+++ b/include/freetype/ftimage.h
@@ -24,15 +24,18 @@
   /*************************************************************************/
 
 
-#ifndef FTIMAGE_H
-#define FTIMAGE_H
+#ifndef __FTIMAGE_H__
+#define __FTIMAGE_H__
 
 
-#ifdef __cplusplus
-  extern "C" {
+#ifndef    FT_BUILD_H
+#  define  FT_BUILD_H    <freetype/config/ftbuild.h>
 #endif
+#include   FT_BUILD_H
 
+FT_BEGIN_HEADER
 
+
   /*************************************************************************/
   /*                                                                       */
   /* <Type>                                                                */
@@ -992,12 +995,10 @@
   } FT_Raster_Funcs;
 
 
-#ifdef __cplusplus
-  }
-#endif
+FT_END_HEADER
 
 
-#endif /* FTIMAGE_H */
+#endif /* __FTIMAGE_H__ */
 
 
 /* END */
--- a/include/freetype/internal/internal.h
+++ b/include/freetype/internal/internal.h
@@ -1,29 +1,55 @@
-/* this file is automatically included by <freetype/config/ftbuild.h> */
-/* do not include it manually !!                                      */
+/***************************************************************************/
+/*                                                                         */
+/*  internal.h                                                             */
+/*                                                                         */
+/*    Internal header files (specification only).                          */
+/*                                                                         */
+/*  Copyright 1996-2000 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.                                        */
+/*                                                                         */
+/***************************************************************************/
 
-/* internal header files */
-#define  FT_INTERNAL_OBJECTS_H            FT_INTERNAL_FILE(ftobjs.h)
-#define  FT_INTERNAL_STREAM_H             FT_INTERNAL_FILE(ftstream.h)
-#define  FT_INTERNAL_MEMORY_H             FT_INTERNAL_FILE(ftmemory.h)
-#define  FT_INTERNAL_EXTENSION_H          FT_INTERNAL_FILE(ftextend.h)
-#define  FT_INTERNAL_DEBUG_H              FT_INTERNAL_FILE(ftdebug.h)
-#define  FT_INTERNAL_CALC_H               FT_INTERNAL_FILE(ftcalc.h)
-#define  FT_INTERNAL_DRIVER_H             FT_INTERNAL_FILE(ftdriver.h)
 
-#define  FT_INTERNAL_SFNT_H               FT_INTERNAL_FILE(sfnt.h)
+  /*************************************************************************/
+  /*                                                                       */
+  /* This file is automatically included by `ftbuild.h'.                   */
+  /* Do not include it manually!                                           */
+  /*                                                                       */
+  /*************************************************************************/
 
-#define  FT_INTERNAL_TRUETYPE_TYPES_H     FT_INTERNAL_FILE(tttypes.h)
-#define  FT_INTERNAL_TRUETYPE_ERRORS_H    FT_INTERNAL_FILE(tterrors.h)
 
-#define  FT_INTERNAL_TYPE1_ERRORS_H       FT_INTERNAL_FILE(t1errors.h)
-#define  FT_INTERNAL_TYPE1_TYPES_H        FT_INTERNAL_FILE(t1types.h)
+  /* don't add spaces around the argument of FT_INTERNAL_FILE! */
 
-#define  FT_INTERNAL_CFF_ERRORS_H         FT_INTERNAL_FILE(t2errors.h)
-#define  FT_INTERNAL_CFF_TYPES_H          FT_INTERNAL_FILE(t2types.h)
+#define FT_INTERNAL_OBJECTS_H           FT_INTERNAL_FILE(ftobjs.h)
+#define FT_INTERNAL_STREAM_H            FT_INTERNAL_FILE(ftstream.h)
+#define FT_INTERNAL_MEMORY_H            FT_INTERNAL_FILE(ftmemory.h)
+#define FT_INTERNAL_EXTENSION_H         FT_INTERNAL_FILE(ftextend.h)
+#define FT_INTERNAL_DEBUG_H             FT_INTERNAL_FILE(ftdebug.h)
+#define FT_INTERNAL_CALC_H              FT_INTERNAL_FILE(ftcalc.h)
+#define FT_INTERNAL_DRIVER_H            FT_INTERNAL_FILE(ftdriver.h)
 
-#define  FT_INTERNAL_POSTSCRIPT_NAMES_H   FT_INTERNAL_FILE(psnames.h)
-#define  FT_INTERNAL_POSTSCRIPT_AUX_H     FT_INTERNAL_FILE(psaux.h)
+#define FT_INTERNAL_SFNT_H              FT_INTERNAL_FILE(sfnt.h)
 
-#define  FT_INTERNAL_AUTOHINT_H           FT_INTERNAL_FILE(autohint.h)
-#define  FT_INTERNAL_FNT_TYPES_H          FT_INTERNAL_FILE(fnttypes.h)
+#define FT_INTERNAL_TRUETYPE_TYPES_H    FT_INTERNAL_FILE(tttypes.h)
+#define FT_INTERNAL_TRUETYPE_ERRORS_H   FT_INTERNAL_FILE(tterrors.h)
 
+#define FT_INTERNAL_TYPE1_ERRORS_H      FT_INTERNAL_FILE(t1errors.h)
+#define FT_INTERNAL_TYPE1_TYPES_H       FT_INTERNAL_FILE(t1types.h)
+
+#define FT_INTERNAL_CFF_ERRORS_H        FT_INTERNAL_FILE(t2errors.h)
+#define FT_INTERNAL_CFF_TYPES_H         FT_INTERNAL_FILE(t2types.h)
+
+#define FT_INTERNAL_POSTSCRIPT_NAMES_H  FT_INTERNAL_FILE(psnames.h)
+#define FT_INTERNAL_POSTSCRIPT_AUX_H    FT_INTERNAL_FILE(psaux.h)
+
+#define FT_INTERNAL_AUTOHINT_H          FT_INTERNAL_FILE(autohint.h)
+#define FT_INTERNAL_FNT_TYPES_H         FT_INTERNAL_FILE(fnttypes.h)
+
+
+/* END */
--- a/include/freetype/internal/t1types.h
+++ b/include/freetype/internal/t1types.h
@@ -49,7 +49,7 @@
   /*    T1_Encoding                                                        */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    A structure modeling a custom encoding                             */
+  /*    A structure modeling a custom encoding.                            */
   /*                                                                       */
   /* <Fields>                                                              */
   /*    num_chars  :: The number of character codes in the encoding.       */
--- a/include/freetype/internal/t2types.h
+++ b/include/freetype/internal/t2types.h
@@ -38,7 +38,7 @@
   /*    A structure used to model a CFF Index table.                       */
   /*                                                                       */
   /* <Fields>                                                              */
-  /*    stream      :: source input stream                                 */
+  /*    stream      :: The source input stream.                            */
   /*                                                                       */
   /*    count       :: The number of elements in the index.                */
   /*                                                                       */
@@ -47,7 +47,7 @@
   /*    data_offset :: The position of first data byte in the index's      */
   /*                   bytes.                                              */
   /*                                                                       */
-  /*    offsets     :: table of element offsets in the index               */
+  /*    offsets     :: A table of element offsets in the index.            */
   /*                                                                       */
   /*    bytes       :: If the index is loaded in memory, its bytes.        */
   /*                                                                       */