shithub: freetype+ttf2subf

Download patch

ref: a723526ae75fbdbe26f59940c2de994c6c3fb0bb
parent: 3bfb1c08c16895774533511841275471959ae05d
author: Werner Lemberg <[email protected]>
date: Mon Aug 29 20:22:46 EDT 2005

* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.

* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.

* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2005-08-29  Werner Lemberg  <[email protected]>
+
+	* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
+	a preliminary section with some explanations about user allocation.
+
+	* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
+	Don't abort if there are no data types, functions, etc., in a
+	section.
+	Print synopsis only if we have a data type, function, etc.
+
+	* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
+	docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
+	docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
+
 2005-08-28  George Williams  <[email protected]>
 
 	* src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
--- a/docs/CUSTOMIZE
+++ b/docs/CUSTOMIZE
@@ -1,6 +1,6 @@
-How to customize the compilation of the library:
-================================================
-
+How to customize the compilation of the library
+===============================================
+
   FreeType  is  highly  customizable  to  fit various  needs,  and  this
   document describes how it is possible to select options and components
   at compilation time.
@@ -8,7 +8,7 @@
 
 I. Configuration macros
 
-  The file found in "include/freetype/config/ftoption.h" contains a list
+  The file found in `include/freetype/config/ftoption.h' contains a list
   of commented configuration macros that can be toggled by developers to
   indicate which features should be active while building the library.
   
@@ -22,23 +22,28 @@
   
 II. Modules list
 
-  The file found in "include/freetype/config/ftmodule.h" contains a list
+  The file found in `include/freetype/config/ftmodule.h' contains a list
   of  names  corresponding  to  the  modules  and  font  drivers  to  be
   statically compiled in the FreeType library during the build.
 
   You can change it to suit your own preferences.  Be aware that certain
-  modules depend  on others, as  described by the file  "modules.txt" in
+  modules depend  on others, as  described by the file  `modules.txt' in
   this directory.
 
   You can modify  the file's content to suit your  needs, or override it
   at compile time with one of the methods described below.
 
+  Note that  you also  have to  rename the various  `*.mk' files  in the
+  module directories  which you  want to exclude  so that  the extension
+  isn't `.mk'  -- GNU make uses  a simple globbing  mechanism to include
+  all those files.
 
+
 III. System interface
 
   FreeType's default interface to the  system (i.e., the parts that deal
   with   memory   management   and    i/o   streams)   is   located   in
-  "src/base/ftsystem.c".
+  `src/base/ftsystem.c'.
   
   The  current implementation uses  standard C  library calls  to manage
   memory and to read font files.  It is however possible to write custom
@@ -74,32 +79,32 @@
     Use the C include path to ensure that your own versions of the files
     are used at compile time when the lines
     
-       #include FT_CONFIG_OPTIONS_H
-       #include FT_CONFIG_MODULES_H
+      #include FT_CONFIG_OPTIONS_H
+      #include FT_CONFIG_MODULES_H
 
     are       compiled.       Their      default       values      being
     <freetype/config/ftoption.h>  and  <freetype/config/ftmodule.h>, you
     can do something like:
 
-       custom/
-         freetype/
-           config/
-             ftoption.h    => custom options header
-             ftmodule.h    => custom modules list
+      custom/
+        freetype/
+          config/
+            ftoption.h    => custom options header
+            ftmodule.h    => custom modules list
              
-       include/            => normal FreeType 2 include
-         freetype/
-           ...
+      include/            => normal FreeType 2 include
+        freetype/
+          ...
 
-    then change the  C include path to always give  the path to "custom"
-    before the FreeType 2 "include".
+    then change the  C include path to always give  the path to `custom'
+    before the FreeType 2 `include'.
 
 
-  2. Re-defining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
+  2. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
   
     Another way to  do the same thing is to redefine  the macros used to
     name  the  configuration headers.   To  do  so,  you need  a  custom
-    "ft2build.h" whose content can be as simple as:
+    `ft2build.h' whose content can be as simple as:
    
       #ifndef __FT2_BUILD_MY_PLATFORM_H__
       #define __FT2_BUILD_MY_PLATFORM_H__
@@ -111,7 +116,7 @@
 
       #endif /* __FT2_BUILD_MY_PLATFORM_H__ */
    
-    Place those files in a separate directory, e.g.:
+    Place those files in a separate directory, e.g.,
    
       custom/
         ft2build.h           => custom version described above
@@ -118,18 +123,18 @@
         my-ftoption.h        => custom options header
         my-ftmodule.h        => custom modules list header
 
-    and  change the C  include path  to ensure  that "custom"  is always
-    placed before the FT2 "include" during compilation.
+    and  change the C  include path  to ensure  that `custom'  is always
+    placed before the FT2 `include' during compilation.
 
 ------------------------------------------------------------------------
 
-Copyright 2003 by
+Copyright 2003, 2005 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
+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.
 
 
--- a/docs/DEBUG
+++ b/docs/DEBUG
@@ -6,7 +6,7 @@
 
 There  are several ways  to enable  debugging features  in a  FreeType 2
 builds.   This is controlled  through the  definition of  special macros
