diff --git a/ChangeLog b/ChangeLog index b7c901428..75ec6e636 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,27 +1,32 @@ +2002-01-03 Werner Lemberg + + * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler + warning. + 2002-01-03 Keith Packard - * builds/unix/ftsystem.c (FT_New_Stream): added a fix to ensure that - all FreeType input streams are closed in child processes of a "fork" - on Unix systems. This is important to avoid (potential) access - control issues.. - + * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that + all FreeType input streams are closed in child processes of a "fork" + on Unix systems. This is important to avoid (potential) access + control issues. 2002-01-03 David Turner - * src/type1/t1objs.c (T1_Face_Init): fixed a bug that crashed the - library when dealing with certain weird fonts (like "Stalingrad", - in "sadn.pfb". This font has no full font name entry.. ) + * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the + library when dealing with certain weird fonts like "Stalingrad", in + "sadn.pfb" (this font has no full font name entry). - * src/base/ftoutln.c, include/freetype/ftoutln.h: added the - FT_Outline_Check API to check the consistency of outline data - - * src/base/ftobjs.c (FT_Load_Glyph): added a call to the new - FT_Outline_Check to ensure that loaded glyphs are valid. This - allows certain fonts like "tt1095m_.ttf" to be loaded even though - it appears they contain really funky glyphs.. - - there still is a bug there though.. !! + * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check): + New function to check the consistency of outline data. + * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to + ensure that loaded glyphs are valid. This allows certain fonts like + "tt1095m_.ttf" to be loaded even though it appears they contain + really funky glyphs. + + There still is a bug there, though. + + * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition. 2001-12-30 David Turner diff --git a/builds/unix/ftsystem.c b/builds/unix/ftsystem.c index c492be19d..048eb4fd1 100644 --- a/builds/unix/ftsystem.c +++ b/builds/unix/ftsystem.c @@ -223,17 +223,17 @@ return FT_Err_Cannot_Open_Resource; } - /* here, we ensure that a "fork" will _not_ duplicate */ - /* our opened input streams on Unix. This is critical */ - /* since it would avoid some (possible) access control */ - /* issues and clean up the kernel file table a bit. */ + /* Here we ensure that a "fork" will _not_ duplicate */ + /* our opened input streams on Unix. This is critical */ + /* since it avoids some (possible) access control */ + /* issues and cleans up the kernel file table a bit. */ /* */ #ifdef F_SETFD -# ifdef FD_CLOEXEC - ret = fcntl ( file, F_SETFD, FD_CLOEXEC); -# else - ret = fcntl ( file, F_SETFD, 1); -# endif /* FD_CLOEXEC */ +#ifdef FD_CLOEXEC + ret = fcntl( file, F_SETFD, FD_CLOEXEC ); +#else + ret = fcntl( file, F_SETFD, 1 ); +#endif /* FD_CLOEXEC */ #endif /* F_SETFD */ if ( fstat( file, &stat_buf ) < 0 ) diff --git a/include/freetype/ftoutln.h b/include/freetype/ftoutln.h index fcf527a59..27cac3a52 100644 --- a/include/freetype/ftoutln.h +++ b/include/freetype/ftoutln.h @@ -53,6 +53,7 @@ FT_BEGIN_HEADER /* FT_Outline_Translate */ /* FT_Outline_Transform */ /* FT_Outline_Reverse */ + /* FT_Outline_Check */ /* */ /* FT_Outline_Get_CBox */ /* FT_Outline_Get_BBox */ @@ -184,10 +185,10 @@ FT_BEGIN_HEADER /* FT_Outline_Check */ /* */ /* */ - /* Check the content of an outline descriptor */ + /* Check the contents of an outline descriptor. */ /* */ /* */ - /* outline :: handle to source outline */ + /* outline :: A handle to a source outline. */ /* */ /* */ /* FreeType error code. 0 means success. */ diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 28b25fc92..2543e82a4 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -914,7 +914,7 @@ if ( error ) goto Exit; - /* check that the loaded outline is correct !! */ + /* check that the loaded outline is correct */ error = FT_Outline_Check( &slot->outline ); if ( error ) goto Exit; @@ -1944,7 +1944,7 @@ FT_Get_Postscript_Name( FT_Face face ) { const char* result = NULL; - + if ( !face ) goto Exit; @@ -2002,19 +2002,19 @@ FT_Activate_Size( FT_Size size ) { FT_Face face; - + if ( size == NULL ) return FT_Err_Bad_Argument; - + face = size->face; if ( face == NULL || face->driver == NULL ) return FT_Err_Bad_Argument; - + /* we don't need anything more complex than that; all size objects */ /* are already listed by the face */ face->size = size; - + return FT_Err_Ok; } diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c index 18c8d77c7..68a22de26 100644 --- a/src/base/ftoutln.c +++ b/src/base/ftoutln.c @@ -299,7 +299,7 @@ /* documentation is in ftoutln.h */ - + FT_EXPORT_DEF( FT_Error ) FT_Outline_Check( FT_Outline* outline ) { @@ -310,18 +310,19 @@ FT_Int end0, end; FT_Int n; - /* empty glyph ?? */ + + /* empty glyph? */ if ( n_points == 0 && n_contours == 0 ) return 0; - + /* check point and contour counts */ if ( n_points <= 0 || n_contours <= 0 ) goto Bad; - + end0 = -1; for ( n = 0; n < n_contours; n++ ) { - end = outline->contours[n]; + end = outline->contours[n]; /* note that we don't accept empty contours */ if ( end <= end0 || end >= n_points ) @@ -329,13 +330,14 @@ end0 = end; } - - if ( end != n_points-1 ) + + if ( end != n_points - 1 ) goto Bad; /* XXX: check the that array */ return 0; } + Bad: return FT_Err_Invalid_Argument; } diff --git a/src/type1/t1objs.c b/src/type1/t1objs.c index 8335f6cba..dfe812523 100644 --- a/src/type1/t1objs.c +++ b/src/type1/t1objs.c @@ -377,7 +377,7 @@ : (char *)"Regular" ); } else - root->style_name = "Regular"; + root->style_name = (char *)"Regular"; } else {