* src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21. Reported by Peter Weilbacher <mozilla@weilbacher.org>. * docs/CHANGES: Updated.
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 105 106 107
diff --git a/ChangeLog b/ChangeLog
index 923e373..016f4de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-06-18 Werner Lemberg <wl@gnu.org>
+
+ * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
+ Reported by Peter Weilbacher <mozilla@weilbacher.org>.
+
+ * docs/CHANGES: Updated.
+
2008-06-15 George Williams <gww@silcom.com>
* src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
diff --git a/docs/CHANGES b/docs/CHANGES
index ade991b..9b9e174 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -8,6 +8,13 @@ CHANGES BETWEEN 2.3.7 and 2.3.6
`FT_Request_Metrics' and `FT_Select_Metrics', returning an
incorrect descender size.
+ - The `style_name' field in the `FT_FaceRec' structure often
+ contained a wrong value for Type 1 fonts. This misbehaviour
+ has been introduced in version 2.3.6 while trying to fix
+ another problem. [Note, however, that this value is
+ informative only since the used algorithm to extract it is
+ very simplistic.]
+
======================================================================
diff --git a/src/type1/t1objs.c b/src/type1/t1objs.c
index 40b258f..bc3e2d4 100644
--- a/src/type1/t1objs.c
+++ b/src/type1/t1objs.c
@@ -90,7 +90,7 @@
FT_LOCAL_DEF( FT_Error )
T1_Size_Init( T1_Size size )
{
- FT_Error error = 0;
+ FT_Error error = T1_Err_Ok;
PSH_Globals_Funcs funcs = T1_Size_Get_Globals_Funcs( size );
@@ -254,8 +254,8 @@
face->unicode_map = NULL;
#endif
- face->root.family_name = 0;
- face->root.style_name = 0;
+ face->root.family_name = NULL;
+ face->root.style_name = NULL;
}
}
@@ -355,15 +355,19 @@
/* XXX: TODO -- add kerning with .afm support */
+
+ /* The following code to extract the family and the style is very */
+ /* simplistic and might get some things wrong. For a full-featured */
+ /* algorithm you might have a look at the whitepaper given at */
+ /* */
+ /* http://blogs.msdn.com/text/archive/2007/04/23/wpf-font-selection-model.aspx */
+
/* get style name -- be careful, some broken fonts only */
/* have a `/FontName' dictionary entry! */
root->family_name = info->family_name;
- /* assume "Regular" style if we don't know better */
- root->style_name = (char *)"Regular";
+ root->style_name = NULL;
- if ( info->weight )
- root->style_name = info->weight;
- else if ( root->family_name )
+ if ( root->family_name )
{
char* full = info->full_name;
char* family = root->family_name;
@@ -401,6 +405,15 @@
root->family_name = type1->font_name;
}
+ if ( !root->style_name )
+ {
+ if ( info->weight )
+ root->style_name = info->weight;
+ else
+ /* assume "Regular" style because we don't know better */
+ root->style_name = (char *)"Regular";
+ }
+
/* compute style flags */
root->style_flags = 0;
if ( info->italic_angle )
@@ -445,7 +458,7 @@
if ( !error )
root->max_advance_width = (FT_Short)max_advance;
else
- error = 0; /* clear error */
+ error = T1_Err_Ok; /* clear error */
}
root->max_advance_height = root->height;