-located in the file "ftoptions.h".  The macros are:
+located in the file `ftoptions.h'.  The macros are:
 
 
   FT_DEBUG_LEVEL_ERROR
@@ -23,7 +23,7 @@
     FT_TRACE2, ..., FT_TRACE7.
 
     The  trace  macros are  used  to  send  debugging messages  when  an
-    appropriate  "debug  level" is  configured  at  runtime through  the
+    appropriate  `debug  level' is  configured  at  runtime through  the
     FT2_DEBUG environment variable (more on this later).
 
   FT_DEBUG_MEMORY
@@ -51,6 +51,7 @@
 Several macros can be used within the FreeType sources to help debugging
 its code:
 
+
   1. FT_ERROR(( ... ))
 
     This macro is  used to send debug messages  that indicate relatively
@@ -57,10 +58,10 @@
     serious  errors (like  broken font  files),  but will  not stop  the
     execution of  the running program.   Its code is compiled  only when
     either FT_DEBUG_LEVEL_ERROR  or FT_DEBUG_LEVEL_TRACE are  defined in
-    "ftoption.h".
+    `ftoption.h'.
 
     Note that you  have to use a printf-like  signature, but with double
-    parentheses, like in:
+    parentheses, like in
 
       FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
 
@@ -70,14 +71,14 @@
     This macro  is used to check  strong assertions at  runtime.  If its
     condition isn't TRUE,  the program will abort with  a panic message.
     Its   code   is  compiled   when   either  FT_DEBUG_LEVEL_ERROR   or
-    FT_DEBUG_LEVEL_TRACE are defined.  You don't need double-parentheses
-    here.  For example:
+    FT_DEBUG_LEVEL_TRACE are defined.  You don't need double parentheses
+    here.  For example
 
       FT_ASSERT( ptr != NULL );
 
 
   3. FT_TRACE( level, (message...) )
-
+ 
     The  FT_TRACE  macro  is  used  to  send  general-purpose  debugging
     messages during  program execution.   This macro uses  an *implicit*
     macro named FT_COMPONENT used to name the current FreeType component
@@ -84,7 +85,7 @@
     being run.
 
     The developer should always  define FT_COMPONENT as appropriate, for
-    example as in:
+    example as in
 
       #undef  FT_COMPONENT
       #define FT_COMPONENT  trace_io
@@ -91,10 +92,10 @@
 
     The  value  of  the  FT_COMPONENT  macro  is  an  enumeration  named
     trace_XXXX where XXXX  is one of the component  names defined in the
-    internal file <freetype/internal/fttrace.h>.
+    internal file `freetype/internal/fttrace.h'.
 
-    Each  such component  is assigned  a "debug  level", ranging  from 0
-    to 7,  through  the  use   of  the  FT2_DEBUG  environment  variable
+    Each  such component  is assigned  a `debug  level', ranging  from 0
+    to  7,  through  the  use  of  the  FT2_DEBUG  environment  variable
     (described below) when a program linked with FreeType starts.
 
     When FT_TRACE  is called, its  level is compared  to the one  of the
@@ -106,11 +107,11 @@
     least* 2.
 
     The  second  parameter  to  FT_TRACE must  contain  parentheses  and
-    correspond to a printf-like call, as in:
+    correspond to a printf-like call, as in
 
       FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
 
-    The shortcut macros  FT_TRACE0, FT_TRACE1, FT_TRACE2_, ... FT_TRACE7
+    The shortcut macros  FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7
     can be  used with  constant level indices,  and are much  cleaner to
     use, as in
 
@@ -121,8 +122,9 @@
 --------------------------
 
 The  following  environment   variables  control  debugging  output  and
-behaviour of FreeType at runtime:
+behaviour of FreeType at runtime.
 
+
   FT2_DEBUG
 
     This   variable  is   only  used   when  FreeType   is   built  with
@@ -131,20 +133,21 @@
 
        component1:level1 component2:level2 component3:level3 ...
 
-    where "componentX" is the name of a tracing component, as defined in
-    "fttrace.h",  but  without the  "trace_"  prefix.   "levelX" is  the
+    where `componentX' is the name of a tracing component, as defined in
+    `fttrace.h',  but  without the  `trace_'  prefix.   `levelX' is  the
     corresponding level to use at runtime.
 
-    "any"  is a  special  component  name that  will  be interpreted  as
-    "any/all components".  For example, the following definitions
+    `any'  is a  special  component  name that  will  be interpreted  as
+    `any/all components'.  For example, the following definitions
 
        set FT2_DEBUG=any:2 memory:5 io:4        (on Windows)
        export FT2_DEBUG="any:2 memory:5 io:4"   (on Linux with bash)
 
     both stipulate that  all components should have level  2, except for
-    the memory  and io components  which will be  set to trace  levels 5
-    and 4, respectively.
+    the memory and io components which will be set to trace levels 5 and
+    4, respectively.
 
+
   FT2_DEBUG_MEMORY
 
     This  environment variable, when  defined, tells  FreeType to  use a
