michael@0: 2005-06-08 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.1.10 released. michael@0: ========================== michael@0: michael@0: michael@0: * src/pcf/readme: Renamed to... michael@0: * src/pcf/README: This. michael@0: michael@0: 2005-06-07 Detlef Würkner michael@0: michael@0: * builds/amiga/*: Added copyright notes, reworked some comments. michael@0: michael@0: 2005-06-05 Werner Lemberg michael@0: michael@0: * Add copyright notices to all files which don't have one. michael@0: michael@0: * docs/license.txt: Renamed to... michael@0: * docs/LICENSE.TXT: This. michael@0: * docs/FTL.txt: Renamed to... michael@0: * docs/FTL.TXT: This. michael@0: * docs/GPL.txt: Renamed to... michael@0: * docs/GPL.TXT: This. michael@0: michael@0: * docs/PATENTS: Slightly reworded. Suggested by Sylvain Beucler michael@0: . michael@0: michael@0: 2005-06-04 Werner Lemberg michael@0: michael@0: * include/freetype/ftimage.h (FT_Outline_MoveToFunc, michael@0: FT_Outline_LineToFunc, FT_Outline_ConicToFunc, michael@0: FT_Outline_CubicToFunc, FT_Raster_RenderFunc), michael@0: include/freetype/ftrender.h (FT_Glyph_TransformFunc, michael@0: FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use michael@0: `const' to stay compatible with FreeType 2.1.9. michael@0: michael@0: 2005-06-01 Adam D. Moss michael@0: michael@0: * src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch from michael@0: 2004-07-11; this gives much better results under normal michael@0: circumstances. michael@0: michael@0: 2005-05-30 Chia I Wu michael@0: michael@0: * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor michael@0: documentation improvements. michael@0: michael@0: * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos. michael@0: michael@0: * src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for bitmap michael@0: of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4. michael@0: If xstr is larger than 8 and bitmap is of pixel_mode michael@0: FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error. michael@0: michael@0: 2005-05-29 Chia I Wu michael@0: michael@0: * src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap michael@0: of mode FT_PIXEL_MODE_GRAY. Also add support for mode michael@0: FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V. michael@0: (ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V michael@0: should have ppb (pixel per byte) 1. michael@0: Zero the padding when there's no need to allocate memory. michael@0: michael@0: * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle slot->advance michael@0: too. michael@0: More suited emboldening strength. michael@0: michael@0: 2005-05-28 Chia I Wu michael@0: michael@0: * src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative pitch. michael@0: Handle FT_PIXEL_MODE_GRAY with num_gray != 256. michael@0: Improve speed for FT_PIXEL_MODE_GRAY. michael@0: (ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and michael@0: FT_PIXEL_MODE_LCD_V. michael@0: michael@0: 2005-05-27 Chia I Wu michael@0: michael@0: * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize `error'. michael@0: michael@0: * src/base/ftobjs.c (ft_cmap_done_internal): New function. michael@0: (FT_CMap_Done): Remove cmap from cmap list. michael@0: (destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but michael@0: ft_cmap_done_internal. michael@0: michael@0: 2005-05-26 Werner Lemberg michael@0: michael@0: * docs/GPL.txt: Update postal address of FSF. michael@0: michael@0: 2005-05-26 Chia I Wu michael@0: michael@0: * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve michael@0: documentation. michael@0: michael@0: * src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed. michael@0: (FT_GlyphSlot_Embolden): Check whether slot is bitmap owner. michael@0: Always modify the metrics. michael@0: michael@0: 2005-05-24 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2005-05-24 Chia I Wu michael@0: michael@0: * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New declaration. michael@0: michael@0: * include/freetype/ftoutln.h (FT_Outline_Embolden): New declaration. michael@0: michael@0: * src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary michael@0: function. michael@0: (FT_Bitmap_Embolden): New function. michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_Embolden): New function. michael@0: michael@0: * src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and michael@0: FT_TRIGONOMETRY_H but FT_BITMAP_H. michael@0: (FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or michael@0: FT_Bitmap_Embolden. michael@0: michael@0: 2005-05-24 Werner Lemberg michael@0: michael@0: * configure: Always remove config.mk, builds/unix/unix-def.mk, and michael@0: builds/unix/unix-cc.mk. This fixes repeated calls of the script. michael@0: Reported by Nelson Beebe and Behdad Esfahbod. michael@0: michael@0: * README.CVS: Mention file permissions. michael@0: michael@0: 2005-05-23 Werner Lemberg michael@0: michael@0: * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk michael@0: (CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove michael@0: -fno-strict-aliasing. michael@0: michael@0: * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c -- michael@0: it is currently loaded from ttsbit.c. michael@0: michael@0: 2005-05-23 Behdad Esfahbod michael@0: michael@0: Say you have `(Foo*)x' and want to assign, pass, or return it as michael@0: `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler michael@0: would warn you that type casting incompatible pointer types breaks michael@0: strict-aliasing. The solution is to cast to `(void*)' instead which michael@0: is the generic pointer type, so the compiler knows that it should michael@0: make no strict-aliasing assumption on `x'. But the problem with michael@0: `(void*)x' is that seems like in C++, unlike C, `void*' is not a michael@0: generic pointer type and assigning `void*' to `Bar*' without a cast michael@0: causes an error. The solution is to cast to `Bar*' too, with michael@0: `(Bar*)(void*)x' as the result -- this is what the patch does. michael@0: michael@0: * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), michael@0: include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove michael@0: cast on lvalue, use a temporary pointer instead. michael@0: Cast temporarily to (void*) to not break strict aliasing. michael@0: michael@0: * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC, michael@0: FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE), michael@0: src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*) michael@0: to not break strict aliasing. michael@0: michael@0: * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information. michael@0: michael@0: * builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing. michael@0: michael@0: 2005-05-23 David Turner michael@0: michael@0: Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system michael@0: in low-memory conditions). michael@0: michael@0: * include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP, michael@0: FTC_CACHE_TRYLOOP_END): New macros. michael@0: michael@0: * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c michael@0: (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACE_TRYLOOP_END. michael@0: michael@0: 2005-05-23 Werner Lemberg michael@0: michael@0: * src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but... michael@0: (BASE_EXT_SRC): Here. michael@0: michael@0: 2005-05-22 Werner Lemberg michael@0: michael@0: * src/base/ftrfork.c (raccess_guess_apple_generic): Mark michael@0: `version_number' and `entry_length' as unused. michael@0: (raccess_guess_linux_double_from_file_name): Remove `memory'. michael@0: (raccess_make_file_name): Mark `error' as unused. michael@0: michael@0: * src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'. michael@0: michael@0: * src/cid/cidobjs.c (cid_face_init): Remove `psnames'. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'. michael@0: michael@0: * src/truetype/ttgxvar.c (ft_var_readpackedpoints, michael@0: ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as unused. michael@0: michael@0: * src/base/rules.mk (BASE_SRC): Add ftsynth.c. michael@0: michael@0: 2005-05-21 David Turner michael@0: michael@0: * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that michael@0: produced unpleasant artefacts when trying to embolden very sharp michael@0: corners. michael@0: michael@0: 2005-05-20 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2005-05-20 Chia I Wu michael@0: michael@0: * src/base/ftbitmap.c: Don't include FT_FREETYPE_H and FT_IMAGE_H michael@0: but FT_BITMAP_H. michael@0: (FT_Bitmap_Copy): New function (from ftglyph.c). michael@0: michael@0: * include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public michael@0: definition. michael@0: michael@0: * src/base/ftglyph.c: Include FT_BITMAP_H. michael@0: (ft_bitmap_copy): Move to ftbitmap.c. michael@0: (ft_bitmap_glyph_init): Remove `memory' variable. michael@0: Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set. michael@0: (ft_bitmap_glyph_copy): Use FT_Bitmap_Copy. michael@0: (ft_bitmap_glyph_done): Use FT_Bitmap_Done. michael@0: (ft_outline_glyph_init): Use FT_Outline_Copy. michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_Copy): Handle source == target. michael@0: (FT_Outline_Done_Internal): Check for valid `memory' pointer. michael@0: (FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render, michael@0: FT_Outline_Transform): Check for valid `outline' pointer. michael@0: michael@0: * src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to michael@0: face->glyph, otherwise a new second glyph slot cannot be created. michael@0: (FT_Done_GlyphSlot): Fix memory leak. michael@0: (FT_Open_Face): Updated -- face->glyph is already managed by michael@0: FT_New_GlyphSlot. michael@0: michael@0: * src/type42/t42objs.c (T42_GlyphSlot_Done): Updated. michael@0: michael@0: 2005-05-20 Kirill Smelkov michael@0: michael@0: * include/freetype/ftimage.h (FT_Raster_Params), michael@0: include/freetype/ftoutln.h (FT_Outline_Translate, michael@0: FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate, michael@0: FT_Outline_Transform): Decorate parameters with `const' where michael@0: appropriate. michael@0: Update all callers. michael@0: michael@0: * src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c michael@0: (gray_raster_reset): Remove `const' from `pool_base' argument. michael@0: michael@0: 2005-05-18 Kirill Smelkov michael@0: michael@0: * src/raster/ftmisc.h: New file. Only needed if ftraster.c is michael@0: compiled as stand-alone. michael@0: michael@0: * src/raster/ftraster.c: Add comment how to compile as stand-alone. michael@0: s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/. michael@0: s/TT_STATIC_RASTER/FT_STATIC_RASTER/. michael@0: [_STANDALONE_]: Include ftimage.h and ftmisc.h. michael@0: (FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define michael@0: conditionally. michael@0: (Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or michael@0: Raster_Err_Unsupported). michael@0: (ft_black_new) [_STANDALONE_]: Fix type of `the_raster'. michael@0: (ft_black_init, ft_black_reset, ft_black_set_mode, ft_black_render): michael@0: Use `ras', not `raster'. michael@0: (ft_black_done): Use FT_UNUSED_RASTER. michael@0: (Horizontal_Sweep_Init, Horizontal_Sweep_Step, michael@0: Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER. michael@0: michael@0: 2005-05-18 Werner Lemberg michael@0: michael@0: * docs/announce: Start updating. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2005-05-16 Vitaliy Pasternak michael@0: michael@0: * builds/win32/visualc/freetype.vcproj: Updated. michael@0: Exclude debug info for `Release' versions to reduce library size. michael@0: michael@0: 2005-05-16 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Open_Face): Make it work as documented, this michael@0: is, ignore `aface' completely if face_index < 0. Reported by David michael@0: Osborn . michael@0: michael@0: 2005-05-16 Kirill Smelkov michael@0: michael@0: * include/freetype/ftimage.h (FT_Outline_MoveToFunc, michael@0: FT_Outline_LineTo_Func, FT_Outline_ConicToFunc, michael@0: FT_Outline_CubicToFunc), src/smooth/ftgrays.c (gray_render_conic, michael@0: gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to, michael@0: gray_cubic_to, gray_render_span, gray_sweep): Decorate parameters michael@0: with `const' where appropriate. michael@0: michael@0: 2005-05-11 Kirill Smelkov michael@0: michael@0: * include/freetype/ftimage.h (FT_Raster_RenderFunc), michael@0: include/freetype/ftrender.h (FT_Glyph_TransformFunc, michael@0: FT_Renderer_Render_Func, FT_Renderer_TransformFunc), michael@0: src/base/ftglyph.c (ft_outline_glyph_transform), michael@0: src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render), michael@0: src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render), michael@0: src/smooth/ftsmooth.c (ft_smooth_transform, michael@0: ft_smooth_render_generic, ft_smooth_render, ft_smooth_render_lcd, michael@0: ft_smooth_render_lcd_v): Decorate parameters with `const' where michael@0: appropriate. michael@0: michael@0: * src/raster/ftraster.c (RASTER_RENDER_POOL): Removed. Obsolete. michael@0: (ft_black_render): Decorate parameters with `const' where michael@0: appropriate. michael@0: michael@0: 2005-05-11 Werner Lemberg michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo (FT_PEEK_SHORT -> michael@0: FT_PEEK_USHORT) which caused crashes. Reported by Ismail Donmez michael@0: . michael@0: michael@0: 2005-05-08 Werner Lemberg michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE) michael@0: [__cplusplus]: Fix typo. michael@0: michael@0: 2005-05-07 Werner Lemberg michael@0: michael@0: Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck michael@0: Blaskey ). michael@0: michael@0: * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'. michael@0: * src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate. michael@0: michael@0: (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate, michael@0: tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use michael@0: `FT_Error' as return type. michael@0: (tt_cmap4_validate): Use `FT_Error' as return type. michael@0: Return error code for unsorted cmap. michael@0: (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted michael@0: cmaps. michael@0: (tt_face_build_cmaps): Set `unsorted' variable in cmap. michael@0: michael@0: 2005-05-07 Werner Lemberg michael@0: michael@0: * src/truetype/ttpload.c (tt_face_get_location): Fix typo. michael@0: michael@0: 2005-05-06 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Set ppem value in top michael@0: dictionary for SFNT-based CFF. michael@0: michael@0: 2005-05-05 Werner Lemberg michael@0: michael@0: Handle malformed `loca' table entries. michael@0: michael@0: * docs/TODO: Add some bugs which should be fixed. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_FaceRec): Add `glyf_len' michael@0: element. michael@0: michael@0: * src/truetype/ttpload.c (tt_face_load_loca): Get length of `glyf' michael@0: table. michael@0: (tt_face_get_location): Fix computation of `asize' for malformed michael@0: `loca' entries. michael@0: michael@0: 2005-05-01 David Turner michael@0: michael@0: * Jamfile: Remove `otvalid' from the list of compiled modules. michael@0: michael@0: * include/freetype/internal/ftserv.h: Add compiler pragmas to get michael@0: rid of annoying warnings with Visual C++ compiler in maximum warning michael@0: mode. michael@0: michael@0: * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c, michael@0: src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c, michael@0: src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c, michael@0: src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c, michael@0: src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler warnings. michael@0: michael@0: 2005-04-28 Werner Lemberg michael@0: michael@0: * docs/TODO: Updated. michael@0: michael@0: 2005-04-24 Werner Lemberg michael@0: michael@0: * src/otvalid/otvcommn.c michael@0: (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0. michael@0: michael@0: 2005-04-16 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Set default upem value in top michael@0: font dict also. michael@0: Handle font matrix settings in subfonts. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Use the correct font matrix michael@0: for CID-keyed fonts with subfonts. michael@0: michael@0: * docs/formats.txt: Updated. michael@0: michael@0: 2005-04-14 Kirill Smelkov michael@0: michael@0: * include/freetype/freetype.h (FT_Vector_Transform), michael@0: include/freetype/ftimage.h (FT_Raster_Params), michael@0: include/freetype/ftoutln.h, src/base/ftoutln.c (FT_Outline_Get_CBox, michael@0: FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform, michael@0: FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render), michael@0: src/smooth/ftgrays.c (gray_raster_render): Decorate parameters with michael@0: `const' where appropriate. michael@0: michael@0: 2005-04-14 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_charstrings): Catch this non-standard michael@0: beginning of the /CharStrings dictionary: michael@0: michael@0: /CharStrings 118 dict def michael@0: Private begin michael@0: CharStrings begin michael@0: michael@0: * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments michael@0: to call of tt_sbit_decoder_load_bitmap. michael@0: michael@0: 2005-04-13 Werner Lemberg michael@0: michael@0: * docs/TODO: Updated. michael@0: michael@0: * autogen.sh: Use `--force' for all commands. michael@0: michael@0: 2005-04-09 Werner Lemberg michael@0: michael@0: * src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values michael@0: only if `fitted' is not zero. michael@0: michael@0: 2005-04-06 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (tt_face_get_metrics) [FT_OPTIMIZE_MEMORY]: michael@0: Fix typo which sometimes causes wrong metrics for the last glyph. michael@0: michael@0: 2005-04-04 David Turner michael@0: michael@0: * devel/ftoption.h, include/freetype/config/ftoption.h michael@0: (FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming 2.1.10 michael@0: release. michael@0: (*_CHESTER_*): Removed. No longer used. michael@0: michael@0: * src/autofit/afhints.c (af_axis_hints_new_segment, michael@0: af_axis_hints_new_edge): Small tweak to use less heap memory. michael@0: michael@0: 2005-04-03 Werner Lemberg michael@0: michael@0: * src/type1/t1parse.c (T1_New_Parser): Relax the check for a valid michael@0: first line in the font. michael@0: michael@0: 2005-04-03 Werner Lemberg michael@0: michael@0: * docs/CHANGES, include/freetype/freetype.h: Improve documentation michael@0: of FT_Set_Pixel_Sizes and FT_Set_Char_Size. michael@0: michael@0: 2005-03-26 Detlef Würkner michael@0: michael@0: * builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix buffer michael@0: offsets after a large read. michael@0: michael@0: 2005-03-26 Werner Lemberg michael@0: michael@0: * src/autofit/afglobal.c (af_face_globals_get_metrics): michael@0: s/index/gidx/. michael@0: michael@0: * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler michael@0: warnings. michael@0: michael@0: * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. michael@0: michael@0: * src/sfnt/ttsbit0.h: Dummy file for build with `make'. michael@0: michael@0: 2005-03-26 Detlef Würkner michael@0: michael@0: Update of the Amiga port. michael@0: michael@0: * builds/amiga/makefile, builds/amiga/makefile.os4, michael@0: builds/amiga/smakefile: Included the base extension files michael@0: (ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c). michael@0: michael@0: 2005-03-25 Detlef Würkner michael@0: michael@0: Update of the Amiga port. michael@0: michael@0: * builds/amiga/makefile, builds/amiga/smakefile: Handle new modules. michael@0: michael@0: * builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK. michael@0: michael@0: * builds/amiga/README: Updated. michael@0: michael@0: * builds/amiga/include/freetype/config/ftconfig.h: Handle gcc for michael@0: AmigaOS4. michael@0: michael@0: * builds/amiga/include/freetype/config/ftmodule.h: Handle new michael@0: modules. michael@0: michael@0: * builds/amiga/src/base/ftdebug.c: Updated to current version of michael@0: default ftdebug.c. michael@0: Add various include files and macros to have proper support for michael@0: both AmigaOS4 and older AmigaOS versions. michael@0: Don't declare KVPrintF explicitly. michael@0: Replace getenv with GetVar. michael@0: Actually enable debugging code. michael@0: michael@0: * builds/amiga/src/base/ftsystem.c: Major rewrite. michael@0: michael@0: 2005-03-23 Werner Lemberg michael@0: michael@0: * tests/*: Removed. michael@0: michael@0: 2005-03-23 Werner Lemberg michael@0: michael@0: * docs/CHANGES, docs/INSTALL.ANY: Updated. michael@0: michael@0: * include/freetype/ftmoderr.h: Replace `Autohint' with `Autofit'. michael@0: Add `OTvalid'. michael@0: michael@0: * src/autofit/aferrors.h: New file. michael@0: michael@0: * src/autofit/afglobal.c, src/autofit/afhints.c, michael@0: src/autofit/aflatin.c, src/autofit/afloader.c: s/FT_Err_/AF_Err_/. michael@0: Include aferrors.h. michael@0: michael@0: * src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h. michael@0: michael@0: * src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/. michael@0: michael@0: 2005-03-22 David Turner michael@0: michael@0: * src/autohint/*: Removed. michael@0: * Jamfile: Updated. michael@0: michael@0: 2005-03-15 David Turner michael@0: michael@0: * src/bdf/bdflib.c: Remove compiler warnings. michael@0: (hash_rehash, hash_init): Don't call FT_MEM_ZERO. michael@0: (_bdf_list_t): Add `memory' field. michael@0: (_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New functions. michael@0: (_bdf_shift, _bdf_join): Rename to... michael@0: (_bdf_list_shift, _bdf_list_join): This. michael@0: (_bdf_split): Renamed to... michael@0: (_bdf_list_split): This. Use new functions. michael@0: (bdf_internal_readstream): Removed. michael@0: (NO_SKIP): New macro. michael@0: (_bdf_readstream): Rewritten. michael@0: (bdf_create_property, _bdf_add_comment): Improve allocation. michael@0: (_bdf_set_default_spacing, _bdf_parse_glyphs): Updated. Improve michael@0: allocation. michael@0: (_bdf_parse_properties, _bdf_parse_start): Updated. michael@0: (bdf_load_font): Updated to use new functions. michael@0: michael@0: * src/type1/t1parse.c (check_type1_format): New function. michael@0: (T1_New_Parser): Use it to check font header before allocating michael@0: anything on the heap. michael@0: michael@0: * src/type42/t42parse.c (t42_parser_init): Modify functions to check michael@0: the font header before allocating anything on the heap. michael@0: michael@0: * include/freetype/internal/ftmemory.h (FT_ARRAY_MAX, michael@0: FT_ARRAY_CHECK): New macros. michael@0: michael@0: * src/base/ftstream.c (FT_Stream_TryRead): New function. michael@0: * include/freetype/internal/ftstream.h: Updated. michael@0: michael@0: * src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c michael@0: (BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and michael@0: simplifications. Try to protect the PCF driver from doing stupid michael@0: things with broken fonts. michael@0: michael@0: * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header before michael@0: doing anything else. This avoids unnecessary heap allocations michael@0: (400KByte of heap memory for the LZW decoder). michael@0: michael@0: * src/gzip/ftgzip.c (FT_Stream_OpenGZip): Ditto for the gzip michael@0: decoder, although the code savings are smaller. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2005-03-10 David Turner michael@0: michael@0: * src/tools/glnames.py: Add comment to explain the compression michael@0: being used for the Adobe Glyph List. michael@0: michael@0: 2005-03-10 Werner Lemberg michael@0: michael@0: * src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm): michael@0: Fix serious typo which prevented correct TT rendering. michael@0: michael@0: * include/freetype/internal/ftmemory.h: Undo change from 2005-03-03. michael@0: To suppress warnings it is sufficient to use `-fno-strict-aliasing'. michael@0: michael@0: 2005-03-10 Werner Lemberg michael@0: michael@0: * src/tools/glnames.py: Formatted. michael@0: Format output to be in sync with other FreeType code. michael@0: Import `re' and `os.path'. michael@0: (StringTable) <__init__>: Add parameter to initialize master table michael@0: name. michael@0: (StringTable) : Don't pass master table name. michael@0: (StringTable) : Emit explanatory comment. michael@0: Simplify and make output more human readable. michael@0: (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused. michael@0: (main): Use `basename' for file name in header. michael@0: michael@0: * src/psnames/pstables.h: Regenerated. michael@0: michael@0: 2005-03-09 David Turner michael@0: michael@0: * src/tools/glnames.py: Rewrite the generator for the `pstables.h' michael@0: header file which contains various constant tables related to glyph michael@0: names. It now uses a different, more compact storage scheme that michael@0: saves about 20KB. This also closes Savannah bug #12262. michael@0: michael@0: * src/psnames/pstables.h: Regenerated. michael@0: michael@0: * src/psnames/psmodule.c (ps_unicode_value): Use michael@0: `ft_get_adobe_glyph_index', a new function defined in `pstables.h'. michael@0: (ps_get_macintosh_name, ps_get_standard_strings): Updated. michael@0: michael@0: * src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes michael@0: more carefully. This fixes Savannah bug #12263. michael@0: michael@0: 2005-03-06 David Turner michael@0: michael@0: * src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static tables michael@0: constant. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah bug michael@0: #12212 (auto-hinter refuses to work if no Unicode charmap in font). michael@0: michael@0: 2005-03-05 Werner Lemberg michael@0: michael@0: * autogen.sh: New script for bootstrapping. michael@0: michael@0: * README.CVS: New file which documents bootstrapping. michael@0: michael@0: * builds/unix/aclocal.m4, builds/unix/config.guess, michael@0: builds/unix/config.sub, builds/unix/configure, michael@0: builds/unix/ltmain.sh: Removed. michael@0: michael@0: 2005-03-04 Werner Lemberg michael@0: michael@0: * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H. michael@0: michael@0: 2005-03-03 Werner Lemberg michael@0: michael@0: Various fixes for C and C++ compiling. michael@0: michael@0: * src/autofit/*: Add copyright messages. michael@0: michael@0: * src/autofit/afhints.c (af_glyph_hints_done): Don't use michael@0: `AF_Dimension' but `int' for loop counter. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't use michael@0: `AF_Dimension' but `int' for loop counter. michael@0: Use proper enumeration value for `render_mode'. michael@0: (af_latin_metrics_scale_dim): Don't shadow variables. michael@0: (af_latin_hints_compute_segments): Use proper cast for `major_dir' michael@0: and `segment_dir'. michael@0: (af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments of call to michael@0: `af_latin_compute_stem_width'. michael@0: (af_latin_hints_apply): Don't use `AF_Dimension' but `int' for loop michael@0: counter. michael@0: michael@0: * src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory): Use michael@0: proper cast for memory allocation. michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for michael@0: initialization of `sfnt'. michael@0: michael@0: * src/sfnt/sfdriver.c: Include `ttkern.h'. michael@0: michael@0: * src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow variables. michael@0: michael@0: * src/truetype/ttgload.c: Include `ttpload.h'. michael@0: michael@0: 2005-03-03 David Turner michael@0: michael@0: * include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC, michael@0: FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions which michael@0: avoid compiler warnings. michael@0: (FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY, michael@0: FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, michael@0: FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE) [__cplusplus]: michael@0: Provide macro versions which avoid compiler warnings. michael@0: michael@0: * src/base/ftutil.c (ft_highpow2): New utility function. michael@0: michael@0: * include/freetype/internal/ftobjs.h: Updated. michael@0: michael@0: * src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs, michael@0: pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is set. michael@0: (pfr_phy_font_done): Don't handle `kern_pairs' if FT_OPTIMIZE_MEMORY michael@0: is set. michael@0: (pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if michael@0: FT_OPTIMIZE_MEMORY is set. michael@0: michael@0: * src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which michael@0: doesn't work with broken fonts. michael@0: (pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement. michael@0: michael@0: * src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types. michael@0: (PFR_NEXT_KPAIR): New macro. michael@0: (PFR_PhyFontRec): Don't define `kern_pairs' if FT_OPTIMIZE_MEMORY is michael@0: set. michael@0: michael@0: * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce michael@0: temporary variable to avoid gcc warning. michael@0: (tt_face_load_sbit_image): Mark unused variables with FT_UNUSED. michael@0: michael@0: * src/truetype/ttpload.c (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: michael@0: Remove redundant variable. michael@0: michael@0: * include/freetype/config/ftmodule.h: Moving the order of drivers to michael@0: speed up font loading. The PCF and BDF loaders are still slow and michael@0: consume far too much memory. michael@0: michael@0: 2005-03-03 Werner Lemberg michael@0: michael@0: * devel/ftoption.h: Updated to recent changes. michael@0: michael@0: 2005-03-02 Werner Lemberg michael@0: michael@0: * src/autofit/afdummy.c, src/autofit/afdummy.h michael@0: (af_dummy_script_class): Fix type. michael@0: michael@0: * src/autofit/aflatin.c, src/autofit/aflatin.h michael@0: (af_latin_script_class): Fix type. michael@0: michael@0: * src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo. michael@0: michael@0: 2005-03-01 David Turner michael@0: michael@0: * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning), michael@0: src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes, michael@0: tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_compound, michael@0: tt_sbit_decoder_load_image), src/sfnt/ttload.c michael@0: (tt_face_load_metrics): Remove compiler warnings michael@0: -- redundant variables, missing initializations, etc. michael@0: michael@0: * src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY. michael@0: michael@0: * src/autofit/rules.mk, src/autofit/module.mk, michael@0: src/autofit/afangles.h: New files. michael@0: michael@0: * src/autofit/afhints.c (af_axis_hints_new_segment, michael@0: af_axis_hints_new_edge): New functions. michael@0: (af_glyph_hints_done): Do proper deallocation. michael@0: (af_glyph_hints_reload): Only reallocate points array. This michael@0: drastically reduces heap usage. michael@0: michael@0: * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize michael@0: member types and positions. michael@0: (AF_AxisHintsRec): Add `max_segments' and `max_edges'. michael@0: (af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metricsc_scale): Don't call michael@0: AF_SCALER_EQUAL_SCALES. michael@0: (af_latin_hints_compute_segments): Change return type to FT_Error. michael@0: Update all callers. michael@0: Improve segment allocation. michael@0: (af_latin_hints_compute_edges): Change return type to FT_Error. michael@0: Update all callers. michael@0: Improve edge allocation and link handling. michael@0: (af_latin_hints_detect_features): Change return type to FT_Error. michael@0: Update all callers. michael@0: michael@0: * src/autofit/aflatin.h: Updated. michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g) michael@0: : Assure axis->num_edges > 1. This fixes michael@0: a bug with certain fonts. michael@0: michael@0: * include/freetype/config/ftmodule.h: The auto-fitter is now the michael@0: only supported auto-hinting module. michael@0: michael@0: * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro. michael@0: michael@0: 2005-02-28 Werner Lemberg michael@0: michael@0: * src/truetype/ttpload.c (tt_face_load_loca): Fix typo. michael@0: michael@0: * src/sfnt/ttkern.c: Include `ttkern.h'. michael@0: (FT_COMPONENT): Updated. michael@0: michael@0: * include/freetype/internal/fttrace.h: Add entry for `ttkern'. michael@0: michael@0: * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/. michael@0: Decorate constants with `U' and `L' where necessary. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable. michael@0: michael@0: 2005-02-28 David Turner michael@0: michael@0: * src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory michael@0: sources according to decreasing maximum cumulative allocations. michael@0: (ft_mem_source_compare): New auxiliary function. michael@0: michael@0: * src/sfnt/ttsbit0.c: New file, implementing a heap-optimized michael@0: embedded bitmap loader. michael@0: michael@0: * src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H, michael@0: FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H. michael@0: Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use michael@0: file contents. michael@0: (tt_face_load_sbit_strikes): Set up root fields to indicate the michael@0: strikes. This fixes Savannah bug #12107. michael@0: Use `static' keyword for `sbit_line_metrics_field', michael@0: `strike_start_fields', `strike_end_fields'. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_FaceRec): Define michael@0: `sbit_table', `sbit_table_size', `sbit_num_strikes' if michael@0: FT_OPTIMIZE_MEMORY is set. michael@0: Don't define `num_sbit_strikes' and `sbit_strikes' if michael@0: FT_OPTIMIZE_MEMORY is set. michael@0: michael@0: * src/cff/cffobjs.c (sbit_size_reset): Handle FT_OPTIMIZE_MEMORY. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented michael@0: loading SFNT fonts without a `kern' table. michael@0: Properly pass root->face_flags. michael@0: Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_interface) michael@0: [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use `tt_find_sbit_image' michael@0: and `tt_load_sbit_metrics'. michael@0: michael@0: * src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format 4. michael@0: (OPT_CMAP4): New macro. michael@0: (TT_CMap4Rec) [OPT_CMAP4]: New structure. michael@0: (tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next, tt_cmap4_reset) michael@0: [OPT_CMAP4]: New functions. michael@0: (tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and michael@0: `tt_cmap4_reset'. michael@0: (tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and michael@0: `tt_cmap4_init'. michael@0: michael@0: * src/truetype/ttobjs.c (Reset_SBit_Size): Handle michael@0: FT_OPTIMIZE_MEMORY. michael@0: michael@0: * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec, AF_EdgeRec): michael@0: Optimize member types. michael@0: michael@0: * src/autofit/afloader.c (af_loader_done): Call michael@0: `af_glyph_hints_done'. michael@0: michael@0: 2005-02-27 David Turner michael@0: michael@0: * src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which michael@0: caused invalid (random) return values for the horizontal kerning. michael@0: michael@0: 2005-02-25 David Turner michael@0: michael@0: Implement several memory optimizations to drastically reduce the michael@0: heap usage of FreeType, especially in the case of memory-mapped michael@0: files. The idea is to avoid loading and decoding tables in the michael@0: heap, and instead access the raw data whenever possible (i.e., when michael@0: it doesn't compromise performance). michael@0: michael@0: This has several benefits: For example, opening vera.ttf now uses michael@0: just a small amount of memory (even when the FT_Library footprint is michael@0: accounted for), until you start loading glyphs. Even then, you save michael@0: at least 20KB compared to the non-optimized case. Performance of michael@0: various operations, including open and close, has also been michael@0: dramatically improved. michael@0: michael@0: More optimizations to come, especially for the auto-hinter. michael@0: michael@0: * include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New michael@0: function type. michael@0: (SFNT_Interface): Add it. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_HdmxEntryRec, TT_HdmxRec, michael@0: TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set. michael@0: (TT_FaceRec): Define `horz_metrics', `horz_metrics_size', michael@0: `vert_metrics', `vert_metrics_size', `hdmx_table', michael@0: `hdmx_table_size', `hdmx_record_count', `hdmx_record_size', michael@0: `hdmx_record_sizes', `kern_table', `kern_table_size, michael@0: `num_kern_tables', `kern_avail_bits', `kern_order_bits' if michael@0: FT_OPTIMIZE_MEMORY is set. michael@0: Don't define `hdmx', `num_kern_pairs', `kern_table_index', michael@0: `kern_pairs' if FT_OPTIMIZE_MEMORY is set. michael@0: michael@0: * src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable. michael@0: Fix compiler warning. michael@0: michael@0: * src/cff/cffdrivr.c (Get_Kerning): Renamed to... michael@0: (cff_get_kerning): This. Simplify. michael@0: (cff_driver_class): Updated. michael@0: michael@0: * src/sfnt/Jamfile (_sources): Add `ttkern'. michael@0: * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_interface): Add `tt_face_get_kerning'. michael@0: michael@0: * src/sfnt/sfnt.c: Include `ttkern.c'. michael@0: michael@0: * src/sfnt/sfobjs.c: Include `ttkern.h'. michael@0: (sfnt_load_face): Consider the `kern' and `gasp' table as optional. michael@0: (sfnt_done_face): Call `tt_face_done_kern'. michael@0: Handle horizontal metrics for FT_OPTIMIZE_MEMORY. michael@0: michael@0: * src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files. Code has been michael@0: taken from `ttload.c' and `ttload.h'. michael@0: Provide special versions of `tt_face_load_kern', michael@0: `tt_face_get_kerning', and `tt_face_done_kern' for michael@0: FT_OPTIMIZE_MEMORY. michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx, michael@0: tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY. michael@0: (tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved to michael@0: `ttkern.c'. michael@0: michael@0: * src/sfnt/ttload.h: Updated. michael@0: michael@0: * src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword. michael@0: michael@0: * src/truetype/ttdriver.c (Get_Kerning): Renamed to... michael@0: (tt_get_kerning): This. Simplify. michael@0: (tt_driver_class): Updated. michael@0: michael@0: * src/truetype/ttgload.c (TT_Get_Metrics): Renamed to... michael@0: (tt_face_get_metrics): This. Provide version for FT_OPTIMIZE_MEMORY. michael@0: Update all callers. michael@0: (Get_Advance_Widths): Replaced with... michael@0: (Get_Advance_WidthPtr): This. Provide version for michael@0: FT_OPTIMIZE_MEMORY. michael@0: Update all callers. michael@0: michael@0: * src/truetype/ttgload.h: Updated. michael@0: michael@0: 2005-02-22 David Turner michael@0: michael@0: * src/base/ftdbgmem.c: Partly rewritten. Added the ability to list michael@0: all allocation sites in the memory debugger. Also a new function michael@0: FT_DumpMemory() was added. It is only available in builds with michael@0: FT_DEBUG_MEMORY defined, and you must declare it in your own code to michael@0: use it, i.e., with something like: michael@0: michael@0: extern void FT_DumpMemory( FT_Memory ); michael@0: michael@0: ... michael@0: michael@0: FT_DumpMemory( memory ); michael@0: michael@0: * include/freetype/config/ftoption.h michael@0: (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition -- michael@0: again. michael@0: (FT_OPTIMIZE_MEMORY): New configuration macro to control various michael@0: optimizations for reducing the heap footprint of memory-mapped michael@0: TrueType files. michael@0: michael@0: * include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New michael@0: convenience macro. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_FaceRec) michael@0: [FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations' and michael@0: `glyph_locations'. michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Call michael@0: `tt_face_get_location'. michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init) michael@0: [FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling. michael@0: (tt_face_done): Call `tt_face_done_loca'. michael@0: michael@0: * src/truetype/ttpload.c (tt_face_get_location, tt_face_done_loca): michael@0: New functions. If FT_OPTIMIZE_MEMORY is set, the locations table is michael@0: read directly from memory-mapped streams, instead of being decoded michael@0: into the heap. michael@0: (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation. michael@0: (tt_face_load_cvt, tt_face_load_fpgm): Only load table if the michael@0: bytecode interpreter is compiled in. michael@0: michael@0: * src/truetype/ttpload.h: Updated. michael@0: michael@0: * src/autohint/ahglyph.c (ah_outline_load): Improve allocation michael@0: logic. michael@0: michael@0: 2005-02-20 Werner Lemberg michael@0: michael@0: * builds/unix/ltmain.sh: Regenerated with `libtoolize --force michael@0: --copy' from libtool 1.5.14. michael@0: * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from michael@0: automake 1.9.4. michael@0: michael@0: * builds/unix/config.guess, builds/unix/config.sub: Updated from michael@0: `config' CVS module at subversions.gnu.org. michael@0: michael@0: * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from michael@0: `texinfo' CVS module at subversions.gnu.org. michael@0: michael@0: 2005-02-14 Werner Lemberg michael@0: michael@0: * src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build michael@0: a cmap for a CID-keyed font which doesn't have SIDs. michael@0: michael@0: 2005-02-13 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (read_binary_data): Return more meaningful michael@0: value. michael@0: (parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check michael@0: parser error value after call to T1_Skip_PS_Token (where necessary). michael@0: michael@0: * src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error michael@0: value after call to T1_Skip_PS_Token. michael@0: michael@0: * src/cid/cidparse.c (cid_parser_new): Check parser error value michael@0: after call to cid_parser_skip_PS_token. michael@0: michael@0: * src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts, michael@0: t42_parse_charstrings, t42_parse_dict): Check parser error value michael@0: after call to T1_Skip_PS_Token (where necessary). michael@0: michael@0: * src/psaux/psobjc.c (skip_string, ps_parser_skip_PS_token, michael@0: ps_tobytes): Add error messages. michael@0: michael@0: 2005-02-12 Werner Lemberg michael@0: michael@0: * configure: Output more variables to the created Makefile so that michael@0: it can be used for ft2demos also (if the FT2DEMOS variable is michael@0: defined). michael@0: michael@0: 2005-02-10 David Turner michael@0: michael@0: * src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing michael@0: dynamic array when loading a glyph from a PFR font (Savannah bug michael@0: #11921). michael@0: michael@0: * src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the michael@0: conversion function (mainly stupid optimization). michael@0: michael@0: * src/base/Jamfile: Adding ftbitmap.c to the list of compiled files. michael@0: michael@0: 2005-02-10 Werner Lemberg michael@0: michael@0: * builds/unix/freetype-config.in: Add new flag `--ftversion' to michael@0: return the FreeType version. Suggested by George Williams michael@0: . michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2005-02-09 Werner Lemberg michael@0: michael@0: * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case michael@0: of error. Reported by YAMANO-UCHI Hidetoshi . michael@0: michael@0: 2005-02-08 Werner Lemberg michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings) michael@0: : Accept `T1_Parse_Have_Moveto' state also which can michael@0: happen in empty glyphs. Reported by Ian Brown michael@0: (Savannah bug #11856). michael@0: michael@0: 2005-02-04 Werner Lemberg michael@0: michael@0: * src/otlayout/*: Removed. Obsolete. michael@0: michael@0: 2004-12-28 Werner Lemberg michael@0: michael@0: * builds/unix/ltmain.sh: Regenerated with `libtoolize --force michael@0: --copy' from libtool 1.5.10. michael@0: * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from michael@0: automake 1.9.4. michael@0: * builds/unix/configure: Regenerated with autoconf 2.59b. michael@0: michael@0: * builds/unix/config.guess, builds/unix/config.sub: Updated from michael@0: `config' CVS module at subversions.gnu.org. michael@0: michael@0: * builds/unix/install-sh: Updated from michael@0: `texinfo' CVS module at subversions.gnu.org. michael@0: michael@0: * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for michael@0: ft_alloc. michael@0: Fix compiler warning. michael@0: michael@0: 2004-12-27 Dirck Blaskey michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Improve computation of michael@0: FT_STYLE_BOLD_FLAG. michael@0: michael@0: 2004-12-27 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have michael@0: only a single font. This is undocumented but has been verified on michael@0: the opentype list. michael@0: michael@0: 2004-12-26 Werner Lemberg michael@0: michael@0: * Jamfile (FT2_COMPONENTS): Add `otvalid'. michael@0: michael@0: 2004-12-25 Werner Lemberg michael@0: michael@0: * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning. michael@0: michael@0: 2004-12-15 Werner Lemberg michael@0: michael@0: * vms_make.com: Add ftbitmap.obj. michael@0: michael@0: 2004-12-14 Werner Lemberg michael@0: michael@0: * src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for michael@0: handling various bitmap formats. michael@0: michael@0: * include/freetype/config/ftheader.h (FT_BITMAP_H): New macro. michael@0: michael@0: * src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c. michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp michael@0: but return them as-is. michael@0: michael@0: * docs/CHANGES: Mention new bitmap API. michael@0: * include/freetype/ftchapter.s: Updated. michael@0: michael@0: 2004-12-11 Robert Clark michael@0: michael@0: * src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount michael@0: dependent on ppem by scaling down for ppem < 25, then do normal michael@0: rounding. This gives slightly better results than rounding towards michael@0: zero. michael@0: michael@0: 2004-12-09 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero michael@0: for FT_KERNING_DEFAULT. This greatly enhances the kerning for michael@0: small ppem values. michael@0: michael@0: 2004-12-08 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and michael@0: `rsb_delta'. michael@0: michael@0: 2004-12-05 Werner Lemberg michael@0: michael@0: * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h. michael@0: michael@0: 2004-12-03 Antoine Leca michael@0: michael@0: * include/freetype/ttnameid.h: Updated to latest michael@0: specifications from Microsoft. michael@0: michael@0: 2004-11-26 Jouk Jansen michael@0: michael@0: * vms_make.com: Include ftbbox.c. michael@0: Fix `ccopt'. michael@0: Handle `otvalid' module. michael@0: Update `vmslib.dat' default values. michael@0: Fixes to `libs.opt'. michael@0: michael@0: 2004-11-23 Anders Kaseorg michael@0: michael@0: * src/base/ftoutln.c (FT_OrientationExtremumRec, michael@0: ft_orientation_extremum_compute): Removed. michael@0: (FT_Outline_Get_Orientation): Rewritten, simplified. michael@0: michael@0: * src/autohint/ahglyph.c: Include FT_OUTLINE_H. michael@0: (ah_test_extremum, ah_get_orientation): Removed. michael@0: (ah_outline_load): Use FT_Outline_Get_Orientation. michael@0: michael@0: * src/base/ftsynth.c (ft_test_extrama, ft_get_orientation): Removed. michael@0: (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation. michael@0: michael@0: 2004-11-23 Fernando Papa michael@0: michael@0: * src/truetype/ttinterp.h: Fix typo. michael@0: michael@0: 2004-11-22 Antoine Leca michael@0: michael@0: * builds/win32/detect.mk: Corrected logic that detects Windows NT to michael@0: use the previous change even if win32 is forced. Corrected michael@0: detection of win32 on Win9X. michael@0: michael@0: * builds/dos/detect.mk: Added same correction as for win32 about michael@0: COPY on Windows NT. Detection of plain DOS 7.x. michael@0: michael@0: 2004-11-22 Werner Lemberg michael@0: michael@0: * builds/detect.mk: Undo change from 2004-11-20. michael@0: * builds/win32/detect.mk: If the `OS' environment variable contains michael@0: `Windows_NT', use `cmd.exe /c copy' for copying files. michael@0: michael@0: 2004-11-20 Werner Lemberg michael@0: michael@0: * builds/detect.mk (dos_setup): Use `cmd.exe' for copying michael@0: $(CONFIG_MK) to force lowercase file name under Windows. michael@0: michael@0: 2004-11-19 Werner Lemberg michael@0: michael@0: Fix a serious bug in the TT hinter. michael@0: michael@0: * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift michael@0: points vertically before hinting. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, michael@0: FTC_GCache_Lookup): A new try to fix comparison with zero. michael@0: michael@0: 2004-11-16 Werner Lemberg michael@0: michael@0: * builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is michael@0: used. michael@0: * builds/unix/configure: Regenerated. michael@0: * builds/unix/config.guess, builds/unix/config.sub: Updated from michael@0: `config' CVS module at subversions.gnu.org. michael@0: michael@0: 2004-11-16 Dr. Martin P.J. Zinser michael@0: michael@0: * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, michael@0: FTC_GCache_Lookup): Fix comparison with zero. michael@0: michael@0: * docs/INSTALL.VMS: Updated. michael@0: michael@0: * vms_make.com: Updated. All `descrip.mms' files are now created michael@0: automatically. michael@0: michael@0: * src/*/descrip.mms: Removed. michael@0: michael@0: 2004-11-16 Owen Taylor michael@0: michael@0: * builds/unix/freetype-config.in: Suppress -L$libdir for michael@0: /usr/lib64 as well as /usr/lib. (Reported by Dan Winship - michael@0: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199) michael@0: michael@0: 2004-11-11 Werner Lemberg michael@0: michael@0: * src/cff/cffdrivr.c (cff_service_ps_info): Updated. michael@0: * src/cid/cidriver.c (cid_service_ps_info): Updated. michael@0: * src/type42/t42drivr.c (t42_ps_get_font_private): New function. michael@0: (t42_service_ps_info): Updated. michael@0: michael@0: * src/type42/t42parse.c (t42_parse_dict): Remove compiler warning. michael@0: michael@0: 2004-11-11 David Bevan michael@0: michael@0: Add new function FT_Get_PS_Font_Private(). michael@0: michael@0: * include/freetype/internal/services/svpsinfo.h michael@0: (PS_GetFontPrivateFunc): New service function. michael@0: michael@0: * include/freetype/t1tables.h, src/base/fttype1.c michael@0: (FT_Get_PS_Font_Private): New function. michael@0: michael@0: * src/type1/t1driver.c (t1_ps_get_font_private): New function. michael@0: (t1_service_ps_info): Updated. michael@0: michael@0: 2004-10-13 Werner Lemberg michael@0: michael@0: * include/freetype/config/ftstdlib.h: Include `stddef.h'. michael@0: (ft_ptrdiff_t): Define. michael@0: michael@0: * include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'. michael@0: michael@0: * src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c michael@0: (parse_dict): Fix compiler warning. michael@0: michael@0: 2004-10-11 Joshua Neal michael@0: michael@0: * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer michael@0: overflow. michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input. michael@0: Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work michael@0: in case of failure. michael@0: michael@0: * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals. michael@0: (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after michael@0: frame test. michael@0: michael@0: * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for michael@0: `flag'. michael@0: michael@0: 2004-10-09 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-10-09 Boris Letocha michael@0: michael@0: Fix handling of NPUSHW if skipped in data stream. michael@0: michael@0: * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW michael@0: to -2. michael@0: (SkipCode, TT_RunIns): Use opcode_length value for computation of michael@0: bytes to be skipped. michael@0: michael@0: 2004-09-10 Jouk Jansen michael@0: michael@0: * vms_make.com: Updated. michael@0: michael@0: 2004-09-09 Werner Lemberg michael@0: michael@0: Adding OpenType validation module. The code is based on the michael@0: (unfinished) `otlayout' module but has been heavily modified to make michael@0: it much more compact. michael@0: michael@0: * src/otvalid/*: New module. michael@0: michael@0: * include/freetype/ftotval.h, src/base/ftotval.c, michael@0: include/freetype/internal/services/svotval.h: New files. michael@0: michael@0: * include/freetype/config/ftmodule.h: Add otv_module_class. michael@0: * include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New michael@0: macro. michael@0: * include/freetype/internal/ftserv.h michael@0: (FT_SERVICE_OPENTYPE_VALIDATE_H): New macro. michael@0: * include/freetype/internal/fttrace.h (otvmodule, otvcommon, michael@0: otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components. michael@0: michael@0: * include/freetype/ftchapters.h: Updated. michael@0: michael@0: * src/base/Jamfile (Library), src/base/descrip.mms (OBJS), michael@0: src/base/rules.mk (BASE_EXT_SRC): Updated. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-09-08 Werner Lemberg michael@0: michael@0: * src/tools/docmaker/sources.py (re_source_block_format2) : michael@0: Use lookahead assertion to not match `*/'. This removes spurious michael@0: insertions of `/' in the HTML output. michael@0: michael@0: 2004-09-07 Werner Lemberg michael@0: michael@0: * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to michael@0: FT_NEW_ARRAY. michael@0: michael@0: 2004-09-04 Werner Lemberg michael@0: michael@0: * include/freetype/internal/ftobjs.h: Don't include michael@0: FT_CONFIG_STANDARD_LIBRARY_H. michael@0: (FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR, michael@0: ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID, michael@0: FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT, michael@0: FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to... michael@0: michael@0: * include/freetype/internal/ftvalid.h: New file. michael@0: Make FT_INVALID return module-specific error codes. michael@0: michael@0: * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New michael@0: macro. michael@0: michael@0: * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if michael@0: FT_KEEP_ERR_PREFIX isn't defined. michael@0: michael@0: * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H. michael@0: michael@0: * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but michael@0: FT_INTERNAL_VALIDATE_H. michael@0: michael@0: * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but michael@0: FT_INTERNAL_VALIDATE_H. michael@0: Include sferrors.h before FT_INTERNAL_VALIDATE_H. michael@0: s/FT_Err_Ok/SFNT_Err_Ok/. michael@0: michael@0: * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX. michael@0: michael@0: * src/type1/t1afm.c: Include t1errors.h. michael@0: michael@0: 2004-09-03 Werner Lemberg michael@0: michael@0: * src/base/ftdebug.c (ft_debug_init): Highest debug level is 7, michael@0: not 6. michael@0: * docs/DEBUG: Updated. michael@0: michael@0: 2004-08-30 Werner Lemberg michael@0: michael@0: * include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS, michael@0: TTAG_JSTF): New tags. michael@0: michael@0: * include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs. michael@0: (FT_Int): Add `signed'. michael@0: michael@0: 2004-08-29 Werner Lemberg michael@0: michael@0: * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument michael@0: to pass number of lookups. michael@0: Update all callers. michael@0: Don't call otl_lookup_list_validate but otl_lookup_validate. michael@0: (otl_gpos_validate): Call otl_lookup_list_validate instead of michael@0: otl_gpos_subtable_validate. michael@0: michael@0: * src/otlayout/otlgpos.h: Updated. michael@0: michael@0: * src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to michael@0: pass number of lookups. michael@0: Update all callers. michael@0: michael@0: michael@0: * src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid michael@0: compiler warning. michael@0: michael@0: michael@0: * src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to... michael@0: * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This. michael@0: * src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c, michael@0: src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated. michael@0: michael@0: michael@0: * builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs' michael@0: if compiler is g++ (v3.3.3 emits a warning otherwise). michael@0: michael@0: 2004-08-28 Werner Lemberg michael@0: michael@0: * src/otlayout/otlgpos.c (otl_value_length): Return number of bytes, michael@0: not number of 16bit entities. michael@0: (otl_gpos_lookup2_validate): Check class definition tables for michael@0: format 2. michael@0: Fix loop for format 2. michael@0: (otl_liga_mark2_validate): Fix offset for otl_anchor_validate. michael@0: michael@0: 2004-08-27 Werner Lemberg michael@0: michael@0: * src/base/ftmac.c: Don't include truetype/ttobjs.h. michael@0: Don't include type1/t1objs.h. michael@0: (FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings. michael@0: michael@0: 2004-08-27 Mathieu Malaterre michael@0: michael@0: * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also. michael@0: michael@0: 2004-08-27 Werner Lemberg michael@0: michael@0: * src/otlayout/otlayout.h: Add copyright. michael@0: (OTL_INVALID_OFFSET): Removed. michael@0: michael@0: * src/otlayout/otlgdef.h: Include otlayout.h. michael@0: Comment out inclusion of otltable.h. michael@0: michael@0: * src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call michael@0: to otl_base_array_validate. michael@0: (otl_liga_mark2_validate): Fix `for' loop. michael@0: michael@0: * src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id', michael@0: not components array. michael@0: michael@0: * src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count): michael@0: Comment out. michael@0: (otl_lookup_list_get_count, otl_feature_list_get_count): Activate. michael@0: (otl_feature_list_validate, otl_gsubgpos_get_lookup_count): michael@0: s/otl_lookup_get_count/otl_lookup_list_get_count/. michael@0: (otl_script_list_validate): michael@0: s/otl_feature_get_count/otl_feature_list_get_count/. michael@0: (otl_script_validate): Call otl_lang_validate for default language. michael@0: michael@0: * src/otlayout/otlcommn.h: Updated. michael@0: michael@0: 2004-08-16 Werner Lemberg michael@0: michael@0: * src/otlayout/otlgpos.c (otl_gpos_lookup1_validate, michael@0: otl_gpos_lookup2_validate, otl_gpos_lookup3_validate, michael@0: otl_gpos_lookup4_validate, otl_gpos_lookup5_validate, michael@0: otl_gpos_lookup6_validate, otl_gpos_lookup9_validate, michael@0: otl_gpos_validate): Update michael@0: function arguments. michael@0: (otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update michael@0: function arguments. michael@0: Handle NULL offsets correctly. michael@0: Check sequence and lookup indices for format 3. michael@0: (otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument michael@0: to pass lookup count. michael@0: Check sequence and glyph indices. michael@0: (otl_gpos_subtable_validate): Update function arguments. michael@0: Update callers. michael@0: michael@0: * src/otlayout/otlgpos.h: Updated. michael@0: michael@0: * src/otlayout/otlgsub.c (otl_gsub_lookup1_validate, michael@0: otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update michael@0: function arguments. michael@0: Add glyph index checks. michael@0: (otl_sequence_validate, otl_alternate_set_validate, michael@0: otl_ligature_validate): Add argument to pass glyph count. michael@0: Update callers. michael@0: Add glyph index check. michael@0: (otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update michael@0: function arguments. michael@0: (otl_ligature_set_validate): Add argument to pass glyph count. michael@0: Update caller. michael@0: (otl_sub_class_rule_validate, michael@0: otl_sub_class_rule_set_validate): Removed. michael@0: (otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument michael@0: to pass lookup count. michael@0: Update callers. michael@0: Add lookup index check. michael@0: (otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add michael@0: argument to pass lookup count. michael@0: Update callers. michael@0: (otl_gsub_lookup5_validate): Update function arguments. michael@0: Handle NULL offsets correctly. michael@0: Don't call otl_sub_class_rule_set_validate but michael@0: otl_sub_rule_set_validate. michael@0: Check sequence and lookup indices for format 3. michael@0: (otl_gsub_lookup6_validate): Update function arguments. michael@0: Handle NULL offsets correctly. michael@0: Check sequence and lookup indices for format 3. michael@0: (otl_gsub_lookup7_validate, otl_gsub_validate): Update function michael@0: arguments. michael@0: michael@0: * src/otlayout/otlgsub.h: Updated. michael@0: michael@0: * src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets michael@0: correctly. michael@0: michael@0: * src/otlayout/otlcommn.c (otl_class_definition_validate): Fix michael@0: compiler warning. michael@0: (otl_coverage_get_first, otl_coverage_get_last): New functions. michael@0: (otl_lookup_validate): Add arguments to pass lookup and glyph michael@0: counts. michael@0: Update callers. michael@0: (otl_lookup_list_validate): Add argument to pass glyph count. michael@0: Update callers. michael@0: michael@0: * src/otlayout/otlcommn.h: Updated. michael@0: michael@0: * src/otlayout/otljstf.c (otl_jstf_extender_validate, michael@0: otl_jstf_max_validate, otl_jstf_script_validate, michael@0: otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter michael@0: to validate glyph indices. michael@0: Update callers. michael@0: (otl_jstf_validate): Add parameter which specifies number of glyphs michael@0: in font. michael@0: michael@0: * src/otlayout/otljstf.h: Updated. michael@0: michael@0: 2004-08-15 Werner Lemberg michael@0: michael@0: * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter michael@0: to handle possible NULL values properly. michael@0: Update all callers. michael@0: michael@0: 2004-08-15 Werner Lemberg michael@0: michael@0: * src/otlayout/gpos.c: Rename counting variables to be more michael@0: meaningful. michael@0: Add copyright. michael@0: (otl_liga_attach_validate): Renamed to... michael@0: (otl_liga_mark2_validate): This. michael@0: Update all callers. michael@0: (otl_mark2_array_validate): Removed. michael@0: (otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not michael@0: otl_mark2_array_validate. michael@0: (otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed. michael@0: (otl_gpos_lookup7_validate): Complete code for format 2. michael@0: (otl_chain_pos_class_rule_validate, michael@0: otl_chain_pos_class_set_validate): Removed. michael@0: (otl_gpos_lookup8_validate): Don't call michael@0: otl_chain_pos_class_set_validate but michael@0: otl_chain_pos_rule_set_validate. michael@0: Simplify some code. michael@0: michael@0: * src/otlayout/otlgpos.h: Add copyright. michael@0: michael@0: 2004-08-14 Werner Lemberg michael@0: michael@0: * src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed. michael@0: (otl_jstf_gpos_mods_validate): Renamed to... michael@0: (otl_jstf_gsubgpos_mods_validate): This. michael@0: Test whether lookup_count is zero. michael@0: (otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate. michael@0: (otl_jstf_validate): Initialize gsub_lookup_count and michael@0: gpos_lookup_count if gsub or gpos is zero. michael@0: michael@0: * src/otlayout/otlgsub.c: Rename counting variables to be more michael@0: meaningful. michael@0: Add copyright. michael@0: (otl_gsub_lookup1_validate): Simplify code. michael@0: (otl_gsub_lookup2_validate, otl_gsub_lookup3_validate, michael@0: otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused michael@0: variables. michael@0: (otl_gsub_lookup5_validate): Remove unused variable. michael@0: Fix call to otl_sub_rule_set_validate and michael@0: otl_sub_class_rule_set_validate. michael@0: (otl_chain_sub_class_rule_validate, michael@0: otl_chain_sub_class_set_validate): Removed. michael@0: (otl_gsub_lookup6_validate): Remove unused variable. michael@0: Fix call to otl_chain_sub_rule_set_validate. michael@0: (otl_gsub_lookup7_validate): Handle lookup type 8 also. michael@0: (otl_gsub_lookup8_validate: New function. michael@0: (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, michael@0: otl_gsub_lookup3_apply): Commented out. michael@0: (otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and michael@0: otl_gsub_lookup8_validate. michael@0: (otl_gsub_validate): Updated. michael@0: michael@0: * src/otlayout/otlgsub.h: Add copyright. michael@0: michael@0: * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h michael@0: (otl_coverage_get_index): Comment out. michael@0: michael@0: 2004-08-13 Werner Lemberg michael@0: michael@0: * src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New michael@0: function. michael@0: * src/otlayout/otlcommn.h: Updated. michael@0: michael@0: * src/otlayout/otlbase.c: Rename counting variables to be more michael@0: meaningful. michael@0: Add copyright message. michael@0: * src/otlayout/otlbase.h: Add copyright message. michael@0: michael@0: * src/otlayout/otlgdef.c: Rename counting variables to be more michael@0: meaningful. michael@0: Add copyright message. michael@0: Use OTL_CHECK everywhere. michael@0: (otl_caret_value_validate): Remove unused variable. michael@0: (otl_gdef_validate): All tables are optional. michael@0: * src/otlayout/otlgdef.h: Add copyright message. michael@0: michael@0: * src/otlayout/otljstf.c: Rename counting variables to be more michael@0: meaningful. michael@0: Add copyright message. michael@0: (otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add michael@0: parameter to pass lookup count. michael@0: Update all callers. michael@0: Check lookup array. michael@0: (otl_jstf_max_validate): michael@0: s/otl_gpos_subtable_check/otl_gpos_subtable_validate/. michael@0: (otl_jstf_priority_validate, otl_jstf_lang_validate, michael@0: otl_jstf_script_validate): Add two parameters to pass lookup counts. michael@0: Update all callers. michael@0: (otl_jstf_validate): Add two parameters to pass GPOS and GSUB michael@0: table offsets; use otl_gsubgpos_get_lookup_count to convert extract michael@0: lookup counts. michael@0: Fix typo. michael@0: * src/otlayout/otljstf.h: Updated. michael@0: Add copyright message. michael@0: michael@0: * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function. michael@0: (otl_gpos_validate): Use it. michael@0: * src/otlayout/otlgpos.h: Updated. michael@0: michael@0: 2004-08-13 Werner Lemberg michael@0: michael@0: * src/otlayout/otcommn.c: Use OTL_CHECK everywhere. michael@0: (otl_coverage_validate): Initialize `p', michael@0: s/count/num_glyphs/. michael@0: s/start_cover/start_coverage/. michael@0: (otl_coverage_get_index): Return OTL_Long, not OTL_Int. michael@0: Remove unused variables. michael@0: (otl_class_definition_validate): s/count/num_glyphs/. michael@0: Remove unused variables. michael@0: (otl_class_definition_get_value, otl_device_table_get_start, michael@0: otl_device_table_get_end, otl_device_table_get_delta, michael@0: otl_lookup_get_table, otl_lookup_list_get_count, michael@0: otl_lookup_list_get_lookup, otl_lookup_list_get_table, michael@0: otl_feature_get_lookups, otl_feature_list_get_count, michael@0: otl_feature_list_get_feature, otl_lang_get_count, michael@0: otl_lang_get_req_feature, otl_lang_get_features): Commented out michael@0: temporarily until we really need it. michael@0: (otl_lookup_validate): Removed. michael@0: (otl_lookup_table_validate): Renamed to ... michael@0: (otl_lookup_validate): This. Update callers. michael@0: (otl_lookup_list_validate): Remove already commented out definition michael@0: and move the other definition up. michael@0: (otl_feature_validate): Add parameter to pass number of lookups. michael@0: Update callers. michael@0: Check lookup indices. michael@0: (otl_feature_list_validate): Add parameter to pass lookup table. michael@0: Update callers. michael@0: (otl_lang_validate): Add parameter to pass number of features. michael@0: Update callers. michael@0: Handle req_feature and check feature indices. michael@0: (otl_script_validate): Add parameter to pass number of features. michael@0: Update callers. michael@0: (otl_script_list_validate): Add parameter to pass feature table. michael@0: Update callers. michael@0: michael@0: * src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/. michael@0: Comment out the same functions as in otcommn.c. michael@0: (otl_script_list_get_script): Removed. michael@0: michael@0: * src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to michael@0: type OTL_Long. michael@0: (otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to michael@0: type OTL_Long. michael@0: Fix test. michael@0: (otl_gsub_validate): Fix order of validation. michael@0: michael@0: * src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of michael@0: validation. michael@0: michael@0: 2004-08-12 Werner Lemberg michael@0: michael@0: Make otlayout module compile (without actually working). michael@0: michael@0: * src/otlayout/*: s/OTL_Valid/OTL_Validator/. michael@0: s/NULL/0/. michael@0: michael@0: * src/otlayout/otlayout.h: Fix various typos. michael@0: (OTL_Bool): New typedef. michael@0: (OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword. michael@0: (OTL_Err_InvalidArgument): Removed. michael@0: (OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values. michael@0: (OTL_MAKE_TAG): Add missing parenthesis. michael@0: (OTL_INVALID_DATA): Use OTL_Err_InvalidData. michael@0: (OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize. michael@0: (OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros. michael@0: michael@0: * src/otlayout/otlgpos.c: s/FT_/OTL_/. michael@0: s/OTL_Short/OTL_Int16/. michael@0: (otl_gpos_pairset_validate): Add return type. michael@0: (otl_base_array_validate): Fix call to otl_anchor_validate. michael@0: (otl_liga_array_validate): Fix call to otl_liga_attach_validate. michael@0: (otl_gpos_lookup5_validate): Fix typos. michael@0: (otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate. michael@0: (otl_gpos_lookup7_validate): Comment out unfinished code. michael@0: Fix typos. michael@0: michael@0: * src/otlayout/otlgsub.c: Add forward declaration for michael@0: otl_gsub_validate_funcs. michael@0: (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, michael@0: otl_gsub_lookup3_apply): Fix call to otl_parser_check_property. michael@0: s/otl_coverage_lookup/otl_coverage_get_index/. michael@0: (otl_ligature_validate): Add missing variable declaration. michael@0: (otl_sub_rule_validate): Fix typo. michael@0: (otl_sub_class_rule_validate): Add missing variable declaration. michael@0: Fix typo. michael@0: (otl_gsub_lookup5_validate): Fix typo. michael@0: (otl_gsub_lookup6_validate): Fix call to michael@0: otl_chain_sub_class_set_validate. michael@0: (otl_gsub_validate_funcs): Don't use `const'. michael@0: michael@0: * src/otlayout/otlcommn.c (otl_class_definition_get_value, michael@0: otl_device_table_validate, otl_device_table_get_delta, michael@0: otl_lookup_validate, otl_script_validate): Add missing michael@0: variable declarations. michael@0: (otl_lookup_list_validate): Comment out first definition. michael@0: (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. michael@0: (otl_feature_list_validate): michael@0: s/otl_feature_table_validate/otl_feature_validate/. michael@0: (otl_script_list_validate): michael@0: s/otl_script_table_validate/otl_script_validate/. michael@0: michael@0: * src/otlayout/otlcommn.h: Comment out first declaration. michael@0: (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. michael@0: michael@0: * src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to michael@0: otl_device_table_validate. michael@0: (otl_base_script_validate): Add missing variable declarations. michael@0: (otl_base_script_list_validate): Fix call to michael@0: otl_base_script_validate. michael@0: (otl_axis_table_validate): Fix calls to otl_base_tag_list_validate michael@0: and otl_base_script_list_validate. michael@0: (otl_base_validate): Fix calls to otl_axis_table_validate. michael@0: michael@0: * src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to michael@0: otl_attach_point_validate. michael@0: (otl_caret_value_validate): Add missing variable declaration. michael@0: Fix call to otl_device_table_validate. michael@0: (otl_ligature_glyph_validate): Fix call to otl_caret_value_validate. michael@0: (otl_ligature_caret_list_validate): Fix call to michael@0: otl_ligature_glyph_validate. michael@0: (otl_gdef_validate): Fix calls to otl_class_definition_validate, michael@0: otl_attach_list_validate, otl_ligature_caret_list_validate, and michael@0: otl_class_definition_validate. michael@0: michael@0: * src/otlayout/otltable.h (otl_table_validate, otl_table_init, michael@0: otl_table_set_script): Comment out. michael@0: michael@0: * src/otlayout/otlparse.h (OTL_ParserRec): michael@0: s/OTL_Alternate/OTL_GSUB_Alternate/. michael@0: (OTL_ParseError): Add OTL_Err_Parser_Memory and michael@0: OTL_Err_Parser_Internal. michael@0: (otl_parser_error): Fix typo. michael@0: (otl_parser_check_property): Remove third argument. michael@0: michael@0: * src/otlayout/otlparse.c (otl_string_ensure): michael@0: s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/. michael@0: (OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index, michael@0: otl_parser_replace_1, otl_parser_replace_n): Fix typos. michael@0: (OTL_PARSER_UNCOVERED): Removed. michael@0: (otl_parser_check_property): Remove third argument. michael@0: michael@0: * src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing michael@0: variable declaration. michael@0: michael@0: * src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo. michael@0: michael@0: 2004-08-11 Danny michael@0: michael@0: * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close michael@0: to NULL. This allows custom close functions to delete the FT_STREAM michael@0: object. michael@0: michael@0: 2004-08-11 Werner Lemberg michael@0: michael@0: Add API to get information about SFNT tables. michael@0: michael@0: * include/freetype/internal/services/svsfnt.h michael@0: (FT_SFNT_Table_Info_Func): New typedef. michael@0: (SFNT_Table): Add it. michael@0: michael@0: * src/base/ftobjs (FT_Sfnt_Table_Info): New function. michael@0: michael@0: * include/freetype/tttables.h: Updated. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_table_info): New function. michael@0: (sfnt_service_sfnt_table): Add it. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. michael@0: michael@0: * builds/unix/configure.ac (version_info): Set to 9:8:3. michael@0: * builds/unix/configure: Updated. michael@0: michael@0: * builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. michael@0: michael@0: * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): michael@0: s/2.1.9/2.1.10/. michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL: Updated. michael@0: michael@0: 2004-08-11 Detlef Würkner michael@0: michael@0: * src/base/ftrfork.c (FT_Raccess_Guess) michael@0: [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler michael@0: warnings. michael@0: michael@0: 2004-08-06 Adam Piotrowski michael@0: michael@0: * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte michael@0: adjustments are unsigned, not signed. michael@0: michael@0: 2004-08-05 David Turner michael@0: michael@0: `Activate' gray-scale specifing hinting within the TrueType michael@0: bytecode interpreter. This is an experimental feature which michael@0: should probably be made optional. michael@0: michael@0: * src/truetype/ttgload.c (TT_Process_Simple_Glyph, michael@0: load_truetype_glyph): Move the code to set the pedantic_hinting flag michael@0: to... michael@0: (TT_Load_Glyph): Here. michael@0: Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'. michael@0: michael@0: * src/truetyep/ttinterp.c (Ins_GETINFO): Return MS rasterizer michael@0: version 1.7. michael@0: Return rotation and stretching info only if glyph is rotated or michael@0: stretched, respectively. michael@0: Handle grayscale info. michael@0: michael@0: * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale' michael@0: member. michael@0: michael@0: 2004-08-02 George Williams michael@0: michael@0: * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'. michael@0: michael@0: 2004-08-01 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-08-01 George Williams michael@0: michael@0: FreeType now can read kerning values from PFM files. michael@0: michael@0: * src/type1/t1afm.c (T1_Done_AFM): Renamed to... michael@0: (T1_Done_Metrics): This. michael@0: Update all callers. michael@0: (T1_Read_AFM): Make it static. michael@0: Don't enter and leave a frame. michael@0: (LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros. michael@0: (T1_Read_PFM): New function. michael@0: (T1_Read_Metrics): New higher-level function to be used instead of michael@0: T1Read_AFM. michael@0: Update all callers. michael@0: michael@0: 2004-07-31 Werner Lemberg michael@0: michael@0: * src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c michael@0: (BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var, michael@0: tt_face_vary_cvt): Fix compiler warnings. michael@0: michael@0: 2004-07-26 Søren Sandmann michael@0: michael@0: * src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for michael@0: face->style_name. michael@0: * src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'. michael@0: michael@0: 2004-07-26 Darren J Longhorn michael@0: michael@0: * include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize michael@0: five-byte `long' (which is avoided then). michael@0: michael@0: 2004-07-25 Detlef Würkner michael@0: michael@0: * src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not michael@0: ppem values. michael@0: (PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own michael@0: code to compare ppem values. michael@0: * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not michael@0: ppem values. michael@0: (BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own michael@0: code to compare ppem values. michael@0: michael@0: 2004-07-25 Kornfeld Eliyahu Peter michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Handle michael@0: TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY. michael@0: michael@0: 2004-07-24 Derek B. Noonburg michael@0: michael@0: * src/cff/cffload.c (cff_font_load): Always create inverse mapping. michael@0: Even if the charstring count is the same as the CID count, it is michael@0: still possible that the font uses a different CID -> GID mapping. michael@0: michael@0: 2004-07-23 Werner Lemberg michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag michael@0: found in some Arphic fonts made for Chinese version of Windows 3.1. michael@0: michael@0: 2004-07-17 David Turner michael@0: michael@0: Fixed a dangling pointer bug in the cache code that happened in very michael@0: rare cases, i.e., when a new family object was destroyed by an michael@0: out-of-memory condition during a glyph node initialization. The michael@0: function FTC_Cache_Lookup would flush the cache and restart the michael@0: lookup with a bad pointer. michael@0: michael@0: * include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro. michael@0: (FTC_GCACHE_LOOKUP_CMP): Use it. michael@0: Handle reference count in `num_nodes' correctly. michael@0: michael@0: * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use michael@0: FTC_FAMILY_FREE. michael@0: (FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly. michael@0: michael@0: * src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing michael@0: bug. michael@0: michael@0: * src/truetype/ttinterp.c (Normalize): Fixed a bug that caused michael@0: long and unnecessary delays while normalizing huge vectors. michael@0: michael@0: 2004-07-15 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler michael@0: warning. michael@0: michael@0: 2004-07-15 David Turner michael@0: michael@0: * src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points michael@0: are not stroked, preventing a bug with pala.ttf and other michael@0: fonts. michael@0: michael@0: * include/freetype/ftstroke.h: Updating documentation comments. michael@0: michael@0: 2004-07-13 Werner Lemberg michael@0: michael@0: * src/base/ftstroke.c (ft_stroke_border_reverse): Removed. Unused. michael@0: michael@0: 2004-07-12 David Turner michael@0: michael@0: * src/base/ftstroke.c (ft_stroke_border_close): Add second parameter michael@0: to indicate reversion of points. michael@0: Update all callers. michael@0: (ft_stroke_border_reverse): Fix initialization of `point1' and michael@0: `tag1'. michael@0: michael@0: * src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation michael@0: for transformed glyphs. michael@0: michael@0: 2004-07-11 David Turner michael@0: michael@0: Fix bugs that prevented the stroker to correctly generate stroked michael@0: paths from closed paths, i.e., nearly all glyphs in vectorial fonts. michael@0: michael@0: The code is still _very_ buggy though; treat with special care. michael@0: michael@0: * src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro. michael@0: (ft_stroke_border_reverse): New function. michael@0: (ft_stroker_inside): Remove local variable `sigma'; use different michael@0: threshold. michael@0: (ft_stroker_add_reverse_left): Switch begin/end tags if necessary. michael@0: (FT_Stroker_EndSubPath): Call ft_stroker_inside and michael@0: ft_stroke_border_reverse. michael@0: michael@0: 2004-06-26 Peter Kovar michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. michael@0: michael@0: 2004-06-25 Werner Lemberg michael@0: michael@0: * src/type1/t1afm.c (afm_atoindex): Fix boundary test. Reported michael@0: by Dirck Blaskey. michael@0: michael@0: 2004-06-24 David Turner michael@0: michael@0: michael@0: * Version 2.1.9 released. michael@0: ========================= michael@0: michael@0: michael@0: * src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing michael@0: compiler warnings. michael@0: michael@0: 2004-06-23 Werner Lemberg michael@0: michael@0: * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare michael@0: FT_QAlloc_Debug and FT_QRealloc_Debug. michael@0: michael@0: * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages. michael@0: (FT_QRealloc): Call FT_QAlloc if original pointer is NULL. michael@0: Fix error message. michael@0: michael@0: 2004-06-23 David Turner michael@0: michael@0: * include/freetype/internal/ftmemory.h, src/base/ftutil.c michael@0: (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug, michael@0: FT_QRealloc_Debug): New functions that perform allocation without michael@0: zero-ing out the corresponding blocks. michael@0: michael@0: * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC, michael@0: FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY, michael@0: FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY, michael@0: FT_QRENEW_ARRAY): New macros. michael@0: michael@0: * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC. michael@0: * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY. michael@0: * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY. michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics, michael@0: tt_face_load_gasp): Use FT_QNEW_ARRAY. michael@0: (tt_face_load_kern): Use FT_QNEW_ARRAY. michael@0: Small optimization in the kerning table verifier; this speeds up michael@0: TrueType face opening by about 7%. michael@0: (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC. michael@0: michael@0: * include/freetype/config/ftmodule.h: Changed the order of modules, michael@0: putting TrueType and Type 1 first. This dramatically improves the michael@0: performance of face open/close operations. For example, putting the michael@0: TrueType driver first in the list results in a 5x speedup when michael@0: opening `Vera.ttf'. michael@0: michael@0: The very problem is that both the PCF and BDF drivers do a lot more michael@0: than necessary to detect that they cannot handle a font file. michael@0: michael@0: 2004-06-22 Werner Lemberg michael@0: michael@0: * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, michael@0: pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve michael@0: debugging messages. michael@0: michael@0: * src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up. michael@0: (PCF_Face_Init): Simplify code. michael@0: michael@0: * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'. michael@0: michael@0: * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start), michael@0: src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/. michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs. michael@0: Set `default_glyph'. michael@0: (BDF_Glyph_Load): Use `default_glyph' for undefined glyph. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-06-21 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-06-21 David Turner michael@0: michael@0: * src/truetype/ttgload.c (TT_Process_Simple_Glyph, michael@0: load_truetype_glyph): Don't access (unrounded) michael@0: `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes michael@0: a scaling bug that caused incorrect rendering when the bytecode michael@0: interpreter was enabled. michael@0: michael@0: 2004-06-14 Huw D M Davies michael@0: michael@0: * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem michael@0: based on pixel_width and pixel_height. michael@0: (FNT_Size_Set_Pixels): Updated. michael@0: michael@0: 2004-06-14 Werner Lemberg michael@0: michael@0: * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h. michael@0: Reported by Hyvärinen Jyrki Juhani. michael@0: michael@0: 2004-06-11 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-06-10 David Turner michael@0: michael@0: * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c, michael@0: src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed. michael@0: Obsolete. michael@0: michael@0: * src/raster/ftraster.c (Alignment, PAlignment): New union to fix michael@0: problems with 64bit systems. michael@0: (AlignProfileSize): Use it. michael@0: michael@0: 2004-06-08 David Turner michael@0: michael@0: * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta' michael@0: and `rsb_delta' elements to... michael@0: (FT_GlyphSlotRec): Here to retain binary compatibility with older michael@0: FreeType versions. michael@0: Update all users. michael@0: michael@0: * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning. michael@0: michael@0: * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization michael@0: of slot->metrics.width and slot->metrics.height when loading a michael@0: Windows FNT glyph. Thanks to Huw Davies. michael@0: michael@0: * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change michael@0: return type to FT_Bool. michael@0: michael@0: * src/cache/ftbasic.c (ftc_basic_family_compare): Change return michael@0: type to FT_Bool. michael@0: michael@0: * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make michael@0: the former call the latter, not vice versa. michael@0: (FTC_Cache_Done, ftc_cache_done): Ditto. michael@0: michael@0: * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make michael@0: the former call the latter, not vice versa. michael@0: (FTC_GCache_Init, ftc_gcache_init): Ditto. michael@0: (FTC_GCache_Done, ftc_gcache_done): Ditto. michael@0: michael@0: * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the michael@0: former call the latter, not vice versa. michael@0: (FTC_INode_Weight, ftc_inode_weight): Ditto. michael@0: michael@0: * src/cache/ftcmanag.c (ftc_size_node_compare, michael@0: ftc_size_node_compare_faceid, ftc_face_node_compare): Change return michael@0: type to FT_Bool. michael@0: michael@0: * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the michael@0: former call the latter, not vice versa. michael@0: (FTC_SNode_Weight, ftc_snode_weight): Ditto. michael@0: (FTC_SNode_Compare, ftc_snode_compare): Ditto. michael@0: michael@0: * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache michael@0: sub-system. michael@0: michael@0: 2004-06-05 Werner Lemberg michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and michael@0: `rsb_delta' in slot->metrics and tune side bearings slightly. michael@0: michael@0: 2004-06-04 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-06-04 David Chester michael@0: michael@0: Improve inter-letter spacing for autohinted glyphs. michael@0: michael@0: * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements michael@0: `lsb_delta' and `rsb_delta'. michael@0: michael@0: * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and michael@0: `rsb_delta' in slot->metrics and tune side bearings slightly. michael@0: michael@0: 2004-06-04 David Turner michael@0: michael@0: * src/autofit/*: Important fixes to the auto-fitter. The output michael@0: now seems to be 100% equivalent to the auto-hinter, while being michael@0: about 2% faster (which proves that script-specific algorithm michael@0: selection isn't a performance problem). michael@0: michael@0: To test it, change `autohint' to `autofit' in michael@0: and recompile. michael@0: michael@0: A few more testing is needed before making this the official michael@0: auto-hinting module. michael@0: michael@0: 2004-06-02 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler michael@0: warnings. michael@0: michael@0: 2004-06-01 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English michael@0: name record for the Apple platform is preferred to a non-English michael@0: entry for the Microsoft platform. Problem reported by HANDA michael@0: Ken'ichi. michael@0: michael@0: 2004-05-19 George Williams michael@0: michael@0: * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New michael@0: auxiliary functions. michael@0: (T1_Get_MM_Var): Provide axis tags. michael@0: Use mm_axis_unmap and mm_weights_unmap to provide default values michael@0: for design and normalized axis coordinates. michael@0: michael@0: * include/freetype/t1tables.h (PS_DesignMapRec): Change type of michael@0: `design_points' to FT_Long. michael@0: Update all users. michael@0: michael@0: 2004-05-17 Werner Lemberg michael@0: michael@0: * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases. michael@0: Reported by Mikey Anbary . michael@0: michael@0: 2004-05-15 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name. michael@0: michael@0: 2004-05-15 George Williams michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_max_profile): Always set michael@0: face->root.num_glyphs. michael@0: michael@0: 2004-05-14 Masatake YAMATO michael@0: George Williams michael@0: michael@0: * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly. michael@0: michael@0: 2004-05-14 Werner Lemberg michael@0: michael@0: * src/cache/ftcbasic.c (ftc_basic_family_compare, michael@0: ftc_basic_family_init, ftc_basic_family_get_count, michael@0: ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, michael@0: ftc_basic_gnode_compare_faceid): Adjust parameters and return types michael@0: to prototypes given in header files from include/freetype/cache. michael@0: Use casts to proper types locally. michael@0: (ftc_basic_image_family_class, ftc_basic_image_cache_class, michael@0: ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove michael@0: casts. michael@0: michael@0: * src/cache/ftccback.h: Adjust parameters and return types to michael@0: prototypes given in header files from include/freetype/cache. michael@0: michael@0: * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new, michael@0: ftc_inode_weight): Adjust parameters and return types to prototypes michael@0: given in header files from include/freetype/cache. Use casts to michael@0: proper types locally. michael@0: michael@0: * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new, michael@0: ftc_snode_weight, ftc_snode_compare): Adjust parameters and return michael@0: types to prototypes given in header files from michael@0: include/freetype/cache. Use casts to proper types locally. michael@0: michael@0: * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new, michael@0: ftc_cmap_node_weight, ftc_cmap_node_compare, michael@0: ftc_cmap_node_remove_faceid): Adjust parameters and return types to michael@0: prototypes given in header files from include/freetype/cache. Use michael@0: casts to proper types locally. michael@0: (ftc_cmap_cache_class): Remove casts. michael@0: michael@0: * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init, michael@0: ftc_gcache_done): Adjust parameters and return types to prototypes michael@0: given in header files from include/freetype/cache. Use casts to michael@0: proper types locally. michael@0: michael@0: * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare, michael@0: ftc_size_node_init, ftc_size_node_reset, michael@0: ftc_size_node_compare_faceid, ftc_face_node_init, michael@0: ftc_face_node_done, ftc_face_node_compare: Adjust parameters and michael@0: return types to prototypes given in header files from michael@0: include/freetype/cache. Use casts to proper types locally. michael@0: michael@0: (ftc_size_list_class, ftc_face_list_class): Remove casts. michael@0: michael@0: 2004-05-13 Werner Lemberg michael@0: michael@0: * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done): michael@0: Use FT_Module as parameter and do a cast to FT_AutoHinter locally. michael@0: (autohint_module_class): Remove casts. michael@0: michael@0: * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy, michael@0: ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init, michael@0: ft_outline_glyph_done, ft_outline_glyph_copy, michael@0: ft_outline_glyph_transform, ft_outline_glyph_bbox, michael@0: ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast michael@0: to FT_XXXGlyph locally. michael@0: Use FT_CALLBACK_DEF throughout. michael@0: (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts. michael@0: michael@0: * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done, michael@0: bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter michael@0: and do a cast to BDF_CMap locally. michael@0: (bdf_cmap_class): Remove casts. michael@0: michael@0: 2004-05-12 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.h (CFF_Builder): Remove `error'. michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace michael@0: `Memory_Error' with `Fail' und update all users. michael@0: michael@0: 2004-05-11 Werner Lemberg michael@0: michael@0: * include/freetype/internal/psaux.h (T1_ParseState): New michael@0: enumeration. michael@0: (T1_BuilderRec): Replace `path_begun' with `parse_state'. michael@0: Remove `error'. michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace michael@0: `Memory_Error' with `Fail' and update all users. michael@0: Don't use `builder->error'. michael@0: Replace `path_begun' with `parse_state' and check parsing states. michael@0: michael@0: * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point): michael@0: Replace `path_begun' with `parse_state' and check parsing states. michael@0: michael@0: 2004-05-10 George Williams michael@0: michael@0: * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case michael@0: of error -- `avar' is optional so we can't rely on tt_done_blend michael@0: being called automatically. michael@0: michael@0: 2004-05-09 George Williams michael@0: michael@0: * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix michael@0: error handling. michael@0: michael@0: 2004-05-07 Werner Lemberg michael@0: michael@0: * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init, michael@0: pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done, michael@0: pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are michael@0: typecast to the proper PFR_XXX types within the function. michael@0: Update code accordingly. michael@0: michael@0: * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance, michael@0: pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX michael@0: arguments which are typecast to the proper PFR_XXX types within the michael@0: function. michael@0: Update code accordingly. michael@0: Use FT_CALLBACK_DEF throughout. michael@0: (pfr_metrics_service_rec, pfr_driver_class): Remove casts. michael@0: michael@0: 2004-05-06 Masatake YAMATO michael@0: michael@0: * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM. michael@0: (*): Rename local variable OffsetToData to offsetToData. michael@0: michael@0: 2004-05-06 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset, michael@0: cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access michael@0: root fields directly. michael@0: * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly. michael@0: michael@0: * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current michael@0: frame before calling TT_Vary_Get_Glyph_Deltas. michael@0: michael@0: * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for michael@0: consistency. michael@0: (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index, michael@0: pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which michael@0: are typecast to the proper PCF_XXX types within the function. michael@0: Update code accordingly. michael@0: (pcf_cmap_class): Remove casts. michael@0: (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use michael@0: PCF_XXX but FT_XXX arguments which are typecast to the proper michael@0: PCF_XXX types within the function. michael@0: Update code accordingly. michael@0: Use FT_CALLBACK_DEF throughout. michael@0: (PCF_Set_Point_Size): New wrapper function. michael@0: (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF. michael@0: (pcf_driver_class): Remove casts. michael@0: michael@0: 2004-05-04 Steve Hartwell michael@0: michael@0: * src/truetype/ttobjs.c (tt_driver_done): Fix typo. michael@0: michael@0: 2004-05-04 Werner Lemberg michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init, michael@0: BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which michael@0: are typecast to the proper BDF_XXX types within the function. michael@0: Update code accordingly. michael@0: Use FT_CALLBACK_DEF throughout. michael@0: (BDF_Set_Point_Size): New wrapper function. michael@0: (bdf_driver_class): Remove casts. michael@0: michael@0: * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface): michael@0: Don't use CFF_XXX but FT_XXX arguments which are typecast to the michael@0: proper CFF_XXX types within the function. michael@0: Update code accordingly. michael@0: Use FT_CALLBACK_DEF throughout. michael@0: (cff_driver_class): Remove casts. michael@0: michael@0: * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done, michael@0: cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init, michael@0: cff_face_init, cff_face_done, cff_driver_init, cff_driver_done): michael@0: Don't use CFF_XXX but FT_XXX arguments which are typecast to the michael@0: proper CFF_XXX types within the function. michael@0: Update code accordingly. michael@0: (cff_point_size_reset): New wrapper function. michael@0: michael@0: * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done, michael@0: cid_slot_init, cid_size_done, cid_size_init, cid_size_reset, michael@0: cid_face_done, cid_face_init, cid_driver_init, cid_driver_done): michael@0: Don't use CID_XXX but FT_XXX arguments which are typecast to the michael@0: proper CID_XXX types within the function. michael@0: Update code accordingly. michael@0: (cid_point_size_reset): New wrapper function. michael@0: michael@0: * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph): michael@0: Don't use CID_XXX but FT_XXX arguments which are typecast to the michael@0: proper CID_XXX types within the function. michael@0: Update code accordingly. michael@0: michael@0: * src/cid/cidriver.c (cid_get_interface): michael@0: Don't use CID_XXX but FT_XXX arguments which are typecast to the michael@0: proper CID_XXX types within the function. michael@0: Update code accordingly. michael@0: Use FT_CALLBACK_DEF. michael@0: (t1cid_driver_class): Remove casts. michael@0: michael@0: * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF. michael@0: * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local michael@0: variables (this is done later). michael@0: (ft_var_load_avar): Fix call to FT_FRAME_ENTER. michael@0: (TT_Get_MM_Var): Fix size for `fvar_fields'. michael@0: (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables michael@0: correctly. michael@0: michael@0: * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if michael@0: current size is zero. michael@0: michael@0: 2004-05-03 Steve Hartwell michael@0: michael@0: * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init, michael@0: tt_face_done, tt_size_init, tt_size_done, tt_driver_init, michael@0: tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are michael@0: typecast to the proper TT_XXX types within the function. michael@0: Update code accordingly. michael@0: michael@0: * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes, michael@0: Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but michael@0: FT_XXX arguments which are typecast to the proper TT_XXX types michael@0: within the function. michael@0: Update code accordingly. michael@0: (tt_driver_class): Remove casts. michael@0: michael@0: 2004-05-02 Werner Lemberg michael@0: michael@0: * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names' michael@0: is not NULL. Reported by Gordon Childs . michael@0: michael@0: 2004-04-29 Werner Lemberg michael@0: michael@0: * docs/formats.txt: Add more information on PFR format. michael@0: michael@0: 2004-04-28 Werner Lemberg michael@0: michael@0: * docs/formats.txt: New file. michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-04-28 Masatake YAMATO michael@0: michael@0: * include/freetype/internal/tttypes.h (GX_BlendRec_) michael@0: [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo. michael@0: michael@0: * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo. michael@0: michael@0: 2004-04-27 Masatake YAMATO michael@0: michael@0: * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF michael@0: for function declarations. michael@0: michael@0: 2004-04-25 George Williams michael@0: michael@0: * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo. michael@0: michael@0: 2004-04-25 Werner Lemberg michael@0: michael@0: * src/truetype/Jamfile, docs/CHANGES: Updated. michael@0: michael@0: 2004-04-24 Werner Lemberg michael@0: michael@0: * src/pcf/pcfdrivr.c: Revert change from 2004-04-17. michael@0: * src/pcf/pcfutil.c: Use FT_LOCAL_DEF. michael@0: * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H. michael@0: Use FT_BEGIN_HEADER and FT_END_HEADER. michael@0: Use FT_LOCAL. michael@0: michael@0: 2004-04-24 George Williams michael@0: michael@0: Add support for Apple's distortable font technology (in GX fonts). michael@0: michael@0: * devel/ftoption.h, include/freetype/config/ftoption.h michael@0: (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro. michael@0: michael@0: * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style, michael@0: FT_MM_Var): New structures. michael@0: (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, michael@0: FT_Set_Var_Blend_Coordinates): New function declarations. michael@0: michael@0: * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func, michael@0: FT_Set_Var_Design_Func): New typedefs. michael@0: Update MultiMasters service. michael@0: michael@0: * include/freetype/internal/tttypes.h michael@0: [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H. michael@0: (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef. michael@0: (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend' michael@0: and `blend'. michael@0: michael@0: * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New michael@0: macros. michael@0: michael@0: * include/freetype/internal/fttrace.h: Add `ttgxvar'. michael@0: michael@0: * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, michael@0: FT_Set_Var_Blend_Coordinates): New functions. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face) michael@0: [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS michael@0: flag for GX var fonts. michael@0: michael@0: * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files. michael@0: michael@0: * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include michael@0: ttgxvar.c. michael@0: michael@0: * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include michael@0: FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h. michael@0: (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: michael@0: New service. michael@0: (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. michael@0: michael@0: * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include michael@0: ttgxvar.h. michael@0: (TT_Process_Simple_Glyph, load_truetype_glyph) michael@0: [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts. michael@0: michael@0: * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include michael@0: ttgxvar.h. michael@0: (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call michael@0: tt_done_blend. michael@0: michael@0: * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include michael@0: ttgxvar.h. michael@0: (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call michael@0: tt_face_vary_cvt. michael@0: michael@0: * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c. michael@0: michael@0: * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var michael@0: and T1_Set_Var_Design. michael@0: michael@0: * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros. michael@0: (T1_Get_MM_Var, T1_Set_Var_Design): New functions. michael@0: michael@0: * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New michael@0: function declarations. michael@0: michael@0: 2004-04-23 Werner Lemberg michael@0: michael@0: * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename michael@0: declaration and move to... michael@0: * include/freetype/freetype.h (FT_Get_Charmap_Index): Here. michael@0: (FREETYPE_PATCH): Set to 9. michael@0: michael@0: * src/base/ftobjs.c (FT_Get_Charmap_Index): New function. michael@0: michael@0: * builds/unix/configure.ac (version_info): Set to 9:7:3. michael@0: * builds/unix/configure: Updated. michael@0: michael@0: * builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj: s/218/219/. michael@0: michael@0: * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): michael@0: s/2.1.8/2.1.9/. michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL: Updated. michael@0: michael@0: 2004-04-21 Werner Lemberg michael@0: michael@0: * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c michael@0: (ps_parser_load_field): Use FT_CHAR_BIT. michael@0: michael@0: 2004-04-21 David Turner michael@0: michael@0: michael@0: * Version 2.1.8 released. michael@0: ========================= michael@0: michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak. michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c michael@0: (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name): michael@0: Remove compiler warnings. michael@0: michael@0: * src/autofit/aftypes.h: Undefine AF_DEBUG. michael@0: michael@0: * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf, michael@0: pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c michael@0: (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict, michael@0: t42_service_ps_font_name): Decorate data arrays with `const' to michael@0: avoid populating the `.data' segment. michael@0: michael@0: * src/lzw/Jamfile: New file. michael@0: michael@0: 2004-04-20 Werner Lemberg michael@0: michael@0: * src/psaux/psobjs.c (T1Radix): Renamed to... michael@0: (ps_radix): This. michael@0: Update current cursor position. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-04-18 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph), michael@0: src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to michael@0: FT_UInt. From Lex Warners. michael@0: michael@0: 2004-04-17 Chisato Yamauchi michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change michael@0: from 2004-03-19. michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'. michael@0: michael@0: * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with michael@0: `static'. michael@0: Remove unused function `RepadBitmap'. michael@0: * src/pcf/pcfdrivr.c: Don't include pcfutil.h. michael@0: michael@0: 2004-04-16 Werner Lemberg michael@0: michael@0: * builds/unix/freetype-config.in (usage): Fix and improve usage michael@0: information. michael@0: michael@0: 2004-04-15 Werner Lemberg michael@0: michael@0: * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define michael@0: FT_CHAR_BIT. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if michael@0: glyph is vertically distorted or mirrored. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly michael@0: for embedded bitmaps. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-04-15 bytesoftware michael@0: michael@0: * include/freetype/config/ftconfig.h, src/base/ftstream.c michael@0: (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT. michael@0: michael@0: 2004-04-14 Werner Lemberg michael@0: michael@0: * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro. michael@0: michael@0: 2004-04-14 Alex Strelnikov michael@0: michael@0: * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case michael@0: of error. michael@0: michael@0: 2004-04-14 Werner Lemberg michael@0: michael@0: * src/base/ftmac.c [__GNUC__]: Define OS_INLINE. michael@0: * builds/unix/configure.ac: Don't try to remove `-ansi' compilation michael@0: switch on the Mac. michael@0: michael@0: * builds/unix/ltmain.sh: Regenerated with `libtoolize --force michael@0: --copy' from libtool 1.5.6. michael@0: * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from michael@0: automake 1.8a. michael@0: * builds/unix/configure: Regenerated with autoconf 2.59a. michael@0: michael@0: 2004-04-13 Werner Lemberg michael@0: michael@0: * include/freetype/config/ftconfig.h: Use CHAR_BIT to define michael@0: size of FT_SIZEOF_xxx. michael@0: michael@0: 2004-04-12 Chisato Yamauchi michael@0: michael@0: * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func, michael@0: TT_Load_SBit_Metrics_Func): New typedefs. michael@0: (SFNT_Interface): Add find_sbit_image and load_sbit_metrics. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_interface): Updated. michael@0: * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New michael@0: declarations. michael@0: * src/sfnt/ttsbit.c (find_sbit_image): Renamed to... michael@0: (tt_find_sbit_image): This. michael@0: Updated all callers. michael@0: (load_sbit_metrics): Renamed to... michael@0: (tt_load_sbit_metrics): This. michael@0: Updated all callers. michael@0: michael@0: 2004-04-12 Werner Lemberg michael@0: michael@0: * configure: Accept makepp also. michael@0: michael@0: * builds/unix/detect.mk: Use proper path to unix-def.mk. michael@0: * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove. michael@0: * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define. michael@0: Use BUILD_DIR. michael@0: michael@0: * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update michael@0: documentation on makepp. michael@0: michael@0: 2004-04-11 Werner Lemberg michael@0: michael@0: * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h. michael@0: michael@0: 2004-04-10 Werner Lemberg michael@0: michael@0: * src/lzw/ftlzw.c: Include zopen.h dependent on michael@0: FT_CONFIG_OPTION_USE_LZW. michael@0: michael@0: * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings. michael@0: michael@0: 2004-04-02 Werner Lemberg michael@0: michael@0: * builds/unix/ltmain.sh: Regenerated with `libtoolize --force michael@0: --copy' from libtool 1.5.2. michael@0: * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from michael@0: automake 1.8a. michael@0: * builds/unix/configure: Regenerated with autoconf 2.59a. michael@0: michael@0: 2004-04-01 Werner Lemberg michael@0: michael@0: * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of michael@0: AC_COMPILE_IFELSE. michael@0: * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from michael@0: automake 1.8a. michael@0: * builds/unix/configure: Regenerated with autoconf 2.59a. michael@0: * builds/unix/config.guess, builds/unix/config.sub: Updated from michael@0: `config' CVS module at subversions.gnu.org. michael@0: * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from michael@0: `texinfo' CVS module at subversions.gnu.org. michael@0: * builds/freetype.mk (refdoc): Updated. michael@0: michael@0: 2004-03-31 Werner Lemberg michael@0: michael@0: Handle broken FNT files which don't have a trailing NULL byte michael@0: in the face name string. michael@0: michael@0: * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'. michael@0: * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name. michael@0: (FNT_Face_Init): Append a final zero byte to the font face name. michael@0: michael@0: 2004-03-30 Werner Lemberg michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from michael@0: 2004-03-19. michael@0: michael@0: 2004-03-27 Werner Lemberg michael@0: michael@0: * src/base/descrip.mms (OBJS): Add ftbbox.obj. michael@0: michael@0: 2004-03-26 George Williams michael@0: michael@0: Add vertical phantom points. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_LoaderRec): Add michael@0: `top_bearing', `vadvance', `pp3', and `pp4'. michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g): Handle two more points. michael@0: michael@0: * src/autohint/ahhint.c (ah_hinter_load): Handle two more points. michael@0: * src/truetype/ttgload.c (Get_VMetrics): New function. michael@0: (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more michael@0: points. michael@0: (load_truetype_glyph): Use Get_VMetrics. michael@0: Handle two more points. michael@0: (compute_glyph_metrics): Thanks to vertical phantom points we now michael@0: can always compute `advance_height' and `top_bearing'. michael@0: * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom michael@0: points. michael@0: michael@0: michael@0: * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of michael@0: `news'. michael@0: michael@0: 2004-03-21 Werner Lemberg michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing. michael@0: michael@0: 2004-03-20 Steve Hartwell michael@0: michael@0: * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL michael@0: value for `selection' as `select all'. michael@0: michael@0: 2004-03-19 Steve Hartwell michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index michael@0: values > 0 if loading non-TTC fonts. michael@0: michael@0: * src/base/ftmac.c (open_face_from_buffer): Set positive face_index michael@0: to zero before calling FT_Open_Face. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-03-04 Werner Lemberg michael@0: michael@0: * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h: michael@0: Add LZW module. michael@0: michael@0: * Jamfile.in: Removed. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/, michael@0: s/ABS/FT_ABS/. Updated all callers. michael@0: michael@0: * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c michael@0: (PCF_Face_Init): Use FT_ERROR_BASE. michael@0: michael@0: 2004-03-04 Albert Chin michael@0: michael@0: Add support for PCF fonts compressed with LZW (extension .pcf.Z, michael@0: created with `compress'). michael@0: michael@0: * include/freetype/config/ftoption.h, devel/ftoption.h michael@0: (FT_CONFIG_OPTION_USE_LZW): New macro. michael@0: michael@0: * include/freetype/ftlzw.h: New file. michael@0: * include/freetype/config/ftheader.h (FT_LZW_H): New macro for michael@0: ftlzw.h. michael@0: michael@0: * src/lzw/*: New files. michael@0: michael@0: * src/pcf/pcfdrivr.c: Include FT_LZW_H. michael@0: (PCF_Face_Init): Try LZW also. michael@0: michael@0: * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate. michael@0: Beautify. michael@0: michael@0: 2004-03-03 Werner Lemberg michael@0: michael@0: * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code. michael@0: michael@0: 2004-03-02 Werner Lemberg michael@0: michael@0: Add embedded bitmap support to CFF driver. michael@0: michael@0: * src/cff/cffobjs.h (CFF_SizeRec): New structure. michael@0: michael@0: * src/cff/cffgload.c (cff_builder_init): Updated. michael@0: (cff_slot_load): Updated. michael@0: [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit. michael@0: michael@0: * src/cff/cffobjs.c (sbit_size_reset) michael@0: [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function. michael@0: (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated. michael@0: (cff_size_reset): Updated. michael@0: [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset. michael@0: michael@0: * src/cff/cffdrivr.c (Load_Glyph): Updated. michael@0: (cff_driver_class): Use CFF_SizeRec. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-03-01 Werner Lemberg michael@0: michael@0: * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use michael@0: FT_RoundFix but FT_PIX_ROUND. michael@0: (psh_blues_snap_stem): Don't use blue_shift but blue_threshold. michael@0: michael@0: * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro. michael@0: (psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM. michael@0: (psh_glyph_find_blue_points): New function. Needed for fonts like michael@0: p052003l.pfb (URW Palladio L Roman) which have flex curves at the michael@0: base line within blue zones, but the flex curves aren't covered by michael@0: hints. michael@0: (ps_hints_apply): Use psh_glyph_find_blue_points. michael@0: michael@0: 2004-02-27 Garrick Meeker michael@0: michael@0: * builds/unix/configure.ac: Fix compiler flags for michael@0: `--with-old-mac-fonts'. michael@0: * builds/unix/configure: Regenerated. michael@0: michael@0: * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/. michael@0: (FT_New_Face_From_Resource): New function. michael@0: (FT_New_Face): Use FT_New_Face_From_Resource. michael@0: (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource. michael@0: [__MWERKS__]: Don't include FSp_fopen.h. michael@0: michael@0: 2004-02-26 Werner Lemberg michael@0: michael@0: * src/pshinter/pshglob.c (psh_globals_new): Fix value of michael@0: `dim->stdw.count'. michael@0: Don't assign default values to blue scale and blue shift. michael@0: michael@0: 2004-02-25 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-02-25 Garrick Meeker michael@0: Steve Hartwell michael@0: michael@0: Improve MacOS fond support. Provide a new API michael@0: `FT_New_Face_From_FSSpec' similar to `FT_New_Face'. michael@0: michael@0: * src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h. michael@0: STREAM_FILE [__MWERKS__]: New macro. michael@0: (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions. michael@0: (file_spec_from_path) [__MWERKS__]: Updated #if statement. michael@0: (get_file_type, make_lwfn_spec): Use `const' for argument. michael@0: (is_dfont) [TARGET_API_MAC_CARBON]: Removed. michael@0: (count_face_sfnt, count_faces): New functions. michael@0: (parse_fond): Do some range checking. michael@0: (read_lwfn): Change type of second argument. michael@0: No longer call FSpOpenResFile. michael@0: (OpenFileAsResource): New function. michael@0: (FT_New_Face_From_LWFN): Use `const' for second argument. michael@0: Use OpenFileAsResource. michael@0: (FT_New_Face_From_Suitcase): Change type of second argument. michael@0: No longer call FSpOpenResFile. michael@0: Loop over all resource indices. michael@0: (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed. michael@0: (FT_GetFile_From_Mac_Name): Use `const' for first argument. michael@0: (ResourceForkSize): Removed. michael@0: (FT_New_Face): Updated to use new functions. michael@0: (FT_New_Face_From_FSSpec): New function. michael@0: michael@0: * include/freetype/ftmac.h: Updated. michael@0: michael@0: 2004-02-24 Malcolm Taylor michael@0: michael@0: * src/autohint/ahhint.c (ah_hinter_load) : michael@0: Handle case where outline->num_vedges is zero while computing hinted michael@0: metrics. michael@0: michael@0: 2004-02-24 Gordon Childs michael@0: michael@0: * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value michael@0: for `count'. michael@0: michael@0: 2004-02-24 Werner Lemberg michael@0: michael@0: * include/freetype/t1tables.h (PS_PrivateRec): Add michael@0: `expansion_factor'. michael@0: michael@0: * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation michael@0: of blues->no_overshoots -- `blues_scale' is stored with a michael@0: magnification of 1000, and `scale' returns fractional pixels. michael@0: michael@0: * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift', michael@0: `blue_fuzz', `expansion_factor', and `blue_scale' according to the michael@0: Type 1 specification. michael@0: michael@0: * src/type1/t1tokens.h: Handle `ExpansionFactor'. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-02-24 Masatake YAMATO michael@0: michael@0: Provide generic access to MacOS resource forks. michael@0: michael@0: * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New michael@0: files. michael@0: michael@0: * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H. michael@0: (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments michael@0: `resource_listoffset' and `resource_data' and adapt code michael@0: accordingly. These values are calculated outside of the function michael@0: now. michael@0: Add new argument `offsets'. michael@0: (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and michael@0: `FT_Raccess_Get_DataOffsets'. michael@0: (load_face_in_embedded_rfork): New function. michael@0: (load_mac_face): Use load_face_in_embedded_rfork. michael@0: (ft_input_stream_new): Renamed to... michael@0: (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers. michael@0: (ft_input_stream_free): Renamed to... michael@0: (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers. michael@0: michael@0: * src/base/ftbase.c: Include ftrfork.c. michael@0: michael@0: * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated. michael@0: michael@0: * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H): michael@0: New macro. michael@0: michael@0: * include/freetype/internal/fttrace.h: Added `rfork' as a new michael@0: trace definition. michael@0: michael@0: * include/freetype/internal/ftstream.h: Declare FT_Stream_New and michael@0: FT_Stream_Free. michael@0: michael@0: * include/freetype/config/ftoption.h, devel/ftoption.h michael@0: (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option. michael@0: michael@0: * include/freetype/config/ftstdlib.h (ft_strrchr): New macro. michael@0: michael@0: 2004-02-23 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H. michael@0: michael@0: 2004-02-23 Masatake YAMATO michael@0: michael@0: Provide a simple API to control FreeType's tracing levels. michael@0: michael@0: * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count, michael@0: FT_Trace_Get_Name): New declarations. michael@0: michael@0: * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New michael@0: functions. michael@0: michael@0: 2004-02-23 David Turner michael@0: michael@0: * src/autofit/afhints.c, src/autofit/afhints.h, michael@0: src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave michael@0: bugs have been fixed. The auto-fitter works, doesn't crash, but michael@0: still produces unexpected results... michael@0: michael@0: 2004-02-21 Werner Lemberg michael@0: michael@0: * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold michael@0: the accepted shift for strong points in fractional pixels (which michael@0: is a heuristic value). michael@0: (psh_glyph_find_strong_points): Compute threshold for michael@0: psh_hint_table_find_strong_points. michael@0: (psh_hint_table_find_strong_point): Add parameter to pass threshold. michael@0: michael@0: 2004-02-20 Werner Lemberg michael@0: michael@0: * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call michael@0: ps_mask_table_alloc but ps_mask_table_last. michael@0: (ps_hints_t2mask): Use correct position and number for vertical michael@0: and horizontal hinter mask bits. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-02-19 Werner Lemberg michael@0: michael@0: * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling. michael@0: * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning. michael@0: michael@0: 2004-02-18 Werner Lemberg michael@0: michael@0: * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly. michael@0: michael@0: * src/base/ftglyph.c (ft_bitmap_glyph_class, michael@0: ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF. michael@0: michael@0: * src/smooth/ftsmooth.c (ft_smooth_render): Handle michael@0: FT_RENDER_MODE_LIGHT. michael@0: michael@0: 2004-02-17 Werner Lemberg michael@0: michael@0: Fix callback functions in cache module. michael@0: michael@0: * src/cache/ftccback.h: New file for callback declarations. michael@0: michael@0: * src/cache/ftcbasic.c (ftc_basic_family_compare, michael@0: ftc_basic_family_init, ftc_basic_family_get_count, michael@0: ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, michael@0: ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF. michael@0: (ftc_basic_image_family_class, ftc_basic_image_cache_class, michael@0: ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): michael@0: Use FT_CALLBACK_TABLE_DEF and local wrapper functions. michael@0: michael@0: * src/cache/ftccache.c: Include ftccback.h. michael@0: (ftc_cache_init, ftc_cache_done): New wrapper functions which use michael@0: FT_LOCAL_DEF. michael@0: michael@0: * src/cache/ftccmap.c: Include ftccback.h. michael@0: (ftc_cmap_cache_class): Use local wrapper functions. michael@0: michael@0: * src/cache/ftcglyph.c: Include ftccback.h. michael@0: (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper michael@0: functions which use FT_LOCAL_DEF. michael@0: michael@0: * src/cache/ftcimage.c: Include ftccback.h. michael@0: (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper michael@0: functions which use FT_LOCAL_DEF. michael@0: michael@0: * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class): michael@0: Use FT_CALLBACK_TABLE_DEF. michael@0: michael@0: * src/cache;/ftcsbits.c: Include ftccback.h. michael@0: (ftc_snode_free, ftc_snode_new, ftc_snode_weight, michael@0: ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF. michael@0: michael@0: * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h. michael@0: michael@0: 2004-02-17 Masatake YAMATO michael@0: michael@0: * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo michael@0: (FT_EXPORT_DEF -> FT_EXPORT). michael@0: michael@0: * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto. michael@0: michael@0: 2004-02-15 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo. michael@0: michael@0: 2004-02-14 Masatake YAMATO michael@0: michael@0: * builds/unix/ftsystem.c: Include errno.h. michael@0: (ft_close_stream): Renamed to... michael@0: (ft_close_stream_by_munmap): This. michael@0: (ft_close_stream_by_free): New function. michael@0: (FT_Stream_Open): Use fallback method if mmap fails. michael@0: Use proper function for closing the stream. michael@0: michael@0: 2004-02-14 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_dict): Initialize `start_binary'. michael@0: michael@0: 2004-02-13 Robert Etheridge michael@0: michael@0: * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c michael@0: (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation michael@0: of underline_position and underline_thickness. michael@0: michael@0: 2004-02-12 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if michael@0: ppem values don't change. Suggested by Graham Asher. michael@0: michael@0: 2004-02-11 Werner Lemberg michael@0: michael@0: * src/cid/cidload.c (cid_face_open): Always allocate michael@0: face->cid_stream so that we can deallocate it safely. michael@0: michael@0: 2004-02-10 Werner Lemberg michael@0: michael@0: Make the PS parser more tolerant w.r.t. non-standard font data. In michael@0: general, an error is only reported in case of a syntax error; a michael@0: wrong type is now simply ignored (if possible). To be independent michael@0: of the order of various MM-specific keywords, the parse_shared_dict michael@0: routine has been removed -- the PS parser is now capable to skip michael@0: this data. It no longer fails on parsing e.g. michael@0: michael@0: dup /WeightVector exch def michael@0: michael@0: Since the token following /WeightVector isn't `[' (starting an michael@0: array) it is simply ignored. michael@0: michael@0: * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a michael@0: new internal error value. michael@0: michael@0: * src/type1/t1load.c (parse_blend_axis_types, michael@0: parse_blend_design_positions, parse_blend_design_map): Return michael@0: T1_Err_Ignore if no proper array is following the keyword. michael@0: (parse_weight_vector): Use T1_ToTokenArray, initializing `blend' michael@0: structure, if necessary. michael@0: Return T1_Err_Ignore if no proper array is following the keyword. michael@0: (parse_shared_dict): Removed. michael@0: (parse_encoding): Set parser->root.error to return T1_Err_Ignore michael@0: if no result can be obtained. michael@0: Check for errors before accessing `elements' array. michael@0: (t1_keywords): Remove /shareddict. michael@0: (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore. michael@0: Set keyword_flag only in case of success. michael@0: Check error code if skipping an unrecognized token. michael@0: (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend michael@0: if blend commands haven't set up a proper MM font. michael@0: michael@0: * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special michael@0: code for synthetic fonts. michael@0: Return PSaux_Err_Ignore if no proper value has been found. michael@0: michael@0: 2004-02-09 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings) michael@0: : Preserve glyph width before calling michael@0: cff_operator_seac. michael@0: michael@0: 2004-02-09 Martin Muskens michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special michael@0: first argument for `hintmask' and `cntrmask' operators also. michael@0: michael@0: 2004-02-08 Werner Lemberg michael@0: michael@0: * builds/unix/configure.in: Call AC_SUBST for `enable_shared', michael@0: `hardcode_libdir_flag_spec', and `wl'. michael@0: * builds/unix/configure: Regenerated. michael@0: michael@0: * builds/unix/freetype-config.in: Make --prefix and --exec-prefix michael@0: actually work. michael@0: Report a proper --rpath (or -R) value for --libs argument if a michael@0: shared library has been built. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-02-07 Keith Packard michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix michael@0: computation of various vertical and horizontal metric values. michael@0: michael@0: * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font): michael@0: Ditto. michael@0: michael@0: 2004-02-07 Werner Lemberg michael@0: michael@0: * builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated. michael@0: michael@0: 2004-02-07 Vitaliy Pasternak michael@0: michael@0: * builds/win32/visualc/freetype.sln, michael@0: builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003. michael@0: michael@0: 2004-02-03 Werner Lemberg michael@0: michael@0: * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): michael@0: Initialize `node'. michael@0: * src/type1/t1load.c (parse_dict): Initialize `have_integer'. michael@0: michael@0: 2004-02-02 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands michael@0: outside of /Subrs or /CharStrings. This can happen if there is michael@0: additional code manipulating those two arrays so that FreeType michael@0: doesn't recognize them properly. michael@0: (T1_Open_Face): Improve an error message. michael@0: michael@0: 2004-02-01 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_charstrings): Exit immediately if michael@0: there are no elements in /CharStrings. This is needed for fonts michael@0: like Optima-Oblique which not only define /CharStrings but access it michael@0: also. michael@0: michael@0: 2004-02-01 David Turner michael@0: michael@0: * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources. michael@0: michael@0: * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) michael@0: : Provide macro version which doesn't use inline code. michael@0: * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP) michael@0: : Ditto. michael@0: Use FTC_MRULIST_LOOKUP_CMP. michael@0: * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New michael@0: macro. michael@0: (FTC_MRULIST_LOOKUP): Use it. michael@0: michael@0: * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated. michael@0: * src/cache/ftcbasic.c: Fix compiler warnings. michael@0: * src/cache/ftcmanag.c (FTC_Manager_LookupSize, michael@0: FTC_Manager_LookupFace) : Use FTC_MRULIST_LOOKUP_CMP. michael@0: * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after michael@0: heavy testing). michael@0: michael@0: * Jamfile: Updating `refdoc' target, and adding `autohint' to the michael@0: list of modules to build. Both the autohinter and autofitter will michael@0: be built by default. But which one will be used is determined by michael@0: the content of `ftmodule.h'. michael@0: michael@0: * src/autofit/*: Many updates, but the code is still buggy... michael@0: michael@0: 2004-01-31 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of michael@0: accent offset. michael@0: Update code similarly to the seac support for Type 1 fonts. michael@0: (cff_decoder_parse_charstrings) : Fix magnitude michael@0: of accent offset. michael@0: Don't hint glyphs twice if seac is emulated. michael@0: : Assign correct point tags. michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-01-30 Werner Lemberg michael@0: michael@0: * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not michael@0: FT_MEM_COPY, for copying the private dict. michael@0: michael@0: * src/type1/t1load.c (parse_subrs): Assign number of subrs only michael@0: in first run. michael@0: (parse_charstrings): Parse /CharStrings in second run without michael@0: assigning values. michael@0: (parse_dict): Skip all /CharStrings arrays but the first. We need michael@0: this for non-standard fonts like `Optima' which have different michael@0: outlines depending on the resolution. Note that there is no michael@0: guarantee that we get fitting /Subrs and /CharStrings arrays; this michael@0: can only be done by a real PS interpreter. michael@0: michael@0: 2004-01-29 Antoine Leca michael@0: michael@0: * builds/win32/visualc/index.html: New file, giving detailed michael@0: explanations about forcing CR+LF line endings for the VC++ project michael@0: files. michael@0: michael@0: 2004-01-22 Garrick Meeker michael@0: michael@0: * src/cff/cffload.c (cff_subfont_load): Initialize `dict'. michael@0: michael@0: 2004-01-22 Werner Lemberg michael@0: michael@0: Add support for the hexadecimal representation of binary data michael@0: started with `StartData' in CID-keyed Type 1 fonts. michael@0: michael@0: * include/freetype/internal/t1types.h (CID_FaceRec): Add new michael@0: members `binary_data' and `cid_stream'. michael@0: michael@0: * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'. michael@0: (cid_hex_to_binary): New auxiliary function. michael@0: (cid_face_open): Add new argument `face_index' to return quickly michael@0: if less than zero. Updated all callers. michael@0: Call `cid_hex_to_binary', then open and assign memory stream to michael@0: `face->cid_stream' if `parser->binary_length' is non-zero. michael@0: * src/cid/cidload.h: Updated. michael@0: michael@0: * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and michael@0: `cid_stream'. michael@0: michael@0: * src/cid/cidparse.c (cid_parser_new): Check arguments to michael@0: `StartData' and set parser->binary_length accordingly. michael@0: * src/cid/cidparse.h (CID_Parser): New member `binary_length'. michael@0: michael@0: * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-01-21 Werner Lemberg michael@0: michael@0: include/freetype/config/ftstdlib.h (ft_atoi): Replaced with... michael@0: (ft_atol): This. michael@0: * src/base/ftdbgmem.c: s/atol/ft_atol/. michael@0: * src/type42/t42drivr.c: s/ft_atoi/ft_atol/. michael@0: michael@0: 2004-01-20 Masatake YAMATO michael@0: michael@0: * include/freetype/ftcache.h: Delete duplicated definition of michael@0: FTC_FaceID. michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap michael@0: Info service function if the cmap comes from sfnt. Return 0 if the michael@0: cmap is sythesized in cff module. michael@0: michael@0: 2004-01-20 David Turner michael@0: michael@0: * src/cache/ftcmanag.c (ftc_size_node_compare): Call michael@0: FT_Activate_Size. michael@0: michael@0: 2004-01-20 Werner Lemberg michael@0: michael@0: * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one michael@0: CR, LF, or CR/LF after `eexec'. michael@0: michael@0: 2004-01-18 David Turner michael@0: michael@0: * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler michael@0: warning. michael@0: michael@0: * src/tools/docmaker/*: Updating beautifier tool. michael@0: michael@0: 2004-01-15 David Turner michael@0: michael@0: * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix michael@0: infinite loop bug. michael@0: michael@0: * include/freetype/ftstroke.h: Include FT_GLYPH_H. michael@0: (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New michael@0: declarations. michael@0: michael@0: * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H. michael@0: (FT_Outline_GetOutsideBorder): Inverse result. michael@0: (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New michael@0: functions. michael@0: (FT_Stroker_EndSubPath): Close path if needed. michael@0: (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind. michael@0: michael@0: * include/freetype/cache/ftcmanag.h (FTC_ScalerRec, michael@0: FTC_Manager_LookupSize): Moved to... michael@0: * include/freetype/ftcache.h (FTC_ScalerRec, michael@0: FTC_Manager_LookupSize): Here. michael@0: michael@0: * src/tools/docmaker/docbeauty.py: New file to beautify the michael@0: documentation comments (e.g., to convert them to single block border michael@0: mode). michael@0: * src/tools/docmaker/docmaker.py (file_exists, make_file_list): michael@0: Moved to... michael@0: * src/tools/docmaker/utils.py (file_exists, make_file_list): Here. michael@0: michael@0: 2004-01-14 David Turner michael@0: michael@0: * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY, michael@0: FT_ARRAY_MOVE): New macros to make copying arrays easier. michael@0: Updated all relevant code to use them. michael@0: michael@0: 2004-01-14 Werner Lemberg michael@0: michael@0: * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier. michael@0: Use number of charstrings as argument to CFF_Load_FD_Select (as michael@0: documented in the CFF specs). michael@0: michael@0: 2004-01-13 Graham Asher michael@0: michael@0: * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of michael@0: `glyph->memory' up to free arrays properly in case of failure. michael@0: michael@0: 2004-01-10 Masatake YAMATO michael@0: michael@0: Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by michael@0: Steve Hartwell . michael@0: michael@0: * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H. michael@0: (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP. michael@0: (cff_get_cmap_info): New function. michael@0: (cff_service_get_cmap_info) New entry for cff_services. michael@0: michael@0: * src/sfnt/ttcmap0.c: Exit loop after a format match has been found. michael@0: Suggested by Steve Hartwell . michael@0: michael@0: 2004-01-03 Masatake YAMATO michael@0: michael@0: * src/base/ftobjs.c (destroy_charmaps): New function. michael@0: (destroy_face, open_face): Use `destroy_charmaps'. michael@0: michael@0: 2004-01-01 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2004-01-01 Michael Jansson michael@0: michael@0: * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of michael@0: size->metrics.descender. michael@0: michael@0: 2003-12-31 Wolfgang Domröse michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings) michael@0: [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4. michael@0: : Change type of dx and dy to FT_Pos and remove michael@0: cast for accessing arguments. michael@0: michael@0: 2003-12-31 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous michael@0: change. It's not necessary. michael@0: michael@0: 2003-12-29 Smith Charles michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated michael@0: flags set' correctly. michael@0: michael@0: 2003-12-29 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating michael@0: `full' and `weight' properly. michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings) michael@0: [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for michael@0: tracing output. michael@0: michael@0: 2003-12-26 Werner Lemberg michael@0: michael@0: * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func): michael@0: Use FT_UInt for ppem values. michael@0: * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for michael@0: ppem values. michael@0: * src/sfnt/ttsbit.h: Updated. michael@0: michael@0: * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values michael@0: larger than -0FFFF. michael@0: michael@0: 2003-12-25 Werner Lemberg michael@0: michael@0: * src/base/fttrigon.c, src/base/ftgloadr.c: Inlude michael@0: FT_INTERNAL_OBJECTS_H. michael@0: michael@0: * src/base/ftstroke.c (FT_Outline_GetInsideBorder, michael@0: FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with michael@0: C++ compilers. michael@0: michael@0: * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h: michael@0: s/select/selection/ to avoid compiler warning. michael@0: * src/cff/cffload.h: s/select/ftselect/ to avoid potential michael@0: compiler warning. michael@0: michael@0: 2003-12-24 Werner Lemberg michael@0: michael@0: * src/cache/ftcsbits.c (FTC_SNode_Weight): michael@0: s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/. michael@0: michael@0: 2003-12-24 David Turner michael@0: michael@0: * Fixed compilation problems in the cache sub-system. michael@0: michael@0: * Partial updates to src/autofit. michael@0: michael@0: * Jamfile (FT2_COMPONENTS): Add autofit module. michael@0: michael@0: 2003-12-23 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle michael@0: CID-keyed fonts. michael@0: michael@0: 2003-12-23 David Turner michael@0: michael@0: * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND, michael@0: FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros. They michael@0: are used to avoid compiler warnings with very pedantic compilers. michael@0: Note that `(x) & -64' causes a warning if (x) is not signed. Use michael@0: `(x) & ~63' instead! michael@0: Updated all related code. michael@0: michael@0: Add support for extraction of `inside' and `outside' borders. michael@0: michael@0: * src/base/ftstroke.c (FT_StrokerBorder): New enumeration. michael@0: (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder, michael@0: FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions. michael@0: (FT_StrokeBorderRec): New boolean member `valid'. michael@0: (ft_stroke_border_get_counts): Updated. michael@0: * include/freetype/ftstroke.h: Updated. michael@0: michael@0: 2003-12-22 Werner Lemberg michael@0: michael@0: * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions michael@0: to describe the `charset' field in FT_WinFNT_HeaderRec. michael@0: * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to michael@0: FT_ENCODING_NONE except for FT_WinFNT_ID_MAC. michael@0: michael@0: * include/freetype/freetype.h (FT_Encoding): Improve comment, michael@0: based on work by Detlef Würkner . michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-12-22 David Turner michael@0: michael@0: * include/freetype/ftcache.h, michael@0: include/freetype/cache/ftcmanag.h, michael@0: include/freetype/cache/ftccache.h, michael@0: include/freetype/cache/ftcmanag.h, michael@0: include/freetype/cache/ftcmru.h (added), michael@0: include/freetype/cache/ftlru.h (removed), michael@0: include/freetype/cache/ftcsbits.h, michael@0: include/freetype/cache/ftcimage.h, michael@0: include/freetype/cache/ftcglyph.h, michael@0: src/cache/ftcmru.c, michael@0: src/cache/ftcmanag.c, michael@0: src/cache/ftccache.c, michael@0: src/cache/ftcglyph.c, michael@0: src/cache/ftcimage.c, michael@0: src/cache/ftcsbits.c, michael@0: src/cache/ftccmap.c, michael@0: src/cache/ftcbasic.c (added), michael@0: src/cache/ftclru.c (removed): michael@0: michael@0: *Complete* rewrite of the cache sub-system to `solve' the michael@0: following points: michael@0: michael@0: - all public APIs have been moved to FT_CACHE_H, everything michael@0: under `include/freetype/cache' is only needed by client michael@0: applications that want to implement their own caches michael@0: michael@0: - a new function named FTC_Manager_RemoveFaceID to deal michael@0: with the uninstallation of FaceIDs michael@0: michael@0: - the image and sbit cache are now abstract classes, that michael@0: can be extended much more easily by client applications michael@0: michael@0: - better performance in certain areas. Further optimizations michael@0: to come shortly anyway... michael@0: michael@0: - the FTC_CMapCache_Lookup function has changed its signature, michael@0: charmaps can now only be retrieved by index michael@0: michael@0: - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace michael@0: FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in michael@0: private header for the moment) michael@0: michael@0: 2003-12-21 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword michael@0: is encountered. michael@0: michael@0: 2003-12-19 Werner Lemberg michael@0: michael@0: * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For michael@0: example, the Japanese Hiragino font already contains 15 subfonts. michael@0: michael@0: * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for michael@0: CID-keyed fonts. michael@0: michael@0: * devel/ftoption.h: Define FT_DEBUG_MEMORY. michael@0: michael@0: 2003-12-18 Werner Lemberg michael@0: michael@0: * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro. michael@0: * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values. michael@0: michael@0: 2003-12-18 Werner Lemberg michael@0: michael@0: * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of michael@0: `cid_count' to `FT_ULong'. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids' michael@0: array. michael@0: michael@0: * src/cff/cffload.c (cff_charset_done): Free `cids' array. michael@0: (cff_font_load): Create cids array only for CID-keyed fonts which michael@0: are subsetted. michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Check the availability of michael@0: the PSNames modules for non-pure CFFs also. michael@0: Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't michael@0: CID-keyed. michael@0: michael@0: * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h. michael@0: michael@0: 2003-12-17 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_init_face): Don't set michael@0: FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post' michael@0: table. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-12-17 Masatake YAMATO michael@0: michael@0: Add new function FT_Get_CMap_Language_ID to extract the language ID michael@0: for TrueType/sfnt fonts. michael@0: michael@0: * include/freetype/internal/services/svttcmap.h: New file. michael@0: * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add michael@0: svttcmap.h. michael@0: michael@0: * src/sfnt/sfdriver.c: Include ttcmap0.h. michael@0: (tt_service_get_cmap_info): New service. michael@0: (sfnt_services): Updated. michael@0: michael@0: * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions. michael@0: (tt_cmap*_class_rec): Add tt_cmap*_get_info members. michael@0: (tt_get_cmap_info): New function. michael@0: * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H. michael@0: (TT_CMap_ClassRec): New field `get_cmap_info'. michael@0: (tt_get_cmap_info): New declaration. michael@0: michael@0: * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H. michael@0: (FT_Get_CMap_Language_ID): New function implementation. michael@0: * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New michael@0: function declaration. michael@0: michael@0: 2003-12-16 Werner Lemberg michael@0: michael@0: * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete. michael@0: michael@0: * include/freetype/internal/sfnt.h (SFNT_Interface): Remove michael@0: obsolete fields `load_charmap' and `free_charmap'. michael@0: (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed. michael@0: * src/sfnt/sfnt.c: Don't include ttcmap.c. michael@0: * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c. michael@0: * src/sfnt/ttload.c: Don't include ttcmap.h. michael@0: * src/sfnt/sfdriver.c: Don't include ttcmap.h. michael@0: (sfnt_interface): Updated. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_TableDirRec, michael@0: TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec, michael@0: TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6, michael@0: TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func, michael@0: TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed. michael@0: Obsolete. michael@0: * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete. michael@0: michael@0: 2003-12-15 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-12-15 Wolfgang Domröse michael@0: michael@0: * builds/atari/*: New directory for building FreeType 2 on Atari michael@0: with the PureC compiler. michael@0: michael@0: 2003-12-12 Wolfgang Domröse michael@0: michael@0: * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add michael@0: cast. michael@0: * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return michael@0: value is either 0 or 1. michael@0: michael@0: 2003-12-12 Werner Lemberg michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message. michael@0: (cff_get_name_index): Return if no PSNames service is available. michael@0: (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly. michael@0: * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for michael@0: CID-keyed fonts. This is the inverse mapping of `sids'. michael@0: * src/cff/cffload.c (cff_charset_load): New argument `invert'. michael@0: Initialize charset->cids if `invert' is set. michael@0: (cff_font_load): In call to cff_charset_load, set `invert' to true michael@0: for CID-keyed fonts. michael@0: * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID michael@0: and map it to the real glyph index. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-12-11 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Don't set michael@0: FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts. michael@0: Don't construct a cmap for CID-keyed fonts. michael@0: michael@0: 2003-12-10 Werner Lemberg michael@0: michael@0: Use implementation specific SID value 0xFFFF to indicate that michael@0: a dictionary element is missing. michael@0: michael@0: * src/cff/cffload.c (cff_subfont_load): Initialize all fields michael@0: which hold SIDs to 0xFFFF. michael@0: (cff_index_get_sid_string): Handle SID value 0xFFFF. michael@0: Handle case where `psnames' is zero. michael@0: (cff_font_load): Updated. michael@0: Don't load encoding for CID-keyed CFFs. michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Updated. michael@0: Don't check for PSNames module if font is CID-keyed. michael@0: Compute style name properly (using the same algorithm as in the michael@0: CID driver). michael@0: Fix computation of style flags. michael@0: michael@0: * src/cff/cfftoken.h: Comment out handling of base_font_name. michael@0: Rename `postscript' field to `embedded_postscript' michael@0: * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name' michael@0: and `postscript'. michael@0: michael@0: 2003-12-10 Detlef Würkner michael@0: michael@0: * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone michael@0: of the similar BDF function). michael@0: (pcf_service_bdf): Use it. michael@0: michael@0: 2003-12-09 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES michael@0: only if a `post' table is present. michael@0: michael@0: 2003-12-09 George Williams michael@0: michael@0: * src/base/ftobjs.c (load_mac_face): Recent versions of Linux michael@0: support Mac's HFS+ file system, thus enable code to read /rsrc on michael@0: non-Macintosh platforms also. michael@0: michael@0: 2003-12-08 Werner Lemberg michael@0: michael@0: * include/freetype/internal/psaux.h (PS_TableRec): Change type michael@0: of `lengths' to FT_PtrDist. michael@0: (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist. michael@0: * include/freetype/internal/t1types.h (T1_FontRec): Change type michael@0: of `subrs_len' and `charstrings_len' to FT_PtrDist. michael@0: michael@0: * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk' michael@0: variable with better solution. michael@0: (IsMacResource): Remove unused variable `map_len'. michael@0: Replace `junk' variable with better solution. michael@0: (FT_Open_Face) [!FT_MACINTOSH]: Add conditional michael@0: FT_CONFIG_OPTION_MAC_FONTS. michael@0: michael@0: 2003-12-08 Wolfgang Domröse michael@0: michael@0: * src/autohint/ahhint.c (ah_hinter_hint_edges, michael@0: ah_hinter_align_strong_points): Add some casts. michael@0: michael@0: * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type michael@0: of `pos' to FT_Long. michael@0: michael@0: * src/base/ftobjs.c (Mac_Read_POST_Resource, michael@0: Mac_Read_sfnt_Resource): Change type of `len' to FT_Long. michael@0: michael@0: * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'. michael@0: michael@0: 2003-12-07 Werner Lemberg michael@0: michael@0: * docs/raster.txt: New file, taken from FreeType 1 and completely michael@0: revised. michael@0: michael@0: 2003-12-04 Masatake YAMATO michael@0: michael@0: * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for michael@0: t1_interface. t1_interface is used. michael@0: michael@0: 2003-11-27 David Turner michael@0: michael@0: * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of michael@0: 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are michael@0: the scaling values for outline units, not for metric units. michael@0: michael@0: 2003-11-25 Werner Lemberg michael@0: michael@0: * src/base/ftcalc.c, include/freetype/internal/ftcalc.h michael@0: (FT_MulDiv_No_Round): Surround code with `#ifdef michael@0: TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'. michael@0: michael@0: 2003-11-23 Werner Lemberg michael@0: michael@0: * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and michael@0: 64 bit version). michael@0: * include/freetype/internal/ftcalc.h: Updated. michael@0: michael@0: * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro. michael@0: (TT_INT64): Removed. michael@0: (DO_DIV): Use TT_MULDIV_NO_ROUND. michael@0: michael@0: * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use michael@0: metrics->x_scale and metrics->y_scale. michael@0: michael@0: 2003-11-22 Rogier van Dalen michael@0: michael@0: * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro. michael@0: (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New michael@0: functions. Similar to Direct_Move, Direct_Move_X, and michael@0: Direct_Move_Y but without touching. michael@0: (Compute_Funcs): Use new functions. michael@0: michael@0: (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, michael@0: Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, michael@0: Round_Super_45): Fix rounding of value zero. michael@0: michael@0: (DO_DIV): Don't use TT_MULDIV. michael@0: michael@0: (Ins_SHC): This instruction actually touches the points. michael@0: (Ins_MSIRP): Fix undocumented behaviour. michael@0: michael@0: * src/truetype/ttinterp.h (TT_ExecContextRec): Updated. michael@0: michael@0: 2003-11-22 Werner Lemberg michael@0: michael@0: * docs/VERSION.DLL, docs/CHANGES: Updated. michael@0: michael@0: * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and michael@0: metrics->y_scale really precise. michael@0: michael@0: (FT_Load_Glyph): Update computation of linearHoriAdvance and michael@0: linearVertAdvance. michael@0: michael@0: * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC. michael@0: michael@0: 2003-11-22 David Turner michael@0: michael@0: * src/autofit/*: More updates. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. michael@0: * builds/unix/configure.ac (version_info): Set to 9:6:3. michael@0: * README: Updated. michael@0: michael@0: 2003-11-13 John A. Boyd Jr. michael@0: michael@0: * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c michael@0: (pcf_interpret_style): Replace spaces with dashes in properties michael@0: SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing. michael@0: michael@0: 2003-11-11 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-11-11 John A. Boyd Jr. michael@0: michael@0: Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF michael@0: fonts. michael@0: michael@0: * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function. michael@0: (BDF_Face_Init): Don't handle style properties but call michael@0: bdf_interpret_style. michael@0: michael@0: * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function. michael@0: (pcf_load_font): Don't handle style properties but call michael@0: pcf_interpret_style. michael@0: michael@0: 2003-11-07 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.1.7 released. michael@0: ========================= michael@0: michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. michael@0: michael@0: * builds/unix/ft2unix.h: Fix comments. michael@0: michael@0: * builds/unix/ftconfig.in: Synchronized with ANSI version. michael@0: Use `#undef' in templates as recommended in the autoconf michael@0: documentation. michael@0: Since real `#undef' lines don't survive during configuration, use michael@0: `/undef' instead; the postprocessing facility of the michael@0: AC_CONFIG_HEADERS autoconf macro converts them to `#undef'. michael@0: michael@0: * builds/unix/install.mk (install): Install Unix version of michael@0: `ftconfig.h'. michael@0: michael@0: * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro michael@0: to include the correct `ftconfig.h' file. michael@0: michael@0: * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed. michael@0: (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59. michael@0: michael@0: * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59. michael@0: michael@0: * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of michael@0: AC_CONFIG_HEADER to create ftconfig.h, and use second argument michael@0: to replace `/undef' with `#undef'. michael@0: Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap. michael@0: Use AS_HELP_STRING in AC_ARG_WITH. michael@0: Update syntax to autoconf 2.59. michael@0: michael@0: * builds/unix/ltmain.sh: Regenerated with `libtoolize --force michael@0: --copy' from libtool 1.5. michael@0: * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from michael@0: automake 1.7.8. michael@0: * builds/unix/configure: Regenerated with autoconf 2.59. michael@0: * builds/unix/config.guess, builds/unix/config.sub: Updated from michael@0: `config' CVS module at subversions.gnu.org michael@0: * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from michael@0: `texinfo' CVS module at subversions.gnu.org. michael@0: michael@0: * builds/vms/ftconfig.h: Synchronized with ANSI version. michael@0: michael@0: * docs/CUSTOMIZE: Fix documentation error. michael@0: * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated. michael@0: michael@0: * builds/freetype.mk (refdoc): Updated --title. michael@0: michael@0: 2003-11-07 David Turner michael@0: michael@0: michael@0: * Version 2.1.6 released. michael@0: ========================= michael@0: michael@0: michael@0: * install: Removed. Obsolete. michael@0: michael@0: 2003-11-04 Werner Lemberg michael@0: michael@0: * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H. michael@0: (sfnt_service_sfnt_table): New service. michael@0: (sfnt_services): Updated. michael@0: michael@0: * docs/license.txt: Reworded. michael@0: michael@0: 2003-11-03 Werner Lemberg michael@0: michael@0: * include/freetype/*: Add a guard to all public header files which michael@0: load FT_FREETYPE_H to reject freetype.h from FreeType 1. michael@0: michael@0: 2003-11-02 Patrick Welche michael@0: michael@0: * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect michael@0: first argument of AC_DEFUN with brackets to avoid possible michael@0: expansion. michael@0: michael@0: 2003-11-02 Werner Lemberg michael@0: michael@0: * include/freetype/cache/ftcglyph.h: Don't include stddef.h. michael@0: michael@0: * include/freetype/freetype.h: Fix check for ft2build.h. michael@0: michael@0: 2003-11-01 Werner Lemberg michael@0: michael@0: * include/freetype/freetype.h: Check that ft2build.h has been michael@0: loaded first. michael@0: michael@0: * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied michael@0: patch. michael@0: michael@0: 2003-10-31 Detlef Würkner michael@0: michael@0: * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): michael@0: Fix parameter order in calls to FT_FACE_FIND_SERVICE. michael@0: michael@0: 2003-10-31 Werner Lemberg michael@0: michael@0: * include/freetype/internal/ftserv.h michael@0: (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused. michael@0: michael@0: * src/type42/t42drivr.c (t42_services): Updated. michael@0: michael@0: 2003-10-29 David Turner michael@0: michael@0: * include/freetype/internal/bdftypes.h: Removed. Obsolete. michael@0: * src/base/ftbdf.c: Updated. michael@0: michael@0: * include/freetype/internal/cfftypes.h: Moved to... michael@0: * src/cff/cfftypes.h: This place since no other module needs to michael@0: know about those types. michael@0: michael@0: * include/freetype/internal/t42types.h: Moved to... michael@0: * src/type42/t42types.h: This place since no other module needs to michael@0: know about those types. michael@0: michael@0: * include/freetype/internal/services/svbdf.h: Include FT_BDF_H. michael@0: michael@0: * include/freetype/internal/services/svpsname.h: Renamed to... michael@0: * include/freetype/internal/services/svpscmap.h: This. michael@0: Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and michael@0: `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere. michael@0: michael@0: * include/freetype/internal/services/svpsinfo.h: New file, providing michael@0: PostScript info service. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H, michael@0: FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and michael@0: svpsinfo.h. michael@0: * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H, michael@0: FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed. michael@0: michael@0: * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and michael@0: FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and michael@0: FT_SERVICE_POSTSCRIPT_INFO_H. michael@0: (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new michael@0: POSTSCRIPT_INFO service. michael@0: michael@0: * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. michael@0: (cff_ps_has_glyph_names): New function. michael@0: (cff_service_ps_info): New service. michael@0: (cff_services): Updated. michael@0: michael@0: * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't michael@0: include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly. michael@0: michael@0: * src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. michael@0: (cid_ps_get_font_info): New function. michael@0: (cid_service_ps_info): New service. michael@0: (cid_services): Updated. michael@0: michael@0: * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. michael@0: (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions. michael@0: (t1_service_ps_info): New service. michael@0: (t1_services): Updated. michael@0: michael@0: * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. michael@0: (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions. michael@0: (t42_service_ps_info): New service. michael@0: michael@0: * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H michael@0: but t42types.h directly. michael@0: michael@0: * src/psnames/psmodule.c (psnames_interface, psnames_services): michael@0: Renamed to... michael@0: (pscmaps_interface, pscmaps_services): This. michael@0: Updated all users. michael@0: michael@0: michael@0: * src/gzip/infblock.c (inflate_blocks): Remove compiler warning. michael@0: michael@0: 2003-10-22 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'. michael@0: michael@0: * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec' michael@0: is real. michael@0: michael@0: * src/type42/t42parse.c (t42_parse_encoding): Improve boundary michael@0: checking while parsing. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-10-21 Josselin Mouette michael@0: michael@0: * include/freetype/internal/t1types.h (T1_FontRec): `paint_type' michael@0: and `stroke_width' aren't pointers. michael@0: michael@0: * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c michael@0: (T1_Face_Done): Don't free `paint_type' and `stroke_width'. michael@0: michael@0: 2003-10-20 Graham Asher michael@0: michael@0: * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'. michael@0: michael@0: 2003-10-19 Werner Lemberg michael@0: michael@0: * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from michael@0: 2003-08-18 introduced a severe bug (FT_Render_Glyph was called michael@0: twice under some circumstances, causing strange results). This michael@0: is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'. michael@0: michael@0: * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'. michael@0: * src/psaux/psobjs.c (ps_tobytes): Initialize `n'. michael@0: * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'. michael@0: michael@0: 2003-10-16 Werner Lemberg michael@0: michael@0: Completely revised Type 42 parser. It now handles both fonts michael@0: produced with ttftot42 (tested version 0.3.1) and michael@0: TrueTypeToType42.ps (tested version May 2001; it is necessary to michael@0: fix the broken header comment to be `%!PS-TrueTypeFont...'). michael@0: michael@0: * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth michael@0: parameter to `FT_UInt'. michael@0: * src/type42/t42objs.h: Updated. michael@0: michael@0: * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory' michael@0: to FT_Bool. michael@0: (T42_Loader): Change type of `num_chars' and `num_glyphs' to michael@0: FT_UInt. michael@0: Add `swap_table' element. michael@0: * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed, michael@0: T1_ToCoordArray, T1_ToTokenArray): Removed. michael@0: (T1_ToBytes): New macro. michael@0: (t42_is_alpha, t42_hexval): Removed. michael@0: (t42_is_space): Handle `\0'. michael@0: (t42_parse_encoding): Updated to use new PostScript parser routines michael@0: from psaux. michael@0: Handle `/Encoding [ ... ]' also. michael@0: (T42_Load_Status): New enumeration. michael@0: (t42_parse_sfnts): Updated to use new PostScript parser routines michael@0: from psaux. michael@0: (t42_parse_charstrings): Updated to use new PostScript parser michael@0: routines from psaux. michael@0: Handle `/CharStrings << ... >>' also. michael@0: Don't expect that /.notdef is the first element in dictionary. Copy michael@0: code from type1 module to handle this. michael@0: (t42_parse_dict): Updated to use new PostScript parser routines michael@0: from psaux. michael@0: Remove code for synthetic fonts (which can't occur in Type 42 michael@0: fonts). michael@0: (t42_loader_done): Release `swap_table'. michael@0: michael@0: * src/psaux/psobjs.c (skip_string): Increase `cur' properly. michael@0: michael@0: * src/type1/t1load.c (parse_charstrings): Make test for `.notdef' michael@0: faster. michael@0: michael@0: 2003-10-15 Graham Asher michael@0: michael@0: * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c michael@0: (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty, michael@0: _num_bdf_properties), src/gzip/infutil.c (inflate_mask), michael@0: src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td), michael@0: src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c michael@0: (inflate_trees_fixed): Decorate with more `const' to avoid michael@0: writable global variables which are disallowed on ARM. michael@0: michael@0: 2003-10-08 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove michael@0: code specially for synthetic fonts; this is handled elsewhere. michael@0: (parse_encoding): Remove code specially for synthetic fonts; this is michael@0: handled elsewhere. michael@0: Improve boundary checking while parsing. michael@0: (parse_dict): Improve boundary checking while parsing. michael@0: Use ft_memcmp to simplify code. michael@0: michael@0: 2003-10-07 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic michael@0: fonts properly. michael@0: (parse_charstrings): Copy correct number of characters into michael@0: `name_table'. michael@0: michael@0: 2003-10-06 Werner Lemberg michael@0: michael@0: Heavy modification of the PS parser to handle comments and strings michael@0: correctly. This doesn't slow down the loading of PS fonts michael@0: significantly since charstrings aren't affected. michael@0: michael@0: * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to... michael@0: (ft_isxdigit): This. Updated all callers. michael@0: (ft_isdigit): New alias to `isdigit'. michael@0: michael@0: * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed michael@0: `skip_alpha' to `skip_PS_token'. michael@0: Add parameter to `to_bytes' and change some argument types. michael@0: michael@0: * src/psaux/psauxmod.c (ps_parser_funcs): Updated. michael@0: * src/psaux/psobjs.c (ft_char_table): New array to map character michael@0: codes (ASCII and EBCDIC) of digits to numbers. michael@0: (OP): New auxiliary macro holding either `>=' or `<' depending on michael@0: the character encoding. michael@0: (skip_comment): New function. michael@0: (skip_spaces): Use it. michael@0: (skip_alpha): Removed. michael@0: (skip_literal_string, skip_string): New functions. michael@0: (ps_parser_skip_PS_token): New function. This is a better michael@0: replacement of... michael@0: (ps_parser_skip_alpha): Removed. michael@0: (ps_parser_to_token, ps_parser_to_token_array): Updated. michael@0: (T1Radix): Rewritten, using `ft_char_table'. michael@0: (t1_toint): Renamed to... michael@0: (ps_toint): This. Update all callers. michael@0: Use `ft_char_table'. michael@0: (ps_tobytes): Add parameter to handle delimiters and change some michael@0: argument types. michael@0: Use `ft_char_table'. michael@0: (t1_tofixed): Renamed to... michael@0: (ps_tofixed): This. Update all callers. michael@0: Use `ft_char_table'. michael@0: (t1_tocoordarray): Renamed and updated to... michael@0: (ps_tocoordarray): This. Update all callers. michael@0: (t1_tofixedarray): Renamed and updated to... michael@0: (ps_tofixedarray): This. Update all callers. michael@0: (t1_tobool): Renamed to... michael@0: (ps_tobool): This. Update all callers. michael@0: (ps_parser_load_field): Updated. michael@0: (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS' michael@0: everywhere. michael@0: (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array, michael@0: ps_parser_to_fixed_array): Skip spaces. Updated. michael@0: (ps_parser_to_bytes): Add parameter to handle delimiters and change michael@0: some argument types. Updated. michael@0: * src/psaux/psobjs.h: Updated. michael@0: michael@0: * src/cid/cidload.c (cid_parse_dict): Updated. michael@0: * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData' michael@0: token was really found. michael@0: * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed michael@0: to... michael@0: (cid_parser_skip_PS_token): This. michael@0: michael@0: * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean michael@0: fields. michael@0: (T1_Skip_Alpha): Replaced with... michael@0: (T1_Skip_PS_Token): This new macro. michael@0: * src/type1/t1parse.c (hexa_value): Removed. michael@0: (T1_Get_Private_Dict): Use `ft_isxdigit' and michael@0: `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal michael@0: encoding. michael@0: After decrypting, replace the four random bytes at the beginning michael@0: with whitespace. michael@0: * src/type1/t1load.c (t1_allocate_blend): Use proper error values. michael@0: (parser_blend_design_positions, parse_blend_design_map, michael@0: parse_weight_vector): Updated. michael@0: (is_space): Handle `\f' also. michael@0: (is_name_char): Removed. michael@0: (read_binary_data): Updated. michael@0: (parse_encoding): Use `ft_isdigit'. michael@0: Updated. michael@0: (parse_subrs): Updated. michael@0: (TABLE_EXTEND): New macro. michael@0: (parse_charstrings): Updated. michael@0: Provide a workaround for buggy fonts which have more entries in the michael@0: /CharStrings dictionary then expected; the function now adds some michael@0: slots and skips entries which still exceed the new limit. michael@0: (parse_dict): Updated. michael@0: Terminate on the token `closefile'. michael@0: michael@0: * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with... michael@0: (T1_Skip_PS_Token): This new macro. Updated all callers. michael@0: (t42_parse_encoding): Use `ft_isdigit'. michael@0: michael@0: michael@0: * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if michael@0: success. michael@0: michael@0: 2003-10-05 Werner Lemberg michael@0: michael@0: * include/freetype/ftmodule.h: Renamed to... michael@0: * include/freetype/ftmodapi.h: This to avoid duplicate file names. michael@0: * include/freetype/config/ftheader.h (FT_MODULE_H): Updated. michael@0: michael@0: 2003-10-04 Werner Lemberg michael@0: michael@0: * src/base/ftoutln.c (FT_OrientationExtremumRec, michael@0: FT_Outline_Get_Orientation): Trivial typo fixes to make it compile. michael@0: michael@0: 2003-10-02 Markus F.X.J. Oberhumer michael@0: michael@0: * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset' michael@0: has four bytes, not two. michael@0: Fix all users. michael@0: (fnt_font_load, FNT_Load_Glyph): Add more font validity tests. michael@0: michael@0: 2003-10-01 David Turner michael@0: michael@0: * src/autofit/*: Adding first source files of the new multi-script michael@0: `auto-fitter'. michael@0: michael@0: * include/freetype/ftoutln.h (FT_Orientation): New enumeration. michael@0: (FT_Outline_Get_Orientation): New declaration. michael@0: michael@0: * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure. michael@0: (ft_orientation_extremum_compute): New auxiliary function. michael@0: (FT_Outline_Get_Orientation): New function to compute the fill michael@0: orientation of a given glyph outline. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed michael@0: trivial bug which could crash the font engine when a cached service michael@0: pointer was retrieved. michael@0: michael@0: 2003-09-30 Werner Lemberg michael@0: michael@0: * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is michael@0: found. michael@0: michael@0: * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE, michael@0: IS_T1_SPACE): Removed. michael@0: (PFB_Tag): Removed. michael@0: (read_pfb_tag): Don't use PFB_Tag. michael@0: michael@0: * src/type42/t42parse.c (t42_is_space): Handle `\f' also. michael@0: (t42_parse_encoding): Handle synthetic fonts. michael@0: michael@0: 2003-09-29 Werner Lemberg michael@0: michael@0: * include/freetype/internal/t1types.h: Don't include michael@0: FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H. michael@0: * src/truetype/ttobjs.c: Don't include michael@0: FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: michael@0: 2003-09-29 David Turner michael@0: michael@0: Added new service to handle glyph name dictionaries, replacing the michael@0: old internal header named `psnames.h' by `services/svpsname.h'. michael@0: Note that this is different from `services/svpostnm.h' which only michael@0: handles the retrieval of PostScript font names for a given face. michael@0: (Should we merge these two services into a single header?) michael@0: michael@0: * include/freetype/internal/psnames.h: Removed. Most of its michael@0: contents is moved to... michael@0: * include/freetype/internal/services/svpsname.h: New file. michael@0: michael@0: * include/freetype/internal/services/svpostnm.h michael@0: (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with... michael@0: (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro. michael@0: (PsName): Service named changed to... michael@0: (PsFontName): This. michael@0: Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and michael@0: `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere. michael@0: michael@0: * include/freetype/internal/internal.h michael@0: (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed. michael@0: * include/freetype/internal/psaux.h: Include michael@0: FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (T1_DecoderRec): Updated type of `psnames'. michael@0: * include/freetype/internal/t1types.h: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: Include FT_INTERNAL_OBJECTS_H. michael@0: * include/freetype/internal/t42types.h: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H. michael@0: * include/freetype/internal/tttypes.h (TT_FaceRec): Updated. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed michael@0: order of parameters. All callers updated. michael@0: (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service michael@0: globally, checking all modules. michael@0: (FT_ServiceCacheRec): Updated. michael@0: (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing michael@0: `svpsname.h'. michael@0: michael@0: * include/freetype/internal/ftobjs.h, src/base/ftobjs.c michael@0: (ft_module_get_service): New function. michael@0: michael@0: * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H michael@0: but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES michael@0: service. michael@0: * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated. michael@0: * src/cff/cffload.c, src/cff/cffload.h: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (cff_index_get_sid_string): Updated. michael@0: * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H michael@0: but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (cff_face_init): Use new POSTSCRIPT_NAMES service. michael@0: * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H michael@0: but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: michael@0: * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H michael@0: but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (cid_face_init): Use new POSTSCRIPT_NAMES service. michael@0: * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H. michael@0: michael@0: * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use michael@0: new POSTSCRIPT_NAMES service. michael@0: * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode, michael@0: t1_decode_init): Use new POSTSCRIPT_NAMES service. michael@0: * src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H. michael@0: michael@0: * src/psnames/psmodule.c: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (ps_build_unicode_table): Renamed to... michael@0: (ps_unicodes_init): This. michael@0: (ps_lookup_unicode): Renamed to... michael@0: (ps_unicodes_char_index): This. michael@0: (ps_next_unicode): Renamed to... michael@0: (ps_unicodes_char_next): This. michael@0: (psnames_interface): Updated. michael@0: (psnames_services): New services list. michael@0: (psnames_get_service): New function. michael@0: (psnames_module_class): Updated. michael@0: michael@0: * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H michael@0: but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (sfnt_init_face): Use new POSTSCRIPT_NAMES service. michael@0: * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H michael@0: but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (tt_face_get_ps_name): Updated. michael@0: michael@0: * src/truetype/ttobjs.c: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: michael@0: * src/type1/t1driver.c: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: * src/type1/t1objs.c: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: (T1_Face_Init): Use new POSTSCRIPT_NAMES service. michael@0: michael@0: * src/type42/t42drivr.c (t42_get_ps_name): Renamed to... michael@0: (t42_get_ps_font_name): This. michael@0: (t42_service_ps_name): Renamed to... michael@0: (t42_service_ps_font_name): This. michael@0: (t42_services): Updated. michael@0: * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES michael@0: service. michael@0: * src/type42/t42objs.h: Don't include michael@0: FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. michael@0: michael@0: michael@0: * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before michael@0: testing its validity. Reported by Henry Maddocks michael@0: . michael@0: michael@0: 2003-09-21 Werner Lemberg michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): michael@0: Fix compilation warning (s/pptr/Pptr/). michael@0: michael@0: * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H, michael@0: FT_INTERNAL_FNT_TYPES_H): Removed. michael@0: michael@0: 2003-09-21 David Turner michael@0: michael@0: Migrating the PFR and WINFNT drivers to the new service-based michael@0: internal API. michael@0: michael@0: * include/freetype/internal/fnttypes.h: Removed. Most of its data michael@0: are moved to winfnt.h and... michael@0: * include/freetype/internal/services/svwinfnt.h: New file. michael@0: michael@0: * include/freetype/internal/pfr.h: Removed. Most of its data are michael@0: moved to... michael@0: * include/freetype/internal/services/svpfr.h: New file. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, michael@0: FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing michael@0: pointer type argument. michael@0: Updated all callers. michael@0: Update macro names of services header files. michael@0: michael@0: * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code. michael@0: michael@0: * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of michael@0: FT_INTERNAL_PFR_H. michael@0: (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning, michael@0: FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'. michael@0: michael@0: * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of michael@0: FT_INTERNAL_FNT_TYPES_H. michael@0: (FT_Get_WinFNT_Header): Use service provided in `WINFNT'. michael@0: michael@0: * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and michael@0: FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H. michael@0: (pfr_service_bdf): Updated. michael@0: (pfr_services): New services list. michael@0: (pfr_get_service): New function. michael@0: (pfr_driver_class): Updated. michael@0: michael@0: * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and michael@0: FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H. michael@0: (winfnt_get_header, winfnt_get_service): New functions. michael@0: (winfnt_service_rec): New structure providing WINFNT services. michael@0: (winfnt_services): New services list. michael@0: (winfnt_driver_class): Updated. michael@0: * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo. michael@0: michael@0: * src/type1/t1driver.c (t1_service_ps_name): Fix typo. michael@0: michael@0: * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c, michael@0: src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c, michael@0: src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler michael@0: warnings. michael@0: michael@0: 2003-09-19 David Bevan michael@0: michael@0: * src/type1/t1parse.c (pfb_tag_fields): Removed. michael@0: (read_pfb_tag): Fix code so that it doesn't fail on end-of-file michael@0: indicator (0x8003). michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-09-16 Werner Lemberg michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, michael@0: FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type. michael@0: Ugly, I know, but this is needed for compilation with C++ -- michael@0: maybe someone knows a better solution? michael@0: Updated all callers. michael@0: michael@0: * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove michael@0: C++ compiler warnings. michael@0: michael@0: * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): michael@0: Fix order of arguments passed to FT_FACE_FIND_SERVICE. michael@0: michael@0: 2003-09-15 Werner Lemberg michael@0: michael@0: Avoid header files with identical names. michael@0: michael@0: * include/freetype/internal/services/bdf.h: Renamed to... michael@0: * include/freetype/internal/services/svbdf.h: This. michael@0: Add copyright notice. michael@0: * include/freetype/internal/services/glyfdict.h: Renamed to... michael@0: * include/freetype/internal/services/svgldict.h: This. michael@0: Add copyright notice. michael@0: * include/freetype/internal/services/multmast.h: Renamed to... michael@0: * include/freetype/internal/services/svmm.h: This. michael@0: Add copyright notice. michael@0: Add FT_BEGIN_HEADER and FT_END_HEADER. michael@0: * include/freetype/internal/services/sfnt.h: Renamed to... michael@0: * include/freetype/internal/services/svsfnt.h: This. michael@0: Add copyright notice. michael@0: * include/freetype/internal/services/postname.h: Renamed to... michael@0: * include/freetype/internal/services/svpostnm.h: This. michael@0: Add copyright notice. michael@0: * include/freetype/internal/services/xf86name.h: Renamed to... michael@0: * include/freetype/internal/services/svxf86nm.h: This. michael@0: Add copyright notice. michael@0: michael@0: * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and michael@0: FT_END_HEADER. michael@0: Add copyright notice. michael@0: Update macro names of services header files. michael@0: michael@0: * builds/freetype.mk (SERVICES_DIR): New variable. michael@0: (BASE_H): Add services header files. michael@0: michael@0: 2003-09-11 Werner Lemberg michael@0: michael@0: * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'. michael@0: michael@0: * src/cff/cffdrivr.c: Don't load headers twice. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro. michael@0: * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H. michael@0: michael@0: * src/cff/cffcmap.c: Include `cfferrs.h'. michael@0: * src/pfr/pfrdrivr.c: Include `pfrerror.h'. michael@0: * src/sfnt/sfdriver.c: Include `sferrors.h'. michael@0: * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'. michael@0: michael@0: 2003-09-11 David Turner michael@0: michael@0: Introducing the concept of `module services'. This is the first michael@0: step towards a massive simplification of the engine's internals, in michael@0: order to get rid of various numbers of hacks. michael@0: michael@0: Note that these changes will break source & binary compatibility for michael@0: authors of external font drivers. michael@0: michael@0: * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT, michael@0: FT_DUMMY_STMNT): New macros. michael@0: michael@0: * include/freetype/internal/ftserv.h: New file, containing the new michael@0: structures and macros to provide `services'. michael@0: michael@0: * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H, michael@0: FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H): michael@0: Removed, obsolete. michael@0: (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'. michael@0: michael@0: * include/freetype/internal/services/bdf.h, michael@0: include/freetype/internal/services/glyfdict.h, michael@0: include/freetype/internal/services/postname.h, michael@0: include/freetype/internal/services/xf86name.h: New files. michael@0: michael@0: * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func, michael@0: FT_Set_MM_Blend_Func): Function pointers moved (in modified form) michael@0: to... michael@0: * include/freetype/internal/services/multmast.h: New file. michael@0: michael@0: * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface' michael@0: is now of type `FT_Module_Requester'. michael@0: (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers michael@0: moved (in modified form) to... michael@0: * include/freetype/internal/services/sfnt.h: New file. michael@0: michael@0: * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function michael@0: pointer moved (in modified form) to `services/sfnt.h'. michael@0: michael@0: * include/freetype/ftmodule.h (FT_Module_Interface): Make it a michael@0: a typedef to `FT_Pointer'. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_FaceRec): Add michael@0: `postscript_name'. michael@0: * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove michael@0: `postscript_name'. michael@0: Add `services' element. michael@0: (FT_LibraryRec): Remove `meta_class'. michael@0: michael@0: * src/base/ftbdf.c: Include FT_SERVICE_BDF_H. michael@0: (test_font_type): Removed. michael@0: (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services michael@0: provided in `FT_SERVICE_ID_BDF'. michael@0: michael@0: * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. michael@0: (ft_face_get_mm_service): New auxiliary function to get services michael@0: from `FT_SERVICE_ID_MULTI_MASTERS'. michael@0: (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates, michael@0: FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'. michael@0: michael@0: * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and michael@0: FT_SERVICE_GLYPH_DICT_H. michael@0: (ft_service_list_lookup): New function to get a specific service. michael@0: (destroy_face): Updated. michael@0: (Mac_Read_POST_Resource): Simplify some code. michael@0: (IsMacResource): Fix warnings. michael@0: (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in michael@0: `FT_SERVICE_ID_GLYPH_DICT'. michael@0: (FT_Get_Postscript_Name): Use service provided in michael@0: `FT_SERVICE_ID_POSTSCRIPT_NAME'. michael@0: (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in michael@0: `FT_SERVICE_ID_SFNT_TABLE'. michael@0: michael@0: * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H. michael@0: (FT_Get_X11_Font_Format): Use service provided in michael@0: `FT_SERVICE_ID_XF86_NAME'. michael@0: michael@0: * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and michael@0: FT_SERVICE_XFREE86_NAME_H. michael@0: (bdf_get_charset_id): New function. michael@0: (bdf_service_bdf): New structure providing BDF services. michael@0: (bdf_services): New services list. michael@0: (bdf_driver_requester): Use `ft_service_list_lookup'. michael@0: michael@0: * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and michael@0: FT_SERVICE_GLYPH_DICT_H. michael@0: (cff_service_glyph_dict): New structure providing CFF services. michael@0: (cff_services): New services list. michael@0: (cff_get_interface): Use `ft_service_list_lookup'. michael@0: michael@0: * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and michael@0: FT_SERVICE_XFREE86_NAME_H. michael@0: (cid_service_ps_name): New structure providing CID services. michael@0: (cid_services): New services list. michael@0: (cid_get_interface): Use `ft_service_list_lookup'. michael@0: michael@0: * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and michael@0: FT_SERVICE_XFREE86_NAME_H. michael@0: (pcf_service_bdf): New structure providing PCF services. michael@0: (pcf_services): New services list. michael@0: (pcf_driver_requester): Use `ft_service_list_lookup'. michael@0: michael@0: * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and michael@0: FT_SERVICE_POSTSCRIPT_NAME_H. michael@0: (get_sfnt_glyph_name): Renamed to... michael@0: (sfnt_get_glyph_name): This. michael@0: (get_sfnt_postscript_name): Renamed to... michael@0: (sfnt_get_ps_name): This. michael@0: Updated. michael@0: (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures michael@0: providing services. michael@0: (sfnt_services): New services list. michael@0: (sfnt_get_interface): Use `ft_service_list_lookup'. michael@0: michael@0: * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H. michael@0: (tt_services): New services list. michael@0: (tt_get_interface): Use `ft_service_list_lookup'. michael@0: michael@0: * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H, michael@0: FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and michael@0: FT_SERVICE_POSTSCRIPT_NAME_H. michael@0: (t1_service_glyph_dict, t1_service_ps_name, michael@0: t1_service_multi_masters): New structures providing Type 1 services. michael@0: (t1_services): New services list. michael@0: (Get_Interface): Use `ft_service_list_lookup'. michael@0: michael@0: * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H, michael@0: FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H. michael@0: (t42_service_glyph_dict, t42_service_ps_name): New strucures michael@0: providing Type 42 services. michael@0: (t42_services): New services list. michael@0: (T42_Get_Interface): Use `ft_service_list_lookup'. michael@0: michael@0: michael@0: * README, docs/CHANGES: Updating version numbers for 2.1.6, and michael@0: removing obsolete warnings in the documentation. michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. michael@0: * builds/unix/configure.ac (version_info): Set to 9:5:3. michael@0: * builds/unix/configure: Regenerated. michael@0: michael@0: * include/freetype/internal/ftcore.h, michael@0: include/freetype/internal/ftexcept.h, michael@0: include/freetype/internal/fthash.h, michael@0: include/freetype/internal/ftobject.h: Removed. Obsolete. michael@0: michael@0: 2003-09-09 David Turner michael@0: michael@0: Fixing PFR kerning support. The tables within the font file contain michael@0: (charcode,charcode) kerning pairs, we need to convert them to michael@0: (gindex,gindex). michael@0: michael@0: * src/base/ftpfr.c (ft_pfr_check): Fix serious typo. michael@0: * src/pfr/prfload.c: Remove dead code. michael@0: (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs): michael@0: New functions. michael@0: (pfr_phy_font_done): Free `kern_pairs'. michael@0: (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'. michael@0: * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction. michael@0: * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro. michael@0: (PFR_KernPairRec): Make `kerning' an FT_Int. michael@0: (PFR_PhyFontRec): New element `kern_pairs'. michael@0: (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and michael@0: PFR_KERN_2BYTE_ADJ were erroneously reversed. michael@0: michael@0: * include/freetype/ftoption.h: Commenting out the macro michael@0: TT_CONFIG_OPTION_BYTECODE_INTERPRETER. michael@0: michael@0: 2003-09-02 David Turner michael@0: michael@0: michael@0: * Version 2.1.5 released. michael@0: ========================= michael@0: michael@0: michael@0: 2003-08-31 Manish Singh michael@0: michael@0: * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but michael@0: FT_MEM_MOVE. michael@0: michael@0: 2003-08-30 Werner Lemberg michael@0: michael@0: * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312, michael@0: FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New michael@0: enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except michael@0: FT_ENCODING_MS_SYMBOL are now deprecated. michael@0: Updated all users. michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2003-08-27 Werner Lemberg michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters michael@0: for spacing. michael@0: michael@0: 2003-08-27 Mike FABIAN michael@0: michael@0: * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c michael@0: (BDF_Face_Init): Accept lowercase characters for slant and weight. michael@0: michael@0: 2003-08-18 David Turner michael@0: michael@0: * include/freetype/config/ftoption.h: Disabling TrueType bytecode michael@0: interpreter until the UNPATENTED_HINTING works as advertised. michael@0: michael@0: * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for michael@0: setting `load_flags'. michael@0: michael@0: * Jamfile: Adding the `refdoc' target to the Jamfile in order to michael@0: build the API Reference in `docs/reference' automatically. michael@0: michael@0: * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h, michael@0: src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of michael@0: `italic_angle', `underline_position', and `underline_thickness' to michael@0: their previous values (i.e., long, short, and ushort) in order to michael@0: avoid breaking binary compatibility. michael@0: michael@0: * include/freetype/ttunpat.h: Fixing documentation comment. michael@0: michael@0: * include/freetype/config/ftoption.h, devel/ftoption.h michael@0: (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced michael@0: with... michael@0: (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users. michael@0: (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed. michael@0: michael@0: * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed. michael@0: (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with michael@0: `FT_Set_Debug_Hook' to get the same effect as the removed michael@0: TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Use michael@0: `FT_DEBUG_HOOK_UNPATENTED_HINTING'. michael@0: michael@0: 2003-08-06 Werner Lemberg michael@0: michael@0: * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c michael@0: (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix michael@0: previous change. michael@0: michael@0: 2003-08-05 Werner Lemberg michael@0: michael@0: * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c michael@0: (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply michael@0: font matrix to advance width also. michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2003-07-26 Werner Lemberg michael@0: michael@0: * builds/unix/configure.ac (version_info): Set to 9:4:3. michael@0: * builds/unix/configure: Updated. michael@0: * docs/CHANGES, docs/VERSION.DLL: Updated. michael@0: michael@0: * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16 michael@0: also breaks binary compatibility. Reintroduce an unsigned integer michael@0: at the old position of `flags' called `reserved'. michael@0: michael@0: 2003-07-25 Werner Lemberg michael@0: michael@0: Make API reference valid HTML 4.01 transitional. michael@0: michael@0: * src/tools/docmaker/tohtml.py (html_header_1): Add doctype michael@0: and charset. michael@0: (html_header_2): Fix style elements and add some more. michael@0: Fix syntax. michael@0: (block_header, block_footer, description_header, description_footer, michael@0: marker_header, marker_footer, source_header, source_footer, michael@0: chapter_header): Don't use
...
but `align=center' michael@0: table attribute. michael@0: (chapter_inter, chapter_footer): Add
  • and use special