Ignore:
Timestamp:
Dec 30, 2009, 5:28:30 PM (11 years ago)
Author:
rbri
Message:

PDF plugin: freetype library updated to version 2.3.11

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/poppler/freetype2/ChangeLog

    r262 r276  
     12009-10-10  Werner Lemberg  <wl@gnu.org>
     2
     3        * Version 2.3.11 released.
     4        ==========================
     5
     6
     7        Tag sources with `VER-2-3-11'.
     8
     9        * docs/VERSION.DLL: Update documentation and bump version number to
     10        2.3.11.
     11
     12        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
     13        builds/win32/visualc/freetype.dsp,
     14        builds/win32/visualc/freetype.vcproj,
     15        builds/win32/visualce/index.html,
     16        builds/win32/visualce/freetype.dsp,
     17        builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
     18
     19        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
     20
     21        * builds/unix/configure.raw (version_info): Set to 9:22:3.
     22
     232009-10-10  Werner Lemberg  <wl@gnu.org>
     24
     25        * docs/CHANGES, docs/release: Updated.
     26
     272009-10-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     28
     29        * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
     30        truncation.  Reported by Martin von Gagern and Peter Volkov.
     31        https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
     32
     332009-10-06  Werner Lemberg  <wl@gnu.org>
     34
     35        * Version 2.3.10 released.
     36        ==========================
     37
     38
     39        Tag sources with `VER-2-3-10'.
     40
     41        * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
     42        than a single digit.
     43        (dist): We now use git.
     44
     45        * docs/VERSION.DLL: Update documentation and bump version number to
     46        2.3.10.
     47
     48        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
     49        builds/win32/visualc/freetype.dsp,
     50        builds/win32/visualc/freetype.vcproj,
     51        builds/win32/visualce/index.html,
     52        builds/win32/visualce/freetype.dsp,
     53        builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
     54
     55        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
     56
     57        * builds/unix/configure.raw (version_info): Set to 9:21:3.
     58
     592009-10-06  Werner Lemberg  <wl@gnu.org>
     60
     61        Fix `make multi'.
     62
     63        * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
     64
     65        * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
     66
     672009-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     68
     69        [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
     70        Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
     71        Now these functions should be called with FTC_Node or FTC_MruNode
     72        variable, and the caller should cast them to appropriate pointers to
     73        concrete data.  These tricky casts can GCC-4.4 optimizer (-O2)
     74        confused and the crashing binaries are generated.
     75
     76        * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
     77        Now the 4th argument `node' of this function should be typed as
     78        FTC_MruNode.
     79
     80        * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
     81        implementation, new temporal variable FTC_MruNode `_mrunode' to take
     82        the pointer from FTC_MRULIST_LOOKUP_CMP().  For non-inline
     83        implementation, tricky cast is dropped.
     84
     85        * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
     86        to FTC_SizeNode.
     87        (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
     88        `mrunode', and FTC_SIZE_NODE() is inserted.
     89        (FTC_FACE_NODE): New macro casting to FTC_FaceNode.
     90        (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
     91        `mrunode', and FTC_FACE_NODE() is inserted.
     92
     93        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
     94        `node' from FTC_INode to FTC_Node.  Extra casting macro FTC_NODE()
     95        is dropped.
     96        (FTC_ImageCache_LookupScaler): Ditto.
     97        (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
     98        FTC_Node.  Extra casting macro FTC_NODE() is dropped.  FTC_SNODE()
     99        is inserted.
     100        (FTC_SBitCache_LookupScaler): Ditto.
     101
     102        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
     103        `node' from FTC_CMapNode to FTC_Node.  Extra casting macro
     104        FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
     105
     1062009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     107
     108        [cache, psaux, type1] Fix for multi build.
     109        In multi build, some cpp functions are left as unresolved symbols.
     110
     111        * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
     112
     113        * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
     114        FIXED_TO_INT().
     115        * src/type1/t1gload.c: Ditto.
     116        * src/type1/t1objs.c: Ditto.
     117
     1182009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     119
     120        [autofit] Fix for multi build.
     121
     122        * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
     123        FT_DECLARE_MODULE() macro in multi build.
     124
     125        * src/autofit/aflatin.c: Include <ft2build.h> to handle
     126        FT_ADVANCES_H correctly in multi build.
     127
     1282009-09-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     129
     130        [cache] Check the face filled by FTC_Manager_LookupFace().
     131
     132        * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
     133        immediately if FTC_Manager_LookupFace() fills face by NULL.  Such
     134        case can occur when the code is optimized by GCC-4.2.x.
     135
     1362009-09-23  Werner Lemberg  <wl@gnu.org>
     137
     138        * docs/CHANGES: Updated.
     139
     1402009-09-12  Werner Lemberg  <wl@gnu.org>
     141
     142        [raster] Fix 5-levels grayscale output.
     143        This was broken since version 2.3.0.
     144
     145        * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
     146        were then computed dynamically).
     147        (Vertical_Gray_Sweep_Step): Updated.
     148
     149        (ft_black_render): Initialize `worker->gray_lines' (problem found by
     150        valgrind).
     151
     152        (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
     153        comment out.
     154
     1552009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     156
     157        Improve configure.raw for cross build.
     158
     159        * builds/unix/configure.raw: Remove temporal files created by the
     160        suffix checking for CC_BUILD.  Set XX_ANSIFLAGS and XX_CFLAGS when
     161        cross compiler is GCC.  AC_PROG_CC checks whether the cross compiler
     162        is GCC, its result is stored in GCC.
     163
     1642009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     165
     166        [BDF] Modify hash API to take size_t value instead of void *.
     167
     168        The hash API in BDF driver is designed to be generic, it takes
     169        void * typed data.  But BDF driver always gives an unsigned long
     170        integer (the index to a property).  To reduce non-essential
     171        casts from unsigned long to void* and from void* to unsigned
     172        long, the hash API is changed to take size_t integer.
     173        The issue of incompatible cast between unsigned long and void*
     174        on LLP64 platform is reported by NightStrike from MinGW-Win64
     175        project.  See
     176        http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
     177
     178        * src/bdf/bdf.h: The type of hashnode->data is changed from
     179        void* to size_t.
     180
     181        * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
     182        void* data.
     183        (bdf_create_property): Get the name length of new property by
     184        size_t variable, with a cut-off at FT_ULONG_MAX.
     185        (_bdf_set_default_spacing): Get the name length of the face by
     186        size_t variable, with a cut-off at 256.
     187        (bdf_get_property): Get the property id by size_t variable to
     188        reduce the casts between 32-bit prop ID & hashnode->data during
     189        simple copying.
     190        (_bdf_add_property): Ditto.
     191        (_bdf_parse_start): Calculate the index to the property array
     192        by size_t variable.
     193        (bdf_get_font_property): Drop a cast to unsigned long.
     194
     1952009-09-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     196
     197        [Win64] Improve the computation of random seed from stack address.
     198
     199        On LLP64 platform, the conversion from pointer to FT_Fixed need
     200        to drop higher 32-bit.  Explict casts are required. Reported by
     201        NightStrike from MinGW-w64 project.  See
     202        http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
     203
     204        * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
     205
     206        * src/psaux/t1decode.c: Ditto.
     207
     208
     2092009-09-03  Werner Lemberg  <wl@gnu.org>
     210
     211        [raster] Improvements for stand-alone mode.
     212
     213        * src/raster/rules.mk: Don't handle ftmisc.h.  It is needed for
     214        stand-alone mode only.
     215
     216        * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
     217        FT_Realloc_Func): Copy declarations from ftsystem.h.
     218
     2192009-09-02  Bram Tassyns  <bramt@enfocus.be>
     220
     221        Improve vertical metrics calculation (Savannah bug #27364).
     222
     223        The calculation of `vertBearingX' is not defined in the OTF font
     224        spec so FreeType does a `best effort' attempt.  However, this value
     225        is defined in the PDF and PostScript specs, and that algorithm is
     226        better than the one FreeType currently uses:
     227
     228          FreeType: Use the middle of the bounding box as the X coordinate
     229                    of the vertical origin.
     230
     231          Adobe PDF spec: Use the middle of the horizontal advance vector as
     232                          the X coordinate of the vertical origin.
     233
     234        FreeType's algorithm goes wrong if you have a really small glyph
     235        (like the full-width, circle-like dot at the end of the sentence, as
     236        used in CJK scripts) with large bearings.  With the FreeType
     237        algorithm this dot gets centered on the baseline; with the PDF
     238        algorithm it gets the correct location (in the top right).  Note
     239        that this is a serious issue, it's like printing the dot at the end
     240        of a Roman sentence at the center of the textline instead of on the
     241        baseline like it should. So i believe the PDF spec's algorithm
     242        should be used in FreeType as well.
     243
     244        The `vertBearingY' value for such small glyphs is also very strange
     245        if no `vmtx' information is present, since the height of the bbox is
     246        not representable for the height of the glyph visually (the
     247        whitespace up to the baseline is part of the glyph).  The fix also
     248        includes some code for a better estimate of `vertBearingY'.
     249
     250        * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
     251        is now calculated as described by the Adobe PDF Spec.  Estimate for
     252        `vertBearingY' now works better for small glyphs completely above or
     253        below the baseline into account.
     254
     255        * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
     256        calculated as described by the Adobe PDF Spec.  Vertical metrics
     257        information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
     258        was not defined.
     259
     260        * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
     261        now calculated as described by the Adobe PDF Spec.
     262
     2632009-09-01  John Tytgat  <John.Tytgat@esko.com>
     264
     265        Fix custom cmap for empty Type 1 font (Savannah bug #27294).
     266
     267        * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
     268        comment to reflect revised code_last meaning.
     269        * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
     270        (T42_Open_Face): Assign max_char as highest character code + 1 and
     271        use this for T1_EncodingRecRec_::code_last.
     272        * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
     273        T1_EncodingRecRec_::code_last meaning.
     274
     2752009-08-25  Werner Lemberg  <wl@gnu.org>
     276
     277        Fix rendering of horizontally compressed CFFs.
     278        Bug reported by Ivan Nincic <inincic@pdftron.com>.
     279
     280        * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
     281        `font_matrix' also.
     282
     283        * docs/CHANGES: Updated.
     284
     2852009-08-03  suyu0925@gmail.com
     286
     287        Don't call `ft_fseek' every time when executing `ft_fread'.
     288
     289        * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
     290        (ft_ansi_stream_io): Implement it.
     291
     2922009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     293
     294        sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
     295       
     296        * src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
     297        tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
     298        tt_cmap14_variant_chars): Correct mismatches from
     299        FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
     300        are replaced by FT_UInt32 arguments.
     301
     3022009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     303
     304        sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
     305
     306        * src/sfnt/ttcmap.c (tt_cmap12_char_next):
     307        Insert explicit cast from FT_UFast to FT_UInt32
     308        for return value.
     309
     3102009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     311
     312        psaux: Fix a few casts to FT_Int32 value.
     313
     314        * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
     315        Fix a few casts setting `value' from FT_Long to FT_Int32,
     316        because `value' is typed as FT_Int32 since 2009-06-22.
     317
     3182009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     319
     320        sfnt: Fix a data type mismatching with its source.
     321
     322        * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
     323        type of `gindex' from FT_ULong to FT_UInt because
     324        it is set by FT_UInt tt_cmap13_char_map_binary() or
     325        TT_CMap13->cur_gindex.
     326
     3272009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     328
     329        sfnt: Extend a few local variables to load 32-bit values.
     330
     331        * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
     332        and `kern' to load 32-bit values.
     333
     3342009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     335
     336        pfr: Extend `num_aux' to take 32-bit value.
     337
     338        * src/pfr/pfrload.c (pfr_phy_font_load): Extend
     339        `num_aux' to load 32-bit value.
     340
     3412009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     342
     343        pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
     344
     345        * src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
     346        as FT_ULong value from PCF file, but truncate it as
     347        int to fit PCF_Face->nprops.  The number of truncated
     348        properties is shown in the trace message.
     349
     3502009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     351
     352        gxvalid: Extend a few local variables to reduce the casts.
     353
     354        * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
     355        Extend `type' and `rest' to take FT_ULong values.
     356
     3572009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     358
     359        gxvalid: Extend `settingTable' to take 32-bit offset.
     360
     361        * src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
     362        Extend `settingTable' to take 32-bit offset.
     363
     3642009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     365
     366        autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
     367
     368        * src/autofit/afglobal.c (af_face_globals_is_digit,
     369        af_face_globals_compute_script_coverage): Cast FT_Long
     370        globals->glyph_count to FT_ULong, to compare with FT_UInt
     371        gindex.
     372
     3732009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     374
     375        smooth: Exclude 16-bit system in invalid pitch/height check.
     376
     377        * src/smooth/ftsmooth.c (ft_smooth_render_generic):
     378        pitch and height are typed as FT_UInt but checked to fit
     379        16-bit range, to avoid the overflows.  On 16-bit system,
     380        this checking inserts a conditional that never occurs.
     381
     3822009-07-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     383
     384        cff: Type large constants > 0x7FFF as long for 16-bit systems.
     385
     386        * src/cff/cffload.c (cff_charset_load): Type large
     387        constants > 0x7FFF as long, because normal constants
     388        are typed signed integer that is less than 0x8000 on
     389        16-bit systems.
     390
     3912009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     392
     393        base: Remove an unused variable.
     394
     395        * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
     396        unused variable `library'.  glyph->library is used.
     397
     3982009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     399
     400        cache: Check higher bits in flags for non ILP32 systems.
     401
     402        4 public functions ought to take FT_ULong flags, but take
     403        FT_UInt flags. To keep binary compatibility, we drop higher
     404        bits on non ILP32 platforms,
     405                ILP64 systems: No drop occurs.
     406                LP64 systems: Higher bits are not used.
     407                16-bit systems: Drop can occur.
     408        See
     409        http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
     410        These functions will be refined to take FT_ULong flags in
     411        next bump with incompatible API change.
     412
     413        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
     414        Check `flags' in `type', the 2nd argument.
     415        (FTC_SBitCache_Lookup): Ditto.
     416        (FTC_ImageCache_LookupScaler): Check `load_flags',
     417        the 3rd argument.
     418        (FTC_SBitCache_LookupScaler): Ditto.
     419
     4202009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     421
     422        sfnt: Ignore invalid GIDs in glyph name lookup.
     423
     424        * include/freetype/internal/fttrace.h:
     425        New trace module for sfdriver.c is added.
     426
     427        * src/sfnt/sfdriver.c (sfnt_get_name_index):
     428        Restrict glyph name lookup to FT_UInt GID.
     429        Genuine TrueType can hold 16-bit glyphs.
     430
     4312009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     432
     433        pcf: Fix a comparison between FT_Long and FT_ULong.
     434
     435        * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
     436        if PCF_Face->nemetrics is negative.
     437
     4382009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     439
     440        gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
     441
     442        * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
     443        Extend the 3rd argument `nFeatureFlags' to FT_ULong.
     444        * src/gxvalid/gxvmort.h: Ditto.
     445
     4462009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     447
     448        sfnt: Insert explicit cast for LP64 system.
     449
     450        * src/sfnt/ttkern.c (tt_face_load_kern): Insert
     451        cast from unsigned long to FT_UInt32.
     452
     4532009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     454
     455        gxvalid: Guarantee `just' table size upto 32-bit.
     456
     457        * src/gxvalid/gxvjust.c (gxv_just_validate):
     458        The type of `offset' is changed from FT_UInt to
     459        FT_Offset, for 16-bit platforms.
     460
     4612009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     462
     463        gxvalid: Guarantee `trak' table size upto 32-bit.
     464
     465        * src/gxvalid/gxvtrak.c (gxv_trak_validate):
     466        The type of `offset' is changed from FT_UInt to
     467        FT_Offset, for 16-bit platforms.
     468
     4692009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     470
     471        type1: Fix a data type mismatching with its source.
     472
     473        * include/freetype/internal/t1types.h: The type of
     474        T1_Face->buildchar is matched with T1_Decorder->top.
     475
     4762009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     477
     478        pfr: Fix a data type mismatching with its source.
     479
     480        * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
     481        is extended from FT_UInt32 to FT_Offset, because it is
     482        calculated with the pointer difference, in
     483        pfr_extra_item_load_kerning_pairs().
     484
     4852009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     486
     487        pfr: Fix a data type mismatching with its source.
     488
     489        * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset
     490        is extended from FT_UInt32 to FT_Offset, because it is
     491        calculated with the pointer difference in pfr_phy_font_load().
     492
     4932009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     494
     495        pfr: Fix a data type mismatching with its source.
     496
     497        * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
     498        is extended from FT_UInt32 to FT_Long, because it is
     499        loaded by FT_STREAM_POS() in pfr_phy_font_load().
     500
     5012009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     502
     503        smooth: Improve the format in debug message.
     504
     505        * src/smooth/ftgrays.c (gray_dump_cells): Improve the
     506        format specifications to dump variables.
     507
     5082009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     509
     510        sfnt: Fix a data type mismatching with its source.
     511
     512        * src/sfnt/sfobjs.c (sfnt_load_face): The type of
     513        local `flags' is matched with FT_Face->face_flags.
     514
     5152009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     516
     517        psaux: Fix a data type mismatching with its source.
     518
     519        * include/freetype/internal/psaux.h: The type of
     520        T1_DecorderRec.buildchar is matched with
     521        T1_DecorderRec.top.
     522
     5232009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     524
     525        truetype: Extend TrueType GX packed deltas to FT_Offset.
     526
     527        * src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
     528        The type of 2nd argument `delta_cnt' is changed from
     529        FT_Int to FT_Offset, because its source can be cvt
     530        table size calculated from stream position.
     531
     5322009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     533
     534        truetype: Extend mmvar_len to hold size_t values.
     535
     536        * src/truetype/ttgxvar.h: The type of
     537        GX_BlendRec.mmvar_len is changed from FT_Int to
     538        FT_Offset, because TT_Get_MM_Var() calculates it
     539        by sizeof() results.
     540
     5412009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     542
     543        truetype: Check invalid function number in IDEF instruction.
     544
     545        * src/truetype/ttinterp.c (Ins_IDEF): Check
     546        if the operand fits to 8-bit opcode limitation.
     547
     5482009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     549
     550        truetype: Check invalid function number in FDEF instruction.
     551
     552        * src/truetype/ttinterp.c (Ins_FDEF): Check
     553        if the operand fits 16-bit function number.
     554
     5552009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     556
     557        truetype: Truncate the deltas of composite glyph at 16-bit values.
     558
     559        * src/truetype/ttgload.c (load_truetype_glyph):
     560        Insert cast from FT_Long (deltas[i].{x,y}) to
     561        FT_Int16 in the summation of deltas[] for composite
     562        glyphs.  Because deltas[i] is typed as FT_Pos,
     563        its component x, y are typed as FT_Long, but
     564        their sources are always FT_Int16 when they are
     565        loaded by ft_var_readpackeddeltas().  However,
     566        the limitation about the summed deltas is unclear.
     567
     5682009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     569
     570        truetype: Truncate the instructions upto 16-bit per a glyph.
     571
     572        * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
     573        the instructions upto 16-bit length per a glyph.
     574
     5752009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     576
     577        truetype: Cast the numerical operands to 32-bit for LP64 systems.
     578
     579        * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP,
     580        Ins_MIRP): Insert cast from long (args[], the
     581        operands passed to TrueType operator) to FT_Int32
     582        (the argument of TT_MulFix14()).
     583
     5842009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     585
     586        truetype: Cast the project vector to 32-bit for LP64 system.
     587
     588        * src/truetype/ttinterp.c (Project, DualProject):
     589        Insert casts from FT_Pos (the arguments `dx', `dy')
     590        to FT_UInt32 (the argument to TT_DotFix14()).
     591
     5922009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     593
     594        truetype: Cast the scaling params to 32-bit for LP64 system.
     595
     596        * src/truetype/ttgload.c (TT_Process_Composite_Component):
     597        Insert casts from long (return value of FT_MulFix()) to
     598        FT_Int32 (the argument to FT_SqrtFixed()).
     599
     6002009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     601
     602        sfnt: Cast a character code to FT_UInt32 for LP64 system.
     603
     604        * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
     605        tt_cmap14_variants, tt_cmap14_char_variants,
     606        tt_cmap14_def_char_count, tt_cmap14_get_def_chars,
     607        tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars)
     608        Insert casts when FT_UInt32 variable is loaded by
     609        TT_NEXT_{UINT24|ULONG}.  Because most of them are
     610        compared with FT_UInt32 values in public API, replacing
     611        FT_UFast is not recommended.
     612
     6132009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     614
     615        sfnt: Cast a character code to FT_UInt32 for LP64 system.
     616
     617        * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
     618        Insert the casts from unsigned long constant to
     619        FT_UInt32.
     620
     6212009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     622
     623        sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
     624
     625        * include/freetype/internal/tttypes.h: The type
     626        of TT_BDF->string_size is extended from FT_UInt32
     627        to FT_ULong, because BDF specification does not
     628        restrict the length of string.
     629        * src/sfnt/ttbdf.c: The scratch variable `strings'
     630        to load TT_BDF->string_size is matched with
     631        TT_BDF->string_size.
     632
     6332009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     634
     635        psaux: Handle the string length by FT_Offset variables.
     636
     637        * src/psaux/afmparse.c (afm_parser_next_key,
     638        afm_tokenize, afm_parse_track_kern,
     639        afm_parse_kern_pairs, afm_parse_kern_data,
     640        afm_parser_skip_section, afm_parser_parse):
     641        The length of key is handled by FT_Offset,
     642        instead of FT_UInt.  Although the length of
     643        PostScript strings or name object is 16-bit,
     644        AFM_STREAM_KEY_LEN() calculates the length
     645        from the pointer difference.
     646
     647        * src/psaux/afmparse.h (afm_parser_next_key):
     648        Ditto.
     649
     6502009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     651
     652        pcf: Fix some data types mismatching with their sources.
     653
     654        * src/pcf/pcfread.c (pcf_get_bitmaps): The types
     655        of `nbitmaps', `i', `sizebitmaps' are matched with
     656        the type of area FT_Bitmap.pitch * FT_Bitmap.rows.
     657
     6582009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     659
     660        pcf: Handle the string length by size_t variables.
     661
     662        * src/pcf/pcfread.c (pcf_interpret_style): The types
     663        of nn, len, lengths[4] are changed to size_t, because
     664        they are loaded by (or compared with) ft_strlen().
     665
     666        * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap,
     667        FourByteSwap): The type of the 2nd argument `nbytes'
     668        is changed to size_t, for similarity with ANSI C
     669        string functions.
     670
     671        * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of
     672        `bytes' is changed to FT_Offset, because it is passed
     673        to FT_ALLOC(), via ft_glyphslot_alloc_bitmap().  At
     674        least, using unsigned type is better.
     675
     6762009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     677
     678        pcf: Fix some data types mismatching with their sources.
     679
     680        * src/pcf/pcfread.c (pcf_seek_to_table_type,
     681        pcf_has_table_type): The type of 3rd argument
     682        `ntables' is matched with PCF_Toc->count.
     683
     6842009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     685
     686        otvalid: Truncate the glyph index to 16-bit.
     687
     688        * src/otvalid/otvalid.c (otv_validate): Checks
     689        face->num_glyphs does not exceed 16-bit limit,
     690        pass FT_UInt num_glyphs to backend functions
     691        otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate().
     692
     6932009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     694
     695        cache: Insert explict casts for LP64 systems.
     696
     697        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
     698        FTC_SBitCache_Lookup): The type of FTC_ImageType->width
     699        is FT_Int, so the cast to unsigned larger type FT_ULong
     700        is introduced for the comparisons with 0x10000L for
     701        LP64 platform.
     702
     7032009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     704
     705        cache: Fix some data types mismatching with their sources.
     706
     707        * src/cache/ftccache.h: The type of return value
     708        by FTC_Node_WeightFunc function is changed to
     709        FT_Offset.  The type of FTC_CacheClass->cache_size
     710        is changed to FT_Offset, too.
     711
     712        * src/cache/ftccback.h (ft_inode_weight,
     713        ftc_snode_weight): Ditto.
     714
     715        * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
     716
     717        * src/cache/ftcimage.c (ftc_inode_weight,
     718        FTC_INode_Weight): Ditto.
     719
     720        * src/cache/ftcsbits.c (ftc_snode_weight,
     721        FTC_SNode_Weight): Ditto.
     722
     723        * src/cache/ftcmru.h: The type of
     724        FTC_MruListClass->node_size is changed to FT_Offset,
     725        because it is passed to FT_ALLOC() to specify the
     726        size of buffer.
     727
     7282009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     729
     730        XXX_cmap_encoding_char_next() return FT_UInt32 values.
     731
     732        * include/freetype/internal/services/svpscmap.h:
     733        The size of the charcode value returned by
     734        the function typed PS_Unicodes_CharNextFunc is
     735        matched with its input charcode value.
     736
     737        * src/cff/cffmap.c (cff_cmap_encoding_char_next,
     738        cff_cmap_unicode_char_next): Ditto.
     739
     740        * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
     741        Ditto.
     742
     743        * src/psaux/t1cmap.c (t1_cmap_std_char_next,
     744        t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
     745        Ditto.
     746
     747        * src/psnames/psmodule.c (ps_unicodes_char_next):
     748        Ditto.
     749
     750        * src/winfonts/winfnt.c (fnt_cmap_char_next):
     751        Ditto.
     752
     753        * src/sfnt/ttcmap.c (tt_cmap0_char_next,
     754        tt_cmap2_char_next, tt_cmap4_char_next,
     755        tt_cmap6_char_next, tt_cmap10_char_next,
     756        tt_cmap12_char_next, tt_cmap13_char_next): Ditto.
     757        (tt_cmap14_char_variants): Handle base unicode
     758        codepoint by FT_UInt32 variable to avoid overflow
     759        on 16-bit platforms.
     760        (tt_cmap14_ensure): The type of `num_results' is
     761        extend to FT_UInt32, to cover unsigned 32-bit
     762        `numVarSelectorRecords' in cmap14 table header.
     763
     7642009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     765
     766        truetype: Extend TT_Face->num_locations for broken TTFs.
     767
     768        * include/freetype/internal/tttypes.h:
     769        TT_Face->num_locations are extended from FT_UInt
     770        to FT_ULong, to stand with broken huge loca table.
     771        Some people insists there are broken TTF including
     772        the glyphs over 16-bit limitation, in PRC market.
     773        * src/truetype/ttpload.c (tt_face_load_loca):
     774        Remove unrequired 16-bit truncation for FT_UInt
     775        TT_Face->num_locations.
     776
     7772009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     778
     779        smooth: Fix some data types mismatching with their sources.
     780
     781        * src/smooth/ftgrays.c: The type of `TCoord' is
     782        matched to `TPos', because they are mixed in
     783        gray_set_cell().  The type of TCell->x is extended
     784        to `TPos', because gray_find_cell() sets it by
     785        TWorker.ex.  The type of TCell->cover is extended
     786        to `TCoord', because gray_render_scanline() adds
     787        TCoord value to it.  The type of TWork.cover is matched
     788        with TCell->cover.  The types of
     789        TWork.{max_cells,num_cells} are changed to FT_PtrDist,
     790        because they are calculated from the memory addresses.
     791        The type of TWork.ycount is changed to TPos, because
     792        it is calculated from TPos variables.
     793        (gray_find_cell): The type of `x' is matched with
     794        its initial value ras.ex.
     795        (gray_render_scanline): The types of `mod', `lift'
     796        and `rem' are changed to TCoord, because their values
     797        are set with explicit casts to TCoord.  When ras.area
     798        is updated by the differential values including
     799        `delta', they are explicitly casted to TArea, because
     800        the type of `delta' is not TArea but TCoord.
     801        (gray_render_line): The type of `mod' is extended
     802        from int to TCoord, because (TCoord)dy is added to mod.
     803        (gray_hline): The argument `acount' is extended to
     804        TCoord, to match with the parameters in the callers.
     805
     8062009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     807
     808        cff: Fix some data types mismatching with their sources.
     809
     810        * src/cff/cffobjs.c (cff_face_init): The type of
     811        `scaling' is matched with the scaling parameter
     812        in FT_Matrix_Multiply_Scaled() and
     813        FT_Vector_Transform_Scaled().
     814
     815        * src/cff/cffparse.c (cff_parse_real): The type of
     816        `power_ten', `scaling', `exponent_add',
     817        `integer_length', `fraction_length',
     818        `new_fraction_length' and `shift' are matched with
     819        the type of `exponent' to avoid unexpected truncation.
     820        (cff_parse_fixed_scaled): The type of `scaling' is
     821        matched with the `scaling' argument to
     822        cff_parse_real().
     823        (cff_parse_fixed_dynamic): Ditto.
     824        (cff_parse_font_matrix): The type of `scaling' is
     825        matched with the `scaling' argument to
     826        cff_parse_dynamic().
     827
     8282009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     829
     830        autofit: Fix some data types mismatching with their sources.
     831
     832        * src/autofit/afglobal.c: Correct the type of
     833        AF_FaceGlobalsRec.glyph_count to match with
     834        FT_Face->num_glyphs.
     835        (af_face_globals_compute_script_coverage):
     836        Insert explicit cast to compare
     837        FT_Long AF_FaceGlobalsRec.glyph_count versus
     838        FT_UInt gindex.  The type of `nn' is changed
     839        to scan glyph index upto AF_FaceGlobalsRec.glyph_count.
     840        (af_face_globals_get_metrics): The type of `script_max'
     841        is changed to cover size_t value.  Insert explicit cast
     842        to compare FT_Long AF_FaceGlobalsRec.glyph_count versus
     843        FT_UInt gindex.
     844
     845        * src/autofit/afhints.c (af_axis_hints_new_segment):
     846        Insert explicit cast to calculate `big_max' from
     847        integer and size_t values.
     848        (af_axis_hints_new_edge): Ditto.
     849
     850        * src/autofit/aflatin.c (af_latin_metrics_init_blues):
     851        The type of `best_y' is matched to FT_Vector.y.
     852        (af_latin_compute_stem_width): The type of `delta' is
     853        matched to `dist' and `org_dist'.
     854
     8552009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     856
     857        autofit: Count the size of the memory object by ptrdiff_t.
     858
     859        * src/autofit/afcjk.c (af_cjk_hint_edges): The
     860        number of edges `n_edges' should be counted by
     861        FT_PtrDist variable instead of FT_Int.
     862
     863        * src/autofit/aflatin.c (af_latin_hint_edges):
     864        Ditto.
     865
     866        * src/autofit/aftypes.h: In AF_ScriptClassRec,
     867        the size of metric `script_metrics_size' should
     868        be counted by FT_Offset variable instead of FT_UInt.
     869
     870        * src/autofit/afhints.c
     871        (af_glyph_hints_align_strong_points): The cursors
     872        for the edges `min', `max', `mid' in the memory
     873        buffer should be typed FT_PtrDist.
     874
     8752009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     876
     877        autofit: Fix for unused variable `first'.
     878
     879        * src/autofit/afhints.c (af_glyph_hints_reload): Insert
     880        FT_UNUSED() to hide the unused variable warning.
     881
     8822009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     883
     884        Improve bitmap size or pixel variables for 16-bit systems.
     885
     886        * include/freetype/config/ftstdlib.h: Introduce
     887        FT_INT_MIN, to use in signed integer overflow in
     888        16-bit and 64-bit platforms.
     889       
     890        * include/freetype/internal/fttrace.h: Add a tracer
     891        to ftsynth.c.
     892       
     893        * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
     894        invalid strength causing integer overflow on 16-bit
     895        platform.
     896       
     897        * src/base/ftcalc.c (ft_corner_orientation): Change
     898        the internal calculation from FT_Int to FT_Long, to
     899        avoid an overflow on 16-bit platforms.  The caller of
     900        this function should use only the sign of result,
     901        so the cast to FT_Int is acceptable.
     902       
     903        * src/base/ftsynth.c: Introduce a tracer for synth module.
     904        (FT_GlyphSlot_Embolden): Check invalid strength causing
     905        integer overflow on 16-bit platform.
     906       
     907        * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index
     908        in FT2 API is typed as FT_UInt, although BDF driver
     909        can handle unsigned long glyph index internally.  To
     910        avoid integer overflow on 16-bit platform, too large
     911        glyph index should be excluded.
     912        (BDF_Glyph_Load): The glyph pitch in FT2 is typed as
     913        FT_UInt, although BDF driver can handle unsigned long
     914        glyph pitch internally.  To avoid integer overflow on
     915        16-bit platform, too large glyph pitch should not be
     916        returned.
     917       
     918        * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph
     919        pitch in FT2 is typed as FT_UInt, although PFR font
     920        format can include huge bitmap glyph with 24-bit pitch
     921        (however, a glyph spends 16.7 pixel, it's not realistic).
     922        To avoid integer overflow on 16-bit platform, huge
     923        bitmap glyph should be excluded.
     924       
     925        * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is
     926        truncated to fit its type (16-bit short), FT_Span.y
     927        should be truncated to fit its type (FT_Int).
     928       
     929        * src/cff/cffdrivr.c (cff_get_ros): CFF specification
     930        defines the supplement in ROS as a real number.
     931        Truncate it to fit public FT2 API.
     932       
     933        * src/cff/cffparse.c (cff_parse_cid_ros): Warn the
     934        supplement if it is truncated or rounded in cff_get_ros().
     935       
     936        * src/cff/cfftypes.h: Change the type of internal variable
     937        `supplement' from FT_Long to FT_ULong to fit the signedness
     938        to the type in public API.
     939
     9402009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     941
     942        psaux: Prevent invalid arguments to afm_parser_read_vals().
     943
     944        * src/psaux/afmparse.c (afm_parser_read_vals): Change
     945        the type of `n' to prevent negative number how many
     946        arguments should be parsed.
     947
     948        * src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
     949
     9502009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     951
     952        base: Prevent some overflows on LP64 systems.
     953
     954        * src/base/ftadvance.c (FT_Get_Advances): Cast the
     955        unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
     956        for LP64 platforms.
     957
     958        * src/base/ftcalc.c (FT_Sqrt32): All internal variables
     959        are changed to FT_UInt32 from FT_ULong.
     960        (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms.
     961        This function is designed for 32-bit integer, although
     962        their arguments and return value are FT_Long.
     963
     964        * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode'
     965        is within unsigned 32-bit integer for LP64 platforms.
     966        (FT_Face_GetCharVariantIndex): Check `charcode' and
     967        `variantSelector' are within 32-bit integer for LP64
     968        platforms.
     969        (FT_Face_GetCharsOfVariant): Check `variantSelector' is
     970        within unsigned 32-bit integer for LP64 platforms.
     971
     972        * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed
     973        variable `val' and unsigned long constant FT_TRIG_SCALE
     974        are casted to FT_UInt32, when calculates FT_UInt32.
     975        (FT_Vector_Rotate): The long constant 1L is casted to
     976        FT_Int32 to calculate FT_Int32 `half'.
     977
     9782009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     979
     980        cff: Cast the long variables to 32-bit for LP64 systems.
     981
     982        * src/cff/cffdrivr.c (cff_get_advances): Insert
     983        explicit cast to modify a 32-bit flag by unsigned
     984        long constant.
     985
     986        * src/cff/cffobjs.c (cff_face_init): Ditto.
     987
     988        * src/cff/cffgload.c (cff_decoder_parse_charstrings):
     989        Replace the casts to FT_Long by the casts to FT_Int32
     990        for LP64 platforms.
     991
     9922009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     993
     994        pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
     995
     996        * src/pcf/pcf.h: In PCF_PropertyRec.value, the member
     997        `integer' is replaced by `l', `cardinal' is replaced
     998        by `ul', to fix the difference between the name and
     999        the types on LP64 platforms.
     1000
     1001        * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect
     1002        PCF_PropertyRec.value change, with appropriate casts
     1003        to FT_Int32/FT_UInt32.  Their destinations
     1004        BDF_PropertyRec.{integer|cardinal} are public and
     1005        explicitly defined as FT_Int32/FT_UInt32.
     1006
     1007        * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
     1008        Reflect PCF_PropertyRec.value change.
     1009
     10102009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1011
     1012        pcf: Fix some data types mismatching with their sources.
     1013
     1014        * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of
     1015        `code' is matched to PCF_Encoding->enc.
     1016        (pcf_cmap_char_next): The type of `charcode' is matched
     1017        to PCF_Encoding->enc.  When *acharcode is set by charcode,
     1018        an overflow is checked and casted to unsigned 32-bit
     1019        integer.
     1020
     10212009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1022
     1023        bdf: Improve bdf_property_t.value names for LP64 platforms.
     1024
     1025        * src/bdf/bdf.h: In bdf_property_t.value, the member
     1026        `int32' is replaced by `l', `card32' is replaced by
     1027        `ul', to fix the difference between the name and the
     1028        types on LP64 platforms.
     1029
     1030        * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect
     1031        bdf_property_t.value change.
     1032        (bdf_get_bdf_property): Reflect bdf_property_t.value
     1033        change, with appropriate casts to FT_Int32/FT_UInt32.
     1034        Their destinations BDF_PropertyRec.{integer|cardinal}
     1035        are public and explicitly defined as FT_Int32/FT_UInt32.
     1036
     1037        * src/bdf/bdflib.c (_bdf_add_property): Reflect
     1038        bdf_property_t.value change.
     1039
     10402009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1041
     1042        bdf: Fix some data types mismatching with their sources.
     1043
     1044        * src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type
     1045        of `code' is matched with BDF_encoding_el->enc.
     1046        (bdf_cmap_char_next): The type of `charcode' is
     1047        matched with BDF_encoding_el->enc.  When *acharcode
     1048        is set by charcode, an overflow is checked and
     1049        casted to unsigned 32-bit integer.
     1050
     10512009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1052
     1053        autofit: Improve Unicode range definitions.
     1054
     1055        * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro
     1056        to declare a range by two unsigned 32-bit integer,
     1057        to avoid 64-bit range definition on LP64 platforms.
     1058
     1059        * src/autofit/aflatin.c (af_latin_uniranges): Ditto.
     1060
     1061        * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
     1062
     1063        * src/autofit/afindic.c (af_indic_uniranges): Ditto.
     1064
     1065        * src/autofit/afcjk.c (af_cjk_uniranges): Declare
     1066        the ranges by AF_UNIRANGE_REC.
     1067
     10682009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1069
     1070        smooth: Fix a data type mismatching with its source.
     1071
     1072        * src/smooth/ftgrays.c (gray_sweep): The type of
     1073        `area' is matched with the 3rd argument `area'
     1074        of gray_hline().
     1075
     10762009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1077
     1078        smooth: Fix a data type mismatching with its source.
     1079
     1080        * src/smooth/ftgrays.c (gray_render_line): The type
     1081        of `area' is matched with TWorker.area.
     1082
     10832009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1084
     1085        cache: Disable the legacy compatibility if 16-bit system.
     1086
     1087        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude
     1088        the legacy behaviour from 16-bit platform, because the
     1089        current hack cannot detect the caller uses this function
     1090        via legacy convension.
     1091        (FTC_SBitCache_Lookup): Ditto.
     1092
     10932009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1094
     1095        cache: Check 32-bit glyph index on 16-bit systems.
     1096
     1097        * src/cache/ftcbasic.c (ftc_basic_family_get_count):
     1098        Check overflow caused by the face including large
     1099        number of glyphs > 64k.
     1100
     11012009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1102
     1103        cache: Fix some data types mismatching with their sources.
     1104
     1105        * src/cache/ftccache.c (ftc_cache_resize): The types of
     1106        `p', `mask', `count' are matched with FTC_Cache->{p,mask}.
     1107        (FTC_Cache_Clear): The type of `old_index' is matched to
     1108        FTC_Cache->{p,mask}.
     1109
     1110        * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
     1111        of `_idx' is matched with FTC_Cache->{p,mask}.
     1112
     11132009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1114
     1115        cache: Fix some data types mismatching with their sources.
     1116
     1117        * src/cache/ftcsbits.c (ftc_snode_load): The types
     1118        of `xadvance' and `yadvance' are matched with
     1119        FT_GlyphSlot->advance.{x|y}.
     1120
     11212009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1122
     1123        cache: Cast NULL to a required function type explicitly.
     1124
     1125        * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
     1126        Insert explicit cast from NULL to function type.
     1127
     11282009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1129
     1130        fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
     1131
     1132        * include/freetype/fttypes.h (FT_MAKE_TAG):
     1133        Cast the result to FT_Tag.
     1134
     11352009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1136
     1137        psnames: Handle Unicode codepoints by FT_UInt32 variables.
     1138
     1139        * src/psnames/psmodule.c (BASE_GLYPH): Cast the result
     1140        to unsigned 32-bit integer for LP64 platform.
     1141        (ps_unicode_value): Return the value by unsigned 32-bit
     1142        integer instead of unsigned long.
     1143
     11442009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1145
     1146        psaux: Use size_t variable to pass the buffer size.
     1147
     1148        * src/psaux/psaux.h (to_bytes): The type of `max_bytes'
     1149        (the argument to pass the buffer size) is changed to
     1150        size_t, to match with ANSI C string functions.
     1151
     1152        * src/psaux/psconv.h (PS_Conv_StringDecode,
     1153        PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
     1154
     1155        * src/psaux/psconv.c (PS_Conv_StringDecode,
     1156        PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
     1157
     1158        * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
     1159
     1160        * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
     1161
     11622009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1163
     1164        type1: Use size_t variable to pass the string length.
     1165
     1166        * psaux.h: The type of `len' (the argument to pass
     1167        the buffer size to the function in AFM_ParserRec)
     1168        is changed to size_t, to match with ANSI C string
     1169        functions.
     1170
     1171        * t1afm.c (t1_get_index): Ditto.
     1172
     1173        * test_afm.c (dummy_get_index): Ditto.
     1174
     1175        * afmparse.c (afm_parser_read_vals): To call
     1176        AFM_ParserRec.get_index, the length of token
     1177        `len' is casted to size_t.
     1178
     11792009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1180
     1181        cid: Fix some data types mismatching with their sources.
     1182
     1183        * src/cid/cidparse.c (cid_parser_new): The types of
     1184        `read_len' and `stream_len' are matched to
     1185        FT_Stream->size.  Unrequired cast is removed.
     1186
     11872009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1188
     1189        cff: Fix for unused variable `rest'.
     1190
     1191        * src/cff/cffparse.c (cff_parse_real): Insert
     1192        FT_UNUSED() to hide the unused variable warning.
     1193
     11942009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1195
     1196        cff: Fix some data types mismatching with their sources.
     1197
     1198        * src/cff/cffgload.c (cff_slot_load): The types of     
     1199        `top_upm' and `sub_upm' are matched with
     1200        CFF_FontRecDict->units_per_em.
     1201
     1202        * src/cff/cffobjs.c (cff_size_select): Ditto.
     1203        (cff_size_request): Ditto.
     1204
     12052009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1206
     1207        bdf: Fix some data types mismatching with their sources.
     1208
     1209        * bdflib.c (_bdf_list_ensure): The type of `num_items'
     1210        is matched with _bdf_list_t.used.  Also the types of
     1211        `oldsize', `newsize', `bigsize' are matched too.
     1212        (_bdf_readstream): `cursor' is used as an offset to
     1213        the pointer, it should be typed as FT_Offset.  Also
     1214        the types of `bytes', `start', `end', `avail' are matched.
     1215
     1216        * bdfdrivr.c: The type of BDF_CMap->num_encodings is
     1217        matched with FT_CMap->clazz->size.
     1218        (bdf_cmap_char_index): The types of `min', `max', `mid'
     1219        are matched with BDF_CMap->num_encodings.  The type of
     1220        `result' is matched with encoding->glyph.
     1221        (bdf_cmap_char_next): Ditto, the type of `code' is
     1222        matched with BDF_encoding_el.enc.
     1223        (bdf_interpret_style): The type of `lengths' is changed
     1224        to size_t, to take the value by ft_strlen().  Also the
     1225        types of `len', `nn', `mm' are matched.
     1226
     12272009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1228
     1229        sfnt: Count the size of the memory object by ptrdiff_t.
     1230
     1231        * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
     1232        `peroperty_len' is changed from FT_UInt to FT_Offset,
     1233        to match with size_t, which is appropriate type for the
     1234        object in the memory buffer.
     1235
     12362009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1237
     1238        lzw: Count the size of the memory object by ptrdiff_t.
     1239
     1240        * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total,
     1241        stack_size} are changed from FT_UInt to FT_Offset, to match
     1242        with size_t, which is appropriate type for the object in
     1243        the memory buffer.
     1244
     1245        * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of
     1246        `old_size' and `new_size' are changed from FT_UInt to
     1247        FT_Offset, to match with size_t, which is appropriate type
     1248        for the object in the memory buffer.
     1249
     12502009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1251
     1252        otvalid: Count the table size on memory by ptrdiff_t.
     1253
     1254        * src/otvalid/otvgpos.c (otv_ValueRecord_validate):
     1255        Change the type of table size from FT_UInt to
     1256        FT_PtrDist because it is calculated by the memory
     1257        addresses.
     1258
     12592009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1260
     1261        otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
     1262
     1263        * src/otvalid/otvgpos.c (otv_ExtensionPos_validate):
     1264        Extend ExtensionOffset from FT_UInt to FT_ULong, to
     1265        cover 32-bit offset on 16-bit platform.
     1266
     1267        * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
     1268        Ditto.
     1269
     12702009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1271
     1272        ftobjs.c: Prevent an overflow in glyph index handling.
     1273
     1274        * src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
     1275        Improve the cast in comparison to avoid the truncation.
     1276
     12772009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1278
     1279        Improve the variable types in raccess_make_file_name().
     1280
     1281        * src/base/ftrfork.c (raccess_make_file_name):
     1282        Change the type of cursor variable `tmp' to const char*,
     1283        to prevent the unexpected modification of original pathname.
     1284        (raccess_make_file_name): Change the type of new_length
     1285        to size_t.
     1286
     12872009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1288
     1289        ftpatent.c: Fix for unused variable `error'.
     1290
     1291        * src/base/ftpatent.c (_tt_check_patents_in_range):
     1292        Fix warning for unused variable `error'.
     1293
     12942009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1295
     1296        type1: Check invalid string longer than PostScript limit.
     1297
     1298        * src/type1/t1afm.c (t1_get_index): Check invalid string
     1299        which exceeds the limit of PostScript string/name objects.
     1300
     13012009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1302
     1303        gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
     1304
     1305        * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all
     1306        zcalloc() & zfree() by zlib in zutil.c, those in
     1307        ftgzip.c by FT2 are enabled by default.  To use
     1308        zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC.
     1309        See discussion:
     1310        http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
     1311
     13122009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1313
     1314        gzip: Distinguish PureC from TurboC on MSDOS.
     1315
     1316        * src/gzip/zutil.c (zcalloc, zcfree): Enable only for
     1317        MSDOS platform.
     1318
     13192009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1320
     1321        gxvalid: Insert PureC pragma to allow unevaluated variables.
     1322
     1323        * builds/atari/ATARI.H: Insert PureC pragma not to
     1324        warn against set-but-unevaluated variable in gxvalid
     1325        module.
     1326
     13272009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1328
     1329        gxvalid: Pass the union by the pointer instead of the value.
     1330
     1331        * src/gxvalid/gxvcommn.h:
     1332          - Declare new type `GXV_LookupValueCPtr'.
     1333          - Update the type of the 2nd argument to pass GXV_LookupValueDesc
     1334            data to the function prototyped as GXV_Lookup_Value_Validate_Func,
     1335            from GXV_LookupValueDesc to GXV_LookupValueCPtr.
     1336          - Likewise for the function prototyped as
     1337            GXV_Lookup_Fmt4_Transit_Func.
     1338
     1339          - Declare new type `GXV_StateTable_GlyphOffsetCPtr'.
     1340          - Update the type of the 3rd argument to pass
     1341            GXV_StateTable_GlyphOffsetDesc data to the function prototyped
     1342            as GXV_StateTable_Entry_Validate_Func, from
     1343            GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr.
     1344
     1345          - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'.
     1346          - Update the type of the 3rd argument to pass
     1347            GXV_XStateTable_GlyphOffsetDesc data to the function prototyped
     1348            as GXV_XStateTable_Entry_Validate_Func,
     1349            from GXV_XStateTable_GlyphOffsetDesc
     1350            to GXV_XStateTable_GlyphOffsetCPtr.
     1351
     1352        * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate,
     1353        gxv_XClassTable_lookupval_validate,
     1354        gxv_XClassTable_lookupfmt4_transit):
     1355        Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
     1356       
     1357        * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
     1358        gxv_bsln_LookupFmt4_transit): Ditto.
     1359       
     1360        * src/gxvalid/gxvjust.c
     1361        (gxv_just_pcTable_LookupValue_entry_validate,
     1362        gxv_just_classTable_entry_validate,
     1363        gxv_just_wdcTable_LookupValue_validate): Ditto.
     1364       
     1365        * src/gxvalid/gxvkern.c
     1366        (gxv_kern_subtable_fmt1_entry_validate): Ditto.
     1367       
     1368        * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
     1369        gxv_lcar_LookupFmt4_transit): Ditto.
     1370       
     1371        * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
     1372        gxv_opbd_LookupFmt4_transit): Ditto.
     1373       
     1374        * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
     1375        gxv_prop_LookupFmt4_transit): Ditto.
     1376       
     1377        * src/gxvalid/gxvmort4.c
     1378        (gxv_mort_subtable_type4_lookupval_validate): Ditto.
     1379       
     1380        * src/gxvalid/gxvmort0.c
     1381        (gxv_mort_subtable_type0_entry_validate): Update
     1382        from GXV_StateTable_GlyphOffsetDesc
     1383        to GXV_StateTable_GlyphOffsetCPtr.
     1384       
     1385        * src/gxvalid/gxvmort1.c
     1386        (gxv_mort_subtable_type1_entry_validate): Ditto.
     1387       
     1388        * src/gxvalid/gxvmort2.c
     1389        (gxv_mort_subtable_type2_entry_validate): Ditto.
     1390       
     1391        * src/gxvalid/gxvmort5.c
     1392        (gxv_mort_subtable_type5_entry_validate): Ditto.
     1393       
     1394        * src/gxvalid/gxvmorx2.c
     1395        (gxv_morx_subtable_type2_entry_validate): Ditto.
     1396       
     1397        * src/gxvalid/gxvmorx5.c
     1398        (gxv_morx_subtable_type5_entry_validate): Ditto.
     1399       
     1400        * src/gxvalid/gxvmorx1.c
     1401        (gxv_morx_subtable_type1_entry_validate): Ditto.
     1402        (gxv_morx_subtable_type1_LookupValue_validate,
     1403        gxv_morx_subtable_type1_LookupFmt4_transit):
     1404        Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
     1405       
     1406        * src/gxvalid/gxvmorx0.c
     1407        (gxv_morx_subtable_type0_entry_validate): Update
     1408        from GXV_XStateTable_GlyphOffsetDesc
     1409        to GXV_XStateTable_GlyphOffsetCPtr.
     1410
     14112009-07-29  Fabrice Bellet  <fabrice@bellet.info>
     1412
     1413        Fix Redhat bugzilla #513582 and Savannah bug #26849.
     1414
     1415        * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
     1416        aliasing bug.
     1417
     14182009-07-19  Werner Lemberg  <wl@gnu.org>
     1419
     1420        Document recent library changes.
     1421
     1422        * docs/CHANGES: Do it.
     1423
     14242009-07-17  Werner Lemberg  <wl@gnu.org>
     1425
     1426        Fix Savannah bug #23786.
     1427
     1428        * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem
     1429        and y_ppem.  Otherwise the `*_CVT_Stretched' functions in ttinterp.c
     1430        get never called.
     1431        An anonymous guy suggested this change on Savannah, and it seems to
     1432        be the right solution.
     1433
     14342009-07-15  Werner Lemberg  <wl@gnu.org>
     1435
     1436        * docs/release: Updated.
     1437
     14382009-07-15  Werner Lemberg  <wl@gnu.org>
     1439
     1440        README.CVS -> README.git
     1441
     1442        * README.CVS: Renamed to...
     1443        * README.git: This.
     1444        Updated.
     1445
     14462009-07-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1447
     1448        Borland C++ compiler patch proposed by Mirco Babin.
     1449        http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
     1450
     1451        * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}.
     1452        Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform
     1453        specific pathname syntax.
     1454        * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS.
     1455        Define TE = `-e' separately (bcc32 cannot specify the pathname of
     1456        binary executable by T = `-o').
     1457        Extend the large page size in linking freetype.lib.
     1458        Add extra CLEAN target to delete bcc specific temporary files.
     1459        * builds/compiler/bcc-dev.mk: Ditto.
     1460
     14612009-07-14  Werner Lemberg  <wl@gnu.org>
     1462
     1463        Fix Savannah bug #27026.
     1464
     1465        * builds/win32/vc2005/freetype.sln: Use correct version number.
     1466
     14672009-07-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1468
     1469        Add a script to check the undefined and unused trace macros.
     1470
     1471        * src/tools/chktrcmp.py: A script to check trace_XXXX macros
     1472        that are used in C source but undefined in fttrace.h, or
     1473        defined in fttrace.h but unused in C sources.  See
     1474        http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html.
     1475        * docs/DEBUG: Mention on chktrcmp.py.
     1476        * docs/release: Ditto.
     1477
     14782009-07-09  Werner Lemberg  <wl@gnu.org>
     1479
     1480        [ftraster] Make it compile again with -D_STANDALONE_.
     1481
     1482        * src/raster/ftraster.c [_STANDALONE_]: Define
     1483        FT_CONFIG_STANDARD_LIBRARY_H.
     1484        Include `string.h'.
     1485        Don't include `rastpic.h'.
     1486        Define FT_DEFINE_RASTER_FUNCS.
     1487
     14882009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1489
     1490        smooth: Check glyph size by width/height, instead of pitch/height.
     1491        Suggested by der Mouse <mouse@Rodents-Montreal.ORG>.
     1492
     1493        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve
     1494        the check for too large glyph.  Replace the pair of `pitch' and
     1495        `height' by the pair of `width' and `height'.  `pitch' cannot
     1496        be greater than `height'.  The required is checking the product
     1497        `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for
     1498        the realistic case only.
     1499
     15002009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1501
     1502        Register 2 missing trace components, t1afm and ttbdf.
     1503
     1504        * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm )
     1505        and FT_TRACE_DEF( ttbdf ).  See
     1506        http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html
     1507
     15082009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1509
     1510        Register a trace component for ftgloadr.c.
     1511
     1512        * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ).
     1513        The macro `trace_gloader' was already used in the initial version
     1514        on 2002-02-24.
     1515
     15162009-07-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1517
     1518        Prevent the overflows by a glyph with too many points or contours.
     1519        The bug is reported by Boris Letocha <b.letocha@gmc.net>.  See
     1520        http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html
     1521        http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html 
     1522
     1523        * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX,
     1524        FT_OUTLINE_POINTS_MAX): New macros to declare the maximum
     1525        values of FT_Outline.{n_contours,n_points}.
     1526        * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the
     1527        total numbers of points and contours cause no overflows in
     1528        FT_Outline.{n_contours,n_points}.
     1529
     1530        * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
     1531        FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and
     1532        contours as unsigned long number, instead of signed int, to
     1533        prevent the overflows on 16-bit systems.
     1534
     15352009-07-05  Bram Tassyns  <bramt@enfocus.be>
     1536
     1537        Improve compatibility to Acroread.
     1538        This fixes Savannah bug #26944.
     1539
     1540        * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
     1541        single CID mappings, make the lowest value win.
     1542
     15432009-06-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1544
     1545        ftpatent: Fix a bug by wrong usage of service->table_info().
     1546        http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html
     1547
     1548        * include/freetype/internal/services/svsfnt.h: Extend
     1549        FT_SFNT_TableInfoFunc() to take new argument to obtain the offset
     1550        to the specified table.
     1551        * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the
     1552        table-offset to the caller function.
     1553        * src/base/ftpatent.c (_tt_check_patents_in_table): Use new
     1554        service->table_info().
     1555        * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new
     1556        service->table_info().
     1557
     15582009-06-28  Werner Lemberg  <wl@gnu.org>
     1559
     1560        [psaux, cff] Protect against nested `seac' calls.
     1561
     1562        * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
     1563        (CFF_Decoder): Add `seac' boolean variable.
     1564
     1565        * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
     1566        (t1operator_seac): Use it.
     1567
     15682009-06-28  Werner Lemberg  <wl@gnu.org>
     1569
     1570        Thinko.
     1571
     1572        * src/psaux/t1decode.c (t1operator_seac)
     1573        [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
     1574        interface.
     1575
     15762009-06-28  Werner Lemberg  <wl@gnu.org>
     1577
     1578        * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
     1579
     15802009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1581
     1582        Add tools to preprocess the source files for AtariST PureC.
     1583
     1584        * builds/atari/deflinejoiner.awk: New file to filter C source files
     1585        for broken C preprocessor of PureC compiler.
     1586
     1587        * builds/atari/gen-purec-patch.sh: New file to generate a patch set
     1588        for PureC, by using deflinejoiner.awk.
     1589
     15902009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1591
     1592        Keep existing modules.cfg in the building tree.
     1593
     1594        * configure: If `configure' is executed outside of the source tree,
     1595        an existing `modules.cfg' file in the build directory should be
     1596        kept, not overwritten by the version in the source tree.
     1597
     15982009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1599
     1600        Filter --srcdir= option before invoking builds/unix/configure.
     1601
     1602        * configure: If builds/unix/configure is invoked with --srcdir
     1603        option, the option should take `builds/unix' directory instead of
     1604        the top source directory.  Thus the configure script in the top
     1605        directory should modify the --srcdir= option if
     1606        `builds/unix/configure' is invoked.
     1607
     16082009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     1609
     1610        Improve configure.raw for cross-building on exe-suffixed systems.
     1611
     1612        * builds/unix/configure.raw: Fix a bug in sed script to extract
     1613        native suffix for binary executables, patch by Peter Breitenlohner.
     1614        http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html
     1615
     16162009-06-26  Werner Lemberg  <wl@gnu.org>
     1617
     1618        [truetype] Remove TT_SubGlyphRec.
     1619
     1620        * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
     1621
     16222009-06-26  Werner Lemberg  <wl@gnu.org>
     1623
     1624        * */*: For warning messages, replace FT_ERROR with FT_TRACE0.
     1625
     1626        FT_ERROR is now used only if a function produces a non-zero `error'
     1627        value.
     1628
     1629        Formatting, improving and harmonizing debug strings.
     1630
     16312009-06-25  Werner Lemberg  <wl@gnu.org>
     1632
     1633        Provide version information better.
     1634
     1635        * src/base/ftinit.c (FT_Init_FreeType): Don't set version here
     1636        but...
     1637        * src/base/ftobjs.c (FT_New_Library): Here.
     1638
     16392009-06-22  Werner Lemberg  <wl@gnu.org>
     1640
     1641        Use 16.16 format while parsing Type 1 charstrings.
     1642        This fixes Savannah bug #26867.
     1643
     1644        Previously, only integers have been used which can lead to serious
     1645        rounding errors.
     1646
     1647        However, fractional values are only used internally; after the
     1648        charstrings (of either Type 1 or 2) have been processed, the
     1649        resulting coordinates get rounded to integers currently -- before
     1650        applying scaling.  This should be fixed; at the same time a new load
     1651        flag should be introduced, to be used in combination with
     1652        FT_LOAD_NO_SCALE, which indicates that font units are returned in
     1653        16.16 format.  Similarly, the incremental interface should be
     1654        extended to allow fractional values for metrics.
     1655
     1656        * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
     1657        field.
     1658        * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
     1659        T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.
     1660
     1661        * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H.
     1662        (t1_build_add_point): Always convert fixed to integer.
     1663        * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
     1664        Use 16.16 format everywhere (except for large integers followed by a
     1665        `div').
     1666        [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
     1667        code uncoditionally.
     1668        Add support for random numbers and update remaining code
     1669        accordingly; this should work now.
     1670        (t1_operator_seac): Updated.
     1671        * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
     1672        (ps_hints_t1stem3, t1_hints_stem): Updated.
     1673
     1674        * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H.
     1675        (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL],
     1676        (cid_face_compute_max_advance, cid_slot_load_glyph): Updated.
     1677
     1678        * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
     1679        [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
     1680        Updated.
     1681        * src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
     1682        * src/type1/t1objs.c (T1_Face_Init): Updated.
     1683
     16842009-06-21  Werner Lemberg  <wl@gnu.org>
     1685
     1686        * src/pshinter/pshrec.c: Use PSH_Err_Ok.
     1687
     16882009-06-21  Werner Lemberg  <wl@gnu.org>
     1689
     1690        Code beautification.
     1691
     1692        * src/type1/t1load.c (FT_INT_TO_FIXED): Removed.
     1693        Replace everywhere with INT_TO_FIXED.
     1694        (FT_FIXED_TO_INT): Move to ...
     1695        * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here.
     1696        Update all users.
     1697
     16982009-06-20  Werner Lemberg  <wl@gnu.org>
     1699
     1700        Remove unused variables.
     1701
     1702        * include/freetype/internal/psaux.h (T1_BuilderRec),
     1703        src/cff/cffgload.h (CFF_Builder): Remove `last'.
     1704        Update all users.
     1705
     17062009-06-20  Werner Lemberg  <wl@gnu.org>
     1707
     1708        [psaux] Check large integers while parsing charstrings.
     1709
     1710        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
     1711        integers must be followed by a `div' operator.
     1712
     17132009-06-20  Werner Lemberg  <wl@gnu.org>
     1714
     1715        [cff] Revert last change.
     1716
     1717        * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
     1718        Next time, don't confuse Type 2 charstring opcodes with TOP DICT
     1719        values...
     1720
     17212009-06-20  Werner Lemberg  <wl@gnu.org>
     1722
     1723        * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
     1724        compiler warning.
     1725
     17262009-06-20  Werner Lemberg  <wl@gnu.org>
     1727
     1728        * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
     1729
     17302009-06-19  Werner Lemberg  <wl@gnu.org>
     1731
     1732        [cff] Fix handling of reserved byte 0xFF.
     1733
     1734        * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
     1735        0xFF is encountered.
     1736
     17372009-06-19  Werner Lemberg  <wl@gnu.org>
     1738
     1739        Improve debug messages for Type1 charstrings.
     1740
     1741        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
     1742        after instructions.
     1743        Prettify output.
     1744
     17452009-06-19  Werner Lemberg  <wl@gnu.org>
     1746
     1747        More ftgray fixes for FT_STATIC_RASTER.
     1748        Problems reported by suyu@cooee.cn.
     1749
     1750        * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
     1751        RAS_VAR.
     1752
     17532009-06-18  Werner Lemberg  <wl@gnu.org>
     1754
     1755        * docs/CHANGES: Updated.
     1756
     17572009-06-18  Werner Lemberg  <wl@gnu.org>
     1758
     1759        Fix B/W rasterization of subglyphs with different drop-out modes.
     1760
     1761        Normally, the SCANMODE instruction (if present) to set the drop-out
     1762        mode in a TrueType font is located in the `prep' table only and thus
     1763        valid for all glyphs.  However, there are fonts like `pala.ttf'
     1764        which additionally contain this instruction in the hinting code of
     1765        some glyphs (but not all).  As a result it can happen that a
     1766        composite glyph needs multiple drop-out modes for its subglyphs
     1767        since the rendering state gets reset for each subglyph.
     1768
     1769        FreeType collects the hinted outlines from all subglyphs, then it
     1770        sends the data to the rasterizer.  It also sends the drop-out mode
     1771        -- after hinting has been applied -- and here is the error: It sends
     1772        the drop-out mode of the last subglyph only; drop-out modes of all
     1773        other subglyphs are lost.
     1774
     1775        This patch fixes the problem; it adds a second, alternative
     1776        mechanism to pass the drop-out mode: For each contour, the
     1777        rasterizer now checks the first `tags' array element.  If bit 2 is
     1778        set, bits 5-7 contain the contour's drop-out mode, overriding the
     1779        global drop-out mode.
     1780
     1781        * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
     1782
     1783        * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
     1784        `tags[0]'.
     1785
     1786        * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom):
     1787        Use bits 3-5 instead of 0-2.
     1788        (New_Profile): Set the drop-out mode in the profile's `flags' field.
     1789        (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if
     1790        necessary.
     1791        (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
     1792        Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
     1793        mode.
     1794
     17952009-06-16  Werner Lemberg  <wl@gnu.org>
     1796
     1797        Improve scan conversion rules 4 and 6.
     1798
     1799        Two new constraints are introduced to better identify a `stub' -- a
     1800        concept which is only vaguely described in the OpenType
     1801        specification.  The old code was too rigorous and suppressed more
     1802        pixel than it should.
     1803
     1804          . The intersection of the two profiles with the scanline is less
     1805            than a half pixel.  Code related to this was already present in
     1806            the sources but has been commented out.
     1807
     1808          . The endpoint of the original contour forming a profile has a
     1809            distance (`overshoot') less than half a pixel to the scanline.
     1810
     1811        Note that the two additional conditions fix almost all differences
     1812        to the Windows rasterizer, but some problematic cases remain.
     1813
     1814        * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New
     1815        macros for the `flags' field in the `TProfile' structure.
     1816        (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros.
     1817        (New_Profile, End_Profile): Pass overshoot flag as an argument and
     1818        set it accordingly.
     1819        Update callers.
     1820        (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
     1821        constraints.
     1822
     18232009-06-11  Werner Lemberg  <wl@gnu.org>
     1824
     1825        Increase precision for B/W rasterizer.
     1826
     1827        * src/raster/ftraster.c (Set_High_Precision): Add two more bits to
     1828        the precision.  This corrects rendering of some small glyphs, for
     1829        example, glyph `xi' in verdana.ttf at 13 ppem.  Testing with ftbench
     1830        on my GNU/Linux box I don't see a performance degradation.
     1831
     18322009-06-08  Michael Zucchi  <notzed@gmail.com>
     1833
     1834        Handle FT_STROKER_LINECAP_BUTT.
     1835        This fixes Savannah bug #26757.
     1836
     1837        * src/base/ftstroke.c (ft_stroker_cap): Implement it.
     1838
     18392009-06-07  Harald Fernengel  <harry@kdevelop.org>
     1840
     1841        Fix some potential out-of-memory crashes.
     1842
     1843        * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'.
     1844        * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'.
     1845        * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of
     1846        `exec' in case of failure.
     1847
     18482009-06-07  Werner Lemberg  <wl@gnu.org>
     1849
     1850        Simplify math.
     1851        Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
     1852
     1853        * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
     1854        Horizontal_Gray_Sweep_Drop): Do it.
     1855
     18562009-06-04  Werner Lemberg  <wl@gnu.org>
     1857
     1858        Preparation for fixing scan conversion rules 4 and 6.
     1859
     1860        * src/raster/ftraster.c (TFlow): Replace enumeration with...
     1861        (Flow_Up): This macro.
     1862        (TProfile): Replace `flow' member with `flags' bit field.
     1863        Update all affected code.
     1864
     18652009-05-29  James Cloos  <cloos@jhcloos.com>
     1866
     1867        Enable autohinting for glyphs rotated by multiples of 90°.
     1868
     1869        * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted
     1870        matrices to allow rotations by multiples of 90°, not only unrotated,
     1871        possibly slanted matrices.
     1872
     18732009-05-28  Werner Lemberg  <wl@gnu.org>
     1874
     1875        Remove compiler warning.
     1876        Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
     1877
     1878        * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
     1879        `n_edges' into `#if' block.
     1880
     18812009-05-28  Werner Lemberg  <wl@gnu.org>
     1882
     1883        Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
     1884        Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
     1885
     1886        * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
     1887        Make it work.
     1888        Simplify #ifdef logic.
     1889
     18902009-05-22  Werner Lemberg  <wl@gnu.org>
     1891
     1892        Improve b/w rasterizer.
     1893        Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>.
     1894
     1895        * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
     1896        Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if
     1897        intersections are equally distant relative to next pixel center,
     1898        select the left pixel, not the right one.
     1899
     19002009-05-19  Werner Lemberg  <wl@gnu.org>
     1901
     1902        Fix Savannah bug #26600.
     1903
     1904        * src/type42/t42parse.c (t42_load_keyword): Handle
     1905        T1_FIELD_LOCATION_FONT_EXTRA.
     1906
     19072009-04-30  Werner Lemberg  <wl@gnu.org>
     1908
     1909        Document recent changes to ftview.
     1910
     1911        * docs/CHANGES: Do it.
     1912
     19132009-04-27  Werner Lemberg  <wl@gnu.org>
     1914
     1915        autohinter: Don't change digit widths if all widths are the same.
     1916        This fixes FreeDesktop bug #21197.
     1917
     1918        * src/autofit/afglobal.c (AF_DIGIT): New macro.
     1919        (af_face_globals_compute_script_coverage): Mark ASCII digits in
     1920        `glyph_scripts' array.
     1921        (af_face_globals_get_metrics): Updated.
     1922        (af_face_globals_is_digit): New function.
     1923        * src/autofit/afglobal.h: Updated.
     1924        (AF_ScriptMetricsRec): Add `digits_have_same_width' flag.
     1925
     1926        * src/autofit/aflatin.c: Include FT_ADVANCES_H.
     1927        (af_latin_metrics_check_digits): New function.
     1928        (af_latin_metrics_init): Use it.
     1929        * src/autofit/aflatin.h: Updated.
     1930        * src/autofit/afcjk.c (af_cjk_metrics_init): Updated.
     1931
     1932        * src/autofit/aflatin2.c: Similar changes as with aflatin.c.
     1933
     1934        * src/autofit/afloader.c (af_loader_load_g): Test digit width.
     1935
     1936        * docs/CHANGES: Document it.
     1937
     19382009-04-26  Werner Lemberg  <wl@gnu.org>
     1939
     1940        Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
     1941        Problems reported by suyu@cooee.cn.
     1942
     1943        * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS,
     1944        FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define.
     1945        [!_STANDALONE_]: Include ftspic.h only here.
     1946        (ras): Define/declare after definition of `TWorker'.
     1947        Use `RAS_VAR_' where necessary.
     1948
     19492009-04-21  Karl Berry  <karl@gnu.org>
     1950
     1951        Fix AC_CHECK_FT2.
     1952   
     1953        * builds/unix/freetype2.m4: Only check PATH for freetype-config if
     1954        we did not already find it from a prefix option.
     1955
     19562009-04-05  Oran Agra  <oran@monfort.co.il>
     1957
     1958        Add #error to modules and files that do not support PIC yet.
     1959
     1960        When FT_CONFIG_OPTION_PIC is defined the following files will
     1961        create #error:
     1962        * src/bdf/bdfdrivr.h
     1963        * src/cache/ftcmanag.c
     1964        * src/cid/cidriver.h
     1965        * src/gxvalid/gxvmod.h
     1966        * src/gzip/ftgzip.c
     1967        * src/lzw/ftlzw.c
     1968        * src/otvalid/otvmod.h
     1969        * src/pcf/pcfdrivr.h
     1970        * src/pfr/pfrdrivr.h
     1971        * src/psaux/psauxmod.h
     1972        * src/type1/t1driver.h
     1973        * src/type42/t42drivr.h
     1974        * src/winfonts/winfnt.h
     1975
     19762009-04-05  Oran Agra  <oran@monfort.co.il>
     1977
     1978        Position Independent Code (PIC) support in autofit module.
     1979
     1980        * include/freetype/internal/autohint.h add macros to init
     1981        instances of FT_AutoHinter_ServiceRec.
     1982
     1983        * src/autofit/afmodule.h declare autofit_module_class
     1984        using macros from ftmodapi.h,
     1985        when FT_CONFIG_OPTION_PIC is defined create and destroy
     1986        functions will be declared.
     1987        * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined
     1988        af_autofitter_service and autofit_module_class structs
     1989        will have functions to init or create and destroy them
     1990        instead of being allocated in the global scope.
     1991        And macros will be used from afpic.h in order to access them.
     1992
     1993        * src/autofit/aftypes.h add macros to init and declare
     1994        instances of AF_ScriptClassRec.
     1995
     1996        * src/autofit/afcjk.h declare af_cjk_script_class
     1997        using macros from aftypes.h,
     1998        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
     1999        * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined
     2000        af_cjk_script_class struct will have function to init it instead of
     2001        being allocated in the global scope.
     2002
     2003        * src/autofit/afdummy.h declare af_dummy_script_class
     2004        using macros from aftypes.h,
     2005        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
     2006        * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined
     2007        af_dummy_script_class struct will have function to init it instead of
     2008        being allocated in the global scope.
     2009
     2010        * src/autofit/afindic.h declare af_indic_script_class
     2011        using macros from aftypes.h,
     2012        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
     2013        * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined
     2014        af_indic_script_class struct will have function to init it instead of
     2015        being allocated in the global scope.
     2016
     2017        * src/autofit/aflatin.h declare af_latin_script_class
     2018        using macros from aftypes.h,
     2019        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
     2020        * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined
     2021        af_latin_script_class struct will have function to init it instead of
     2022        being allocated in the global scope.
     2023        Change af_latin_blue_chars to be PIC-compatible by being a two
     2024        dimentional array rather than array of pointers.
     2025
     2026
     2027        * src/autofit/aflatin2.h declare af_latin2_script_class
     2028        using macros from aftypes.h,
     2029        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
     2030        * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined
     2031        af_latin2_script_class struct will have function to init it instead of
     2032        being allocated in the global scope.
     2033        Change af_latin2_blue_chars to be PIC-compatible by being a two
     2034        dimentional array rather than array of pointers.
     2035
     2036        * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined
     2037        af_script_classes array initialization was moved to afpic.c and
     2038        is later refered using macros defeined in afpic.h.
     2039
     2040        New Files:
     2041        * src/autofit/afpic.h declare struct to hold PIC globals for autofit
     2042        module and macros to access them.
     2043        * src/autofit/afpic.c implement functions to allocate, destroy and
     2044        initialize PIC globals for autofit module.
     2045
     2046        * src/autofit/autofit.c add new file to build: afpic.c.
     2047        * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c.
     2048
     20492009-04-05  Oran Agra  <oran@monfort.co.il>
     2050
     2051        Position Independent Code (PIC) support in pshinter module.
     2052
     2053        * include/freetype/internal/pshints.h add macros to init
     2054        instances of PSHinter_Interface.
     2055
     2056        * src/pshinter/pshmod.h declare pshinter_module_class
     2057        using macros from ftmodapi.h,
     2058        when FT_CONFIG_OPTION_PIC is defined create and destroy
     2059        functions will be declared.
     2060        * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined
     2061        pshinter_interface and pshinter_module_class structs
     2062        will have functions to init or create and destroy them
     2063        instead of being allocated in the global scope.
     2064        And macros will be used from pshpic.h in order to access them.
     2065
     2066        New Files:
     2067        * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter
     2068        module and macros to access them.
     2069        * src/pshinter/pshpic.c implement functions to allocate, destroy and
     2070        initialize PIC globals for pshinter module.
     2071
     2072        * src/pshinter/pshinter.c add new file to build: pshpic.c.
     2073        * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c.
     2074
     20752009-04-05  Oran Agra  <oran@monfort.co.il>
     2076
     2077        Position Independent Code (PIC) support in psnames module.
     2078
     2079        * include/freetype/internal/services/svpscmap.h add macros to init
     2080        instances of FT_Service_PsCMapsRec.
     2081
     2082        * src/psnames/psmodule.h declare psnames_module_class
     2083        using macros from ftmodapi.h,
     2084        when FT_CONFIG_OPTION_PIC is defined create and destroy
     2085        functions will be declared.
     2086        * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined
     2087        pscmaps_interface and pscmaps_services structs
     2088        and psnames_module_class array
     2089        will have functions to init or create and destroy them
     2090        instead of being allocated in the global scope.
     2091        And macros will be used from pspic.h in order to access them.
     2092
     2093        New Files:
     2094        * src/psnames/pspic.h declare struct to hold PIC globals for psnames
     2095        module and macros to access them.
     2096        * src/psnames/pspic.c implement functions to allocate, destroy and
     2097        initialize PIC globals for psnames module.
     2098
     2099        * src/psnames/psnames.c add new file to build: pspic.c.
     2100        * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c.
     2101
     21022009-04-05  Oran Agra  <oran@monfort.co.il>
     2103
     2104        Position Independent Code (PIC) support in raster renderer.
     2105
     2106        * src/raster/ftrend1.h declare ft_raster1_renderer_class
     2107        and ft_raster5_renderer_class
     2108        using macros from ftrender.h,
     2109        when FT_CONFIG_OPTION_PIC is defined create and destroy
     2110        functions will be declared.
     2111        * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined
     2112        ft_raster1_renderer_class and ft_raster5_renderer_class structs
     2113        will have functions to init or create and destroy them
     2114        instead of being allocated in the global scope.
     2115        Macros will be used from rastpic.h in order to access
     2116        ft_standard_raster from the pic_container (allocated in ftraster.c).
     2117        In ft_raster1_render when PIC is enabled, the last letter of
     2118        module_name is used to verfy the renderer class rather than the
     2119        class pointer.
     2120
     2121        * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined
     2122        ft_standard_raster struct will have function to init it
     2123        instead of being allocated in the global scope.
     2124
     2125        New Files:
     2126        * src/raster/rastpic.h declare struct to hold PIC globals for raster
     2127        renderer and macros to access them.
     2128        * src/raster/rastpic.c implement functions to allocate, destroy and
     2129        initialize PIC globals for raster renderer.
     2130
     2131        * src/raster/raster.c add new file to build: rastpic.c.
     2132        * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c.
     2133
     21342009-04-05  Oran Agra  <oran@monfort.co.il>
     2135
     2136        Position Independent Code (PIC) support in smooth renderer.
     2137
     2138        * src/smooth/ftsmooth.h declare ft_smooth_renderer_class,
     2139        ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class
     2140        using macros from ftrender.h,
     2141        when FT_CONFIG_OPTION_PIC is defined create and destroy
     2142        functions will be declared.
     2143        * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined
     2144        the following structs:
     2145        ft_smooth_renderer_class, ft_smooth_lcd_renderer_class
     2146        and ft_smooth_lcd_v_renderer_class
     2147        will have functions to init or create and destroy them
     2148        instead of being allocated in the global scope.
     2149        And macros will be used from ftspic.h in order to access
     2150        ft_grays_raster from the pic_container (allocated in ftgrays.c).
     2151
     2152        * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H
     2153        * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined
     2154        func_interface was moved from gray_convert_glyph_inner function
     2155        to the global scope.
     2156        When FT_CONFIG_OPTION_PIC is defined
     2157        func_interface and ft_grays_raster structs
     2158        will have functions to init them
     2159        instead of being allocated in the global scope.
     2160        And func_interface will be allocated on the stack of
     2161        gray_convert_glyph_inner.
     2162
     2163        New Files:
     2164        * src/smooth/ftspic.h declare struct to hold PIC globals for smooth
     2165        renderer and macros to access them.
     2166        * src/smooth/ftspic.c implement functions to allocate, destroy and
     2167        initialize PIC globals for smooth renderer.
     2168
     2169        * src/smooth/smooth.c add new file to build: ftspic.c.
     2170        * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c.
     2171
     21722009-04-05  Oran Agra  <oran@monfort.co.il>
     2173
     2174        Position Independent Code (PIC) support in cff driver.
     2175
     2176        * include/freetype/internal/services/svcid.h add macros to init
     2177        instances of FT_Service_CIDRec.
     2178        * include/freetype/internal/services/svpsinfo.h add macros to init
     2179        instances of FT_Service_PsInfoRec.
     2180
     2181        * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec
     2182        and cff_cmap_unicode_class_rec using macros from
     2183        ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
     2184        functions will be declared.
     2185        * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined
     2186        the following structs:
     2187        cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec
     2188        will have functions to init or create and destroy them
     2189        instead of being allocated in the global scope.
     2190
     2191        * src/cff/cffdrivr.h declare cff_driver_class using macros from
     2192        ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
     2193        functions will be declared.
     2194        * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined
     2195        the following structs:
     2196        cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name
     2197        cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class,
     2198        and cff_services array
     2199        will have functions to init or create and destroy them
     2200        instead of being allocated in the global scope.
     2201        And macros will be used from cffpic.h in order to access them
     2202        from the pic_container.
     2203        Use macros from cffpic.h in order to access the
     2204        structs allocated in cffcmap.c
     2205
     2206        * src/cff/cffobjs.c Use macros from cffpic.h in order to access the
     2207        structs allocated in cffcmap.c
     2208
     2209        * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined
     2210        implement functions to create and destroy cff_field_handlers array
     2211        instead of being allocated in the global scope.
     2212        And macros will be used from cffpic.h in order to access it
     2213        from the pic_container.
     2214
     2215        New Files:
     2216        * src/cff/cffpic.h declare struct to hold PIC globals for cff
     2217        driver and macros to access them.
     2218        * src/cff/cffpic.c implement functions to allocate, destroy and
     2219        initialize PIC globals for cff driver.
     2220
     2221        * src/cff/cff.c add new file to build: cffpic.c.
     2222        * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c.
     2223
     22242009-04-05  Oran Agra  <oran@monfort.co.il>
     2225
     2226        Position Independent Code (PIC) support in sfnt driver.
     2227
     2228        * include/freetype/internal/services/svbdf.h add macros to init
     2229        instances of FT_Service_BDFRec.
     2230        * include/freetype/internal/services/svgldict.h add macros to init
     2231        instances of FT_Service_GlyphDictRec.
     2232        * include/freetype/internal/services/svpostnm.h add macros to init
     2233        instances of FT_Service_PsFontNameRec.
     2234        * include/freetype/internal/services/svsfnt.h add macros to init
     2235        instances of FT_Service_SFNT_TableRec.
     2236        * include/freetype/internal/services/svttcmap.h add macros to init
     2237        instances of FT_Service_TTCMapsRec.
     2238        * include/freetype/internal/sfnt.h add macros to init
     2239        instances of SFNT_Interface.
     2240
     2241        * src/sfnt/sfdriver.h declare sfnt_module_class using macros from
     2242        ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
     2243        functions will be declared.
     2244        * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
     2245        the following structs:
     2246        sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
     2247        tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
     2248        sfnt_module_class, and sfnt_services array
     2249        will have functions to init or create and destroy them
     2250        instead of being allocated in the global scope.
     2251        And macros will be used from sfntpic.h in order to access them
     2252        from the pic_container.
     2253
     2254        * src/sfnt/ttcmap.h add macros to init
     2255        instances of TT_CMap_ClassRec.
     2256        * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
     2257        the following structs:
     2258        tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
     2259        tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
     2260        tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
     2261        will have functions to init or create and destroy them
     2262        instead of being allocated in the global scope.
     2263        And macros will be used from sfntpic.h in order to access them
     2264        from the pic_container.
     2265        The content of tt_cmap_classes is now described in the
     2266        new file 'ttcmapc.h'.
     2267
     2268        New Files:
     2269        * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
     2270        driver and macros to access them.
     2271        * src/sfnt/sfntpic.c implement functions to allocate, destroy and
     2272        initialize PIC globals for sfnt driver.
     2273        * src/sfnt/ttcmapc.h describing the content of
     2274        tt_cmap_classes allocated in ttcmap.c
     2275
     2276        * src/sfnt/sfnt.c add new file to build: sfntpic.c.
     2277        * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
     2278
     22792009-04-05  Oran Agra  <oran@monfort.co.il>
     2280
     2281        Position Independent Code (PIC) support in truetype driver.
     2282
     2283        * include/freetype/internal/services/svmm.h add macros to init
     2284        instances of FT_Service_MultiMastersRec.
     2285        * include/freetype/internal/services/svttglyf.h add macros to init
     2286        instances of FT_Service_TTGlyfRec.
     2287
     2288        * src/truetype/ttdriver.h declare tt_driver_class using macros from
     2289        ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
     2290        functions will be declared.
     2291        * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined
     2292        the following structs:
     2293        tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class
     2294        and tt_services array,
     2295        will have functions to init or create and destroy them
     2296        instead of being allocated in the global scope.
     2297        And macros will be used from ttpic.h in order to access them
     2298        from the pic_container.
     2299        * src/truetype/ttobjs.c change trick_names array to be
     2300        PIC-compatible by being a two dimentional array rather than array
     2301        of pointers.
     2302
     2303        New Files:
     2304        * src/truetype/ttpic.h declare struct to hold PIC globals for truetype
     2305        driver and macros to access them.
     2306        * src/truetype/ttpic.c implement functions to allocate, destroy and
     2307        initialize PIC globals for truetype driver.
     2308
     2309        * src/truetype/truetype.c add new file to build: ttpic.c.
     2310        * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c.
     2311
     23122009-04-05  Oran Agra  <oran@monfort.co.il>
     2313
     2314        Position Independent Code (PIC) support and infrastructure in base.
     2315
     2316        * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC
     2317        * include/freetype/internal/ftobjs.h Add pic_container member to
     2318        FT_LibraryRec.
     2319        Add macros to declare and init instances of FT_CMap_ClassRec.
     2320        Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs.
     2321        Add macros to declare, allocate and initialize modules
     2322        (FT_Module_Class).
     2323        Add macros to declare, allocate and initialize renderers
     2324        (FT_Renderer_Class).
     2325        Add macro to init instances of FT_Glyph_Class.
     2326        Add macros to declare, allocate and initialize drivers
     2327        (FT_Driver_ClassRec).
     2328        * include/freetype/internal/ftpic.h new file to declare the
     2329        FT_PIC_Container struct and the functions to allocate and detroy it.
     2330        * include/freetype/internal/ftserv.h add macros to allocate and
     2331        destory arrays of FT_ServiceDescRec.
     2332        * include/freetype/internal/internal.h define macro to include
     2333        ftpic.h.
     2334
     2335        New Files:
     2336        * src/base/ftpic.c implement functions to allocate and destory the
     2337        global pic_container.
     2338        * src/base/basepic.h declare struct to hold PIC globals for base and
     2339        macros to access them.
     2340        * src/base/basepic.c implement functions to allocate, destroy and
     2341        initialize PIC globals for base.
     2342
     2343        * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement
     2344        functions that allocate and destroy ft_default_modules according to
     2345        FT_CONFIG_MODULES_H in the pic_container instead of the global scope
     2346        and use macro from basepic.h to access it.
     2347        * src/base/ftobjs.c add calls to the functions that allocate and
     2348        destroy the global pic_container when the library is created and
     2349        destroyed.
     2350
     2351        * src/base/jamfile add new files to FT2_MULTI build:
     2352        ftpic.c and basepic.c.
     2353        * src/base/ftbase.c add new files to build:
     2354        ftpic.c and basepic.c.
     2355
     2356        * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined
     2357        ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated
     2358        in the pic_container instead of the global scope and use macros from
     2359        basepic.h to access them.
     2360        * src/base/ftbbox.c allocate bbox_interface stract on the stack
     2361        instead of the global scope when FT_CONFIG_OPTION_PIC is defined.
     2362        * src/base/ftstroke.c access ft_outline_glyph_class allocated in
     2363        ftglyph.c via macros from basepic.h
     2364
     23652009-04-05  Oran Agra  <oran@monfort.co.il>
     2366
     2367        Preparing changes in cff parser later needed for PIC version.
     2368
     2369        * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c,
     2370        src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to
     2371        'CFF_ParserRec' set by `cff_parser_init'.
     2372        Route library pointer from 'cff_face_init' to 'cff_subfont_load'
     2373        for `cff_parser_init'.
     2374
     2375        * src/cff/cffparse.c (CFF_Field_Handler): Move it to...
     2376        * src/cff/cffparse.h: This file, to be used by other C files.
     2377
     23782009-04-05  Oran Agra  <oran@monfort.co.il>
     2379
     2380        Minor change in ftstroke.c.
     2381
     2382        * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
     2383        `library' needed for PIC version.
     2384        Update all callers.
     2385
     23862009-04-04  Werner Lemberg  <wl@gnu.org>
     2387
     2388        ftnames.c -> ftsnames.c
     2389
     2390        * src/base/ftnames.c: Rename to...
     2391        * src/base/ftsnames.c: This.
     2392        * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
     2393
     23942009-04-04  Werner Lemberg  <wl@gnu.org>
     2395
     2396        Add support for cmap type 13.
     2397
     2398        * devel/ftoption.h, include/freetype/config/ftoption.h
     2399        (TT_CONFIG_CMAP_FORMAT_13): New macro.
     2400
     2401        * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init,
     2402        tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next,
     2403        tt_cmap13_get_info, tt_cmap13_char_map_def_binary,
     2404        tt_cmap14_class_rec): New functions and structures for cmap 13
     2405        support.
     2406        (tt_cmap_classes): Register tt_cmap13_class_rec.
     2407
     2408        * docs/CHANGES: Mention cmap 13 support.
     2409
     24102009-04-01  Werner Lemberg  <wl@gnu.org>
     2411
     2412        Ignore empty contours in CFF glyphs.
     2413
     2414        Problem reported by Albert Astals Cid <aacid@kde.org>.
     2415
     2416        * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
     2417        t1_builder_close_contour.
     2418
     24192009-03-21  Werner Lemberg  <wl@gnu.org>
     2420
     2421        Another redundant header inclusion.
     2422
     2423        * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
     2424
     24252009-03-21  Werner Lemberg  <wl@gnu.org>
     2426
     2427        Remove redundant header inclusions.
     2428
     2429        This covers many Ghostscript Coverity issues.
     2430
     2431        * src/*: Do it.
     2432
     24332009-03-21  Werner Lemberg  <wl@gnu.org>
     2434
     2435        Fix Ghostscript Coverity issue #3904.
     2436
     2437        * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
     2438        invalid values of `runcnt'.
     2439
     24402009-03-20  Werner Lemberg  <wl@gnu.org>
     2441
     2442        Fix `make multi' run.
     2443
     2444        * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
     2445
     24462009-03-20  Werner Lemberg  <wl@gnu.org>
     2447
     2448        Fix Savannah bug #25923.
     2449
     2450        * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
     2451
     24522009-03-20  Werner Lemberg  <wl@gnu.org>
     2453
     2454        Protect against too large glyphs.
     2455
     2456        Problem reported by Tavis Ormandy <taviso@google.com>.
     2457
     2458        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
     2459        `pitch' or `height' to be larger than 0xFFFF.
     2460
     24612009-03-20  Werner Lemberg  <wl@gnu.org>
     2462            Tavis Ormandy  <taviso@google.com>
     2463
     2464        Fix validation for various cmap table formats.
     2465
     2466        * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
     2467        tt_cmap12_validate): Check `length' correctly.
     2468        (tt_cmap_14_validate): Check `length' and `numMappings' correctly.
     2469
     24702009-03-20  Werner Lemberg  <wl@gnu.org>
     2471
     2472        Protect against malformed compressed data.
     2473
     2474        * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
     2475        zero.
     2476
     24772009-03-20  Werner Lemberg  <wl@gnu.org>
     2478
     2479        Protect against invalid SID values in CFFs.
     2480
     2481        Problem reported by Tavis Ormandy <taviso@google.com>.
     2482
     2483        * src/cff/cffload.c (cff_charset_load): Reject SID values larger
     2484        than 64999.
     2485
     24862009-03-19  Vincent Richomme  <richom.v@free.fr>
     2487
     2488        Update WinCE Visual C project files.
     2489
     2490        * builds/wince/vc2005-ce/freetype.vcproj,
     2491        builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
     2492        files.
     2493
     24942009-03-19  Werner Lemberg  <wl@gnu.org>
     2495
     2496        Remove unused Win32 code.
     2497
     2498        * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
     2499        Since Win32 is handled separately this is no longer needed.
     2500
     25012009-03-19  Vincent Richomme  <richom.v@free.fr>
     2502
     2503        Make `gzip' module compile on WinCE.
     2504
     2505        * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
     2506
     25072009-03-19  Werner Lemberg  <wl@gnu.org>
     2508
     2509        Remove unused WinCE code.
     2510
     2511        * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
     2512        Since WinCE is handled separately this is no longer needed.
     2513
     25142009-03-16  Werner Lemberg  <wl@gnu.org>
     2515
     2516        docmaker: Don't ignore single-line code blocks.
     2517
     2518        * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
     2519        2009-01-31.
     2520
     25212009-03-15  Steve Langasek  <steve.langasek@canonical.com>
     2522
     2523        Use __asm__ for declaring assembly instead of asm.
     2524
     2525        * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
     2526        asm on arm, fixing a build failure on armel with -pedantic.
     2527
     25282009-03-14  Werner Lemberg  <wl@gnu.org>
     2529
     2530        Fix valgrind warning.
     2531
     2532        * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
     2533        past the end of the frame.
     2534
     25352009-03-12  Werner Lemberg  <wl@gnu.org>
     2536
     2537        * Version 2.3.9 released.
     2538        =========================
     2539
     2540
     2541        Tag sources with `VER-2-3-9'.
     2542
     25432009-03-12  Werner Lemberg  <wl@gnu.org>
     2544
     2545        * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
     2546
     25472009-03-12  Werner Lemberg  <wl@gnu.org>
     2548
     2549        Fix some FreeType Coverity issues as reported for Ghostscript.
     2550
     2551        * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize
     2552        `args.stream' (#3874, #3875).
     2553        (open_face_PS_from_sfnt_stream): Improve error management (#3786).
     2554        * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice'
     2555        (#3870).
     2556        * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead
     2557        code (#3790).
     2558        * src/base/ftrfork.c (raccess_guess_apple_generic): Check error
     2559        value of `FT_Stream_Skip' (#3784).
     2560
     2561        * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
     2562        it (#3872)
     2563
     2564        * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing
     2565        it (#3871).
     2566        * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of
     2567        `pcf_get_metric' (#3789, #3782).
     2568        (pcf_get_properties): Use FT_STREAM_SKIP (#3783).
     2569
     2570        * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
     2571        `acache' (#3797)
     2572
     2573        * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff'
     2574        (#3796).
     2575        * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795).
     2576        * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794).
     2577
     2578        * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
     2579        (#3793).
     2580        (_bdf_parse_start): Add comment (#3792).
     2581
     2582        * src/raster/ftraster.c (Finalize_Profile_Table): Check
     2583        `ras.fProfile' (#3791).
     2584
     2585        * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
     2586
     2587        * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
     2588        seek error (#3781).
     2589
     25902009-03-11  Michael Toftdal  <toftdal@gmail.com>
     2591
     2592        Extend CID service functions to handle CID-keyed CFFs as CID fonts.
     2593
     2594        * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
     2595        FT_Get_CID_From_Glyph_Index): New functions.
     2596
     2597        * include/freetype/internal/services/svcid.h
     2598        (FT_CID_GetIsInternallyCIDKeyedFunc,
     2599        FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
     2600        (CID Service): Use them.
     2601
     2602        * src/base/ftcid.c: Include FT_CID_H.
     2603        (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index):
     2604        New functions.
     2605
     2606        * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index):
     2607        New functions.
     2608        (cff_service_cid_info): Add them.
     2609        * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids'
     2610        -- it is needed for access as a CID-keyed font.  It gets deleted
     2611        later on.
     2612
     2613        * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index):
     2614        New functions.
     2615        (cid_service_cid_info): Add them.
     2616
     2617        * docs/CHANGES: Updated.
     2618
     26192009-03-11  Bram Tassyns  <bramt@enfocus.be>
     2620
     2621        Fix Savannah bug #25597.
     2622
     2623        * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
     2624        to become larger than 9.
     2625
     26262009-03-11  Werner Lemberg  <wl@gnu.org>
     2627
     2628        Fix Savannah bug #25814.
     2629
     2630        * builds/unix/freetype2.in: As suggested in the bug report, move
     2631        @LIBZ@ to `Libs.private'.
     2632
     26332009-03-11  Werner Lemberg  <wl@gnu.org>
     2634
     2635        Fix Savannah bug #25781.
     2636        We now simply check for a valid `offset', no longer handling `delta
     2637        = 1' specially.
     2638
     2639        * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for
     2640        last segment.
     2641        (tt_cmap4_set_range, tt_cmap4_char_map_linear,
     2642        tt_cmap4_char_map_binary): Check offset.
     2643
     26442009-03-11  Werner Lemberg  <wl@gnu.org>
     2645
     2646        * src/base/Jamfile: Fix handling of ftadvanc.c.
     2647        Reported by Oran Agra <oran@monfort.co.il>.
     2648
     26492009-03-10  Vincent Richomme  <richom.v@free.fr>
     2650
     2651        Restructure Win32 and Wince compiler support.
     2652
     2653        * src/builds/win32: Remove files for WinCE.
     2654        Move VC 2005 support to a separate directory.
     2655        Add directory for VC 2008 support.
     2656
     2657        * src/builds/wince: New directory hierarchy for WinCE compilers
     2658        (VC 2005 and VC 2008).
     2659
     26602009-03-09  Werner Lemberg  <wl@gnu.org>
     2661
     2662        More preparations for 2.3.9 release.
     2663
     2664        * docs/CHANGES: Updated.
     2665
     2666        * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
     2667
     26682009-03-09  Werner Lemberg  <wl@gnu.org>
     2669
     2670        * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
     2671
     26722009-03-09  Alexey Kryukov  <anagnost@yandex.ru>
     2673
     2674        Fix handling of EBDT formats 8 and 9 (part 2).
     2675
     2676        This patch fixes the following problems in ttsbit0.c:
     2677
     2678        . Bitmaps for compound glyphs were never allocated.
     2679
     2680        . `SBitDecoder' refused to load metrics if some other metrics have
     2681          already been loaded.  This condition certainly makes no sense for
     2682          recursive calls, so I've just disabled it.  Another possibility
     2683          would be resetting `decoder->metrics_loaded' to false before
     2684          loading each composite component.  However, we must restore the
     2685          original metrics after finishing the recursion; otherwise we can
     2686          get a misaligned glyph.
     2687
     2688        . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos',
     2689          causing some glyph components to be shifted too far to the right
     2690          (especially noticeable for small sizes).
     2691
     2692        Note that support for grayscale bitmaps (not necessarily compound) is
     2693        completely broken in ttsbit0.c.
     2694
     2695        * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
     2696        (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
     2697        of `h == height'.
     2698        (tt_sbit_decoder_load_compound): Reset metrics after loading
     2699        components.
     2700        Allocate bitmap.
     2701
     27022009-03-09  Werner Lemberg  <wl@gnu.org>
     2703
     2704        * builds/unix/configure.raw (version_info): Set to 9:20:3.
     2705
     27062009-03-03  David Turner  <david@freetype.org>
     2707
     2708        Protect SFNT kerning table parser against malformed tables.
     2709
     2710        This closes Savannah BUG #25750.
     2711
     2712        * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a
     2713        bug where a malformed table would be successfully loaded but later
     2714        crash the engine during parsing.
     2715
     27162009-03-03  David Turner  <david@freetype.org>
     2717
     2718        Update documentation and bump version number to 2.3.9.
     2719
     2720        * include/freetype/freetype.h: Bump patch version to 9.
     2721        * docs/CHANGES: Document the ABI break in 2.3.8.
     2722        * docs/VERSION.DLL: Update version numbers table for 2.3.9.
     2723
     27242009-03-03  David Turner  <david@freetype.org>
     2725
     2726        Remove ABI-breaking field in public PS_InfoFontRec definition.
     2727
     2728        Instead, we define a new internal PS_FontExtraRec structure to
     2729        hold the additional field, then place it in various internal
     2730        positions of the corresponding FT_Face derived objects.
     2731
     2732        * include/freetype/t1tables.h (PS_FontInfoRec): Remove the
     2733        `fs_type' field from the public structure.
     2734        * include/freetype/internal/psaux.h (T1_FieldLocation): New
     2735        enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
     2736        * include/freetype/internal/t1types.h (PS_FontExtraRec): New
     2737        structure.
     2738        (T1_FontRec, CID_FaceRec): Add it.
     2739
     2740        * src/cid/cidload.c (cid_load_keyword): Handle
     2741        T1_FIELD_LOCATION_FONT_EXTRA.
     2742        * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
     2743        Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
     2744        * src/type1/t1load.c (t1_load_keyword): Handle
     2745        T1_FIELD_LOCATION_FONT_EXTRA.
     2746
     2747        * include/freetype/internal/services/svpsinfo.h (PsInfo service):
     2748        Add `PS_GetFontExtraFunc' function typedef.
     2749
     2750        * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
     2751        FT_SERVICE_POSTSCRIPT_INFO_H.
     2752        (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
     2753
     2754        * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
     2755        * src/cid/cidriver.c (cid_ps_get_font_extra): New function.
     2756        (cid_service_ps_info): Updated.
     2757        * src/type1/t1driver.c (t1_ps_get_font_extra): New function.
     2758        (t1_service_ps_info): Updated.
     2759        * src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
     2760        (t42_service_ps_info): Updated.
     2761
     27622009-03-02  Alexey Kryukov  <anagnost@yandex.ru>
     2763
     2764        Fix handling of EBDT formats 8 and 9.
     2765
     2766        The main cycle in `blit_sbit' makes too many iterations: it actually
     2767        needs the count of lines in the source bitmap rather than in the
     2768        target image.
     2769
     2770        * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]:
     2771        Add parameter `source_height' and use it for main loop.
     2772        (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated.
     2773
     27742009-02-23  Werner Lemberg  <wl@gnu.org>
     2775
     2776        Fix Savannah bug #25669.
     2777
     2778        * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
     2779
     2780        * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
     2781        scaling factor for non-scalable fonts.
     2782
     2783        * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
     2784        value to prevent incorrect scaling.
     2785
     2786        * docs/CHANGES: Document it.
     2787
     27882009-02-15  Matt Godbolt  <matt@godbolt.org>
     2789
     2790        Fix Savannah bug #25588.
     2791
     2792        * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
     2793        `orr' instruction.
     2794
     27952009-02-11  Werner Lemberg  <wl@gnu.org>
     2796
     2797        * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
     2798        Reported by David Bevan <dbevan@emtex.com>.
     2799
     28002009-02-09  Werner Lemberg  <wl@gnu.org>
     2801
     2802        Fix Savannah bug #25495.
     2803
     2804        * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
     2805        setting metrics and bbox values.  This ensures that the check for a
     2806        font with neither a `glyf' table nor bitmap strikes can be performed
     2807        early enough to set metrics and bbox values too.
     2808
     28092009-02-04  Werner Lemberg  <wl@gnu.org>
     2810
     2811        Fix Savannah bug #25480.
     2812
     2813        * builds/unix/freetype-config.in: For --ftversion, don't use $prefix
     2814        but $includedir.
     2815
     28162009-01-31  Werner Lemberg  <wl@gnu.org>
     2817
     2818        Minor docmaker improvements.
     2819
     2820        * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
     2821        code blocks.
     2822
     28232009-01-25  Werner Lemberg  <wl@gnu.org>
     2824
     2825        Fix SCANCTRL handling in TTFs.
     2826        Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
     2827
     2828        * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
     2829
     28302009-01-23  Werner Lemberg  <wl@gnu.org>
     2831
     2832        Move FT_Get_FSType_Flags to a separate file.
     2833        Problem reported by Mickey Gabel <mickey@monfort.co.il>.
     2834
     2835        * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
     2836        * src/base/ftfstype.c: This new file.
     2837
     2838        * modules.cfg (BASE_EXTENSION): Add ftfstype.c.
     2839
     2840        * docs/INSTALL.ANY: Updated.
     2841
     2842        * builds/mac/*.txt, builds/amiga/*makefile*,
     2843        builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
     2844        Updated.
     2845
     28462009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     2847
     2848        * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
     2849        messages ending without "\n".
     2850
     28512009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
     2852
     2853        Fix Savannah bug #25347.
     2854
     2855        * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
     2856        the stream to the original position passed to this function,
     2857        when ft_lookup_PS_in_sfnt_stream() failed.
     2858        (Mac_Read_sfnt_Resource): Rewind the stream to the head of
     2859        sfnt resource body, when open_face_PS_from_sfnt_stream()
     2860        failed.
     2861
     28622009-01-19  Michael Lotz  <mmlr@mlotz.ch>
     2863
     2864        Fix Savannah bug #25355.
     2865
     2866        * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
     2867        assembler code work with gcc 2.95.3 (as used by the Haiku project).
     2868        Add `cc' register to the clobber list.
     2869
     28702009-01-18  Werner Lemberg  <wl@gnu.org>
     2871
     2872        Protect FT_Get_Next_Char.
     2873
     2874        * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
     2875        change from 2008-07-22.
     2876
     2877        Patch from Ronen Ghoshal <rghoshal@emtex.com>.
     2878
     28792009-01-18  Werner Lemberg  <wl@gnu.org>
     2880
     2881        Implement FT_Get_Name_Index for SFNT driver.
     2882
     2883        * src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
     2884        (sfnt_service_glyph_dict): Use it.
     2885
     2886        Problem reported by Truc Truong <tructv@necsv.com>.
     2887
     28882009-01-18  Werner Lemberg  <wl@gnu.org>
     2889
     2890        * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
     2891        documentation.  Problem reported by Truc Truong <tructv@necsv.com>.
     2892
     2893        * docs/CHANGES: Updated.
     2894
    128952009-01-14  Werner Lemberg  <wl@gnu.org>
    22896
     
    16230562008-12-22  Steve Grubb
    1633057
    164         * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files. 
     3058        * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
    1653059        Patch from Savannah bug #25151.
    1663060
     
    4303324        [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
    4313325        TT_CONFIG_OPTION_UNPATENTED_HINTING.  This fixes the return value of
    432         `FT_Get_TrueType_Engine_Type' (and makes it work as documented). 
     3326        `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
    4333327        Reported in bug #441638 of bugzilla.novell.com.
    4343328
     
    45333472008-10-14  Werner Lemberg  <wl@gnu.org>
    4543348
    455         * src/cff/cffobjs.c (cff_face_init): Remove compiler warning. 
     3349        * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
    4563350        Suggested by Bram Tassyns in Savannah patch #6651.
    4573351
     
    6303524        src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
    6313525        (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
    632         src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0. 
     3526        src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
    6333527        Reported by Graham Asher.
    6343528
     
    157144652008-03-13  Derek Clegg  <dclegg@apple.com>
    15724466
    1573         * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop. 
     4467        * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
    15744468        Patch from Savannah bug #22541.
    15754469
     
    18744768
    18754769        * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
    1876         support for bit 8 of the `fsSelection' field in the `OS/2' table. 
     4770        support for bit 8 of the `fsSelection' field in the `OS/2' table.
    18774771        MS is already using this; hopefully, this becomes part of OpenType
    18784772        1.5.
     
    41737067        `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
    41747068        Jens:
    4175         http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
    4176 
    4177         * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'. 
     7069        http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
     7070
     7071        * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
    41787072        It reverts the change introduced on 2005-08-20.
    41797073
     
    41947088        * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
    41957089
    4196         * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing. 
     7090        * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
    41977091        (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
    41987092        not T1_TOKEN_TYPE_ANY.
     
    42777171
    42787172        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
    4279         for (partially commented out) othersubrs 19-25, 27, and 28. 
    4280         (t1_decoder_init): Initialize new fields `face' and `buildchar'. 
     7173        for (partially commented out) othersubrs 19-25, 27, and 28.
     7174        (t1_decoder_init): Initialize new fields `face' and `buildchar'.
    42817175        (t1_decoder_done): Release new field `buildchar'.
    42827176
     
    43707264
    43717265        Fix two hinting bugs as reported in
    4372         http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
     7266        http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
    43737267
    43747268        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
Note: See TracChangeset for help on using the changeset viewer.