@@ -154,9 +157,10 @@
     considerably saves time when debugging new additions to the library.
 
     This  code  is  only  compiled  when  FreeType  is  built  with  the
-    FT_DEBUG_MEMORY macro  #defined in  "ftoption.h" though, it  will be
+    FT_DEBUG_MEMORY macro  #defined in  `ftoption.h' though, it  will be
     ignored in other builds.
 
+
   FT2_ALLOC_TOTAL_MAX
 
     This  variable is ignored  if FT2_DEBUG_MEMORY  is not  defined.  It
@@ -168,6 +172,7 @@
     If it is  undefined, or if its value is  not strictly positive, then
     no allocation bounds are checked at runtime.
 
+
   FT2_ALLOC_COUNT_MAX
   
     This  variable is ignored  if FT2_DEBUG_MEMORY  is not  defined.  It
@@ -177,17 +182,17 @@
     engine's robustness.
     
     If it is  undefined, or if its value is  not strictly positive, then
-    no allocation bounsd are checked at runtime.
+    no allocation bounds are checked at runtime.
 
 ------------------------------------------------------------------------
 
-Copyright 2002, 2003, 2004 by
+Copyright 2002, 2003, 2004, 2005 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
+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.
 
 
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -10,41 +10,46 @@
   1. Native TrueType Hinting
 
     Native TrueType  hinting is disabled  by default[1].  If  you really
-    need it, read the file "TRUETYPE" for information.
+    need it, read the file `TRUETYPE' for information.
 
+
   2. Unix Systems (as well as Cygwin or MSys on Windows)
 
-    Please read *both* UPGRADE.UNX and INSTALL.UNX to install or upgrade
-    FreeType 2  on a Unix system.   Note that you *will*  need GNU Make,
+    Please  read *both*  `UPGRADE.UNX' and  `INSTALL.UNX' to  install or
+    upgrade FreeType 2 on a Unix system.  Note that you *need* GNU Make,
     since other make tools won't work (this includes BSD Make).
 
-  3. On VMS with the "mms" build tool
+
+  3. On VMS with the `mms' build tool
   
-    See INSTALL.VMS for installation instructions on this platform.
+    See `INSTALL.VMS' for installation instructions on this platform.
 
+
   4. Other systems using GNU Make
   
     On non-Unix platforms, it is possible to build the library using GNU
-    Make utility.   Note that  *NO OTHER MAKE  TOOL WILL  WORK*[2]! This
+    Make utility.   Note that *NO  OTHER MAKE TOOL WILL  WORK*[2]!  This
     methods  supports  several compilers  on  Windows,  OS/2, and  BeOS,
-    including Mingw, Visual C++, Borland C++, and more.
+    including MinGW, Visual C++, Borland C++, and more.
 
-    Instructions are provided in the file "INSTALL.GNU".
+    Instructions are provided in the file `INSTALL.GNU'.
 
-  5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior)
+
+  5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
   
-    We provide  a small  number of "project  files" for various  IDEs to
+    We provide  a small  number of `project  files' for various  IDEs to
     automatically build the library as  well.  Note that these files are
-    not supported and sporadically maintained by FreeType developers, so
-    don't expect them to work in each release.
+    not   supported  and  only   sporadically  maintained   by  FreeType
+    developers, so don't expect them to work in each release.
     
-    To find  them, have a look  at the content  of the "builds/<system>"
+    To find  them, have a look  at the content  of the `builds/<system>'
     directory, where <system> stands for your OS or environment.
 
+
   6. From you own IDE, or own Makefiles
   
     If you want to create your own project file, follow the instructions
-    given in the "INSTALL.ANY" document of this directory.
+    given in the `INSTALL.ANY' document of this directory.
 
 
 II. Custom builds of the library
@@ -52,7 +57,7 @@
 
   Customizing the  compilation of  FreeType is easy,  and allows  you to
   select only  the components of the  font engine that  you really need.
-  For more details read the file "CUSTOMIZE".
+  For more details read the file `CUSTOMIZE'.
 
 
 ------------------------------------------------------------------------
@@ -60,19 +65,22 @@
 [1] More details on:  http://www.freetype.org/patents.html
 
 [2] make++, a  make tool written in Perl, has  sufficient support of GNU
-    make       extensions       to       build      FreeType.        See
-    http://makepp.sourceforge.net for more information; you need version
-    1.19 or newer, and you must pass option `--norc-substitution'.
+    make extensions to build FreeType.  See
 
