ref: ac812959bbe118d512d955d6d9b6a2f54c4b5522
parent: f7f82d773b7eac9e5b570a3b64bd0325b0beb62c
author: Werner Lemberg <[email protected]>
date: Sun Jan 6 11:42:44 EST 2002
formatting
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,23 +1,25 @@
2002-01-05 David Turner <[email protected]>
- * src/autohint/ahhint.c: modified computation of auto-hinted stem
- widths, this avoids color fringes in "ClearType-like" rendering
-
- * src/truetype/ttgload.c: modified the TrueType loader to make it
- more paranoid, this avoids nasty buffer overflows in the case of
- invalid glyph data (as encountered in the output of some buggy
- font converters..)
+ * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation
+ of auto-hinted stem widths; this avoids color fringes in
+ "ClearType-like" rendering.
+ * src/truetype/ttgload.c (TT_Load_Glyph_Header,
+ TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph):
+ Modified the TrueType loader to make it more paranoid; this avoids
+ nasty buffer overflows in the case of invalid glyph data (as
+ encountered in the output of some buggy font converters).
+
2002-01-04 David Turner <[email protected]>
- * README.UNX: added special README file for Unix users
+ * README.UNX: Added special README file for Unix users.
- * builds/unix/ftsystem.c (FT_New_Stream): fixed typo
-
- * src/base/ftobjs.c: added #include FT_OUTLINE_H to get rid
- of compiler warnings
-
- * src/base/ftoutln.c (FT_Outline_Check): remove compiler warning
+ * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
+
+ * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
+ of compiler warnings.
+
+ * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
2002-01-03 Werner Lemberg <[email protected]>
--- a/README
+++ b/README
@@ -2,20 +2,22 @@
Special note to Unix users
==========================
- Please read the file "README.UNX", it contains important information
- regarding the installation of FreeType on Unix systems, especially
- GNU based operating systems like GNU/Linux.
+ Please read the file "README.UNX", it contains important
+ information regarding the installation of FreeType on Unix
+ systems, especially GNU based operating systems like GNU/Linux.
FreeType 2.0.6
==============
- Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION.
+ Please read the docs/CHANGES file, it contains IMPORTANT
+ INFORMATION.
- Read the files "INSTALL" or "docs/BUILD" for installation instructions.
+ Read the files "INSTALL" or "docs/BUILD" for installation
+ instructions.
- Note that the FreeType 2 documentation is now available as a separate
- package from our sites. See:
+ Note that the FreeType 2 documentation is now available as a
+ separate package from our sites. See:
ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.0.6.tar.bz2
ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.0.6.tar.gz
--- a/README.UNX
+++ b/README.UNX
@@ -1,109 +1,104 @@
-SPECIAL NOTE FOR UNIX USERS:
-============================
- If you're installing this release of FreeType on a system that
- already uses release 2.0.5 (or even an older version), you'll
- need to perform a few special steps to ensure that everything
- goes well:
-
-
- I. Enable the TrueType bytecode hinter if you need it:
- ------------------------------------------------------
-
- The TrueType bytecode interpreter is disabled in all
- public releases of the FreeType packages for patents
- reasons (see www.freetype.org/patents.html for more
- details).
+SPECIAL NOTE FOR UNIX USERS
+===========================
+
+ If you are installing this release of FreeType on a system that
+ already uses release 2.0.5 (or even an older version), you have to
+ perform a few special steps to ensure that everything goes well.
+
+
+ I. Enable the TrueType bytecode 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).
- However, many Linux distributions do enable the
- interpreter in the FreeType packages (DEB/RPM/etc..) they
- produce for their platforms. If you're using TrueType fonts
- on your system, you'll most probably want to enable it
- manually by doing the following:
+ 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"
- locate a line that says:
- #undef TT_CONFIG_OPTION_BYTECODE_ITNERPRETER
+ #undef TT_CONFIG_OPTION_BYTECODE_ITNERPRETER
- change it to:
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
- of course, this must be done _before_ compiling the
- library
+ of course, this must be done _before_ compiling the library
- II. Determine the correct installation path:
- --------------------------------------------
+ II. Determine the correct installation path
+ -------------------------------------------
- By default, the source package will install the library
- in "/usr/local". However, many Unix distributions now
- install the library in "/usr", since FreeType is becoming
- a critical system component
+ By default, the source package will install 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
- freetype-config --prefix
+ freetype-config --prefix
- on the command line. This should return the installation
- path to use below (e.g. "/usr" or "/usr/local"). Otherwise,
- simply use "/usr"
+ on the command line. This should return the installation path to
+ use below (e.g. "/usr" or "/usr/local"). Otherwise, simply use
+ "/usr".
+
+ Then, to build and install the library, type:
+ make setup unix CFG="--prefix=<yourprefix>"
+ make
+ make install (as root)
- then, to build and install the library, type:
-
- make setup unix CFG="--prefix=<yourprefix>"
- 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.
- III. Take care of XFree86 4:
- ----------------------------
+ III. 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'll find the following files:
+ 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:
- /usr/lib/libfreetype.so which links to
- /usr/lib/libfreetype.6.1.0.so
+ /usr/lib/libfreetype.so which links to
+ /usr/lib/libfreetype.6.1.0.so
- and:
+ and
- /usr/X11R6/lib/libfreetype.so which links to
- /usr/X11R6/lib/libfreetype.6.0.so
+ /usr/X11R6/lib/libfreetype.so which links to
+ /usr/X11R6/lib/libfreetype.6.0.so
- 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 irremediably install their own (dated) version of
- the library in "/usr/X11R6/lib"
+ 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
+ irremediably install their 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'd expect..
+ 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'd expect.
- There are two good ways to deal with such nasty systems:
+ There are two good ways to deal with this situation:
- - install the library _twice_, in "/usr" and in "/usr/X11R6"
- (you'll need to do that each time you install a new
- FreeType release though)
+ - Install the library _twice_, in "/usr" and in "/usr/X11R6"
+ (you have to do that each time you install a new FreeType
+ release though).
- - change the link in /usr/X11R6/lib/libfreetype.so to point
- to /usr/lib/libfreetype.so, and get rid of
- /usr/X11R6/lib/libfreetype.6.0.so
+ - Change the link in /usr/X11R6/lib/libfreetype.so to point to
+ /usr/lib/libfreetype.so,
- The FreeType Team is not responsible for this mess, so please contact
- either the XFree86 development team or your Linux distributor to help
- clear this issue.., or if the above information doesn't help..
+ and get rid of
+ /usr/X11R6/lib/libfreetype.6.0.so
-
-
\ No newline at end of file
+ The FreeType Team is not responsible for this problem, so please
+ contact either the XFree86 development team or your Linux
+ distributor to help clear this issue in case the information given
+ here doesn't help.
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -240,6 +240,7 @@
FT_Stream stream = loader->stream;
FT_Int byte_len = loader->byte_len - 10;
+
if ( byte_len < 0 )
return TT_Err_Invalid_Outline;
@@ -281,8 +282,9 @@
short* cur = gloader->current.outline.contours;
short* limit = cur + n_contours;
- /* check room for contours array + instructions count */
- byte_len -= 2*(n_contours+1);
+
+ /* check space for contours array + instructions count */
+ byte_len -= 2 * ( n_contours + 1 );
if ( byte_len < 0 )
goto Invalid_Outline;
@@ -376,12 +378,12 @@
{
if ( *flag & 2 )
byte_len -= 1;
- else if ( (*flag & 16) == 0 )
+ else if ( ( *flag & 16 ) == 0 )
byte_len -= 2;
if ( *flag & 4 )
byte_len -= 1;
- else if ( (*flag & 32) == 0 )
+ else if ( ( *flag & 32 ) == 0 )
byte_len -= 2;
}
@@ -389,7 +391,6 @@
goto Invalid_Outline;
}
-
/* reading the X coordinates */
{
@@ -487,7 +488,7 @@
if ( error )
goto Fail;
- /* check room */
+ /* check space */
byte_len -= 4;
if ( byte_len < 0 )
goto Invalid_Composite;
@@ -499,7 +500,7 @@
subglyph->flags = GET_UShort();
subglyph->index = GET_UShort();
- /* check room */
+ /* check space */
byte_len -= 2;
if ( subglyph->flags & ARGS_ARE_WORDS )
byte_len -= 2;
@@ -823,7 +824,7 @@
goto Exit;
}
- loader->byte_len = (FT_Int) count;
+ loader->byte_len = (FT_Int)count;
#if 0
/* temporary hack */