From 7e3df82efdd2c9cc39ce169873cd95a5e29e9532 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Thu, 20 Jun 2002 21:03:48 +0000 Subject: [PATCH] * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H. (t1_face_check_cast): Removed. (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers also. * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning. --- ChangeLog | 11 ++++++++++ src/base/fttype1.c | 48 +++++++++++++++---------------------------- src/type42/t42parse.c | 3 ++- 3 files changed, 30 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 316059e5c..d60873cc4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-06-19 Detlef Würkner + + * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H. + (t1_face_check_cast): Removed. + (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers + also. + +2002-06-19 Sebastien BARRE + + * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning. + 2002-06-19 Werner Lemberg * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo diff --git a/src/base/fttype1.c b/src/base/fttype1.c index ea9970b9e..3a84be7a0 100644 --- a/src/base/fttype1.c +++ b/src/base/fttype1.c @@ -18,49 +18,35 @@ #include #include FT_INTERNAL_TYPE1_TYPES_H +#include FT_INTERNAL_TYPE42_TYPES_H #include FT_INTERNAL_OBJECTS_H - /* Cast a FT_Face to a T1_Face if necessary. */ - /* This implementation sucks, but a lot of things should change in the */ - /* future anyway... */ - /* */ - static T1_Face - t1_face_check_cast( FT_Face face ) - { - FT_Module driver; - T1_Face result = NULL; - - - if ( face && face->driver != NULL ) - { - driver = (FT_Module)face->driver; - - if ( driver->clazz && driver->clazz->module_name && - ft_strcmp( driver->clazz->module_name, "type1" ) == 0 ) - { - /* correct typecast! */ - result = (T1_Face)face; - } - } - return result; - } - - /* documentation is in t1tables.h */ FT_EXPORT_DEF( FT_Error ) FT_Get_PS_Font_Info( FT_Face face, PS_FontInfoRec* afont_info ) { - FT_Error error = FT_Err_Invalid_Argument; - T1_Face t1_face = t1_face_check_cast( face ); + PS_FontInfo font_info = NULL; + FT_Error error = FT_Err_Invalid_Argument; + const char* driver_name; - if ( t1_face != NULL ) + if ( face && face->driver && face->driver->root.clazz ) { - *afont_info = t1_face->type1.font_info; - error = FT_Err_Ok; + driver_name = face->driver->root.clazz->module_name; + if ( ft_strcmp( driver_name, "type1" ) == 0 ) + font_info = &((T1_Face)face)->type1.font_info; + else if ( ft_strcmp( driver_name, "t1cid" ) == 0 ) + font_info = &((CID_Face)face)->cid.font_info; + else if ( ft_strcmp( driver_name, "type42" ) == 0 ) + font_info = &((T42_Face)face)->type42.font_info; + } + if ( font_info != NULL ) + { + *afont_info = *font_info; + error = FT_Err_Ok; } return error; diff --git a/src/type42/t42parse.c b/src/type42/t42parse.c index 5a0e23e1c..5fffde4cb 100644 --- a/src/type42/t42parse.c +++ b/src/type42/t42parse.c @@ -629,7 +629,8 @@ goto Fail; } - v = (FT_Byte)( 16 * t42_hexval( *cur++ ) + t42_hexval( *cur++ ) ); + v = (FT_Byte)( 16 * t42_hexval( *cur ) + t42_hexval( *( cur + 1 ) ) ); + cur += 2; string_size++; }