+      http://makepp.sourceforge.net
+
+    for more information;  you need version 1.19 or  newer, and you must
+    pass option `--norc-substitution'.
+
 ------------------------------------------------------------------------
 
 Copyright 2000, 2001, 2002, 2003, 2004, 2005 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
+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.
 
 
--- a/docs/INSTALL.ANY
+++ b/docs/INSTALL.ANY
@@ -1,26 +1,26 @@
 Instructions on how to build FreeType with your own build tool
 ==============================================================
 
-See  the  file `CUSTOMIZE'  to  learn  how  to customize  FreeType  to
-specific environments.
+See the file `CUSTOMIZE' to  learn how to customize FreeType to specific
+environments.
 
 
 I. Standard procedure
 ---------------------
 
-  * DISABLE PRE-COMPILED  HEADERS!  This is very  important for Visual
+  * DISABLE  PRE-COMPILED HEADERS!   This is  very important  for Visual
     C++, because FreeType uses lines like:
     
       #include FT_FREETYPE_H
     
-    which are not correctly supported by this compiler while being ISO
-    C compliant!
+    which are not correctly supported by this compiler while being ISO C
+    compliant!
 
-  * You  need  to  add  the directories  `freetype2/include'  to  your
-    include path when compiling the library.
+  * You need to add  the directories `freetype2/include' to your include
+    path when compiling the library.
 
-  * FreeType 2 is made of  several components; each of them is located
-    in    a   subdirectory    of   `freetype2/src'.     For   example,
+  * FreeType 2 is made of several components; each of them is located in
+    a     subdirectory     of     `freetype2/src'.      For     example,
     `freetype2/src/truetype/' contains the TrueType font driver.
 
   * DO NOT COMPILE ALL C FILES!  Rather, compile the following ones:
@@ -85,7 +85,10 @@
       `type42.c'   needs `truetype.c'
 
 
-  You are done.  In case of problems, see the archives of the FreeType
+  Read the file `CUSTOMIZE' in case you want to compile only a subset of
+  the drivers, renderers, and optional modules.
+
+  You are done.   In case of problems, see the  archives of the FreeType
   development mailing list.
 
 
@@ -92,7 +95,7 @@
 II. Support for flat-directory compilation
 ------------------------------------------
 
-  It is  possible to  put all  FreeType 2 source  files into  a single
+  It  is possible  to put  all  FreeType 2  source files  into a  single
   directory, with the *exception* of the `include' hierarchy.
 
   1. Copy all files in current directory
@@ -110,19 +113,19 @@
       cc -c -Ifreetype2/include ftbase.c
       etc.
 
-    You don't  need to define  the FT_FLAT_COMPILATION macro  (as this
-    was required in previous releases of FreeType 2).
+    You don't need to define  the FT_FLAT_COMPILATION macro (as this was
+    required in previous releases of FreeType 2).
 
-----------------------------------------------------------------------
+------------------------------------------------------------------------
 
 Copyright 2003, 2005 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.
+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.
 
 
 --- end of INSTALL.ANY ---
--- a/docs/INSTALL.GNU
+++ b/docs/INSTALL.GNU
@@ -11,21 +11,23 @@
   1. Install GNU Make
   -------------------
 
-    Because  GNU  Make  is  the  only Make  tool  supported  to  compile
-    FreeType 2, you should install it on your machine.
+    Because GNU Make is the only Make tool supported to compile FreeType
+    2, you should install it on your machine.
 
     The FreeType 2  build system relies on many  features special to GNU
-    Make --  trying to build the  library with any other  Make tool will
-    *fail*.
+    Make.
 
-    NEARLY  ALL OTHER  MAKE TOOLS  WILL FAIL,  INCLUDING "BSD  MAKE", SO
-    REALLY INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
+    NEARLY ALL  OTHER MAKE TOOLS  FAIL, INCLUDING `BSD MAKE',  SO REALLY
+    INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
 
     Note  that make++,  a make  tool  written in  Perl, supports  enough
-    features    of    GNU     make    to    compile    FreeType.     See
-    http://makepp.sourceforge.net for more information; you need version
-    1.19 or newer, and you must pass option `--norc-substitution'.
+    features of GNU make to compile FreeType.  See
+    
+      http://makepp.sourceforge.net
 
+    for more information;  you need version 1.19 or  newer, and you must
+    pass option `--norc-substitution'.
+
     Make sure that  you are invoking GNU Make from  the command line, by
     typing something like:
 
@@ -36,7 +38,7 @@
     VERSION 3.78.1 OR NEWER IS NEEDED!
 
 
-  2. Invoke 'make'
+  2. Invoke `make'
   ----------------
 
     Go to the root directory of  FreeType 2, then simply invoke GNU Make
@@ -59,13 +61,15 @@
       remove the file 'config.mk' from this directory then read the
       INSTALL file for help.
 
-      Otherwise, simply type 'make' again to build the library.
+      Otherwise, simply type 'make' again to build the library
+      or 'make refdoc' to build the API reference (the latter needs
+      python).
       =============================================================
 
 
     If the  detected settings correspond to your  platform and compiler,
     skip to step  5.  Note that if your platform  is completely alien to
