* 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.
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
diff --git a/ChangeLog b/ChangeLog
index 316059e..d60873c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-06-19 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * 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 <sebastien@barre.nom.fr>
+
+ * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
+
2002-06-19 Werner Lemberg <wl@gnu.org>
* src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
diff --git a/src/base/fttype1.c b/src/base/fttype1.c
index ea9970b..3a84be7 100644
--- a/src/base/fttype1.c
+++ b/src/base/fttype1.c
@@ -18,49 +18,35 @@
#include <ft2build.h>
#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 )
+ {
+ 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 = t1_face->type1.font_info;
- error = FT_Err_Ok;
+ *afont_info = *font_info;
+ error = FT_Err_Ok;
}
return error;
diff --git a/src/type42/t42parse.c b/src/type42/t42parse.c
index 5a0e23e..5fffde4 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++;
}