* src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.

Formatting.
This commit is contained in:
Werner Lemberg 2001-12-20 21:22:02 +00:00
parent 21e046e0c4
commit f41e71a199
10 changed files with 238 additions and 185 deletions

View File

@ -7,39 +7,80 @@
ftc_family_table_free, FTC_Manager_Check): Ditto.
* src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
* src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
2001-12-20 David Turner <david@freetype.org>
* include/freetype/config/ftoption.h: Disabling bytecode interpreter
for new release.
Added PostScript hinter support to the CFF and CID drivers.
* docs/CHANGES: Updated for 2.0.6 release.
* include/freetype/internal/cfftypes.h (CFF_Font): New member
`pshinter'.
* src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
* src/cff/cffload.h: Updated.
* src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
(CFF_Builder_Init): This.
Added new argument `hinting'.
(CFF_Done_Builder): Renamed to ...
(CFF_Builder_Done): This.
(CFF_Init_Decoder): Added new argument `hinting'.
(CFF_Parse_CharStrings): Implement vstem support.
(CFF_Load_Glyph): Updated.
Add hinting support.
(cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
(cff_argument_counts): Updated.
* src/cff/cffgload.h: Updated.
* src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
(CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
functions.
(CFF_Init_Face): Renamed to ...
(CFF_Face_Init): This.
Add hinter support.
(CFF_Done_Face): Renamed to ...
(CFF_Face_Done): This.
(CFF_Init_Driver): Renamed to ...
(CFF_Driver_Init): This.
(CFF_Done_Driver): Renamed to ...
(CFF_Driver_Done): This.
* src/cff/cffobjs.h: Updated.
* src/cff/cffdrivr.c (cff_driver_class): Updated.
* include/freetype/internal/t1types.h (CID_FaceRec): New member
`pshinter'.
* src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
* src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
(CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
(CID_Done_Face): Renamed to ...
(CID_Face_Done): This.
(CID_Init_Face): Renamed to ...
(CID_Face_Init): This.
Add hinting support.
(CID_Init_Driver): Renamed to ...
(CID_Driver_Init): This.
(CID_Done_Driver): Renamed to ...
(CID_Driver_Done): This.
* src/cid/cidobjs.h: Updated.
* src/cidriver.c: Updated.
* src/pshinter/pshrec.c (t2_hint_stems): Fixed.
* src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
crashed the library on exit.
* src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
transformation of hinted glyphs.
* src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
to mode the definition of encoding tables within "cffload.c" instead
of making them part of a shared header (causing problems in "multi"
builds).
* docs/TODO: Added "stem3 and counter hints support" to the TODO list
for the Postscript hinter.
to move the definition of encoding tables back within "cffload.c"
instead of making them part of a shared header (causing problems in
"multi" builds). This reverts change 2001-08-08.
* docs/CHANGES: Updated for 2.0.6 release.
* docs/TODO: Added "stem3 and counter hints support" to the TODO
list for the Postscript hinter.
* docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
* src/pshinter/pshrec.c (t2_hint_stems), src/cff/cffobjs.h,
src/cff/cffobjs.c, src/cff/cffload.c, src/cff/cffload.h,
src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffdriver.c,
include/freetype/internal/cfftypes.h: added Postscript hinter support
to the CFF driver.
* src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that crashed
the library on exit.
* src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix transform
on hinted glyphs.
* src/cid/cidgload.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
src/cid/cidriver.c, include/freetype/internal/t1types.h: Added
Postscript hinter support to the CID font driver.
2001-12-19 David Turner <david@freetype.org>
* include/freetype/cache/ftcache.h: Added comments to indicate that

View File

@ -44,7 +44,7 @@ Identifier Date Closed by Closure date
------------------------------------------------------------------------------
BAD-TTNAMEID.H 12-09-2001 Antoine N/A
BAD-T1-CHARMAP 15-06-2001 David 2.0.5
BAD-UNIXXX-NAMES 30-07-2001 David 2.0.5
BAD-UNIXXXX-NAMES 30-07-2001 David 2.0.5
GLYPH_TO_BITMAP-BUG 05-12-2001 David 05-12-2001
AUTOHINT-NO-SBITS 13-09-2001 David 2.0.6
@ -84,7 +84,7 @@ BAD-TTNAMEID.H
Which one is correct?
Antoine replied that this was a bug in the TT 1.66 specification, and that
FreeType followed the most recent TrueType/OpenType specification here!
FreeType followed the most recent TrueType/OpenType specification here.
AUTOHINT-SBITS
@ -98,9 +98,9 @@ AUTOHINT-SBITS
efficiently without making a few important internal changes to the
library's design (more importantly, to the font driver interface).
This has been corrected with a hack in FT_Load_Glyph. More important
internal changes should help get rid of it with a clean solution in
a further release like FreeType 2.1
This has been corrected with a hack in FT_Load_Glyph(). More important
internal changes should help get rid of it with a clean solution in a
further release like FreeType 2.1.
BAD-TT-RENDERING
@ -112,10 +112,10 @@ BAD-TT-RENDERING
Tests and comparisons show a _major_ discrepancy of monochrome truetype
bytecode-hinted glyphs! Something seems to be really broken here!
Some of this has been fixed in 2.0.6, there was a bug in the TrueType
loader that prevented it from loading composites correctly. However, there
are still _subtle_ differences between FT1 and FT2 when it comes to
monochrome TrueType-hinted glyphs..
Some of this has been fixed in 2.0.6; there was a bug in the TrueType
loader that prevented it from loading composites correctly. However,
there are still _subtle_ differences between FT1 and FT2 when it comes to
monochrome TrueType-hinted glyphs.
BAD-THIN-LINES
@ -143,7 +143,7 @@ BAD-T1-CHARMAP
table of glyph names in 'src/psaux/pstables.h'.)
BAD-UNIXXX-NAMES
BAD-UNIXXXX-NAMES
Glyph names like uniXXXX are not recognized as they should be. It seems
that code in psmodule.c for uniXXXX glyph names was never tested. The
@ -198,14 +198,14 @@ GLYPH_TO_BITMAP-BUG
Calling FT_Glyph_To_Bitmap() sometimes modifies the original glyph
outline, creating weird alignment artefacts.
This subtle bug was really in the file src/smooth/ftsmooth.c. Basically,
the outline was shifted before rendering it into a new bitmap buffer.
However, it wasn't properly un-shifted after that operation.
This subtle bug was really in the file `src/smooth/ftsmooth.c'.
Basically, the outline was shifted before rendering it into a new bitmap
buffer. However, it wasn't properly un-shifted after that operation.
This was only noticeable with certain glyphs or certain fonts; it crept in
a long time ago.
same bug in src/raster/ftrender1.c by the way..
The same bug has been fixed in src/raster/ftrender1.c also.
=== end of file ===

View File

@ -1,76 +1,80 @@
LATEST CHANGES BETWEEN 2.0.6 and 2.0.5
*** IMPORTANT BUG FIXES:
- it wasn't possible to load embedded bitmaps when the auto-hinter was
used. This is now fixed..
- the TrueType font driver didn't load some composites properly
(the sub-glyphs were slightly shifted, and this was only noticeable
when using monochrome rendering)
I. IMPORTANT BUG FIXES
- Various fixes to the auto-hinter. They merely improve the output of
sans-serif fonts. Note that there are still problems with serifed
fonts and composites (accented characters).
- It wasn't possible to load embedded bitmaps when the auto-hinter was
used. This is now fixed.
- all scalable font drivers mistakenly returned un-fitted glyph advances
when hinting was requested. This created problems for a number of layout
applications. This is a very old bug that got undetected mainly because
most test/demo program perform rounding explicitely or implicitely
(through the cache).
- The TrueType font driver didn't load some composites properly (the
sub-glyphs were slightly shifted, and this was only noticeable when
using monochrome rendering).
- FT_Glyph_ToBitmap did mistakenly modify the source glyph in certain cases.
- Various fixes to the auto-hinter. They merely improve the output of
sans-serif fonts. Note that there are still problems with serifed
fonts and composites (accented characters).
- "glnames.py" still contained a bug that made FreeType return invalid
names for certain glyphs.
- All scalable font drivers erroneously returned un-fitted glyph
advances when hinting was requested. This created problems for a
number of layout applications. This is a very old bug that got
undetected mainly because most test/demo program perform rounding
explicitly or implicitly (through the cache).
- FT_Glyph_To_Bitmap() did erroneously modify the source glyph in
certain cases.
- "glnames.py" still contained a bug that made FreeType return invalid
names for certain glyphs.
*** IMPORTANT UPDATES & NEW FEATURES:
II. IMPORTANT UPDATES AND NEW FEATURES
- important updates to the Mac-specific parts of the library.
- Important updates to the Mac-specific parts of the library.
- The caching sub-system has been completely re-designed, and its API has
evolved (the old one is still supported for backwards).
The documentation for it will be completed on the next release though..
For now, you're encouraged to continue using the old API
- The caching sub-system has been completely re-designed, and its API
has evolved (the old one is still supported for backwards
compatibility).
- A new charmap cache is provided too. See FTC_CMapCache. This is useful
to perform character code -> glyph index translations quickly, without
the need for an opened FT_Face..
The documentation for it is not yet completed, sorry. For now, you
are encouraged to continue using the old API. However, the ftview
demo program in the ft2demos package has already been updated to use
the new caching functions.
- A NEW POSTSCRIPT HINTER module has been added to support native hints in
the following formats: Postscript Type 1, Postscript CID and CFF/CEF.
- A new charmap cache is provided too. See FTC_CMapCache(). This is
useful to perform character code -> glyph index translations quickly,
without the need for an opened FT_Face.
CHECK THIS OUT !! Note that the auto-hinter produces better results for
a number of badly-hinted fonts (mostly auto-generated ones) though..
- A NEW POSTSCRIPT HINTER module has been added to support native hints
in the following formats: PostScript Type 1, PostScript CID, and
CFF/CEF.
Please test! Note that the auto-hinter produces better results for a
number of badly-hinted fonts (mostly auto-generated ones) though.
- A memory debugger is now part of the standard FreeType sources. To
enable it, define FT_DEBUG_MEMORY in <freetype/config/ftoption.h>, and
recompile the library.
Additionally, define the _environment_ variable FT_DEBUG_MEMORY and
run any program using FreeType. When the library is exited, a summary
of memory footprints and possible leaks will be displayed.
This works transparently with _any_ program that uses FreeType.
However, you will need a lot of memory to use this (allocated blocks
are never released to the heap to detect double deletes easily).
- A memory debugger is now part of the standard FreeType sources. To
enable it, define FT_DEBUG_MEMORY in <freetype/config/ftoption.h>,
and recompile the library.
Now, define the _environment_ variable FT_DEBUG_MEMORY and run any
program using FreeType. When the library is exited, a summary of
memory footprints and eventual leaks will be displayed..
III. MISCELLANEOUS
this works transparently with _any_ program that uses FreeType..
you'll need _lots_ of memory to use this however (allocated blocks
are never released to the heap to detect double deletes easily)
- We are aware of subtle differences between the output of FreeType
versions 1 and 2 when it comes to monochrome TrueType-hinted glyphs.
These are most probably due to small differences in the monochrome
rasterizers and will be worked out in an upcoming release.
*** OTHER:
- we're aware of subtle differences between the output of FT 1 and FT 2
when it comes to monochrome TrueType-hinted glyphs. These are most
probably due to small differences in the monochrome rasterizers and
will be worked out in an upcoming release.
- The next release will be named FreeType 2.1, and will include a
_major_ rework of the library's internals, both to make the source
code more consistent, readable, etc. as well as to implement new
features like:
- the next release will be named FreeType 2.1, and will include a
_major_ rework of the library's internals, both to make the source
code more consistent, readable, etc.. as well as to implement new
features like:
- sub-pixel filtering ("ClearType" and "CoolType" like)
- gamma-correction
- dynamic version and features retrieval
@ -78,9 +82,6 @@ LATEST CHANGES BETWEEN 2.0.6 and 2.0.5
- important enhancements to the monochrome rasterizer
(especially for Postscript-based formats)
Merry XMas :-)
============================================================================
LATEST CHANGES BETWEEN 2.0.5 and 2.0.4
@ -118,9 +119,9 @@ LATEST CHANGES BETWEEN 2.0.5 and 2.0.4
- Added a new function named "FT_Get_Postscript_Name" to retrieve the
"unique" Postscript font name of a given face.
- Added a new public header size named FT_SIZES_H (or <freetype/ftsizes.h>)
providing new FT_Size-management functions: FT_New_Size, FT_Activate_Size,
FT_Done_Size.
- Added a new public header size named FT_SIZES_H (or
<freetype/ftsizes.h>) providing new FT_Size-management functions:
FT_New_Size, FT_Activate_Size, FT_Done_Size.
- Fixed a reallocation bug that generated a dangling pointer (and possibly
memory leaks) with Postscript fonts (in src/psaux/psobjs.c).

View File

@ -6,4 +6,4 @@ not exactly bugs, but should be considered though:
* Add synthesized Unicode charmap processing to the CFF driver.
* Implement stem3/counter hints properly in the Postscript hinter
* Implement stem3/counter hints properly in the Postscript hinter.

View File

@ -190,7 +190,7 @@ FT_BEGIN_HEADER
CID_Subrs* subrs;
/* since FT 2.1 - interface to PostScript hinter */
void* pshinter;
void* pshinter;
} CID_FaceRec;

View File

@ -2633,7 +2633,6 @@
FT_Done_Library( FT_Library library )
{
FT_Memory memory;
FT_UInt n;
if ( !library )
@ -2646,19 +2645,24 @@
library->generic.finalizer( library );
/* Close all modules in the library */
#if 1
#if 1
while ( library->num_modules > 0 )
FT_Remove_Module( library, library->modules[0] );
#else
for ( n = 0; n < library->num_modules; n++ )
#else
{
FT_Module module = library->modules[n];
FT_UInt n;
if ( module )
for ( n = 0; n < library->num_modules; n++ )
{
Destroy_Module( module );
library->modules[n] = 0;
FT_Module module = library->modules[n];
if ( module )
{
Destroy_Module( module );
library->modules[n] = 0;
}
}
}
#endif

View File

@ -543,7 +543,6 @@
if ( charcode < 0 || charcode > 255 )
return -1;
/* Get code to SID mapping from `cff_standard_encoding'. */
glyph_sid = CFF_Get_Standard_Encoding( (FT_UInt)charcode );