-    the build system, the detected platform will be 'ansi'.
+    the build system, the detected platform will be `ansi'.
 
 
   3. Configure the build system for a different compiler
@@ -90,9 +94,9 @@
 
     The  <compiler> name  to  use is  platform-dependent.   The list  of
     available  compilers  for  your  system  is available  in  the  file
-    `builds/<system>/detect.mk'
+    `builds/<system>/detect.mk'.
 
-    If  you are  satisfied by  the  new configuration  summary, skip  to
+    If you  are satisfied  by the new  configuration summary,  skip to
     step 5.
 
 
@@ -131,20 +135,20 @@
   Final note
   
     The  build system  builds a  statically linked  library of  the font
-    engine in the "objs" directory.   It does _not_ support the build of
+    engine in the `objs' directory.   It does _not_ support the build of
     DLLs on Windows and OS/2.  If you need these, you have to either use
-    a  IDE-specific   project  file,  or  follow   the  instructions  in
-    "INSTALL.ANY" to create your own Makefiles.
+    an  IDE-specific  project  file,   or  follow  the  instructions  in
+    `INSTALL.ANY' to create your own Makefiles.
 
 ------------------------------------------------------------------------
 
-Copyright 2003, 2004 by
+Copyright 2003, 2004, 2005 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
+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.
 
 
--- a/docs/INSTALL.UNX
+++ b/docs/INSTALL.UNX
@@ -1,5 +1,5 @@
 This document contains instructions on how to build the FreeType library
-on Unix systems.  This also works for emulations like  Cygwin or MSys on
+on Unix systems.  This also works  for emulations like Cygwin or MSys on
 Win32:
 
 
@@ -12,8 +12,11 @@
 
     [Well, this is not  really correct.  Recently, a perl implementation
     of make called `makepp' has appeared which can also build FreeType 2
-    successfully  on Unix platforms.   See http://makepp.sourceforge.net
-    for more details; you need version 1.19 or newer,  and you must pass
+    successfully on Unix platforms.  See
+
+      http://makepp.sourceforge.net
+
+    for more details; you need version  1.19 or newer, and you must pass
     option `--norc-substitution'.]
 
     Trying to compile the library  with a different Make tool will print
@@ -36,7 +39,7 @@
       make
       make install           (as root)
 
-    The default  installation path is  "/usr/local".  It can  be changed
+    The default  installation path is  `/usr/local'.  It can  be changed
     with the `--prefix=<path>' option.  Example:
 
       ./configure --prefix=/usr
@@ -49,8 +52,8 @@
        gmake
        gmake install            (as root)
 
-    If  this  still  doesn't   work,  something's rotten on your system
-    (e.g. you are using a very old version of GNU Make).
+    If this still doesn't work, there must be a problem with your system
+    (e.g., you are using a very old version of GNU Make).
 
     It  is  possible  to  compile  FreeType in  a  different  directory.
     Assuming the  FreeType source  files in directory  `/src/freetype' a
@@ -63,13 +66,13 @@
 
 ------------------------------------------------------------------------
 
-Copyright 2003, 2004 by
+Copyright 2003, 2004, 2005 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
+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.
 
 
--- a/docs/TRUETYPE
+++ b/docs/TRUETYPE
@@ -1,20 +1,23 @@
 How to enable the TrueType native hinter if you need it
---------------------------------------------------------
+-------------------------------------------------------
 
   The TrueType  bytecode interpreter is disabled in  all public releases
