diff --git a/ChangeLog b/ChangeLog index 8007bf394..a8d635c14 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2002-05-29 Werner Lemberg + + * src/bdf/descrip.mms, src/type42/descrip.mms: New files. + * descrip.mms (all): Updated. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented + compilation. + * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning. + 2002-05-28 Detlef Würkner * builds/amiga/makefile, builds/amiga/smakefile, @@ -8,16 +17,16 @@ 2005-05-28 David Turner - * docs/CHANGES: updating file for upcoming release (2.1.1) + * docs/CHANGES: Updating file for next release (2.1.1). - * src/bdf/bdflib.c: removing compiler warnings + * src/bdf/bdflib.c: Removing compiler warnings. * include/freetype/ftxf86.h, src/base/ftxf86.c: New files. - They provad a new API (FT_Get_X11_Font_Format) an X11-compatible - string describing the font format of a given face. This was put in - a new optional base source file, corresponding to a new public - header (named FT_XFREE86_H since this function should only be used - within the XFree86 font server IMO). + They provide a new API (FT_Get_X11_Font_Format) to retrieve an + X11-compatible string describing the font format of a given face. + This was put in a new optional base source file, corresponding to a + new public header (named FT_XFREE86_H since this function should + only be used within the XFree86 font server IMO). * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not documented yet). diff --git a/descrip.mms b/descrip.mms index fe1389030..069244337 100644 --- a/descrip.mms +++ b/descrip.mms @@ -36,6 +36,8 @@ all : $(MMS)$(MMSQUALIFIERS) set default [-.base] $(MMS)$(MMSQUALIFIERS) + set default [-.bdf] + $(MMS)$(MMSQUALIFIERS) set default [-.cache] $(MMS)$(MMSQUALIFIERS) set default [-.cff] @@ -62,6 +64,8 @@ all : $(MMS)$(MMSQUALIFIERS) set default [-.type1] $(MMS)$(MMSQUALIFIERS) + set default [-.type42] + $(MMS)$(MMSQUALIFIERS) set default [-.winfonts] $(MMS)$(MMSQUALIFIERS) set default [--] diff --git a/docs/CHANGES b/docs/CHANGES index 9da962bab..fc2de8caf 100644 --- a/docs/CHANGES +++ b/docs/CHANGES @@ -2,52 +2,51 @@ LATEST CHANGES BETWEEN 2.1.1 and 2.1.0 I. IMPORTANT BUG FIXES - - the 'version_info' returned by "freetype-config" in 2.1.0 returned an - invalid value. It now returns 9:1:3 (2.0.9 returned 9:0:3) + - The `version_info' returned by `freetype-config' in 2.1.0 returned an + invalid value. It now returns 9:1:3 (2.0.9 returned 9:0:3). - - 2.1.0 couldn't be linked against applications on Win32 and Amiga - systems, due to a new debug function that wasn't properly propagated - to the system-specific directory in 'builds'. + - Version 2.1.0 couldn't be linked against applications on Win32 and + Amiga systems due to a new debug function that wasn't properly + propagated to the system-specific directory in `builds'. - - various MacOS and Mac OS X specific fixes + - Various MacOS and Mac OS X specific fixes. - - fixed a bug in the TrueType charmap validation routines that made - 2.1.0 over-restrictive over the fonts it could accept. + - Fixed a bug in the TrueType charmap validation routines that made + version 2.1.0 too restrictive -- many popular fonts have been + rejected. - - surprisingly, there was still a very small difference between the - monochrome glyph bitmaps produced by FT 1.x and FT 2.x with the - bytecode interpreter enabled. This was caused by an invalid flag - setting in the TrueType glyph loader that caused the rasterizer to - change its drop-out control mode. This is now fixed, and results - should _really_ be 100% identical + - There was still a very small difference between the monochrome glyph + bitmaps produced by FreeType 1.x and FreeType 2.x with the bytecode + interpreter enabled. This was caused by an invalid flag setting in + the TrueType glyph loader, making the rasterizer change its drop-out + control mode. Now theresults should _really_ be completely identical. - - the TrueType name table loader has been improved to support many - popular though buggy Asian fonts. It now ignores empty name entries, - invalid pointer offsets and a few other sad things. Moreover, name - strings are now loaded on demand, which reduces the memory load of - many faces (e.g. the ARIAL.TTF font file contains a 10Kb name table - containing 70 names) + - The TrueType name table loader has been improved to support many + popular though buggy Asian fonts. It now ignores empty name entries, + invalid pointer offsets and a few other incorrect subtleties. + Moreover, name strings are now loaded on demand, which reduces the + memory load of many faces (e.g. the ARIAL.TTF font file contains a + 10kByte name table with 70 names). - - fixed a bug in the Postscript hinter that prevented family blues + - Fixed a bug in the Postscript hinter that prevented family blues substitution to happen correctly. II. NEW FEATURES - - Three new font drivers in this release !! + - Three new font drivers in this release: - * a BDF font driver, contributed by Franco Narda Zapelli, and - heavily modified by Werner Lemberg, it also supports anti-aliased - bitmaps + * A BDF font driver, contributed by Franco Narda Zapelli, heavily + modified by Werner Lemberg. It also supports anti-aliased bitmaps + (using a slightly extended BDF format). - * a Type42 font driver, contributed by ..... This one is still - experimental but seems to work relatively well but lacks some - charmap support for now - - * a PFR font driver, contributed by David Turner himself. It doesn't - support PFR hinting Beware that BitStream has at least two patents - on this format !! + * A Type42 font driver, contributed by Roberto Alameda. It is + still experimental but seems to work relatively well. Currently, + charmap support is not fully implemented. + * A PFR font driver, contributed by David Turner himself. It doesn't + support PFR hinting -- note that BitStream has at least two patents + on this format! ======================================================================== diff --git a/include/freetype/ftxf86.h b/include/freetype/ftxf86.h index 2f2f3429b..5a7582f91 100644 --- a/include/freetype/ftxf86.h +++ b/include/freetype/ftxf86.h @@ -1,5 +1,23 @@ -#ifndef __FT_XFREE86_H__ -#define __FT_XFREE86_H__ +/***************************************************************************/ +/* */ +/* ftxf86.h */ +/* */ +/* Support functions for X11. */ +/* */ +/* Copyright 2002 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + +#ifndef __FTXF86_H__ +#define __FTXF86_H__ #include #include FT_FREETYPE_H @@ -15,21 +33,21 @@ FT_BEGIN_HEADER /* FT_Get_X11_Font_Format */ /* */ /* */ - /* Returns a string describing the format of a given face as a X11 */ - /* FONT_PROPERTY. It should only be used by FreeType 2 font backend */ - /* of the XFree86 font server. */ + /* Return a string describing the format of a given face as an X11 */ + /* FONT_PROPERTY. It should only be used by the FreeType 2 font */ + /* backend of the XFree86 font server. */ /* */ /* */ - /* face :: input face handle. */ + /* face :: Input face handle. */ /* */ /* */ - /* font format string. NULL in case of error. */ + /* Font format string. NULL in case of error. */ /* */ FT_EXPORT_DEF( const char* ) - FT_Get_X11_Font_Format( FT_Face face ); + FT_Get_X11_Font_Format( FT_Face face ); /* */ FT_END_HEADER -#endif /* __FT_XFREE86_H__ */ +#endif /* __FTXF86_H__ */ diff --git a/src/base/fttype1.c b/src/base/fttype1.c index 74452384c..14176a8f3 100644 --- a/src/base/fttype1.c +++ b/src/base/fttype1.c @@ -1,34 +1,53 @@ +/***************************************************************************/ +/* */ +/* fttype1.c */ +/* */ +/* FreeType utility file for PS names support (body). */ +/* */ +/* Copyright 2002 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + #include #include FT_INTERNAL_TYPE1_TYPES_H #include FT_INTERNAL_OBJECTS_H - /* case a FT_Face to a T1_Face when relevant */ - /* this implementation sucks, but a lot of things should change in the */ - /* future anyway.. */ - /* */ + + /* 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 ) + t1_face_check_cast( FT_Face face ) { FT_Module driver; T1_Face result = NULL; + if ( face && face->driver != NULL ) { - driver = (FT_Module) face->driver; + 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; + /* correct typecast! */ + result = (T1_Face)face; } } return result; } - - /* documentation is in t1tables.h */ + /* documentation is in t1tables.h */ FT_EXPORT_DEF( FT_Error ) FT_Get_PS_Font_Info( FT_Face face, @@ -37,38 +56,45 @@ FT_Error error = FT_Err_Invalid_Argument; T1_Face t1_face = t1_face_check_cast( face ); + if ( t1_face != NULL ) { *afont_info = t1_face->type1.font_info; - error = FT_Err_Ok; + error = FT_Err_Ok; } + return error; } - /* XXX: bad hack, but I didn't want to change several drivers here */ + /* XXX: Bad hack, but I didn't want to change several drivers here. */ - /* documentation is in t1tables.h */ + /* documentation is in t1tables.h */ FT_EXPORT_DEF( FT_Int ) - FT_Has_PS_Glyph_Names( FT_Face face ) + FT_Has_PS_Glyph_Names( FT_Face face ) { FT_Int result = 0; const char* driver_name; + if ( face && face->driver && face->driver->root.clazz ) { - /* for now, only the type1 and cff drivers provide reliable */ - /* glyph names... */ + /* Currently, only the type1 and cff drivers provide reliable */ + /* glyph names... */ - /* we could probably hack the TrueType driver to recognize */ - /* certain cases where the glyph names are most certainly */ - /* correct (e.g. using a 20 or 22 format 'post' table), but */ - /* this will probably happen later... :-) */ + /* We could probably hack the TrueType driver to recognize */ + /* certain cases where the glyph names are most certainly */ + /* correct (e.g. using a 20 or 22 format `post' table), but */ + /* this will probably happen later... */ driver_name = face->driver->root.clazz->module_name; result = ( ft_strcmp( driver_name, "type1" ) || ft_strcmp( driver_name, "cff" ) ); } + return result; } + + +/* END */ diff --git a/src/base/ftxf86.c b/src/base/ftxf86.c index dd27c9a00..6fd7722a0 100644 --- a/src/base/ftxf86.c +++ b/src/base/ftxf86.c @@ -1,12 +1,30 @@ +/***************************************************************************/ +/* */ +/* ftxf86.c */ +/* */ +/* FreeType utility file for X11 support (body). */ +/* */ +/* Copyright 2002 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + #include #include FT_XFREE86_H #include FT_INTERNAL_OBJECTS_H - /* XXX: this really is a sad hack, but I didn't want to change every */ - /* driver just to support this at the moment, since other important */ - /* changes are coming anyway !! */ + /* XXX: This really is a sad hack, but I didn't want to change every */ + /* driver just to support this at the moment, since other important */ + /* changes are coming anyway. */ - typedef struct + typedef struct FT_FontFormatRec_ { const char* driver_name; const char* format_name; @@ -15,7 +33,7 @@ FT_EXPORT_DEF( const char* ) - FT_Get_X11_Font_Format( FT_Face face ) + FT_Get_X11_Font_Format( FT_Face face ) { static const FT_FontFormatRec font_formats[] = { @@ -35,11 +53,14 @@ if ( face && face->driver ) { - FT_Module driver = (FT_Module) face->driver; + FT_Module driver = (FT_Module)face->driver; + if ( driver->clazz && driver->clazz->module_name ) { - FT_Int n, count = sizeof(font_formats)/sizeof(font_formats[0]); + FT_Int n; + FT_Int count = sizeof( font_formats ) / sizeof ( font_formats[0] ); + result = driver->clazz->module_name; @@ -54,3 +75,6 @@ return result; } + + +/* END */ diff --git a/src/bdf/bdflib.c b/src/bdf/bdflib.c index a9ee1db15..b3c503f72 100644 --- a/src/bdf/bdflib.c +++ b/src/bdf/bdflib.c @@ -1740,10 +1740,6 @@ /* the scalable width from the device width. */ FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG9, lineno )); - ps = (double)font->point_size; - rx = (double)font->resolution_x; - dw = (double)glyph->dwidth; - glyph->swidth = (unsigned short)FT_MulDiv( glyph->dwidth, 72000L, (FT_Long)( font->point_size * diff --git a/src/bdf/descrip.mms b/src/bdf/descrip.mms new file mode 100644 index 000000000..4c32dc449 --- /dev/null +++ b/src/bdf/descrip.mms @@ -0,0 +1,23 @@ +# +# FreeType 2 BDF driver compilation rules for VMS +# + + +# Copyright 2002 by +# David Turner, Robert Wilhelm, and Werner Lemberg. +# +# This file is part of the FreeType project, and may only be used, modified, +# and distributed under the terms of the FreeType project license, +# LICENSE.TXT. By continuing to use, modify, or distribute this file you +# indicate that you have read the license and understand and accept it +# fully. + + +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bdf]) + +OBJS=bdf.obj + +all : $(OBJS) + library [--.lib]freetype.olb $(OBJS) + +# EOF diff --git a/src/pshinter/pshglob.c b/src/pshinter/pshglob.c index a8904acb7..58c77b545 100644 --- a/src/pshinter/pshglob.c +++ b/src/pshinter/pshglob.c @@ -488,14 +488,14 @@ for ( ; count2 > 0; count2--, zone2++ ) { - FT_Pos delta; + FT_Pos Delta; - delta = zone1->org_ref - zone2->org_ref; - if ( delta < 0 ) - delta = -delta; + Delta = zone1->org_ref - zone2->org_ref; + if ( Delta < 0 ) + Delta = -Delta; - if ( FT_MulFix( delta, scale ) < 64 ) + if ( FT_MulFix( Delta, scale ) < 64 ) { zone1->cur_top = zone2->cur_top; zone1->cur_bottom = zone2->cur_bottom; diff --git a/src/type42/descrip.mms b/src/type42/descrip.mms new file mode 100644 index 000000000..ec75d3bc7 --- /dev/null +++ b/src/type42/descrip.mms @@ -0,0 +1,23 @@ +# +# FreeType 2 Type 42 driver compilation rules for VMS +# + + +# Copyright 2002 by +# David Turner, Robert Wilhelm, and Werner Lemberg. +# +# This file is part of the FreeType project, and may only be used, modified, +# and distributed under the terms of the FreeType project license, +# LICENSE.TXT. By continuing to use, modify, or distribute this file you +# indicate that you have read the license and understand and accept it +# fully. + + +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type42]) + +OBJS=t42drivr.obj + +all : $(OBJS) + library [--.lib]freetype.olb $(OBJS) + +# EOF