ref: c9114b99269c9121e93f8c8d3684120f4c77c34c
parent: 4c1867bfab4e4c0c8f05cd1579ec7d709defa484
author: Werner Lemberg <[email protected]>
date: Thu Feb 10 03:18:27 EST 2005
* builds/unix/freetype-config.in: Add new flag `--ftversion' to return the FreeType version. Suggested by George Williams <[email protected]>. * docs/CHANGES: Updated. * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case of error. Reported by YAMANO-UCHI Hidetoshi <[email protected]>. * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_closepath>: Accept `T1_Parse_Have_Moveto' state also which can happen in empty glyphs. Reported by Ian Brown <[email protected]>.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2005-02-10 Werner Lemberg <[email protected]>
+
+ * builds/unix/freetype-config.in: Add new flag `--ftversion' to
+ return the FreeType version. Suggested by George Williams
+ <[email protected]>.
+
+ * docs/CHANGES: Updated.
+
+2005-02-09 Werner Lemberg <[email protected]>
+
+ * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case
+ of error. Reported by YAMANO-UCHI Hidetoshi <[email protected]>.
+
+2005-02-08 Werner Lemberg <[email protected]>
+
+ * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
+ <op_closepath>: Accept `T1_Parse_Have_Moveto' state also which can
+ happen in empty glyphs. Reported by Ian Brown
+ <[email protected]>.
+
2005-02-04 Werner Lemberg <[email protected]>
* src/otlayout/*: Removed. Obsolete.
--- a/builds/unix/freetype-config.in
+++ b/builds/unix/freetype-config.in
@@ -23,6 +23,7 @@
the FreeType library
--exec-prefix=EPREFIX override \`--exec-prefix' value with EPREFIX
--version display libtool version of the FreeType library
+ --ftversion display FreeType version number
--libs display flags for linking with the FreeType library
--libtool display library name for linking with libtool
--cflags display flags for compiling with the FreeType
@@ -63,6 +64,19 @@
;;
--version)
echo @ft_version@
+ exit 0
+ ;;
+ --ftversion)
+ major=`grep define @prefix@/include/freetype2/freetype/freetype.h \
+ | grep FREETYPE_MAJOR \
+ | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'`
+ minor=`grep define @prefix@/include/freetype2/freetype/freetype.h \
+ | grep FREETYPE_MINOR \
+ | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'`
+ patch=`grep define @prefix@/include/freetype2/freetype/freetype.h \
+ | grep FREETYPE_PATCH \
+ | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'`
+ echo $major.$minor.$patch
exit 0
;;
--cflags)
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -17,7 +17,9 @@
distortions. It has been introduced in version 2.1.8, and it is
highly recommended to upgrade.
+ - FreeType didn't properly parse empty Type 1 glyphs.
+
II. IMPORTANT CHANGES
- George Williams contributed code to read kerning data from PFM
@@ -47,6 +49,9 @@
depth of 2bpp or 4bpp to a depth of 8bpp. The documentation has
not mentioned this explicitly, but implementors might have
relied on this after looking into the source files.
+
+ - A new option `--ftversion' has been added to freetype-config to
+ return the FreeType version.
LATEST CHANGES BETWEEN 2.1.9 and 2.1.8
--- a/src/otvalid/otvmod.c
+++ b/src/otvalid/otvmod.c
@@ -4,7 +4,7 @@
/* */
/* FreeType's OpenType validation module implementation (body). */
/* */
-/* Copyright 2004 by */
+/* Copyright 2004, 2005 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -178,6 +178,17 @@
*ot_jstf = (FT_Bytes)jstf;
Exit:
+ if ( error ) {
+ FT_Memory memory = FT_FACE_MEMORY( face );
+
+
+ FT_FREE( base );
+ FT_FREE( gdef );
+ FT_FREE( gpos );
+ FT_FREE( gsub );
+ FT_FREE( jstf );
+ }
+
return error;
}
--- a/src/psaux/t1decode.c
+++ b/src/psaux/t1decode.c
@@ -4,7 +4,7 @@
/* */
/* PostScript Type 1 decoding routines (body). */
/* */
-/* Copyright 2000-2001, 2002, 2003, 2004 by */
+/* 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, */
@@ -796,7 +796,8 @@
FT_TRACE4(( " closepath" ));
close_contour( builder );
- if ( builder->parse_state != T1_Parse_Have_Path )
+ if ( !( builder->parse_state == T1_Parse_Have_Path ||
+ builder->parse_state == T1_Parse_Have_Moveto ) )
goto Syntax_Error;
builder->parse_state = T1_Parse_Have_Width;
break;