-  of    the    FreeType    packages    for    patents    reasons    (see
-  http://www.freetype.org/patents.html for more details).
+  of the FreeType packages for patents reasons; see
 
+    http://www.freetype.org/patents.html
+
+  for more details.
+
   However,  many Linux distributions  do enable  the interpreter  in the
   FreeType packages (DEB/RPM/etc.) they produce for their platforms.  If
   you are using TrueType fonts on your system, you most probably want to
   enable it manually by doing the following:
 
-    - open the file "include/freetype/config/ftoption.h"
+    - open the file `include/freetype/config/ftoption.h'
 
     - locate a line that says:
 
-          #undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
+        #undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
 
     - change it to:
 
@@ -24,13 +27,13 @@
 
 ------------------------------------------------------------------------
 
-Copyright 2003 by
+Copyright 2003, 2005 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
+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.
 
 
--- a/docs/UPGRADE.UNX
+++ b/docs/UPGRADE.UNX
@@ -10,7 +10,7 @@
   1. Enable the TrueType bytecode hinter if you need it
   -----------------------------------------------------
 
-    See the instructions in the file "TRUETYPE" of this directory.
+    See the instructions in the file `TRUETYPE' of this directory.
    
     Note  that FreeType  supports  TrueType fonts  without the  bytecode
     interpreter through its  auto-hinter, which now generates relatively
@@ -20,9 +20,9 @@
   2. Determine the correct installation path
   ------------------------------------------
 
-    By  default,  the  configure  script  will install  the  library  in
-    "/usr/local".   However,  many Unix  distributions  now install  the
-    library  in "/usr",  since FreeType  is becoming  a  critical system
+    By   default,  the   configure  script   installs  the   library  in
+    `/usr/local'.   However,  many Unix  distributions  now install  the
+    library  in `/usr',  since FreeType  is becoming  a  critical system
     component.
 
     If FreeType is already installed on your system, type
@@ -30,11 +30,11 @@
       freetype-config --prefix
 
     on  the command  line.   This should  return  the installation  path
-    (e.g.,  "/usr"  or "/usr/local").   To  avoid  problems of  parallel
+    (e.g.,  `/usr'  or `/usr/local').   To  avoid  problems of  parallel
     FreeType  versions, use  this path  for the  --prefix option  of the
     configure script.
 
-    Otherwise, simply use "/usr" (or  whatever you think is adequate for
+    Otherwise, simply use `/usr' (or  whatever you think is adequate for
     your installation).
 
 
@@ -47,14 +47,13 @@
     the library with the  instructions below using any other alternative
     (including BSD Make).
 
-    Trying to compile the library  with a different Make tool will print
-    a message like:
+    Trying to  compile the library with  a different Make  tool prints a
+    message like:
 
       Sorry, GNU make is required to build FreeType2.
 
-    and the build process will be aborted.  If this happens, install GNU
-    Make on  your system,  and use the  GNUMAKE environment  variable to
-    name it.
+    and the build process is aborted.  If this happens, install GNU Make
+    on your system, and use the GNUMAKE environment variable to name it.
 
 
   4. Build and install the library
@@ -67,24 +66,24 @@
       make
       make install           (as root)
 
-    where "<yourprefix>" must be replaced  by the prefix returned by the
-    "freetype-config" command.
+    where `<yourprefix>' must be replaced  by the prefix returned by the
+    `freetype-config' command.
 
     When using a  different command to invoke GNU  Make, use the GNUMAKE
     variable.  For  example, if  `gmake' is the  command to use  on your
     system, do something like:
 
-       GNUMAKE=gmake ./configure --prefix=<yourprefix>
-       gmake
-       gmake install            (as root)
+      GNUMAKE=gmake ./configure --prefix=<yourprefix>
+      gmake
+      gmake install            (as root)
 
 
   5. Take care of XFree86 version 4
   ---------------------------------
 
-    Certain recent  Linux distributions will  install _several_ versions
-    of FreeType  on your system.  For  example, on a  fresh Mandrake 8.1
-    system, you can find the following files:
+    Certain Linux  distributions install _several_  versions of FreeType
+    on your  system.  For example, on  a fresh Mandrake  8.1 system, you
+    can find the following files:
 
       /usr/lib/libfreetype.so             which links to
       /usr/lib/libfreetype.6.1.0.so
@@ -97,16 +96,16 @@
     Note that  these files  correspond to two  distinct versions  of the
     library!  It seems that this  surprising issue is due to the install
     scripts of  recent XFree86 servers (from 4.1.0)  which install their
-    own (dated) version of the library in "/usr/X11R6/lib".
+    own (dated) version of the library in `/usr/X11R6/lib'.
 
     In certain  _rare_ cases  you may experience  minor problems  if you
-    install this  release of  the library in  "/usr" only,  namely, that
-    certain  applications  will  not  benefit  from the  bug  fixes  and
-    rendering improvements you would expect.
+    install this  release of  the library in  `/usr' only,  namely, that
+    certain applications do not benefit from the bug fixes and rendering
+    improvements you would expect.
 
     There are two good ways to deal with this situation:
 
-      - Install the library _twice_,  in "/usr" and in "/usr/X11R6" (you
+      - Install the library _twice_,  in `/usr' and in `/usr/X11R6' (you
         have to  do that  each time you  install a new  FreeType release
         though).
 
@@ -125,13 +124,13 @@
 
 ------------------------------------------------------------------------
 
-Copyright 2003 by
+Copyright 2003, 2005 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
+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.
 
 
--- a/docs/VERSION.DLL
+++ b/docs/VERSION.DLL
@@ -1,4 +1,4 @@
-Due  to our  use of  "libtool" to  generate and  install the  FreeType 2
+Due  to our  use of  `libtool' to  generate and  install the  FreeType 2
 libraries on  Unix systems,  as well as  other historical events,  it is
 generally very  difficult to  know precisely which  release of  the font
 engine is installed on a given system.
@@ -7,19 +7,19 @@
 FreeType on Unix.
 
 
-1. Version & Release numbers
-----------------------------
+1. Version and Release numbers
+------------------------------
 
 For each new  public release of FreeType 2,  there are generally *three*
-distinct "version" numbers to consider:
+distinct `version' numbers to consider:
 
   * The official FT2 release number, like 2.0.9, or 2.1.3.
 
-  * The libtool (and Unix)  specific version number, like "9.2.3".  This
-    is what "freetype-config --version" will return.
+  * The libtool (and Unix) specific version number, like 9.2.3.  This is
+    what `freetype-config --version' returns.
 
   * The platform-specific  shared object  number, used for  example when
-    the library is installed as "/usr/lib/libfreetype.so.6.3.2".
+    the library is installed as `/usr/lib/libfreetype.so.6.3.2'.
 
 The platform-specific  number is, unsurprisingly,  platform-specific and
 varies  with the  operating system  you are  using (several  variants of
@@ -32,14 +32,14 @@
 The release number is available  at *compile* time through the following
 macros defined in FT_FREETYPE_H:
 
-  - FREETYPE_MAJOR : major release number
-  - FREETYPE_MINOR : minor release number
-  - FREETYPE_PATCH : patch release number
+  - FREETYPE_MAJOR: major release number
+  - FREETYPE_MINOR: minor release number
+  - FREETYPE_PATCH: patch release number
 
 See below for a small autoconf fragment.
 
 The  release   number  is  also  available  at   *runtime*  through  the
-"FT_Library_Version" API.   Unfortunately, this one  wasn't available or
+`FT_Library_Version' API.   Unfortunately, this one  wasn't available or
 working correctly before the 2.1.3 official release.
 
 
@@ -50,6 +50,7 @@
 libtool  number, as well  as the  shared object  number found  on _most_
 systems, but not all of them:
 
+
     release    libtool      so
   -------------------------------
      2.2.0      9.9.3     6.3.9
@@ -74,10 +75,10 @@
   - 2.1.0 was created as a development branch from 2.0.8 (hence the same
     libtool numbers).
 
-  - 2.0.9  was  a  bug-fix  release  of  the  "stable"  branch,  and  we
+  - 2.0.9  was  a  bug-fix  release  of  the  `stable'  branch,  and  we
     incorrectly increased its libtool number.
 
-  - 2.1.4 is  still in  the "development" branch,  however it  is stable
+  - 2.1.4 is  still in  the `development' branch,  however it  is stable
     enough to be the basis of an upcoming 2.2.0 release.
 
 
@@ -86,7 +87,7 @@
 
 Lars Clausen contributed the following autoconf fragment to detect which
 version of  FreeType is  installed on  a system.  This  one tests  for a
-version that  is at least 2.0.9;  you should change  it to check against
+version that  is at least 2.0.9;  you should change it  to check against
 other release numbers.
 
 
@@ -113,10 +114,10 @@
 Copyright 2002, 2003, 2004, 2005 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
+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.
 
 
--- a/docs/formats.txt
+++ b/docs/formats.txt
@@ -1,46 +1,46 @@
-This file contains a list of various font formats.  It gives the
+This  file  contains a  list  of various  font  formats.   It gives  the
 reference document and whether it is supported in FreeType 2.
 
 
   file type:
-    The only special case is `MAC'; on older Mac OS versions, a `file'
-    is stored as a data and a resource fork, this is, within two
-    separate data chunks.  In all other cases, the font data is stored
+    The only special  case is `MAC'; on older Mac  OS versions, a `file'
+    is  stored as  a  data and  a  resource fork,  this  is, within  two
+    separate data chunks.   In all other cases, the  font data is stored
     in a single file.
 
   wrapper format:
-    The format used to represent the font data.  In the table below it
-    is used only if the font format differs.  Possible values are
-    `SFNT' (binary), `PS' (a text header, followed by binary or text
-    data), and `LZW' (compressed with either `gzip' or `compress').
+    The format used  to represent the font data.  In  the table below it
+    is used only if the font format differs.  Possible values are `SFNT'
+    (binary), `PS' (a text header, followed by binary or text data), and
+    `LZW' (compressed with either `gzip' or `compress').
 
   font format:
-    How the font is to be accessed, possibly after converting the file
-    type and wrapper format into a generic form.  Bitmap formats are
-    `BDF', `PCF', and one form of `WINFNT'; all others are vector
+    How the font  is to be accessed, possibly  after converting the file
+    type and  wrapper format  into a generic  form.  Bitmap  formats are
+    `BDF',  `PCF', and  one  form  of `WINFNT';  all  others are  vector
     formats.
 
   font type:
-    Sub-formats of the font format.  `SBIT' and `MACSBIT' are bitmap
+    Sub-formats  of the font  format.  `SBIT'  and `MACSBIT'  are bitmap
     formats, `MM' and `VAR' support optical axes.
 
   glyph access:
-    If not specified, the glyph access is `standard' to the font
-    format.  Values are `CID' for CID-keyed fonts, `SYNTHETIC' for
-    fonts which are modified versions of other fonts by means of a
-    transformation matrix, `COLLECTION' for collecting multiple fonts
-    (sharing most of the data) into a single file, and `TYPE_0' for PS
-    fonts which are to be accessed in a tree-like structure.
+    If not specified, the glyph access is `standard' to the font format.
+    Values are  `CID' for CID-keyed  fonts, `SYNTHETIC' for  fonts which
+    are modified  versions of other  fonts by means of  a transformation
+    matrix, `COLLECTION' for collecting  multiple fonts (sharing most of
+    the data) into a single file, and `TYPE_0' for PS fonts which are to
+    be accessed in a tree-like structure.
 
   FreeType driver:
-    The module in the FreeType library which handles the specific font
-    format.  A missing entry means that FreeType doesn't support the
+    The module in  the FreeType library which handles  the specific font
+    format.   A missing entry  means that  FreeType doesn't  support the
     font format (yet).
 
 
-Please send additions and/or corrections to [email protected] or to the
-FreeType developer's list at [email protected] (for subscribers
-only).  If you can provide a font example for a format which isn't
+Please  send  additions  and/or  corrections  to [email protected]  or  to  the
+FreeType developer's list  at [email protected] (for subscribers
+only).   If you  can provide  a font  example for  a format  which isn't
 supported yet please send a mail too.
 
 
