diff --git a/ChangeLog b/ChangeLog index bf0746a51..503fc35d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,7 +2,7 @@ * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has, ft_contour_enclosed, ft_outline_get_orientation): Commented out. We - have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized. + have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized. (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'. 2006-02-24 Chia-I Wu @@ -12,35 +12,43 @@ * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap), src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make - sure a glyph slot owns its bitmap. It is also marked experimental and - due to change. - (FT_GlyphSlot_Embolden): Undo the last change. It turns out rendering - the outline confuses some applications. + sure a glyph slot owns its bitmap. It is also marked experimental + and due to change. + (FT_GlyphSlot_Embolden): Undo the last change. It turns out that + rendering the outline confuses some applications. 2006-02-24 David Turner - * tagging Third release candidate with VER-2-2-0-RC3 + * Release candidate VER-2-2-0-RC3. + ---------------------------------- - * src/cache/ftcbasic.c: correcting compatibility hack bug + * src/cache/ftcbasic.c: Correct compatibility hack bug. 2006-02-24 Chia-I Wu - * include/freetype/freetype.h (FT_Size_RequestRec): Change the type of - `width' and `height' to `FT_Long'. + * include/freetype/freetype.h (FT_Size_RequestRec): Change the type + of `width' and `height' to `FT_Long'. (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics): New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales directly. 2006-02-23 David Turner - Two patches from Debian libfreetype6 for 2.1.10. + Two BDF patches from Debian libfreetype6 for 2.1.10. * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width glyphs. Fix a problem with large encodings. - * src/cache/ftccmap.c: trying to hack binary compatibility for - gnustep-back (GNUstep backend module) which still crashes under Sarge. + + Fix binary compatibility issues for gnustep-back (GNUstep backend + module) which still crashes under Sarge. + + * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec, + FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data + structures and enumerations. + (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New + compatibility code. 2006-02-23 Chia-I Wu diff --git a/include/freetype/ftbitmap.h b/include/freetype/ftbitmap.h index 7c61b6c6b..9692f915a 100644 --- a/include/freetype/ftbitmap.h +++ b/include/freetype/ftbitmap.h @@ -5,7 +5,7 @@ /* FreeType utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp */ /* bitmaps into 8bpp format (specification). */ /* */ -/* Copyright 2004, 2005 by */ +/* Copyright 2004, 2005, 2006 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c index e3008b663..affeaa6a9 100644 --- a/src/base/ftoutln.c +++ b/src/base/ftoutln.c @@ -669,6 +669,7 @@ #if 0 + #define FT_OUTLINE_GET_CONTOUR( outline, c, first, last ) \ do { \ (first) = ( c > 0 ) ? (outline)->points + \ @@ -829,7 +830,8 @@ return orient; } -#endif + +#endif /* 0 */ /* documentation is in ftoutln.h */ diff --git a/src/base/ftsynth.c b/src/base/ftsynth.c index f363b3e45..7ff2a3c38 100644 --- a/src/base/ftsynth.c +++ b/src/base/ftsynth.c @@ -71,7 +71,7 @@ FT_EXPORT_DEF( FT_Error ) FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ) { - if ( slot && slot->format == FT_GLYPH_FORMAT_BITMAP && + if ( slot && slot->format == FT_GLYPH_FORMAT_BITMAP && !( slot->internal->flags & FT_GLYPH_OWN_BITMAP ) ) { FT_Bitmap bitmap; diff --git a/src/cache/ftcbasic.c b/src/cache/ftcbasic.c index dd69e9795..9a7fa54c9 100644 --- a/src/cache/ftcbasic.c +++ b/src/cache/ftcbasic.c @@ -337,6 +337,7 @@ query.attrs.load_flags = desc->flags; } else + #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ { @@ -590,6 +591,7 @@ query.attrs.load_flags = desc->flags; } else + #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ { diff --git a/src/cache/ftccmap.c b/src/cache/ftccmap.c index 8b291af3c..e9957e188 100644 --- a/src/cache/ftccmap.c +++ b/src/cache/ftccmap.c @@ -67,6 +67,7 @@ #endif /* FT_CONFIG_OLD_INTERNALS */ + /*************************************************************************/ /* */ /* Each FTC_CMapNode contains a simple array to map a range of character */ @@ -298,50 +299,56 @@ } #ifdef FT_CONFIG_OPTION_OLD_INTERNALS - /* detect a call from a rogue client that thinks it is linking - * to FreeType 2.1.7. This is possible because the third parameter - * is then a character code, and we've never seen any font with - * more than a few charmaps, so if the index is very large... - * - * there is also little chance that a rogue client is interested - * by Unicode values 0 to 3 :-) - */ + + /* + * Detect a call from a rogue client that thinks it is linking + * to FreeType 2.1.7. This is possible because the third parameter + * is then a character code, and we have never seen any font with + * more than a few charmaps, so if the index is very large... + * + * It is also very unlikely that a rogue client is interested + * in Unicode values 0 to 3. + */ if ( cmap_index >= 4 ) { FTC_OldCMapDesc desc = (FTC_OldCMapDesc) face_id; + char_code = (FT_UInt32)cmap_index; query.face_id = desc->face_id; switch ( desc->type ) { - case FTC_OLD_CMAP_BY_INDEX: - query.cmap_index = desc->u.index; - query.char_code = (FT_UInt32)cmap_index; - break; + case FTC_OLD_CMAP_BY_INDEX: + query.cmap_index = desc->u.index; + query.char_code = (FT_UInt32)cmap_index; + break; - case FTC_OLD_CMAP_BY_ENCODING: - { - FT_Face face; + case FTC_OLD_CMAP_BY_ENCODING: + { + FT_Face face; - error = FTC_Manager_LookupFace( cache->manager, desc->face_id, - &face ); - if ( error ) - return 0; - FT_Select_Charmap( face, desc->u.encoding ); + error = FTC_Manager_LookupFace( cache->manager, desc->face_id, + &face ); + if ( error ) + return 0; - return FT_Get_Char_Index( face, char_code ); - } - break; + FT_Select_Charmap( face, desc->u.encoding ); - default: - return 0; + return FT_Get_Char_Index( face, char_code ); + } + break; + + default: + return 0; } } else + #endif /* FT_CONFIG_OPTION_OLD_INTERNALS */ + { query.face_id = face_id; query.cmap_index = (FT_UInt)cmap_index;