fixed a bug that returned an invalid linear width for composite

TrueType glyphs

fixed source code to work with the new error scheme implemented
by Werner
VER-2-0-4-PATCH
David Turner 24 years ago
parent 6c01dd82ae
commit 1ad51db6b1
  1. 7
      ChangeLog
  2. 4
      include/freetype/fttypes.h
  3. 2
      include/freetype/internal/tttypes.h
  4. 4
      src/base/ftobjs.c
  5. 2
      src/base/ftoutln.c
  6. 8
      src/truetype/ttgload.c
  7. 2
      src/truetype/ttinterp.c

@ -12,6 +12,13 @@
corrupted transformed glyphs that were auto-hinted (the transform
was applied twice).
* include/internal/tttypes.h, src/truetype/ttgload.c: fixed a bug
that returned an invalid linear width for composite TrueType glyphs
* include/fttypes.h, src/base/ftobjs.c: fixed source code to work
with the new error scheme implemented by Werner
2001-06-07 Werner Lemberg <wl@gnu.org>
Updating to libtool 1.4.0 and autoconf 2.50.

@ -77,7 +77,7 @@ FT_BEGIN_HEADER
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* <Type> */
@ -509,6 +509,8 @@ FT_BEGIN_HEADER
#define FT_IS_EMPTY( list ) ( (list).head == 0 )
/* return base error code (without module-specific prefix) */
#define FT_ERROR_BASE(x) ((x) & 255)
FT_END_HEADER

@ -1570,6 +1570,8 @@ FT_BEGIN_HEADER
FT_BBox bbox;
FT_Int left_bearing;
FT_Int advance;
FT_Int linear;
FT_Bool linear_def;
FT_Bool preserve_pps;
FT_Vector pp1;
FT_Vector pp2;

@ -1240,7 +1240,7 @@
if ( !error )
goto Success;
if ( error != FT_Err_Unknown_File_Format )
if ( FT_ERROR_BASE(error) != FT_Err_Unknown_File_Format )
goto Fail2;
}
}
@ -2115,7 +2115,7 @@
while ( renderer )
{
error = renderer->render( renderer, slot, render_mode, 0 );
if ( !error || error != FT_Err_Cannot_Render_Glyph )
if ( !error || FT_ERROR_BASE(error) != FT_Err_Cannot_Render_Glyph )
break;
/* FT_Err_Cannot_Render_Glyph is returned if the render mode */

@ -514,7 +514,7 @@
while ( renderer )
{
error = renderer->raster_render( renderer->raster, params );
if ( !error || error != FT_Err_Cannot_Render_Glyph )
if ( !error || FT_ERROR_BASE(error) != FT_Err_Cannot_Render_Glyph )
break;
/* FT_Err_Cannot_Render_Glyph is returned if the render mode */

@ -712,6 +712,12 @@
loader->left_bearing = left_bearing;
loader->advance = advance_width;
if ( !loader->linear_def )
{
loader->linear_def = 1;
loader->linear = advance_width;
}
}
offset = face->glyph_locations[index];
@ -1154,7 +1160,7 @@
/* get the device-independent horizontal advance. It is scaled later */
/* by the base layer. */
{
FT_Pos advance = loader->advance;
FT_Pos advance = loader->linear;
/* the flag FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH was introduced to */

@ -7390,7 +7390,7 @@
#endif /* TT_CONFIG_OPTION_INTERPRETER_SWITCH */
if ( CUR.error != TT_Err_Ok )
if ( CUR.error != FT_Err_Ok )
{
switch ( CUR.error )
{

Loading…
Cancel
Save