@@ -122,8 +122,8 @@
 ---  ---     WINFNT VECTOR  ---        ---      MS Windows 3 Developer's Notes
 
 
-[1] Support should be rather simple since this is identical to `CFF'
-    but in a PS wrapper.
+[1] Support should be rather simple since this is identical to `CFF' but
+    in a PS wrapper.
 
 [2] Official PFR specification:
 
@@ -130,8 +130,9 @@
       http://www.bitstream.com/categories/developer/truedoc/pfrspec.html
       http://www.bitstream.com/categories/developer/truedoc/pfrspec1.2.pdf
 
-    The syntax of the auxiliary data is not defined there, but is partially
-    defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1) section 7.4.
+    The  syntax of  the  auxiliary data  is  not defined  there, but  is
+    partially defined in  MHP 1.0.3 (also called ETSI  TS 101812 V1.3.1)
+    section 7.4.
 
       http://www.etsi.org/
       http://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=18799
@@ -143,10 +144,10 @@
 Copyright 2004, 2005 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
+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.
 
 
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -57,6 +57,26 @@
 
 
   /*************************************************************************/
+  /*                                                                       */
+  /* <Section>                                                             */
+  /*    user_allocation                                                    */
+  /*                                                                       */
+  /* <Title>                                                               */
+  /*    User allocation                                                    */
+  /*                                                                       */
+  /* <Abstract>                                                            */
+  /*    How client applications should allocate FreeType data structures.  */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    FreeType assumes that structures allocated by the user and passed  */
+  /*    as arguments are zeroed out except for the actual data.  With      */
+  /*    other words, it is recommended to use `calloc' (or variants of it) */
+  /*    instead of `malloc' for allocation.                                */
+  /*                                                                       */
+  /*************************************************************************/
+
+
+  /*************************************************************************/
   /*************************************************************************/
   /*                                                                       */
   /*                        B A S I C   T Y P E S                          */
