ref: 4a5c142a4047d0dc567d94e7cd9b9cb3f1f2b5fe
parent: 4e9dae68b74411f9a5a1a1ba390868f83a17c7ba
author: Werner Lemberg <[email protected]>
date: Tue Aug 29 14:37:25 EDT 2000
Minor fixes.
--- a/src/psaux/t1decode.c
+++ b/src/psaux/t1decode.c
@@ -311,7 +311,7 @@
/* <Return> */
/* FreeType error code. 0 means success. */
/* */
- LOCAL_FUNC_X
+ LOCAL_FUNC
FT_Error T1_Decoder_Parse_Charstrings( T1_Decoder* decoder,
FT_Byte* charstring_base,
FT_UInt charstring_len )
@@ -1012,7 +1012,7 @@
}
- LOCAL_FUNC_X
+ LOCAL_FUNC
FT_Error T1_Decoder_Init( T1_Decoder* decoder,
FT_Face face,
FT_Size size,
@@ -1052,7 +1052,7 @@
}
- LOCAL_FUNC_X
+ LOCAL_FUNC
void T1_Decoder_Done( T1_Decoder* decoder )
{
T1_Builder_Done( &decoder->builder );
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -482,32 +482,31 @@
root->units_per_EM = face->header.Units_Per_EM;
- /* XXXXX: Computing the ascender/descender/height is very different */
- /* from what the specification tells you. Apparently, we must */
- /* be careful because: */
- /* */
- /* - not all fonts have an OS/2 table, in this case, we take the */
- /* values in the horizontal header. However, these values */
- /* very often are not reliable.. */
- /* */
- /* - otherwise, the correctly typographic values are in the */
- /* sTypoAscender, sTypoDescender & sTypoLineGap fields. */
- /* */
- /* however, certains fonts have these fields set to 0. Rather, */
- /* they have usWinAscent & usWinDescent correctly set (but with */
- /* different values). */
- /* */
- /* As an example, Arial Narrow is implemented through four files */
- /* ARIALN.TTF, ARIALNI.TTF, ARIALNB.TTF & ARIALNBI.TTF */
- /* */
- /* Strangely, all fonts have the same values in their sTypoXXX */
- /* fields, except ARIALNB which sets them to 0. */
- /* */
- /* On the other hand, they all have different usWinAscent/Descent */
- /* values.. As a conclusion, the OS/2 table cannot be used to */
- /* compute the text height reliably !! */
- /* */
- /* */
+ /* XXX: Computing the ascender/descender/height is very different */
+ /* from what the specification tells you. Apparently, we */
+ /* must be careful because */
+ /* */
+ /* - not all fonts have an OS/2 table; in this case, we take */
+ /* the values in the horizontal header. However, these */
+ /* values very often are not reliable. */
+ /* */
+ /* - otherwise, the correct typographic values are in the */
+ /* sTypoAscender, sTypoDescender & sTypoLineGap fields. */
+ /* */
+ /* However, certains fonts have these fields set to 0. */
+ /* Rather, they have usWinAscent & usWinDescent correctly */
+ /* set (but with different values). */
+ /* */
+ /* As an example, Arial Narrow is implemented through four */
+ /* files ARIALN.TTF, ARIALNI.TTF, ARIALNB.TTF & ARIALNBI.TTF */
+ /* */
+ /* Strangely, all fonts have the same values in their */
+ /* sTypoXXX fields, except ARIALNB which sets them to 0. */
+ /* */
+ /* On the other hand, they all have different */
+ /* usWinAscent/Descent values -- as a conclusion, the OS/2 */
+ /* table cannot be used to compute the text height reliably! */
+ /* */
/* The ascender/descender/height are computed from the OS/2 table */
/* when found. Otherwise, they're taken from the horizontal */
@@ -520,12 +519,13 @@
root->height = root->ascender - root->descender +
face->horizontal.Line_Gap;
- /* when the line_gap is 0, we add an extra 15 % to the text height */
+ /* if the line_gap is 0, we add an extra 15% to the text height -- */
/* this computation is based on various versions of Times New Roman */
- if (face->horizontal.Line_Gap == 0)
- root->height = (root->height*115 + 50)/100;
+ if ( face->horizontal.Line_Gap == 0 )
+ root->height = ( root->height * 115 + 50 ) / 100;
#if 0
+
/* some fonts have the OS/2 "sTypoAscender", "sTypoDescender" & */
/* "sTypoLineGap" fields set to 0, like ARIALNB.TTF */
if ( face->os2.version != 0xFFFF && root->ascender )
@@ -532,14 +532,17 @@
{
FT_Int height;
+
root->ascender = face->os2.sTypoAscender;
root->descender = -face->os2.sTypoDescender;
height = root->ascender + root->descender + face->os2.sTypoLineGap;
- if (height > root->height)
+ if ( height > root->height )
root->height = height;
}
-#endif
+
+#endif /* 0 */
+
root->max_advance_width = face->horizontal.advance_Width_Max;
root->max_advance_height = face->vertical_info
@@ -549,8 +552,8 @@
root->underline_position = face->postscript.underlinePosition;
root->underline_thickness = face->postscript.underlineThickness;
- /* root->max_points -- already set up */
- /* root->max_contours -- already set up */
+ /* root->max_points -- already set up */
+ /* root->max_contours -- already set up */
}
}