View File

@ -50,8 +50,8 @@
/* */
/* SIZE FUNCTIONS */
/* */
/* note that we store the global hints in the size's "internal" root */
/* field */
/* Note that we store the global hints in the size's "internal" root */
/* field. */
/* */
/*************************************************************************/
@ -59,7 +59,7 @@
static PSH_Globals_Funcs
CFF_Size_Get_Globals_Funcs( CFF_Size size )
{
CFF_Face face = (CFF_Face) size->face;
CFF_Face face = (CFF_Face)size->face;
CFF_Font* font = face->extra.data;
PSHinter_Interface* pshinter = font->pshinter;
FT_Module module;
@ -69,7 +69,7 @@
"pshinter" );
return ( module && pshinter && pshinter->get_globals_funcs )
? pshinter->get_globals_funcs( module )
: 0 ;
: 0;
}
@ -99,22 +99,24 @@
if ( funcs )
{
PSH_Globals globals;
CFF_Face face = (CFF_Face)size->face;
CFF_Font* font = face->extra.data;
CFF_SubFont* subfont = &font->top_font;
PSH_Globals globals;
CFF_Face face = (CFF_Face)size->face;
CFF_Font* font = face->extra.data;
CFF_SubFont* subfont = &font->top_font;
CFF_Private* cpriv = &subfont->private_dict;
T1_Private priv;
CFF_Private* cpriv = &subfont->private_dict;
T1_Private priv;
/* IMPORTANT: the CFF and Type1 private dictionaries have */
/* slightly different structures, we need to */
/* synthetize a type1 dictionary on the fly here !! */
/* IMPORTANT: The CFF and Type1 private dictionaries have */
/* slightly different structures; we need to */
/* synthetize a type1 dictionary on the fly here. */
{
FT_UInt n, count;
FT_UInt n, count;
MEM_Set( &priv, 0, sizeof(priv) );
MEM_Set( &priv, 0, sizeof ( priv ) );
count = priv.num_blue_values = cpriv->num_blue_values;
for ( n = 0; n < count; n++ )
@ -136,20 +138,20 @@
priv.blue_shift = cpriv->blue_shift;
priv.blue_fuzz = cpriv->blue_fuzz;
priv.standard_width[0] = (FT_UShort) cpriv->standard_width;
priv.standard_height[0] = (FT_UShort) cpriv->standard_height;
priv.standard_width[0] = (FT_UShort)cpriv->standard_width;
priv.standard_height[0] = (FT_UShort)cpriv->standard_height;
count = priv.num_snap_widths = cpriv->num_snap_widths;
for ( n = 0; n < count; n++ )
priv.snap_widths[n] = cpriv->snap_widths[n];
count = priv.num_snap_heights = cpriv->num_snap_heights;
for ( n = 0; n < count; n++ )
priv.snap_heights[n] = cpriv->snap_heights[n];
priv.force_bold = cpriv->force_bold;
priv.language_group = cpriv->language_group;
priv.lenIV = cpriv->lenIV;
priv.force_bold = cpriv->force_bold;
priv.language_group = cpriv->language_group;
priv.lenIV = cpriv->lenIV;
}
error = funcs->create( size->face->memory, &priv, &globals );
@ -191,31 +193,34 @@
FT_LOCAL_DEF FT_Error
CFF_GlyphSlot_Init( CFF_GlyphSlot slot )
CFF_GlyphSlot_Init( CFF_GlyphSlot slot )
{
CFF_Face face = (CFF_Face) slot->root.face;
CFF_Font* font = face->extra.data;
PSHinter_Interface* pshinter = font->pshinter;
CFF_Face face = (CFF_Face)slot->root.face;
CFF_Font* font = face->extra.data;
PSHinter_Interface* pshinter = font->pshinter;
if (pshinter)
if ( pshinter )
{
FT_Module module;
module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );
if (module)
module = FT_Get_Module( slot->root.face->driver->root.library,
"pshinter" );
if ( module )
{
T2_Hints_Funcs funcs;
funcs = pshinter->get_t2_funcs( module );
slot->root.internal->glyph_hints = (void*)funcs;
}
}
return 0;
}
/*************************************************************************/
/* */
/* FACE FUNCTIONS */
@ -440,12 +445,12 @@
FT_Int num_params,
FT_Parameter* params )
{
FT_Error error;
SFNT_Interface* sfnt;
PSNames_Interface* psnames;
PSHinter_Interface* pshinter;
FT_Bool pure_cff = 1;
FT_Bool sfnt_format = 0;
FT_Error error;
SFNT_Interface* sfnt;
PSNames_Interface* psnames;
PSHinter_Interface* pshinter;
FT_Bool pure_cff = 1;
FT_Bool sfnt_format = 0;
sfnt = (SFNT_Interface*)FT_Get_Module_Interface(
@ -534,13 +539,13 @@
goto Exit;
cff->pshinter = pshinter;
/* Complement the root flags with some interesting information. */
/* Note that this is only necessary for pure CFF and CEF fonts. */
root = &face->root;
root = &face->root;
root->num_glyphs = cff->num_glyphs;
if ( pure_cff )
{
CFF_Font_Dict* dict = &cff->top_font.font_dict;

View File

@ -38,7 +38,6 @@
#define FT_COMPONENT trace_cidobjs
/*************************************************************************/
/* */
/* SLOT FUNCTIONS */
@ -54,28 +53,34 @@
FT_LOCAL_DEF FT_Error
CID_GlyphSlot_Init( CID_GlyphSlot slot )
{
{
CID_Face face;
PSHinter_Interface* pshinter;
face = (CID_Face) slot->root.face;
pshinter = face->pshinter;
if (pshinter)
if ( pshinter )
{
FT_Module module;
module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );
if (module)
module = FT_Get_Module( slot->root.face->driver->root.library,
"pshinter" );
if ( module )
{
T1_Hints_Funcs funcs;
funcs = pshinter->get_t1_funcs( module );
slot->root.internal->glyph_hints = (void*)funcs;
slot->root.internal->glyph_hints = (void*)funcs;
}
}
return 0;
}
/*************************************************************************/
/* */
@ -87,16 +92,16 @@
static PSH_Globals_Funcs
CID_Size_Get_Globals_Funcs( CID_Size size )
{
CID_Face face = (CID_Face) size->root.face;
CID_Face face = (CID_Face)size->root.face;
PSHinter_Interface* pshinter = face->pshinter;
FT_Module module;
module = FT_Get_Module( size->root.face->driver->root.library,
"pshinter" );
return ( module && pshinter && pshinter->get_globals_funcs )
? pshinter->get_globals_funcs( module )
: 0 ;
: 0;
}
@ -106,7 +111,7 @@
if ( size->root.internal )
{
PSH_Globals_Funcs funcs;
funcs = CID_Size_Get_Globals_Funcs( size );
if ( funcs )
@ -122,21 +127,21 @@
{
FT_Error error = 0;
PSH_Globals_Funcs funcs = CID_Size_Get_Globals_Funcs( size );
if ( funcs )
{
PSH_Globals globals;
CID_Face face = (CID_Face)size->root.face;
CID_FontDict* dict = face->cid.font_dicts + face->root.face_index;
T1_Private* priv = &dict->private_dict;
PSH_Globals globals;
CID_Face face = (CID_Face)size->root.face;
CID_FontDict* dict = face->cid.font_dicts + face->root.face_index;
T1_Private* priv = &dict->private_dict;
error = funcs->create( size->root.face->memory, priv, &globals );
if ( !error )
size->root.internal = (FT_Size_Internal)(void*)globals;
}
return error;
}
@ -147,13 +152,13 @@
PSH_Globals_Funcs funcs = CID_Size_Get_Globals_Funcs( size );
FT_Error error = 0;
if ( funcs )
error = funcs->set_scale( (PSH_Globals)size->root.internal,
size->root.metrics.x_scale,
size->root.metrics.y_scale,
0, 0 );
return error;
return error;
}
@ -243,10 +248,10 @@
FT_Int num_params,
FT_Parameter* params )
{
FT_Error error;
PSNames_Interface* psnames;
PSAux_Interface* psaux;
PSHinter_Interface* pshinter;
FT_Error error;
PSNames_Interface* psnames;
PSAux_Interface* psaux;
PSHinter_Interface* pshinter;
FT_UNUSED( num_params );
FT_UNUSED( params );
@ -269,22 +274,20 @@
if ( !psaux )
{
psaux = (PSAux_Interface*)FT_Get_Module_Interface(
FT_FACE_LIBRARY( face ), "psaux" );
FT_FACE_LIBRARY( face ), "psaux" );
face->psaux = psaux;
}
pshinter = (PSHinter_Interface*)face->pshinter;
if ( !pshinter )
{
pshinter = (PSHinter_Interface*)
FT_Get_Module_Interface( FT_FACE_LIBRARY( face ), "pshinter" );
pshinter = (PSHinter_Interface*)FT_Get_Module_Interface(
FT_FACE_LIBRARY( face ), "pshinter" );
face->pshinter = pshinter;
}
/* open the tokenizer; this will also check the font format */
if ( FILE_Seek( 0 ) )
goto Exit;

View File

@ -1177,8 +1177,8 @@
}
/* compute lengths */
for ( n = 0; n < count*2; n += 2 )
stems[n+1] = stems[n+1] - stems[n];
for ( n = 0; n < count * 2; n += 2 )
stems[n + 1] = stems[n + 1] - stems[n];
/* add them to the current dimension */
ps_hints_stem( (PS_Hints)hints, dimension, count, stems );