--- a/include/freetype/ftchapters.h
+++ b/include/freetype/ftchapters.h
@@ -9,6 +9,20 @@
 /***************************************************************************/
 /*                                                                         */
 /* <Chapter>                                                               */
+/*    general_remarks                                                      */
+/*                                                                         */
+/* <Title>                                                                 */
+/*    General Remarks                                                      */
+/*                                                                         */
+/* <Sections>                                                              */
+/*    user_allocation                                                      */
+/*                                                                         */
+/***************************************************************************/
+
+
+/***************************************************************************/
+/*                                                                         */
+/* <Chapter>                                                               */
 /*    core_api                                                             */
 /*                                                                         */
 /* <Title>                                                                 */
@@ -23,6 +37,7 @@
 /*    header_file_macros                                                   */
 /*                                                                         */
 /***************************************************************************/
+
 
 /***************************************************************************/
 /*                                                                         */
--- a/src/tools/docmaker/tohtml.py
+++ b/src/tools/docmaker/tohtml.py
@@ -410,37 +410,39 @@
         print section.title
         print section_title_footer
 
-        # print section synopsys
-        print section_synopsis_header
-        print "<table align=center cellspacing=5 cellpadding=0 border=0>"
-
         maxwidth = 0
         for b in section.blocks.values():
-            if len(b.name) > maxwidth:
-                maxwidth = len(b.name)
+            if len( b.name ) > maxwidth:
+                maxwidth = len( b.name )
 
         width  = 70  # XXX magic number
-        columns = width / maxwidth
-        if columns < 1:
-            columns = 1
+        if maxwidth <> 0:
+            # print section synopsis
+            print section_synopsis_header
+            print "<table align=center cellspacing=5 cellpadding=0 border=0>"
 
-        count   = len(section.block_names)
-        rows    = (count + columns-1)/columns
-        for r in range(rows):
-            line = "<tr>"
-            for c in range(columns):
-                i = r + c*rows
-                line = line + '<td></td><td>'
-                if i < count:
-                    name = section.block_names[i]
-                    line = line + '<a href="#' + name + '">' + name + '</a>'
+            columns = width / maxwidth
+            if columns < 1:
+                columns = 1
 
-                line = line + '</td>'
-            line = line + "</tr>"
-            print line
+            count = len( section.block_names )
+            rows  = ( count + columns - 1 ) / columns
 
-        print "</table><br><br>"
-        print section_synopsis_footer
+            for r in range( rows ):
+                line = "<tr>"
+                for c in range( columns ):
+                    i = r + c * rows
+                    line = line + '<td></td><td>'
+                    if i < count:
+                        name = section.block_names[i]
+                        line = line + '<a href="#' + name + '">' + name + '</a>'
+
+                    line = line + '</td>'
+                line = line + "</tr>"
+                print line
+
+            print "</table><br><br>"
+            print section_synopsis_footer
 
         print description_header
         print self.make_html_items( section.description )