Ignore:
Timestamp:
Jan 18, 2007, 5:32:59 PM (15 years ago)
Author:
Eugene Romanenko
Message:

freetype update to version 2.3.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/poppler/freetype2/ChangeLog

    r150 r182  
     12007-01-17  Werner Lemberg  <wl@gnu.org>
     2
     3
     4        * Version 2.3.0 released.
     5        =========================
     6
     7
     8        Tag sources with `VER-2-3-0-FINAL'.
     9
     102007-01-17  Werner Lemberg  <wl@gnu.org>
     11
     12        * docs/release: Updated.
     13
     142007-01-16  David Turner  <david@freetype.org>
     15
     16        * src/autofit/aflatin.c (af_latin_hints_compute_segments),
     17        src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
     18        (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
     19        warnings.
     20
     212007-01-15  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
     22
     23        * builds/amiga/makefile, builds/amiga/makefile.os4,
     24        builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
     25
     26        * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
     27
     282007-01-14  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
     29
     30        Fix various compiler warnings.
     31
     32        * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
     33        src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
     34        s/index/strike_index/.
     35        * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
     36
     37        * src/gxvalid/gxvmorx5.c
     38        (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
     39
     40        * src/truetype/ttinterp.c (Compute_Point_Displacement),
     41        src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
     42        uninitialized variables.
     43
     442007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     45
     46        * docs/CHANGES, docs/INSTALL.MAC: Improvements.
     47
     482007-01-13  Werner Lemberg  <wl@gnu.org>
     49
     50        * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
     51        versions up to 0x3FF without complaining.
     52
     532007-01-13  Derek Clegg  <dclegg@apple.com>
     54
     55        Add FT_Get_PS_Font_Info interface to CFF driver.
     56
     57        * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
     58        (CFF_FontRec): Add `font_info' field.
     59
     60        * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
     61        (cff_font_done): Free font->font_info if necessary.
     62
     63        * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
     64        (cff_service_ps_info): Register cff_ps_get_font_info.
     65
     662007-01-13  Werner Lemberg  <wl@gnu.org>
     67
     68        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
     69        with C++ compiler.
     70
     71        * src/autofit/afhints.c (af_glyph_hints_dump_segments,
     72        af_glyph_hints_dump_edges): Ditto.
     73
     74        * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
     75        `modules.cfg').
     76
     77        * src/sfnt/ttsbit0.h: Remove.
     78
     79        * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
     80
     812007-01-12  David Turner  <david@freetype.org>
     82
     83        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
     84        bug in the bitmap emboldener if the pitch of the source bitmap is
     85        much larger than its width.
     86
     87        * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
     88        compilation warning.
     89
     902007-01-12  Werner Lemberg  <wl@gnu.org>
     91
     92        * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
     93        `automake' CVS module from sources.redhat.com.
     94
     952007-01-11  Werner Lemberg  <wl@gnu.org>
     96
     97        * src/type1/t1load.c (is_space): Removed.
     98        (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
     99        (parse_charstrings): Use IS_PS_TOKEN.
     100
     101
     102        * autogen.sh: Avoid bash specific syntax.
     103
     1042007-01-11  David Turner  <david@freetype.org>
     105
     106        * docs/CHANGES: Small update.
     107
     108        * builds/unix/configure.raw (version_info): Set to 9:11:3.
     109
     110        * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
     111        crash with some Mac OS X .dfont files.  Submitted by Masatake
     112        Yamato.
     113
     114        * autogen.sh: Small fix to get it working on Mac OS X properly:
     115        The issue is that GNU libtool is called `glibtool' on this platform,
     116        and we must call `glibtoolize', since `libtoolize' doesn't exist.
     117
     1182007-01-10  David Turner  <david@freetype.org>
     119
     120        * all-sources: Tag all sources with VER-2-3-0-RC1 and
     121        VER-2-3-0.
     122
     123        * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
     124        builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
     125        version number to 2.3.0.
     126
     127        * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
     128        (FREETYPE_PATCH): Set to 0.
     129
     130        * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
     131        include/freetype/ftlcdfil.h: Update reference documentation with
     132        GASP support and LCD filtering sections.
     133
     134        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
     135        which created an endless loop with some malformed font files.
     136
     1372007-01-10  Derek Clegg  <dclegg@apple.com>
     138
     139        * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
     140        values.
     141
     1422007-01-08  David Turner  <david@freetype.org>
     143
     144        * docs/CHANGES: Updated.
     145
     146        * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
     147        a new API `FT_Get_Gasp' to return entries of the `gasp' table
     148        corresponding to a given character pixel size.
     149
     150        * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
     151        `gasp' table, in order to avoid potential problems with later
     152        versions.
     153
     154        * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
     155        <freetype/ftgasp.h>.
     156
     157        * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
     158        modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
     159        builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
     160        default build.
     161
     1622007-01-07  Werner Lemberg  <wl@gnu.org>
     163
     164        * src/cid/cidparse.c (cid_parser_new): Improve error message for
     165        Type 11 fonts.
     166        Scan for `/sfnts' token.
     167
     1682007-01-07  Werner Lemberg  <wl@gnu.org>
     169
     170        * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
     171
     1722007-01-06  Werner Lemberg  <wl@gnu.org>
     173
     174        * src/cff/cffload.c (cff_index_init): Remove unused variable.
     175        (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
     176
     1772007-01-04  David Turner  <david@freetype.org>
     178
     179        * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
     180        correctly.  This fixes Savannah bug #17876.
     181
     182
     183        Do not allocate interpreter-specific tables in memory if we are not
     184        going to load glyphs with the bytecode interpreter anyway.
     185
     186        * src/truetype/ttgload.c (tt_loader_init): Load execution context
     187        only if glyph is hinted.
     188        Updated.
     189        * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
     190        and `cvs_ready'.
     191        Add `tt_size_ready_bytecode' declaration.
     192        * src/truetype/ttobjs.c (tt_size_done_bytecode,
     193        tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
     194        (tt_size_init): Move most code into `tt_size_init_bytecode'.
     195        (tt_size_done): Move most code into `tt_size_done_bytecode'.
     196        (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
     197
     198
     199        Don't extract the metrics table from the SFNT font file.  Instead,
     200        reparse it on each glyph load.  The runtime difference is not
     201        noticeable, and it can save a lot of heap memory when memory-mapped
     202        files are not used.
     203
     204        * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
     205        `horz_metrics_offset' and `vert_metrics_ofset'.
     206        * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
     207        Updated.
     208
     209
     210        * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
     211
     212
     213        Do not load the CFF index offsets into memory, since this wastes a
     214        *lot* of heap memory with large Asian CFF fonts.  There is no
     215        significant performance loss.
     216
     217        * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
     218        * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
     219        `data_size'.
     220        (CFF_CharsetRec): Add field `num_glyphs'.
     221
     222        * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
     223        cff_charset_cid_to_gindex): New functions.
     224        (cff_new_index): Renamed to...
     225        (cff_index_init): This.  Update all callers.
     226        Updated -- some code has been moved to `cff_index_load_offsets'.
     227        (cff_done_index): Renamed to...
     228        (cff_index_done): This.  Update all callers.
     229        (cff_index_get_pointers, cff_index_access_element): Updated to use
     230        stream offsets.
     231        (cff_charset_compute_cids): Set `num_glyphs' field.
     232        (cff_encoding_load): Updated.
     233
     234        * src/cff/cffgload.c (cff_slot_load): Updated.
     235
     2362007-01-04  David Turner  <david@freetype.org>
     237
     238        * docs/INSTALL.UNIX: Simplify some parts, add reference to
     239        autogen.sh and pointer to README.CVS.
     240
     241        * README.CVS: Add common problem description and solution
     242        when running autogen.sh.
     243
     244        * docs/INSTALL: Add reference to MacOS X.
     245
     246        * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
     247
     248        * docs/TODO: Remove obsolete items.
     249
     250        * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
     251        (TWorker): This.
     252        Remove `count_table' and `memory'.
     253        Make `grays' a pointer.
     254        (TRaster): New structure.
     255        (count_table): New static array.
     256        (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
     257        Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
     258        ft_black_set_mode, ft_black_render): Updated.
     259        (ft_black_init): Don't initialize `count_table'.
     260        (ft_black_reset): Use the render pool.  This saves about 6KB of
     261        heap space for each FT_Library instance.
     262
     263        * src/smooth/ftgrays.c (TRaster): Replaced with...
     264        (TWorker): This.
     265        Remove `memory'.
     266        (TRaster): New structure.
     267
     268        (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
     269        gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
     270        gray_render_span, gray_raster_render): Updated.
     271        (gray_raster_reset): Use the render pool.  This saves about 6KB of
     272        heap space for each FT_Library instance.
     273
     274        * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
     275        src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
     276        src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
     277        FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
     278        the optimization is no longer experimental.
     279
     280        * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
     281        Remove a typo that results in no hinting and a memory leak with some
     282        large Asian CFF fonts.
     283
     284        * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
     285        which happens when FT_Done_Library is called with still opened
     286        CFF_Faces in it.  We need to close all faces before destroying the
     287        modules, or else some bad things (memory leaks) may happen.
     288
     2892007-01-02  Werner Lemberg  <wl@gnu.org>
     290
     291        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
     292        Remove compiler warning.
     293
     2942007-01-02  David Turner  <david@freetype.org>
     295
     296        * src/sfnt/sfobjs.c: Add documentation comment.
     297
     2982006-12-31  Masatake YAMATO  <jet@gyve.org>
     299
     300        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
     301        function.
     302        Check uniqueness of the gid pairs.
     303        (gxv_kern_subtable_fmt0_validate): Move some code to
     304        `gxv_kern_subtable_fmt0_pairs_validate'.
     305
     3062006-12-22  David Turner  <david@freetype.org>
     307
     308        * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
     309        warnings.
     310
     311        * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
     312        to avoid deprecation warnings with Visual C++ 8.
     313
     3142006-12-16  Anders Kaseorg  <anders@kaseorg.com>
     315
     316        * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
     317        [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
     318
     3192006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     320
     321        * include/freetype/internal/services/svotval.h: Add `volatile' to
     322        sync with the modification by Jens Claudius on 2006-08-22; cf.
     323          http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
     324
     3252006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     326
     327        * src/base/ftmac.c: Specialized for Mac OS X only.
     328        * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
     329        * builds/unix/configure.raw: Ditto. When explicit switches for
     330        FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
     331        builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
     332
     3332006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     334
     335        * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
     336        * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
     337        instead of src/base/ftmac.c
     338        * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
     339        * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
     340        * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
     341        that cannot be built at present.
     342
     3432006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     344
     345        * src/base/ftobjs.c: Improvement of resource fork handler for
     346        POSIX, cf.
     347          http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
     348        (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
     349        format or .dfont, to simulate the face index number counted by ftmac.c.
     350        (IsMacResource): Return the number of scalable faces correctly.
     351
     3522006-12-10  Werner Lemberg  <wl@gnu.org>
     353
     354        * builds/toplevel.mk (version): Protect against `distclean' target.
     355
     3562006-12-09  Werner Lemberg  <wl@gnu.org>
     357
     358        * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
     359        or `type'.
     360
     361        * builds/freetype.mk (version): Extracted from freetype.h, using
     362        GNU make's built-in string functions.
     363        (refdoc): Use $(version) instead of static version number.
     364
     3652006-12-08  Werner Lemberg  <wl@gnu.org>
     366
     367        * builds/toplevel.mk (dist): Extract version number from freetype.h.
     368
     3692006-12-08  Vladimir Volovich  <vvv@vsu.ru>
     370
     371        * src/tools/apinames (State): Remove final comma in structure -- xlc
     372        v5 under AIX 4.3 doesn't like this.
     373
     3742006-12-07  David Turner  <david@freetype.org>
     375
     376        * src/autofit/afloader.c (af_loader_load_g): Small adjustment
     377        to the spacing of auto-fitted glyphs.  This only impacts rare
     378        cases (e.g., Arial Bold at rather small character sizes).
     379
     3802006-12-03  Werner Lemberg  <wl@gnu.org>
     381
     382        * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
     383
     3842006-12-01  Werner Lemberg  <wl@gnu.org>
     385
     386        * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
     387        encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
     388        (tt_name_entry_ascii_from_ucs4): Removed.
     389
     390
     391        * include/freetype/ftxf86.h: Fix and extend comment so that it
     392        appears in the documentation.
     393
     394        * include/freetype/ftchapters.h: Add `font_format' section.
     395
     396
     397        * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
     398        to TOC in index page.
     399
     4002006-11-28  David Turner  <david@freetype.org>
     401
     402        * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
     403        trying to render into a zero-width/height bitmap, not an error code.
     404
     405        * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
     406
     407        * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
     408        ones instead.
     409
     410        * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
     411        variable.
     412
     4132006-11-26  Pierre Hanser  <hanser@club-internet.fr>
     414
     415        * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
     416
     4172006-11-25  David Turner  <david@freetype.org>
     418
     419        * src/autofit/afhints.c (af_glyph_hints_dump_points,
     420        af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
     421        Add stubs to link the `ftgrid' test program when debugging is
     422        disabled in the auto-hinter.
     423
     4242006-11-23  David Turner  <david@freetype.org>
     425
     426        * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
     427        src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
     428
     429        * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
     430        Emit more sensible information.
     431
     432        * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
     433
     434        * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
     435        rounding of blue values.
     436        (af_latin_hints_compute_segments): Hint segment heights.
     437        (af_latin_hints_link_segments): Reduce `len_score' value.
     438        (af_latin_hints_compute_edges): Increase `segment_length_threshold'
     439        value and use `height' member for comparisons.
     440        (af_latin_hint_edges): Extend logging message.
     441        Improve handling of remaining edges.
     442
     4432006-11-22  Werner Lemberg  <wl@gnu.org>
     444
     445        Fix Savannah bug #15553.
     446
     447        * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
     448        program after a change from mono to grayscaling (and vice versa).
     449        Use correct constant for comparison to get `exec->grayscale'.
     450
     4512006-11-18  Werner Lemberg  <wl@gnu.org>
     452
     453        Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
     454        test for a valid glyph index must be deferred to the font drivers.
     455        This patch fixes Savannah bug #18301.
     456
     457        * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
     458        * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
     459        (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
     460        src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
     461        (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
     462        src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
     463        (FNT_Load_Glyph): Check validity of `glyph_index'.
     464
     4652006-11-13  David Turner  <david@freetype.org>
     466
     467        * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
     468        `enhancements' are still too buggy for general use.
     469
     470        * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
     471        FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
     472        when building the library to change the default LCD filter to be
     473        used.  This is only useful for experimentation.
     474
     475        * include/freetype/ftlcdfil.h: Update documentation.
     476
     4772006-11-10  David Turner  <david@freetype.org>
     478
     479        * src/smooth/ftsmooth.c: API change for the LCD
     480        filter.  The FT_LcdFilter value is an enumeration describing which
     481        filter to apply, with new values FT_LCD_FILTER_LIGHT and
     482        FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
     483        algorithm which produces strong color fringes for everything
     484        except very-well hinted text).
     485
     486        * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
     487        second parameter to an enum type.
     488
     489        * src/base/ftlcdfil.c (USE_LEGACY): Define.
     490        (_ft_lcd_filter): Rename to...
     491        (_ft_lcd_filter_fir): This.
     492        Update parameters.
     493        (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
     494        (FT_Library_Set_LcdFilter): Update parameters.
     495        Handle new filter modes.
     496
     497        * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
     498        (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
     499        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
     500        callback and update other fields.
     501
     502        * src/smooth/ftsmooth.c (ft_smooth_render_generic)
     503        [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
     504        Other minor improvements.
     505
     506        * src/autofit/aflatin.c: Various tiny improvements that drastically
     507        improve the handling of serif fonts and of LCD/LCD_V hinting modes.
     508        (af_latin_hints_compute_edges): Fix typo.
     509        (af_latin_compute_stem_width): Take better care of diagonal stems.
     510
     5112006-11-09  David Turner  <david@freetype.org>
     512
     513        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
     514        typo which created a variable-used-before-initialized bug.
     515
     5162006-11-07  Zhe Su  <james.su@gmail.com>
     517
     518        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
     519        also.
     520
     5212006-11-03  Werner Lemberg  <wl@gnu.org>
     522
     523        * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
     524
     5252006-11-02  David Turner  <david@freetype.org>
     526
     527        Add a few tweaks to better handle serif fonts.
     528        Add more debugging messages.
     529
     530        * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
     531        segments that are less than 1.5 pixels high.  This gets rid of
     532        *many* corner cases with serifs.
     533        (af_latin_align_linked_edge): Add logging message.
     534        (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
     535        Add logging messages.
     536        Handle AF_EDGE_FLAG flag specially.
     537
     538        * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
     539        _af_debug_disable_blue_hints, and _af_debug_hints variables.
     540
     541        * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
     542        Update external declarations.
     543        (af_corner_orientation, af_corner_is_flat): Replaced by...
     544
     545        * include/freetype/internal/ftcalc.h (ft_corner_orientation,
     546        ft_corner_is_flat): These declarations.
     547
     548        * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
     549        Comment out.  Replaced by...
     550
     551        * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
     552        These functions.  Update all callers.
     553        (FT_Add64) [!FT_LONG64]: Simplify.
     554
     555        * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
     556        (af_direction_compute): Add a missing FT_ABS call.  This bug caused
     557        production of garbage by missing lots of segments.
     558
     559        * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
     560
     561        * src/autofit/afloader.c (af_loader_init, af_loader_done)
     562        [AF_DEBUG]: Set _af_debug_hints.
     563
     564
     565        * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
     566        (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
     567        and ft_corner_orientation.
     568
     569
     570        * src/gzip/inftrees.c (huft_build): Remove compiler warning.
     571
     5722006-10-24  Werner Lemberg  <wl@gnu.org>
     573
     574        * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
     575
     576        * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
     577        as argument.
     578
     5792006-10-23  Zhe Su  <zsu@novell.com>
     580
     581        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
     582        better deal with broken Asian fonts with strange glyphs, having
     583        self-intersections and other peculiarities.  The used algorithm is
     584        based on the nonzero winding rule.
     585
     5862006-10-23  David Turner  <david@freetype.org>
     587
     588        Speed up the CFF font loader.  With some large CFF fonts,
     589        FT_Open_Face is now more than three times faster.
     590
     591        * src/cff/cffload.c (cff_get_offset): Removed.
     592        (cff_new_index): Inline functionality of `cff_get_offset'.
     593        (cff_charset_compute_cids, cff_charset_free_cids): New functions.
     594        (cff_charset_done): Call `cff_charset_free_cids'.
     595        (cff_charset_load): Call `cff_charset_compute_cids'.
     596        (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
     597
     598        * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
     599        with FT_NEXT_XXX.
     600
     601
     602        Speed up the Postscript hinter, with more than 100% speed increase
     603        on my machine.
     604
     605        * src/pshinter/pshalgo.c (psh_corner_is_flat,
     606        psh_corner_orientation): New functions.
     607        (psh_glyph_compute_inflections): Merge loops for efficiency.
     608        Use `psh_corner_orientation'.
     609        (psh_glyph_init): Use `psh_corner_is_flat'.
     610        (psh_hint_table_find_strong_point): Renamed to...
     611        (psh_hint_table_find_strong_points): This.
     612        Rewrite, adding argument to handle all points at once.
     613        Update all callers.
     614        (PSH_MAX_STRONG_INTERNAL): New macro.
     615        (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
     616
     6172006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     618
     619        * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
     620        `error' with FT_Err_Ok.
     621
     6222006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     623
     624        * docs/INSTALL.CROSS: New document file for cross-building.
     625
     626        * builds/unix/configure.raw: Preliminary cross-building support.
     627        Find native C compiler and pass it by CC_BUILD, and
     628        find suffix for native executable and pass it by EXEEXT_BUILD.
     629        Also suffix for target executable is passed by EXEEXT.
     630
     631        * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
     632        build `apinames' which runs on building system.  They are set by
     633        CC_BUILD and EXEEXT_BUILD.
     634
     635        * builds/exports.mk (APINAMES_EXE): Change the extension for
     636        apinames from the suffix for target (E) to that for building host
     637        (E_BUILD).
     638
     6392006-10-12  Werner Lemberg  <wl@gnu.org>
     640
     641        * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
     642        * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
     643        which reference those files.
     644
     6452006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     646
     647        * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
     648        embedded in freetype2.pc and freetype-config.  Use it to record
     649        Carbon dependency of MacOSX.
     650
     651        * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
     652
     653        * builds/unix/freetype-config.in: Ditto.
     654
     6552006-10-11  Werner Lemberg  <wl@gnu.org>
     656
     657        * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
     658        development.
     659
     6602006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
     661
     662        * include/freetype/config/ftstdlib.h: Cast away volatileness from
     663        argument to ft_setjmp.
     664
     665        * include/freetype/internal/ftvalid.h: Add comment that
     666        ft_validator_run must not be used.
     667
     6682006-10-01  Werner Lemberg  <wl@gnu.org>
     669
     670        * src/base/ftbase.c: Undo change from 2006-09-30.
     671
     672        * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
     673
     6742006-09-30  David Turner  <david@freetype.org>
     675
     676        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
     677        s/unpatented_hinting/ignore_unpatented_hinter/.
     678        Update all callers.
     679
     680        * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
     681        auto-hinting shall be used or not.
     682
     683        * src/truetype/ttobjs.c (tt_face_init): Ditto.
     684
     6852006-09-30  Werner Lemberg  <wl@gnu.org>
     686
     687        * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
     688        in use).
     689
     690        * src/base/ftbase.c: Include `ftlcdfil.c'.
     691
     6922006-09-29  Werner Lemberg  <wl@gnu.org>
     693
     694        * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
     695        overlapping segments.  Bug reported by Stefan Koch.
     696
     6972006-09-28  David Turner  <david@freetype.org>
     698
     699        Fix a bug in the automatic unpatented hinting support which prevents
     700        normal bytecode hinting to work properly.
     701
     702        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
     703        s/force_autohint/unpatented_hinting/.  Update all callers.
     704
     705        * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
     706
     707        * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
     708
     7092006-09-27  David Turner  <david@freetype.org>
     710
     711        * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
     712
     713
     714        Add a new API to support color filtering of subpixel glyph bitmaps.
     715        In a default build, the function `FT_Library_SetLcdFilter' returns
     716        `FT_Err_Unimplemented_Feature'; you need to #define
     717        FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
     718        real implementation.
     719
     720        * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
     721
     722        * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
     723        typedef.
     724        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
     725        `lcd_filter_weights' and `lcd_filter'.
     726
     727        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
     728        `hmul' and `vmul'.
     729
     730        Handle subpixel rendering.
     731        Simplify function.
     732        (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
     733        (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
     734
     735        * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
     736        pointing to <freetype/ftlcdfil.h>.
     737
     738        * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
     739        vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
     740
     741        * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
     742
     7432006-09-26  David Bustin
     744
     745        * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
     746        correctly.  Reported as Savannah bug #17843.
     747
     7482006-09-26  David Turner  <david@freetype.org>
     749
     750        * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
     751        AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
     752        horizontal and vertical hinting for the purpose of debugging the
     753        auto-fitter.
     754
     755        * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
     756        _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
     757
     758        * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
     759
     760        * include/freetype/config/ftoption.h, devel/ftoption.h
     761        (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
     762        we want to compile LCD-optimized rendering code (à la ClearType) or
     763        not.  The macro *must* be disabled in default builds of the library
     764        for patent reasons.
     765
     766        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
     767        LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
     768        isn't defined at compile time.  This only changes the content of the
     769        rendered glyph to match the one of normal gray-level rendering,
     770        hence clients should not need to be modified.
     771
     772        * docs/CHANGES: Updated.
     773
     7742006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
     775
     776        * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
     777        LWFN fails and both are available.
     778
     7792006-09-11  David Turner  <david@freetype.org>
     780
     781        * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
     782        report their English names through an Apple Roman
     783        (platform,encoding) pair, with language_id != English.
     784
     785        If the font uses another name entry with language_id == English, it
     786        will be selected correctly, though.
     787
     788        * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
     789        selection for `mingli.ttf'.
     790
     7912006-09-05  Werner Lemberg  <wl@gnu.org>
     792
     793        * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
     794        values which have the upper two bytes set to 0xFF instead of 0x00
     795        (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
     796        `HAN NOM B.ttf').
     797
     798        * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
     799
     8002006-09-05  David Turner  <david@freetype.org>
     801
     802        Minor source cleanups and optimizations.
     803
     804        * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
     805        (TRaster): Remove `count_ex' and `count_ey'.
     806        (gray_find_cell): Remove 2nd and 3rd argument.
     807        (gray_alloc_cell): Merged with `gray_find_cell'.
     808        (gray_record_cell): Simplify.
     809        (gray_set_cell): Rewrite.
     810        (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
     811        (gray_render_span): Don't use FT_MEM_SET for small values.
     812        (gray_dump_cells) [DEBUG_GRAYS]: New function.
     813        (gray_sweep): Avoid buffer overwrites when to drawing the end of a
     814        bitmap scanline.
     815        (gray_convert_glyph): Fix speed-up.
     816
     8172006-09-04  David Turner  <david@freetype.org>
     818
     819        * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
     820        64bit processors.
     821
     8222006-09-03  Werner Lemberg  <wl@gnu.org>
     823
     824        * devel/ftoption.h: Synchronize with
     825        include/freetype/config/ftoption.h.
     826
     827        * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
     828        variable declaration.
     829        (gray_convert_glyph): Fix compiler warnings.
     830
     8312006-09-01  David Turner  <david@freetype.org>
     832
     833        * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
     834        to recognize a few fonts that require the automatic unpatented
     835        loader.
     836
     837        * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
     838        rasterizer.  The speed improvement is between 15% and 25%, depending
     839        on the font data.
     840
     841        (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
     842        (TCell): Redefine.
     843        (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
     844        (gray_init_cells): Updated.
     845        (gray_find_cell, gray_alloc_cell): New functions.
     846        (gray_record_cell): Rewritten to use `gray_find_cell' and
     847        `gray_alloc_cell'.
     848        (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
     849        QSORT_THRESHOLD):
     850        Removed.
     851        (gray_shell_sort, gray_quick_sort, gray_check_sort,
     852        gray_dump_cells): Removed.
     853        (gray_sweep): Rewritten.
     854        (gray_convert_glyph): Rewrite code which used one of the sorting
     855        functions.
     856        (gray_raster_render): Updated.
     857
     8582006-08-29  Dr. Werner Fink  <werner@suse.de>
     859
     860        * configure: Make it possible to handle configure options which
     861        have strings containing spaces.
     862
     8632006-08-27  David Turner  <david@freetype.org>
     864
     865        * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
     866        New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
     867        or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
     868
     869        * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
     870        src/truetype/truetype.c, src/truetype/ttdriver.c,
     871        src/truetype/ttgload.c, src/truetype/ttgload.h,
     872        src/truetype/ttinterp.c, src/truetype/ttobjs.c,
     873        src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
     874        s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
     875
     876        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
     877        member `force_autohint'.
     878
     879        * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
     880
     881        * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
     882        against a list of font names which need the bytecode interpreter.
     883
     8842006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
     885
     886        Fix miscellaneous compiler warnings.
     887
     888        * freetype2/include/freetype/internal/ftobjs.h: Close comment with
     889        `*/' to avoid `/* in comment' compiler warning.
     890
     891        * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
     892        `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
     893        64-bit platforms void* is larger than FT_UInt32.
     894
     895        * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
     896        volatileness of argument to ft_longjmp.  Spotted by Werner
     897        `Putzfrau' Lemberg.
     898
     899        * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
     900        variable `lineno'.
     901
     902        * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
     903        variable `error' as volatile.
     904
     9052006-08-27  Werner Lemberg  <wl@gnu.org>
     906
     907        * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
     908        Reported by Jens.
     909
     9102006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
     911
     912        Fix for previous commit, which caused many compiler warnings/errors
     913        about addresses of volatile objects passed as function arguments as
     914        non-volatile pointers.
     915
     916        * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
     917        typedef a pointer to a volatile object.
     918
     919        * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
     920        argument `table' a pointer to a volatile object.
     921
     922        * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
     923        argument `table' a pointer to a volatile object.
     924
     9252006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
     926
     927        * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
     928        variable `_sfnt' as volatile since it must keep its value across
     929        a call to ft_setjmp.
     930        (gxv_validate): Same for local variables `memory' and `valid'.
     931        (classic_kern_validate): Same for local variables `memory',
     932        `ckern', and `valid'.
     933
     934        * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
     935        parameter `face' and local variables `base', `gdef', `gpos', `gsub',
     936        `jstf', and 'valid'.
     937
     938        * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
     939        local variable `cmap'.
     940
     9412006-08-16  David Turner  <david@freetype.org>
     942
     943        * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
     944        warnings.
     945
     946        * src/base/ftobjs.c (ft_validator_run): Disable function; it is
     947        buggy by design.  Always return -1.
     948
     949
     950        Improvements to native TrueType hinting. This is a first try,
     951        controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
     952
     953        * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
     954        `extra_points2'.
     955
     956        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
     957        `orus'.
     958
     959        * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
     960        FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
     961        FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
     962        handle `extra_points2'.
     963
     964        * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
     965        Remove compiler warning.
     966        (cur_to_arg): Remove macro.
     967        (TT_Hint_Glyph): Updated.
     968        (TT_Process_Simple_Glyph): Handle `orus'.
     969
     970        * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
     971        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
     972        (LOC_Ins_IUP): Renamed to...
     973        (IUP_WorkerRec): This.
     974        Add `orus' member.
     975        (Shift): Renamed to...
     976        (_iup_worker_shift): This.
     977        Updated.
     978        (Interp): Renamed to...
     979        (_iup_worker_interpolate): This.
     980        Updated to handle `orus'.
     981        (Ins_IUP): Updated.
     982
     983        * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
     984        Handle `orus'.
     985
     9862006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     987
     988        * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
     989        build ftvalid in ft2demos.  This has been inadvertedly changed
     990        2006-08-13.
     991
     9922006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     993
     994        `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
     995        Jens:
     996        http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
     997
     998        * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
     999        `ft_setjmp'.  It reverts the change introduced on 2005-08-20.
     1000
     1001        * freetype2/src/gxvalid/gxvmod.c: Ditto.
     1002
     10032006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
     1004
     1005        * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
     1006        T1_TOKEN_TYPE_KEY.
     1007        (T1_FieldRec): Add `dict'.
     1008        (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
     1009        (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
     1010        keyword is expected as an additional argument.
     1011
     1012        * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
     1013        invocations of T1_FIELD_XXX.
     1014
     1015        * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
     1016
     1017        * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
     1018        (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
     1019        not T1_TOKEN_TYPE_ANY.
     1020        (ps_parser_load_field): Make sure a token that should be a string or
     1021        name is really a string or name.
     1022        Avoid memory leak if a keyword has been already encountered and its
     1023        value is overwritten.
     1024        * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
     1025        T1_FIELD_XXX.
     1026        (parse_dict): Ignore keywords that occur in the wrong dictionary
     1027        (e.g., in `Private' instead of `FontDict').
     1028
     1029        * freetype2/src/type1/t1tokens.h: Adjust invocations of
     1030        T1_FIELD_XXX.
     1031
     1032        * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
     1033        invocations of T1_FIELD_XXX.
     1034
     10352006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
     1036
     1037        Move creation of field `buildchar' of T1_DecoderRec out of
     1038        `t1_decoder_init' and let the caller of `t1_decoder_init' take care
     1039        of it.
     1040
     1041        Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
     1042        and `T1_Compute_Max_Advance'.
     1043
     1044        * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
     1045        Remove field `face', add `len_buildchar'.
     1046
     1047        * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
     1048        field `buildchar'.
     1049
     1050        * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
     1051        finisher for T1_Decoder.
     1052        (cid_slot_load_glyph): Do not ignore failure when initializing the
     1053        T1_Decoder.
     1054
     1055        * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
     1056        Updated.
     1057        (t1_decoder_init): Remove initialization of fields `buildchar' and
     1058        `len_buildchar'.
     1059        (t1_decoder_done): Remove deallocation of field `buildchar'.
     1060
     1061        * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
     1062        T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
     1063        T1_Decoder.
     1064        (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
     1065        `len_buildchar'; make sure to call finisher for T1_Decoder even in
     1066        case of error.
     1067
     1068        * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
     1069        `buildchar' of T1_FaceRec.
     1070
     1071        * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
     1072        `buildchar' of T1_FaceRec.
     1073
     10742006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
     1075
     1076        * freetype2/include/freetype/internal/psaux.h: New macros
     1077        IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
     1078        IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
     1079        (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
     1080        T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
     1081        (T1_DecoderRec): New fields `buildchar' and `face'.
     1082        (IS_PS_TOKEN): New macro.
     1083
     1084        * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
     1085        fields `ndv_idx', `cdv_idx', and `len_buildchar'.
     1086
     1087        * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
     1088        `default_design_vector' and `num_default_design_vector'.
     1089
     1090        * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
     1091        IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
     1092        and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
     1093
     1094        * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
     1095        `token' argument to be NULL if we want only to count the number of
     1096        tokens.
     1097        (ps_tocoordarray): Allow `coords' argument to be NULL if we just
     1098        want to skip the array.
     1099        (ps_tofixedarray): Allow `values' argument to be NULL if we just
     1100        want to skip the array.
     1101
     1102        * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
     1103        support for (partially commented out) othersubrs 19-25, 27, and 28.
     1104        (t1_decoder_init): Initialize new fields `face' and `buildchar'.
     1105        (t1_decoder_done): Release new field `buildchar'.
     1106
     1107        * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
     1108        functions.
     1109        (t1_keywords): Register them.
     1110        (t1_allocate_blend): Updated.
     1111        (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
     1112        T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
     1113        (parse_dict): Remove `keyword_flags' argument.
     1114        Use new macro IS_PS_TOKEN.
     1115        Changed function so that later PostScript definitions override
     1116        earlier ones.
     1117        (t1_init_loader): Initialize new field `keywords_encountered'.
     1118        (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
     1119        `len_buildchar'.
     1120        Remove `keywords_flags'.
     1121
     1122        * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
     1123        `keywords_encountered'.
     1124        (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
     1125
     1126        * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
     1127        New entries for parsing /NDV, /CDV, and /DesignVector.
     1128
     11292006-07-07  Werner Lemberg  <wl@gnu.org>
     1130
     1131        Add many checks to protect against malformed PCF files.
     1132
     1133        * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
     1134        (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
     1135
     1136        * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
     1137        data and check that tables don't overlap (using a simple
     1138        bubblesort).
     1139        (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
     1140        New macros which give the size of data structures in the data
     1141        stream.
     1142        (pcf_get_properties): Use rough estimates to get array size limits.
     1143        Assign `face->nprops' and `face->properties' earlier so that a call
     1144        to PCF_Face_Done can do the clean-up in case of error.
     1145        Protect against invalid string offsets.
     1146        (pcf_get_metrics): Clean up code.
     1147        Adjust tracing message levels.
     1148        Use rough estimate to get array size limit.
     1149        (pcf_get_bitmaps): Clean up code.
     1150        Adjust tracing message levels.
     1151        Use rough estimates to get offset limits.
     1152        (pcf_get_encodings): Adjust tracing message level.
     1153        (pcf_get_accel): Clean up code.
     1154
     11552006-06-26  Werner Lemberg  <wl@gnu.org>
     1156
     1157        * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
     1158        don't have a POINT_SIZE property.  This fixes Savannah bug #16914.
     1159
     11602006-06-26  Jens Claudius  <jens.claudius@yahoo.com>
     1161
     1162        * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
     1163        (t1_decoder_parse_charstrings): Operator with
     1164        opcode 15 pops its two arguments.
     1165        Handle the case where the pops of an othersubr may be part of a
     1166        subroutine.
     1167        Handle unknown othersubrs gracefully: count their operands and let
     1168        the following pop operators push the operands as the results onto
     1169        the Type1 stack.
     1170        Improve handling of setcurrentpoint opcode.
     1171
     11722006-06-25  Jens Claudius  <jens.claudius@yahoo.com>
     1173
     1174        The Type 1 parser now skips over top-level procedures as required
     1175        for a `Simplified Parser'.  This makes the parser more robust as it
     1176        doesn't poke around in PostScript code.  Additionally, it makes the
     1177        FontDirectory hackery in src/type1/t1load.c unnecessary.
     1178
     1179        * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
     1180        (skip_literal_string): Add FT_Error as return value.
     1181        Handle escapes better.
     1182        (skip_string): Add FT_Error as return value.
     1183        Don't set `parser->error' but return error code directly.
     1184        (skip_procedure): New function.
     1185        (ps_parser_skip_PS_token): Handle procedures.
     1186        Update code.
     1187        (ps_parser_to_token): Update code.
     1188        (ps_parser_load_field_table): Handle bbox entries also.
     1189
     1190        * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
     1191        Add commented-out code for synthetic fonts.
     1192
     11932006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>
     1194
     1195        Fix two hinting bugs as reported in
     1196        http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
     1197
     1198        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
     1199        `first_point' member.
     1200
     1201        * src/truetype/ttgload.c (tt_prepare_zone): Initialize
     1202        `first_point'.
     1203        (TT_Process_Composite_Glyph): Always untouch points.
     1204
     1205        * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
     1206        `first_point' and `last_point' in case of composite glyphs.
     1207        (Ins_IUP): Fix computation of `end_point'.
     1208
     12092006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1210
     1211        Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
     1212        Mac.  The original patch was written by David Sachitano and Lawrence
     1213        Coopet, and modified by Sean McBride for MPW compatibility.  Only
     1214        required data are converted; unused data are left in big endian.
     1215
     1216        * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
     1217        Mac OS X platforms.
     1218        (OS_INLINE): Undefine before definition.
     1219        (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
     1220        FontAssociation table in FOND resource.
     1221        (count_faces_scalable): Insert EndianS16_BtoN to parse the header
     1222        and fontSize at each entry of FontAssociation table in FOND
     1223        resource.
     1224        (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
     1225        ffStylOff of FamilyRecord header of FOND resource, the header,
     1226        fontSize, fontID at each entry of FontAssociation table, and
     1227        StyleMapping table.
     1228        (count_faces): Call `HUnlock' after all FOND utilization.
     1229
     12302006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1231
     1232        Public API of TrueTypeGX, OpenType, and classic kern table validator
     1233        should return `FT_Err_Unimplemented_Feature' if validation service
     1234        is unavailable (disabled in `modules.cfg').  It is originally
     1235        suggested by David Turner, cf.
     1236        http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
     1237
     1238        * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
     1239        FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
     1240        unavailable.
     1241        (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
     1242        classic kern table validation service is unavailable.
     1243
     1244        * src/base/ftotval.c (FT_OpenType_Validate): Return
     1245        FT_Err_Unimplemented_Feature if OpenType validation service is
     1246        unavailable.
     1247
     12482006-06-08  Werner Lemberg  <wl@gnu.org>
     1249
     1250        * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
     1251        errors.
     1252
     12532006-06-07  David Turner  <david@freetype.org>
     1254
     1255        * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
     1256        (T1_Read_Metrics): Fix memory leak which happened when the metrics
     1257        file doesn't have kerning pairs.  This fixes Savannah bug #16768.
     1258
     12592006-06-06  David Turner  <david@freetype.org>
     1260
     1261        Fix memory leak described in Savannah bug #16759.
     1262
     1263        We change `ps_unicodes_init' so that it also takes a
     1264        `free_glyph_name' callback to release the glyph names returned by
     1265        `get_glyph_name'
     1266
     1267        * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
     1268        Renamed to ...
     1269        (PS_GetGlyphNameFunc): This.
     1270        (PS_FreeGlyphNameFunc): New typedef.
     1271        (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
     1272
     1273        * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
     1274        argument.
     1275        (cff_sid_free_glyph_name): New function.
     1276        (cff_cmap_unicode_init): Updated.
     1277
     1278        * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
     1279
     1280        * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
     1281        PS_FreeGlyphNameFunc and use it.
     1282
     1283
     12842006-06-04  David Turner  <david@freetype.org>
     1285
     1286        * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
     1287        `item_size == 0' as well -- though this sounds weird, it can
     1288        theorically happen.  This fixes Savannah bug #16669.
     1289
     1290        * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
     1291        of `face->num_glyphs' which missed the last glyph, due to
     1292        the offset-by-1 computation, since the PFR format doesn't
     1293        guarantee that glyph index 0 corresponds to the `missing
     1294        glyph.  This fixes Savannah bug #16668.
     1295
     12962006-05-25  Werner Lemberg  <wl@gnu.org>
     1297
     1298        * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
     1299        `-no-undefined'.  Reported by Christian Biesinger.
     1300
     13012006-05-19  Brian Weed  <bw@imaginengine.com>
     1302
     1303        * builds/win32/visualc/freetype.dsp: Release libraries no longer
     1304        have debug information, and debug libraries use `C7 compatible'
     1305        debug info.
     1306
     13072006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1308
     1309        Apply patch by Derek Clegg to fix two memory leaks in the MacOS
     1310        resource fork handler.  This fixes Savannah bug #16631.
     1311
     1312        * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
     1313        `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
     1314
     1315        * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
     1316        Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
     1317
     13182006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1319
     1320        * build/unix/configure.raw: Add a fallback to disable Carbon
     1321        dependency, if configured with no options on Mac OS X.
     1322
     13232006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1324
     1325        * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
     1326        its content cannot be parsed as supported font.  This fixes
     1327        the second part of Savannah bug #16590.
     1328
     13292006-05-18  Werner Lemberg  <wl@gnu.org>
     1330
     1331        * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
     1332        [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
     1333
     13342006-05-17  David Turner  <david@freetype.org>
     1335
     1336        This is a major patch used to drastically improve the performance of
     1337        loading glyphs.  This both speeds up loading the glyph vectors
     1338        themselves and the auto-fitter module.
     1339
     1340        We now use inline assembler code with GCC to implement `FT_MulFix',
     1341        which is probably the most important function related to the
     1342        engine's performance.
     1343
     1344        The resulting speed-up is about 25%.
     1345
     1346
     1347        * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
     1348        `cursor' and `limit'.
     1349
     1350        * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
     1351        New functions.
     1352        (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
     1353        [TEST]: Remove.
     1354
     1355        * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
     1356        code.
     1357
     1358        * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
     1359        `FT_ZERO'
     1360        (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
     1361        (af_glyph_hints_reload: Rewrite recognition of weak points.
     1362
     1363        * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
     1364        constant values out of the loops.
     1365
     1366        * src/autofit/aftypes.h: Updated.
     1367
     1368        * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
     1369
     1370        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
     1371        product to get orientation.
     1372
     1373        * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
     1374        (FT_Stream_OpenGzip): Use it to handle small files directly in
     1375        memory.
     1376
     1377        * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
     1378        Improve performance.
     1379
     1380        * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
     1381        `limit'.
     1382
     1383        (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
     1384        TT_Load_Composite_Glyph): Updated.  Add threshold to protect against
     1385        exceedingly large values of number of contours.  Speed up by
     1386        reducing the number of loops.
     1387
     1388        * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
     1389
     1390
     1391        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
     1392        used to detect rogue clients from 4 to 16.  This is to prevent some
     1393        segmentation faults with fonts like `KozMinProVI-Regular.otf' which
     1394        comes from the Japanese Adobe Reader Asian Font pack.
     1395
     13962007-05-17  Werner Lemberg  <wl@gnu.org>
     1397
     1398        * src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
     1399        fixes the first part of Savannah bug #16590.
     1400
     14012006-05-16  Werner Lemberg  <wl@gnu.org>
     1402
     1403        * docs/PROBLEMS: Updated icl issues.
     1404
    114052006-05-12  Werner Lemberg  <wl@gnu.org>
    21406
    31407
    41408        * Version 2.2.1 released.
    5         ===============++========
     1409        =========================
    61410
    71411
     
    371441
    3814422006-05-11  Masatake YAMATO  <jet@gyve.org>
    39  
    40         * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if 
     1443
     1444        * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
    411445        read system call returns -1.
    421446        Remove a redundant parenthesis.
     
    7092113        (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
    7102114        compatibility code.
     2115
     2116        * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
     2117        support rogue clients compiled against 2.1.7 to work correctly.
     2118        This probably explains the GNUstep crashes with the second release
     2119        candidate.
    7112120
    71221212006-02-23  Chia-I Wu  <b90201047@ntu.edu.tw>
     
    9552364
    9562365        Clean up the SFNT_Interface.  In this final pass, `load_hmtx' is
    957         splitted from `load_hhea'.
     2366        split from `load_hhea'.
    9582367
    9592368        * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
     
    10122421        * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
    10132422        parsing code is moved here.
    1014         New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
     2423        New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
    10152424        `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
    10162425
     
    28174226----------------------------------------------------------------------------
    28184227
    2819 Copyright 2005, 2006 by
     4228Copyright 2005, 2006, 2007 by
    28204229David Turner, Robert Wilhelm, and Werner Lemberg.
    28214230
Note: See TracChangeset for help on using the changeset viewer.