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).
--- 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. */
/* */