* src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number of metrics instead of aborting. Patch suggested by Derek Noonburg.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
diff --git a/ChangeLog b/ChangeLog
index b4fdf8a..0269a92 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-11-18 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
+ of metrics instead of aborting. Patch suggested by Derek Noonburg.
+
2005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
* include/freetype/ftgxval.h, src/base/ftgxval.c
@@ -23,16 +28,15 @@
2005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de>
- * builds/amiga/makefile,
- builds/amiga/makefile.os4,
+ * builds/amiga/makefile, builds/amiga/makefile.os4,
builds/amiga/smakefile.os4,
builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
- build files (added support for the gxvalid module)
+ build files (added support for the gxvalid module).
2005-11-17 Werner Lemberg <wl@gnu.org>
Add vertical metrics support to OpenType CFF outlines. Based on a
- patch from Mike Moening <MikeM@RetekSolutions.com>
+ patch from Mike Moening <MikeM@RetekSolutions.com>.
* src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
(cff_slot_load): Use cff_face_get_vertical_metrics.
diff --git a/builds/unix/ftsystem.c b/builds/unix/ftsystem.c
index 89212eb..81a45eb 100644
--- a/builds/unix/ftsystem.c
+++ b/builds/unix/ftsystem.c
@@ -4,7 +4,7 @@
/* */
/* Unix-specific FreeType low-level system interface (body). */
/* */
-/* Copyright 1996-2001, 2002, 2004 by */
+/* Copyright 1996-2001, 2002, 2004, 2005 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
diff --git a/builds/vms/ftsystem.c b/builds/vms/ftsystem.c
index 2cbb3aa..76bfae9 100644
--- a/builds/vms/ftsystem.c
+++ b/builds/vms/ftsystem.c
@@ -4,7 +4,7 @@
/* */
/* VMS-specific FreeType low-level system interface (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2005 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
diff --git a/builds/win32/ftdebug.c b/builds/win32/ftdebug.c
index 307bf29..420b008 100644
--- a/builds/win32/ftdebug.c
+++ b/builds/win32/ftdebug.c
@@ -4,7 +4,7 @@
/* */
/* Debugging and logging component for Win32 (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2005 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
diff --git a/include/freetype/ftgxval.h b/include/freetype/ftgxval.h
index fd999cc..2fdcdb4 100644
--- a/include/freetype/ftgxval.h
+++ b/include/freetype/ftgxval.h
@@ -206,10 +206,10 @@ FT_BEGIN_HEADER
* otherwise.
*
* After use, the application should deallocate the buffers pointed to by
- * each tables' element, by calling FT_TrueTypeGX_Free(). A NULL value
- * indicates that the table either doesn't exist in the font,
- * the application hasn't asked for validation, or the validator doesn't
- * have the ability to validate the sfnt table.
+ * each `tables' element, by calling FT_TrueTypeGX_Free(). A NULL value
+ * indicates that the table either doesn't exist in the font, the
+ * application hasn't asked for validation, or the validator doesn't have
+ * the ability to validate the sfnt table.
*/
FT_EXPORT( FT_Error )
FT_TrueTypeGX_Validate( FT_Face face,
@@ -310,8 +310,8 @@ FT_BEGIN_HEADER
*
* @note:
* After use, the application should deallocate the buffers pointed to by
- * ckern_table, by calling FT_ClassicKern_Free(). A NULL value indicates
- * that the table doesn't exist in the font.
+ * `ckern_table', by calling FT_ClassicKern_Free(). A NULL value
+ * indicates that the table doesn't exist in the font.
*/
FT_EXPORT( FT_Error )
FT_ClassicKern_Validate( FT_Face face,
diff --git a/include/freetype/ftotval.h b/include/freetype/ftotval.h
index d9b92c1..5b31398 100644
--- a/include/freetype/ftotval.h
+++ b/include/freetype/ftotval.h
@@ -146,8 +146,8 @@ FT_BEGIN_HEADER
* This function only works with OpenType fonts, returning an error
* otherwise.
*
- * After use, the application should deallocate the five tables by
- * FT_OpenType_Free(). A NULL value indicates that the table either
+ * After use, the application should deallocate the five tables with
+ * FT_OpenType_Free(). A NULL value indicates that the table either
* doesn't exist in the font, or the application hasn't asked for
* validation.
*/
diff --git a/src/sfnt/ttload.c b/src/sfnt/ttload.c
index 387c5b3..0c3d357 100644
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -972,9 +972,14 @@
vertical ? "Vertical"
: "Horizontal" ));
+ /* Adobe simply ignores this problem. So we shall do the same. */
+#if 0
error = vertical ? SFNT_Err_Invalid_Vert_Metrics
: SFNT_Err_Invalid_Horiz_Metrics;
goto Exit;
+#else
+ num_shorts = 0;
+#endif
}
if ( FT_QNEW_ARRAY( *longs, num_longs ) ||