From 81169072215c62db148c19ad5e3cc49d620c1336 Mon Sep 17 00:00:00 2001 From: David Turner Date: Wed, 18 Dec 2002 22:53:12 +0000 Subject: [PATCH] * src/winfonts/winfnt.c: included George Williams' fix to support version 2 fonts correctly --- ChangeLog | 3 +++ src/winfonts/winfnt.c | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 633fa6ae6..2db007b62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,9 @@ * src/base/ftobjs.c (open_face): included Graham Asher's fix to prevent faces without Unicode charmaps from loading + * src/winfonts/winfnt.c: included George Williams' fix to support + version 2 fonts correctly + 2002-12-16 David Turner * docs/VERSION.DLL: updating document to better explain the differences between diff --git a/src/winfonts/winfnt.c b/src/winfonts/winfnt.c index 21ff6dfad..704064802 100644 --- a/src/winfonts/winfnt.c +++ b/src/winfonts/winfnt.c @@ -70,7 +70,7 @@ #undef FT_STRUCTURE #define FT_STRUCTURE WinFNT_HeaderRec - FT_FRAME_START( 134 ), + FT_FRAME_START( 146 ), FT_FRAME_USHORT_LE( version ), FT_FRAME_ULONG_LE ( file_size ), FT_FRAME_BYTES ( copyright, 60 ), @@ -106,7 +106,7 @@ FT_FRAME_USHORT_LE( B_space ), FT_FRAME_USHORT_LE( C_space ), FT_FRAME_USHORT_LE( color_table_offset ), - FT_FRAME_BYTES ( reserved, 4 ), + FT_FRAME_BYTES ( reserved, 16 ), FT_FRAME_END }; @@ -145,6 +145,17 @@ goto Exit; } + /* Version 2 doesn't have these fields */ + if ( header->version == 0x200 ) + { + header->flags = 0; + header->A_space = 0; + header->B_space = 0; + header->C_space = 0; + + header->color_table_offset = 0; + } + if ( header->file_type & 1 ) { FT_TRACE2(( "[can't handle vector FNT fonts]\n" )); @@ -592,7 +603,7 @@ len = new_format ? 6 : 4; /* jump to glyph entry */ - p = font->fnt_frame + 118 + len * glyph_index; + p = font->fnt_frame + ( new_format ? 146 : 118 ) + len * glyph_index; bitmap->width = FT_NEXT_SHORT_LE( p );