~ubuntu-branches/ubuntu/wily/hedgewars/wily

« back to all changes in this revision

Viewing changes to misc/libfreetype/ChangeLog.23

  • Committer: Package Import Robot
  • Author(s): Dmitry E. Oboukhov
  • Date: 2011-09-23 10:16:55 UTC
  • mfrom: (1.2.11 upstream)
  • Revision ID: package-import@ubuntu.com-20110923101655-3977th2gc5n0a3pv
Tags: 0.9.16-1
* New upstream version.
 + Downloadable content! Simply click to install any content.
   New voices, hats, maps, themes, translations, music, scripts...
   Hedgewars is now more customisable than ever before! As time goes
   by we will be soliciting community content to feature on this page,
   so remember to check it from time to time. If you decide you want
   to go back to standard Hedgewars, just remove the Data directory
   from your Hedgewars config directory.
 + 3-D rendering! Diorama-like rendering of the game in a variety
   of 3D modes. Let us know which ones work best for you, we didn't
   really have the equipment to test them all.
 + Resizable game window.
 + New utilities! The Time Box will remove one of your hedgehogs
   from the game for a while, protecting from attack until it returns,
   somewhere else on the map. Land spray will allow you to build bridges,
   seal up holes, or just make life unpleasant for your enemies.
 + New single player: Bamboo Thicket, That Sinking Feeling, Newton and
   the Tree and multi-player: The Specialists, Space Invaders,
   Racer - scripts! And a ton more script hooks for scripters
 + New twists on old weapons. Drill strike, seduction and fire have
   been adjusted. Defective mines have been added, rope can attach to
   hogs/crates/barrels again, grenades now have variable bounce (use
   precise key + 1-5). Portal gun is now more usable in flight and
   all game actions are a lot faster.
 + New theme - Golf, dozens of new community hats and a new
   localised Default voice, Ukranian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
2010-02-13  Werner Lemberg  <wl@gnu.org>
 
2
 
 
3
        * Version 2.3.12 released.
 
4
        ==========================
 
5
 
 
6
 
 
7
        Tag sources with `VER-2-3-12'.
 
8
 
 
9
        * docs/CHANGES: Updated.
 
10
 
 
11
        * docs/VERSION.DLL: Update documentation and bump version number to
 
12
        2.3.12.
 
13
 
 
14
        * README, Jamfile (RefDoc),
 
15
        builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
 
16
        builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
 
17
        builds/win32/visualc/freetype.dsp,
 
18
        builds/win32/visualc/freetype.vcproj,
 
19
        builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
 
20
        builds/win32/visualce/freetype.vcproj,
 
21
        builds/win32/visualce/index.html,
 
22
        builds/wince/vc2005-ce/freetype.vcproj,
 
23
        builds/wince/vc2005-ce/index.html,
 
24
        builds/wince/vc2008-ce/freetype.vcproj,
 
25
        builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/.
 
26
 
 
27
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
 
28
 
 
29
        * builds/unix/configure.raw (version_info): Set to 10:0:4.
 
30
 
 
31
2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
32
 
 
33
        Improve autotool version checking to work with beta releases.
 
34
 
 
35
        * autogen.sh (check_tool_version): Improve the extraction of version
 
36
        number from "tool --version" output.  Some beta releases of
 
37
        autotools have extra strings before version number.
 
38
 
 
39
2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
40
 
 
41
        Fix overallocating bug in FT_Outline_New_Internal().
 
42
 
 
43
        * src/base/ftoutln.c (FT_Outline_New_Internal): The length of
 
44
        FT_Outline->points[] should be numPoints, not 2 * numPoints.
 
45
        Found by Paul Messmer, see
 
46
        http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
 
47
 
 
48
2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
 
49
 
 
50
        Really fix Savannah bug #28678 (part 2).
 
51
 
 
52
        Since we consider `sbw' for the horizontal direction only, we still have
 
53
        to synthesize vertical metrics if the user wants to use the vertical
 
54
        writing direction.
 
55
 
 
56
        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
 
57
        (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph):
 
58
        Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is
 
59
        set.
 
60
 
 
61
2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
 
62
 
 
63
        Really fix Savannah bug #28678 (part 1).
 
64
 
 
65
        After long discussion, we now consider the character width vector
 
66
        (wx,wy) returned by the `sbw' Type 1 operator as being part of *one*
 
67
        direction only.  For example, if you are using the horizontal
 
68
        writing direction, you get the horizontal and vertical components of
 
69
        the advance width for this direction.  Note that OpenType and CFF fonts
 
70
        don't have such a vertical component; instead, the GPOS table can be
 
71
        used to generate two-dimensional advance widths (but this isn't
 
72
        handled by FreeType).
 
73
 
 
74
        * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
 
75
        `advance_v' field to hold the vertical component of the advance
 
76
        value.
 
77
 
 
78
        * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c
 
79
        (cff_slot_load), src/type1/t1gload.c
 
80
        (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c
 
81
        (cid_load_glyph): Use it.
 
82
 
 
83
2010-02-08  Werner Lemberg  <wl@gnu.org>
 
84
 
 
85
        * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
 
86
 
 
87
2010-02-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
88
 
 
89
        Prevent NULL pointer dereference passed to FT_Module_Requester.
 
90
 
 
91
        * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
 
92
        * src/psnames/psmodule.c (psnames_get_interface): Ditto.
 
93
 
 
94
        * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
 
95
        * src/truetype/ttdriver.c (tt_get_interface): Ditto.
 
96
 
 
97
2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
98
 
 
99
        Fix memory leaks in previous patch.
 
100
 
 
101
        * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
 
102
        allocated for face->root.family_name and style_name.
 
103
 
 
104
2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
105
 
 
106
        New parameters for FT_Open_Face() to ignore preferred family names.
 
107
 
 
108
        Preferred family names should be used for legacy systems that
 
109
        can hold only a few faces (<= 4) for a family name. Suggested by
 
110
        Andreas Heinrich.
 
111
        http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
 
112
 
 
113
        * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
 
114
        FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
 
115
 
 
116
        * src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and
 
117
        ignore preferred family and subfamily names if requested.
 
118
 
 
119
2010-01-27  Ken Sharp  <ken.sharp@artifex.com>
 
120
 
 
121
        Fix Savannah bug #28678.
 
122
 
 
123
        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
 
124
        (cid_load_glyph): Handle vertical metrics correctly.
 
125
 
 
126
        * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle
 
127
        vertical metrics correctly.
 
128
        (T1_Load_Glyph): Don't synthesize vertical metrics.
 
129
 
 
130
2010-01-14  Werner Lemberg  <wl@gnu.org>
 
131
 
 
132
        Make FT_Set_Transform work if no renderer is available.
 
133
 
 
134
        * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
 
135
        if no renderer is compiled into the library.
 
136
 
 
137
2010-01-14  Werner Lemberg  <wl@gnu.org>
 
138
 
 
139
        Fix compilation warning.
 
140
 
 
141
        * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
 
142
        * src/base/ftobjc.s: Include ftbase.h conditionally.
 
143
 
 
144
2010-01-11  Kwang Yul Seo  <skyul@company100.net>
 
145
 
 
146
        Provide inline assembly code for RVCT compiler.
 
147
        This is Savannah patch #7059.
 
148
 
 
149
        * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
 
150
        FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
 
151
 
 
152
2010-01-08  Ken Sharp  <ken.sharp@artifex.com>
 
153
 
 
154
        Fix Savannah bug #28521.
 
155
 
 
156
        Issue #28226 involved a work-around for a font which used the
 
157
        `setcurrentpoint' operator in an invalid way; this operator is only
 
158
        supposed to be used with the result of OtherSubrs, and the font used
 
159
        it directly.  The supplied patch removed the block of code which
 
160
        checked this usage entirely.
 
161
 
 
162
        This turns out to be a Bad Thing.  If `setcurrentpoint' is being
 
163
        used correctly it should reset the flex flag in the decoder.  If we
 
164
        don't do this then the flag never gets reset and we omit any further
 
165
        contours from the glyph (at least until we close the path or
 
166
        similar).
 
167
 
 
168
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
 
169
        <op_setcurrentpoint>: Handle `flex_state' correctly.
 
170
 
 
171
2010-01-05  Werner Lemberg  <wl@gnu.org>
 
172
 
 
173
        Apply reports from clang static analyzer.
 
174
 
 
175
        * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c
 
176
        (FT_Stroker_ParseOutline), src/base/ftsynth.c
 
177
        (FT_GlyphSlot_Embolden): Remove dead code.
 
178
 
 
179
        * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
 
180
        `offset_i' and `length_i'.
 
181
 
 
182
2010-01-05  Ralph Giles  <giles@ghostscript.com>
 
183
 
 
184
        Enable the incremental font interface by default.
 
185
 
 
186
        Ghostscript requires the incremental font interface for handling
 
187
        some Postscript documents.  It is moving to using FreeType as its
 
188
        primary renderer; supporting this in the default build makes it
 
189
        Ghostscript to be linked against the system FreeType when one is
 
190
        available.
 
191
 
 
192
        * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
 
193
        Uncomment.
 
194
 
 
195
2010-01-05  Werner Lemberg  <wl@gnu.org>
 
196
 
 
197
        Fix Savannah bug #28395.
 
198
 
 
199
        * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
 
200
        (T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
 
201
        is used.
 
202
 
 
203
2010-01-05  Ken Sharp  <ken.sharp@artifex.com>
 
204
 
 
205
        Make Type 1 `seac' operator work with incremental interface.
 
206
        This fixes Savannah bug #28480.
 
207
 
 
208
        * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
 
209
        if incremental interface is used.
 
210
 
 
211
2010-01-04  Ken Sharp  <ken.sharp@artifex.com>
 
212
 
 
213
        Make incremental interface work with TrueType fonts.
 
214
        This fixes Savannah bug #28478.
 
215
 
 
216
        * src/truetype/ttgload.c (load_truetype_glyph): Don't check
 
217
        `glyf_offset' if incremental interface is used.
 
218
 
 
219
2009-12-31  Lars Abrahamsson  <wonko@opera.com>
 
220
 
 
221
        Make compilation with FT_CONFIG_OPTION_PIC work again.
 
222
 
 
223
        * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
 
224
        Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
 
225
 
 
226
        * src/base/ftinit.c (ft_destroy_default_module_classes,
 
227
        ft_create_default_module_classes): Use proper casts (needed for C++
 
228
        compilation).
 
229
 
 
230
        * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
 
231
 
 
232
2009-12-22  Marc Kleine-Budde  <mkl@pengutronix.de>
 
233
 
 
234
        Make freetype-config aware of $SYSROOT.
 
235
        This is Savannah patch #7040.
 
236
 
 
237
        * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
 
238
        appropriate.
 
239
 
 
240
2009-12-20  Werner Lemberg  <wl@gnu.org>
 
241
 
 
242
        Fix compiler warning.
 
243
        Reported by Sean.
 
244
 
 
245
        * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty
 
246
        source files; however, some compilers warn about an unused variable
 
247
        declaration.  This is now replaced with a typedef.
 
248
 
 
249
2009-12-18  Werner Lemberg  <wl@gnu.org>
 
250
 
 
251
        Fix Savannah bug #28320.
 
252
 
 
253
        There exist corrupt, subsetted fonts (embedded in PDF files) which
 
254
        contain a private dict that ends with an unterminated floating point
 
255
        number (no operator following).  We now ignore this error (as
 
256
        acrobat does).
 
257
 
 
258
        * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
 
259
        unterminated floating point numbers.
 
260
 
 
261
2009-12-16  Werner Lemberg  <wl@gnu.org>
 
262
 
 
263
        Really fix compiler warnings.
 
264
        Reported by Sean.
 
265
 
 
266
        * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
 
267
        GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
 
268
 
 
269
2009-12-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
270
 
 
271
        Improve configure.raw to copy some options from CFLAGS to LDFLAGS.
 
272
        The linker of Mac OS X 10.6 is sensitive to the architecture.  If
 
273
        the architectures are specified explicitly for the C compiler, the
 
274
        linker requires the architecture specifications too.
 
275
 
 
276
        * builds/unix/configure.raw: Replace `-isysroot' option parser by
 
277
        more generic argument parser.
 
278
 
 
279
2009-12-15  Werner Lemberg  <wl@gnu.org>
 
280
 
 
281
        Fix compiler warnings.
 
282
        Reported by Sean.
 
283
 
 
284
        * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
 
285
        type.
 
286
 
 
287
2009-12-14  Ken Sharp  <ken.sharp@artifex.com>
 
288
 
 
289
        Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
 
290
        This fixes Savannah bug #28226.
 
291
 
 
292
        At least two wild PostScript files of unknown provenance contain
 
293
        Type 1 fonts, apparently converted from TrueType fonts in earlier
 
294
        PDF versions of the files, which use the `setcurrentpoint' operator
 
295
        inappropriately.
 
296
 
 
297
        FreeType currently throws an error in this case, but Ghostscript and
 
298
        Adobe Distiller both accept the fonts and ignore the problem.  This
 
299
        commit #ifdefs out the check so PostScript interpreters using
 
300
        FreeType can render these files.
 
301
 
 
302
        The specification says `setcurrentpoint' should only be used to set
 
303
        the point after a `Subr' call, but these fonts use it to set the
 
304
        initial point to (0,0).  Unnecessarily so, as they correctly use an
 
305
        `hsbw' operation which implicitly sets the initial point.
 
306
 
 
307
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
 
308
        <op_setcurrentpoint>: Comment out code.
 
309
 
 
310
2009-12-14  Bram Tassyns  <bramt@enfocus.be>
 
311
 
 
312
        Fix parsing of /CIDFontVersion.
 
313
        This fixes Savannah bug #28287.
 
314
 
 
315
        * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
 
316
        t1tables.h) is of type FT_Fixed.
 
317
 
 
318
2009-12-14  Werner Lemberg  <wl@gnu.org>
 
319
 
 
320
        Trace glyph index in CID module.
 
321
        Suggested in Savannah patch #7023.
 
322
 
 
323
        * src/cid/cidgload.c (cid_load_glyph): Add tracing message.
 
324
 
 
325
2009-12-03  Werner Lemberg  <wl@gnu.org>
 
326
 
 
327
        Fix compiler warnings.
 
328
 
 
329
        * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the
 
330
        proper preprocessor conditional.
 
331
        * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
 
332
 
 
333
2009-11-25  John Tytgat  <John.Tytgat@esko.com>
 
334
 
 
335
        Better handling of start of `eexec' section.
 
336
        This fixes Savannah bug #28090.
 
337
 
 
338
        * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
 
339
        characters before start of `eexec' section.
 
340
 
 
341
2009-11-20  Werner Lemberg  <wl@gnu.org>
 
342
 
 
343
        Fix Savannah bug #27742.
 
344
 
 
345
        * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
 
346
        zero, using a threshold for `theta'.
 
347
 
 
348
2009-11-20  Werner Lemberg  <wl@gnu.org>
 
349
 
 
350
        Fix Savannah bug #28036.
 
351
 
 
352
        * src/type1/t1afm.c (t1_get_index): Fix comparison.
 
353
 
 
354
2009-11-16  Werner Lemberg  <wl@gnu.org>
 
355
 
 
356
        Fix compiler warnings.
 
357
        Reported by Kevin Blenkinsopp <arqon@promode.org>.
 
358
 
 
359
        * src/sfnt/ttload.c (check_table_dir): Use proper data type.
 
360
 
 
361
2009-11-15  Werner Lemberg  <wl@gnu.org>
 
362
 
 
363
        Really fix FreeDesktop bug #21197.
 
364
        This also fixes Savannah bug #28021.
 
365
 
 
366
        * src/autofit/aflatin.c (af_latin_metrics_check_digits),
 
367
        src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
 
368
 
 
369
2009-11-15  Werner Lemberg  <wl@gnu.org>
 
370
 
 
371
        Add tracing messages for advance values.
 
372
 
 
373
        * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
 
374
        (TT_Get_HMetrics, TT_Get_VMetrics): Do it.
 
375
 
 
376
2009-11-08  Werner Lemberg  <wl@gnu.org>
 
377
 
 
378
        Fix compiler warning.
 
379
        Reported by Jeremy Manson <jeremy.manson@gmail.com>.
 
380
 
 
381
        * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
 
382
 
 
383
2009-11-04  Werner Lemberg  <wl@gnu.org>
 
384
 
 
385
        Remove compiler warning.
 
386
        Reported by Sean McBride <sean@rogue-research.com>.
 
387
 
 
388
        * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
 
389
        `int', as specified in the printf(3) man page.
 
390
 
 
391
2009-11-04  Werner Lemberg  <wl@gnu.org>
 
392
 
 
393
        Fix Savannah bug #27921.
 
394
 
 
395
        * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
 
396
        (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
 
397
        src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
 
398
        values for rounding if the argument can be negative.
 
399
 
 
400
2009-11-03  Bram Tassyns  <bramt@enfocus.be>
 
401
 
 
402
        Add basic support for Type1 charstrings in CFF.
 
403
        This fixes Savannah bug #27922.
 
404
 
 
405
        * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
 
406
        `seac', `sbw', and `setcurrentpoint' opcodes.
 
407
        (cff_compute_bias): Add parameter to indicate the charstring type.
 
408
        Update all callers.
 
409
        (cff_operator_seac): Add parameter for side bearing.
 
410
        (cff_decoder_parse_charstrings): Updated for more Type1 support.
 
411
 
 
412
2009-11-03  Werner Lemberg  <wl@gnu.org>
 
413
 
 
414
        Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
 
415
        Reported by Jeremy Manson <jeremy.manson@gmail.com>.
 
416
 
 
417
        src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
 
418
        quickly load the glyph header only.
 
419
        Update all callers.
 
420
        (tt_loader_init): Add parameter to quickly load the `glyf' table
 
421
        only.
 
422
        Update all callers.
 
423
        (TT_Load_Glyph): Compute linear advance values for embedded bitmap
 
424
        glyphs too.
 
425
 
 
426
2009-11-03  Werner Lemberg  <wl@gnu.org>
 
427
 
 
428
        Improve code readability.
 
429
 
 
430
        * src/ttgload.c (load_truetype_glyph): Move metrics calculation
 
431
        to...
 
432
        (tt_get_metrics): This new function.
 
433
 
 
434
2009-10-26  Bram Tassyns  <bramt@enfocus.be>
 
435
 
 
436
        Fix Savannah bug #27811.
 
437
 
 
438
        * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
 
439
        signed/unsigned mismatch.
 
440
 
 
441
2009-10-19  Ning Dong  <flintning@163.com>
 
442
 
 
443
        Fix handling of `get' and `put' CFF instructions.
 
444
 
 
445
        * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
 
446
        cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
 
447
        elements for the `get' and `put' operators to 32.
 
448
        * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
 
449
        (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
 
450
 
 
451
2009-10-18  Werner Lemberg  <wl@gnu.org>
 
452
 
 
453
        Fix handling of `dup' CFF instruction.
 
454
        Problem and solution reported by Ning Dong <flintning@163.com>.
 
455
 
 
456
        * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
 
457
        Increase `args' by 2, not 1.
 
458
 
 
459
2009-10-10  Werner Lemberg  <wl@gnu.org>
 
460
 
 
461
        * Version 2.3.11 released.
 
462
        ==========================
 
463
 
 
464
 
 
465
        Tag sources with `VER-2-3-11'.
 
466
 
 
467
        * docs/VERSION.DLL: Update documentation and bump version number to
 
468
        2.3.11.
 
469
 
 
470
        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 
471
        builds/win32/visualc/freetype.dsp,
 
472
        builds/win32/visualc/freetype.vcproj,
 
473
        builds/win32/visualce/index.html,
 
474
        builds/win32/visualce/freetype.dsp,
 
475
        builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
 
476
 
 
477
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
 
478
 
 
479
        * builds/unix/configure.raw (version_info): Set to 9:22:3.
 
480
 
 
481
2009-10-10  Werner Lemberg  <wl@gnu.org>
 
482
 
 
483
        * docs/CHANGES, docs/release: Updated.
 
484
 
 
485
2009-10-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
486
 
 
487
        * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
 
488
        truncation.  Reported by Martin von Gagern and Peter Volkov.
 
489
        https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
 
490
 
 
491
2009-10-06  Werner Lemberg  <wl@gnu.org>
 
492
 
 
493
        * Version 2.3.10 released.
 
494
        ==========================
 
495
 
 
496
 
 
497
        Tag sources with `VER-2-3-10'.
 
498
 
 
499
        * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
 
500
        than a single digit.
 
501
        (dist): We now use git.
 
502
 
 
503
        * docs/VERSION.DLL: Update documentation and bump version number to
 
504
        2.3.10.
 
505
 
 
506
        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 
507
        builds/win32/visualc/freetype.dsp,
 
508
        builds/win32/visualc/freetype.vcproj,
 
509
        builds/win32/visualce/index.html,
 
510
        builds/win32/visualce/freetype.dsp,
 
511
        builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
 
512
 
 
513
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
 
514
 
 
515
        * builds/unix/configure.raw (version_info): Set to 9:21:3.
 
516
 
 
517
2009-10-06  Werner Lemberg  <wl@gnu.org>
 
518
 
 
519
        Fix `make multi'.
 
520
 
 
521
        * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
 
522
 
 
523
        * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
 
524
 
 
525
2009-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
526
 
 
527
        [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
 
528
        Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
 
529
        Now these functions should be called with FTC_Node or FTC_MruNode
 
530
        variable, and the caller should cast them to appropriate pointers to
 
531
        concrete data.  These tricky casts can GCC-4.4 optimizer (-O2)
 
532
        confused and the crashing binaries are generated.
 
533
 
 
534
        * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
 
535
        Now the 4th argument `node' of this function should be typed as
 
536
        FTC_MruNode.
 
537
 
 
538
        * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
 
539
        implementation, new temporal variable FTC_MruNode `_mrunode' to take
 
540
        the pointer from FTC_MRULIST_LOOKUP_CMP().  For non-inline
 
541
        implementation, tricky cast is dropped.
 
542
 
 
543
        * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
 
544
        to FTC_SizeNode.
 
545
        (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
 
546
        `mrunode', and FTC_SIZE_NODE() is inserted.
 
547
        (FTC_FACE_NODE): New macro casting to FTC_FaceNode.
 
548
        (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
 
549
        `mrunode', and FTC_FACE_NODE() is inserted.
 
550
 
 
551
        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
 
552
        `node' from FTC_INode to FTC_Node.  Extra casting macro FTC_NODE()
 
553
        is dropped.
 
554
        (FTC_ImageCache_LookupScaler): Ditto.
 
555
        (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
 
556
        FTC_Node.  Extra casting macro FTC_NODE() is dropped.  FTC_SNODE()
 
557
        is inserted.
 
558
        (FTC_SBitCache_LookupScaler): Ditto.
 
559
 
 
560
        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
 
561
        `node' from FTC_CMapNode to FTC_Node.  Extra casting macro
 
562
        FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
 
563
 
 
564
2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
565
 
 
566
        [cache, psaux, type1] Fix for multi build.
 
567
        In multi build, some cpp functions are left as unresolved symbols.
 
568
 
 
569
        * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
 
570
 
 
571
        * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
 
572
        FIXED_TO_INT().
 
573
        * src/type1/t1gload.c: Ditto.
 
574
        * src/type1/t1objs.c: Ditto.
 
575
 
 
576
2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
577
 
 
578
        [autofit] Fix for multi build.
 
579
 
 
580
        * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
 
581
        FT_DECLARE_MODULE() macro in multi build.
 
582
 
 
583
        * src/autofit/aflatin.c: Include <ft2build.h> to handle
 
584
        FT_ADVANCES_H correctly in multi build.
 
585
 
 
586
2009-09-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
587
 
 
588
        [cache] Check the face filled by FTC_Manager_LookupFace().
 
589
 
 
590
        * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
 
591
        immediately if FTC_Manager_LookupFace() fills face by NULL.  Such
 
592
        case can occur when the code is optimized by GCC-4.2.x.
 
593
 
 
594
2009-09-23  Werner Lemberg  <wl@gnu.org>
 
595
 
 
596
        * docs/CHANGES: Updated.
 
597
 
 
598
2009-09-12  Werner Lemberg  <wl@gnu.org>
 
599
 
 
600
        [raster] Fix 5-levels grayscale output.
 
601
        This was broken since version 2.3.0.
 
602
 
 
603
        * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
 
604
        were then computed dynamically).
 
605
        (Vertical_Gray_Sweep_Step): Updated.
 
606
 
 
607
        (ft_black_render): Initialize `worker->gray_lines' (problem found by
 
608
        valgrind).
 
609
 
 
610
        (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
 
611
        comment out.
 
612
 
 
613
2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
614
 
 
615
        Improve configure.raw for cross build.
 
616
 
 
617
        * builds/unix/configure.raw: Remove temporal files created by the
 
618
        suffix checking for CC_BUILD.  Set XX_ANSIFLAGS and XX_CFLAGS when
 
619
        cross compiler is GCC.  AC_PROG_CC checks whether the cross compiler
 
620
        is GCC, its result is stored in GCC.
 
621
 
 
622
2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
623
 
 
624
        [BDF] Modify hash API to take size_t value instead of void *.
 
625
 
 
626
        The hash API in BDF driver is designed to be generic, it takes
 
627
        void * typed data.  But BDF driver always gives an unsigned long
 
628
        integer (the index to a property).  To reduce non-essential
 
629
        casts from unsigned long to void* and from void* to unsigned
 
630
        long, the hash API is changed to take size_t integer.
 
631
        The issue of incompatible cast between unsigned long and void*
 
632
        on LLP64 platform is reported by NightStrike from MinGW-Win64
 
633
        project.  See
 
634
        http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
 
635
 
 
636
        * src/bdf/bdf.h: The type of hashnode->data is changed from
 
637
        void* to size_t.
 
638
 
 
639
        * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
 
640
        void* data.
 
641
        (bdf_create_property): Get the name length of new property by
 
642
        size_t variable, with a cut-off at FT_ULONG_MAX.
 
643
        (_bdf_set_default_spacing): Get the name length of the face by
 
644
        size_t variable, with a cut-off at 256.
 
645
        (bdf_get_property): Get the property id by size_t variable to
 
646
        reduce the casts between 32-bit prop ID & hashnode->data during
 
647
        simple copying.
 
648
        (_bdf_add_property): Ditto.
 
649
        (_bdf_parse_start): Calculate the index to the property array
 
650
        by size_t variable.
 
651
        (bdf_get_font_property): Drop a cast to unsigned long.
 
652
 
 
653
2009-09-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
654
 
 
655
        [Win64] Improve the computation of random seed from stack address.
 
656
 
 
657
        On LLP64 platform, the conversion from pointer to FT_Fixed need
 
658
        to drop higher 32-bit.  Explict casts are required. Reported by
 
659
        NightStrike from MinGW-w64 project.  See
 
660
        http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
 
661
 
 
662
        * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
 
663
 
 
664
        * src/psaux/t1decode.c: Ditto.
 
665
 
 
666
 
 
667
2009-09-03  Werner Lemberg  <wl@gnu.org>
 
668
 
 
669
        [raster] Improvements for stand-alone mode.
 
670
 
 
671
        * src/raster/rules.mk: Don't handle ftmisc.h.  It is needed for
 
672
        stand-alone mode only.
 
673
 
 
674
        * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
 
675
        FT_Realloc_Func): Copy declarations from ftsystem.h.
 
676
 
 
677
2009-09-02  Bram Tassyns  <bramt@enfocus.be>
 
678
 
 
679
        Improve vertical metrics calculation (Savannah bug #27364).
 
680
 
 
681
        The calculation of `vertBearingX' is not defined in the OTF font
 
682
        spec so FreeType does a `best effort' attempt.  However, this value
 
683
        is defined in the PDF and PostScript specs, and that algorithm is
 
684
        better than the one FreeType currently uses:
 
685
 
 
686
          FreeType: Use the middle of the bounding box as the X coordinate
 
687
                    of the vertical origin.
 
688
 
 
689
          Adobe PDF spec: Use the middle of the horizontal advance vector as
 
690
                          the X coordinate of the vertical origin.
 
691
 
 
692
        FreeType's algorithm goes wrong if you have a really small glyph
 
693
        (like the full-width, circle-like dot at the end of the sentence, as
 
694
        used in CJK scripts) with large bearings.  With the FreeType
 
695
        algorithm this dot gets centered on the baseline; with the PDF
 
696
        algorithm it gets the correct location (in the top right).  Note
 
697
        that this is a serious issue, it's like printing the dot at the end
 
698
        of a Roman sentence at the center of the textline instead of on the
 
699
        baseline like it should. So i believe the PDF spec's algorithm
 
700
        should be used in FreeType as well.
 
701
 
 
702
        The `vertBearingY' value for such small glyphs is also very strange
 
703
        if no `vmtx' information is present, since the height of the bbox is
 
704
        not representable for the height of the glyph visually (the
 
705
        whitespace up to the baseline is part of the glyph).  The fix also
 
706
        includes some code for a better estimate of `vertBearingY'.
 
707
 
 
708
        * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
 
709
        is now calculated as described by the Adobe PDF Spec.  Estimate for
 
710
        `vertBearingY' now works better for small glyphs completely above or
 
711
        below the baseline into account.
 
712
 
 
713
        * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
 
714
        calculated as described by the Adobe PDF Spec.  Vertical metrics
 
715
        information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
 
716
        was not defined.
 
717
 
 
718
        * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
 
719
        now calculated as described by the Adobe PDF Spec.
 
720
 
 
721
2009-09-01  John Tytgat  <John.Tytgat@esko.com>
 
722
 
 
723
        Fix custom cmap for empty Type 1 font (Savannah bug #27294).
 
724
 
 
725
        * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
 
726
        comment to reflect revised code_last meaning.
 
727
        * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
 
728
        (T42_Open_Face): Assign max_char as highest character code + 1 and
 
729
        use this for T1_EncodingRecRec_::code_last.
 
730
        * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
 
731
        T1_EncodingRecRec_::code_last meaning.
 
732
 
 
733
2009-08-25  Werner Lemberg  <wl@gnu.org>
 
734
 
 
735
        Fix rendering of horizontally compressed CFFs.
 
736
        Bug reported by Ivan Nincic <inincic@pdftron.com>.
 
737
 
 
738
        * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
 
739
        `font_matrix' also.
 
740
 
 
741
        * docs/CHANGES: Updated.
 
742
 
 
743
2009-08-03  suyu0925@gmail.com
 
744
 
 
745
        Don't call `ft_fseek' every time when executing `ft_fread'.
 
746
 
 
747
        * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
 
748
        (ft_ansi_stream_io): Implement it.
 
749
 
 
750
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
751
 
 
752
        sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
 
753
        
 
754
        * src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
 
755
        tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
 
756
        tt_cmap14_variant_chars): Correct mismatches from
 
757
        FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
 
758
        are replaced by FT_UInt32 arguments.
 
759
 
 
760
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
761
 
 
762
        sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
 
763
 
 
764
        * src/sfnt/ttcmap.c (tt_cmap12_char_next):
 
765
        Insert explicit cast from FT_UFast to FT_UInt32
 
766
        for return value.
 
767
 
 
768
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
769
 
 
770
        psaux: Fix a few casts to FT_Int32 value.
 
771
 
 
772
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
 
773
        Fix a few casts setting `value' from FT_Long to FT_Int32,
 
774
        because `value' is typed as FT_Int32 since 2009-06-22.
 
775
 
 
776
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
777
 
 
778
        sfnt: Fix a data type mismatching with its source.
 
779
 
 
780
        * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
 
781
        type of `gindex' from FT_ULong to FT_UInt because
 
782
        it is set by FT_UInt tt_cmap13_char_map_binary() or
 
783
        TT_CMap13->cur_gindex.
 
784
 
 
785
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
786
 
 
787
        sfnt: Extend a few local variables to load 32-bit values.
 
788
 
 
789
        * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
 
790
        and `kern' to load 32-bit values.
 
791
 
 
792
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
793
 
 
794
        pfr: Extend `num_aux' to take 32-bit value.
 
795
 
 
796
        * src/pfr/pfrload.c (pfr_phy_font_load): Extend
 
797
        `num_aux' to load 32-bit value.
 
798
 
 
799
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
800
 
 
801
        pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
 
802
 
 
803
        * src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
 
804
        as FT_ULong value from PCF file, but truncate it as
 
805
        int to fit PCF_Face->nprops.  The number of truncated
 
806
        properties is shown in the trace message.
 
807
 
 
808
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
809
 
 
810
        gxvalid: Extend a few local variables to reduce the casts.
 
811
 
 
812
        * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
 
813
        Extend `type' and `rest' to take FT_ULong values.
 
814
 
 
815
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
816
 
 
817
        gxvalid: Extend `settingTable' to take 32-bit offset.
 
818
 
 
819
        * src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
 
820
        Extend `settingTable' to take 32-bit offset.
 
821
 
 
822
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
823
 
 
824
        autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
 
825
 
 
826
        * src/autofit/afglobal.c (af_face_globals_is_digit,
 
827
        af_face_globals_compute_script_coverage): Cast FT_Long
 
828
        globals->glyph_count to FT_ULong, to compare with FT_UInt
 
829
        gindex.
 
830
 
 
831
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
832
 
 
833
        smooth: Exclude 16-bit system in invalid pitch/height check.
 
834
 
 
835
        * src/smooth/ftsmooth.c (ft_smooth_render_generic):
 
836
        pitch and height are typed as FT_UInt but checked to fit
 
837
        16-bit range, to avoid the overflows.  On 16-bit system,
 
838
        this checking inserts a conditional that never occurs.
 
839
 
 
840
2009-07-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
841
 
 
842
        cff: Type large constants > 0x7FFF as long for 16-bit systems.
 
843
 
 
844
        * src/cff/cffload.c (cff_charset_load): Type large
 
845
        constants > 0x7FFF as long, because normal constants
 
846
        are typed signed integer that is less than 0x8000 on
 
847
        16-bit systems.
 
848
 
 
849
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
850
 
 
851
        base: Remove an unused variable.
 
852
 
 
853
        * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
 
854
        unused variable `library'.  glyph->library is used.
 
855
 
 
856
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
857
 
 
858
        cache: Check higher bits in flags for non ILP32 systems.
 
859
 
 
860
        4 public functions ought to take FT_ULong flags, but take
 
861
        FT_UInt flags. To keep binary compatibility, we drop higher
 
862
        bits on non ILP32 platforms,
 
863
                ILP64 systems: No drop occurs.
 
864
                LP64 systems: Higher bits are not used.
 
865
                16-bit systems: Drop can occur.
 
866
        See
 
867
        http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
 
868
        These functions will be refined to take FT_ULong flags in
 
869
        next bump with incompatible API change.
 
870
 
 
871
        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
 
872
        Check `flags' in `type', the 2nd argument.
 
873
        (FTC_SBitCache_Lookup): Ditto.
 
874
        (FTC_ImageCache_LookupScaler): Check `load_flags',
 
875
        the 3rd argument.
 
876
        (FTC_SBitCache_LookupScaler): Ditto.
 
877
 
 
878
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
879
 
 
880
        sfnt: Ignore invalid GIDs in glyph name lookup.
 
881
 
 
882
        * include/freetype/internal/fttrace.h:
 
883
        New trace module for sfdriver.c is added.
 
884
 
 
885
        * src/sfnt/sfdriver.c (sfnt_get_name_index):
 
886
        Restrict glyph name lookup to FT_UInt GID.
 
887
        Genuine TrueType can hold 16-bit glyphs.
 
888
 
 
889
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
890
 
 
891
        pcf: Fix a comparison between FT_Long and FT_ULong.
 
892
 
 
893
        * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
 
894
        if PCF_Face->nemetrics is negative.
 
895
 
 
896
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
897
 
 
898
        gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
 
899
 
 
900
        * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
 
901
        Extend the 3rd argument `nFeatureFlags' to FT_ULong.
 
902
        * src/gxvalid/gxvmort.h: Ditto.
 
903
 
 
904
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
905
 
 
906
        sfnt: Insert explicit cast for LP64 system.
 
907
 
 
908
        * src/sfnt/ttkern.c (tt_face_load_kern): Insert
 
909
        cast from unsigned long to FT_UInt32.
 
910
 
 
911
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
912
 
 
913
        gxvalid: Guarantee `just' table size upto 32-bit.
 
914
 
 
915
        * src/gxvalid/gxvjust.c (gxv_just_validate):
 
916
        The type of `offset' is changed from FT_UInt to
 
917
        FT_Offset, for 16-bit platforms.
 
918
 
 
919
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
920
 
 
921
        gxvalid: Guarantee `trak' table size upto 32-bit.
 
922
 
 
923
        * src/gxvalid/gxvtrak.c (gxv_trak_validate):
 
924
        The type of `offset' is changed from FT_UInt to
 
925
        FT_Offset, for 16-bit platforms.
 
926
 
 
927
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
928
 
 
929
        type1: Fix a data type mismatching with its source.
 
930
 
 
931
        * include/freetype/internal/t1types.h: The type of
 
932
        T1_Face->buildchar is matched with T1_Decorder->top.
 
933
 
 
934
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
935
 
 
936
        pfr: Fix a data type mismatching with its source.
 
937
 
 
938
        * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
 
939
        is extended from FT_UInt32 to FT_Offset, because it is
 
940
        calculated with the pointer difference, in
 
941
        pfr_extra_item_load_kerning_pairs().
 
942
 
 
943
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
944
 
 
945
        pfr: Fix a data type mismatching with its source.
 
946
 
 
947
        * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset
 
948
        is extended from FT_UInt32 to FT_Offset, because it is
 
949
        calculated with the pointer difference in pfr_phy_font_load().
 
950
 
 
951
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
952
 
 
953
        pfr: Fix a data type mismatching with its source.
 
954
 
 
955
        * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
 
956
        is extended from FT_UInt32 to FT_Long, because it is
 
957
        loaded by FT_STREAM_POS() in pfr_phy_font_load().
 
958
 
 
959
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
960
 
 
961
        smooth: Improve the format in debug message.
 
962
 
 
963
        * src/smooth/ftgrays.c (gray_dump_cells): Improve the
 
964
        format specifications to dump variables.
 
965
 
 
966
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
967
 
 
968
        sfnt: Fix a data type mismatching with its source.
 
969
 
 
970
        * src/sfnt/sfobjs.c (sfnt_load_face): The type of
 
971
        local `flags' is matched with FT_Face->face_flags.
 
972
 
 
973
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
974
 
 
975
        psaux: Fix a data type mismatching with its source.
 
976
 
 
977
        * include/freetype/internal/psaux.h: The type of
 
978
        T1_DecorderRec.buildchar is matched with
 
979
        T1_DecorderRec.top.
 
980
 
 
981
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
982
 
 
983
        truetype: Extend TrueType GX packed deltas to FT_Offset.
 
984
 
 
985
        * src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
 
986
        The type of 2nd argument `delta_cnt' is changed from
 
987
        FT_Int to FT_Offset, because its source can be cvt
 
988
        table size calculated from stream position.
 
989
 
 
990
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
991
 
 
992
        truetype: Extend mmvar_len to hold size_t values.
 
993
 
 
994
        * src/truetype/ttgxvar.h: The type of
 
995
        GX_BlendRec.mmvar_len is changed from FT_Int to
 
996
        FT_Offset, because TT_Get_MM_Var() calculates it
 
997
        by sizeof() results.
 
998
 
 
999
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1000
 
 
1001
        truetype: Check invalid function number in IDEF instruction.
 
1002
 
 
1003
        * src/truetype/ttinterp.c (Ins_IDEF): Check
 
1004
        if the operand fits to 8-bit opcode limitation.
 
1005
 
 
1006
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1007
 
 
1008
        truetype: Check invalid function number in FDEF instruction.
 
1009
 
 
1010
        * src/truetype/ttinterp.c (Ins_FDEF): Check
 
1011
        if the operand fits 16-bit function number.
 
1012
 
 
1013
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1014
 
 
1015
        truetype: Truncate the deltas of composite glyph at 16-bit values.
 
1016
 
 
1017
        * src/truetype/ttgload.c (load_truetype_glyph):
 
1018
        Insert cast from FT_Long (deltas[i].{x,y}) to
 
1019
        FT_Int16 in the summation of deltas[] for composite
 
1020
        glyphs.  Because deltas[i] is typed as FT_Pos,
 
1021
        its component x, y are typed as FT_Long, but
 
1022
        their sources are always FT_Int16 when they are
 
1023
        loaded by ft_var_readpackeddeltas().  However,
 
1024
        the limitation about the summed deltas is unclear.
 
1025
 
 
1026
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1027
 
 
1028
        truetype: Truncate the instructions upto 16-bit per a glyph.
 
1029
 
 
1030
        * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
 
1031
        the instructions upto 16-bit length per a glyph.
 
1032
 
 
1033
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1034
 
 
1035
        truetype: Cast the numerical operands to 32-bit for LP64 systems.
 
1036
 
 
1037
        * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP,
 
1038
        Ins_MIRP): Insert cast from long (args[], the
 
1039
        operands passed to TrueType operator) to FT_Int32
 
1040
        (the argument of TT_MulFix14()).
 
1041
 
 
1042
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1043
 
 
1044
        truetype: Cast the project vector to 32-bit for LP64 system.
 
1045
 
 
1046
        * src/truetype/ttinterp.c (Project, DualProject):
 
1047
        Insert casts from FT_Pos (the arguments `dx', `dy')
 
1048
        to FT_UInt32 (the argument to TT_DotFix14()).
 
1049
 
 
1050
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1051
 
 
1052
        truetype: Cast the scaling params to 32-bit for LP64 system.
 
1053
 
 
1054
        * src/truetype/ttgload.c (TT_Process_Composite_Component):
 
1055
        Insert casts from long (return value of FT_MulFix()) to
 
1056
        FT_Int32 (the argument to FT_SqrtFixed()).
 
1057
 
 
1058
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1059
 
 
1060
        sfnt: Cast a character code to FT_UInt32 for LP64 system.
 
1061
 
 
1062
        * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
 
1063
        tt_cmap14_variants, tt_cmap14_char_variants,
 
1064
        tt_cmap14_def_char_count, tt_cmap14_get_def_chars,
 
1065
        tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars)
 
1066
        Insert casts when FT_UInt32 variable is loaded by
 
1067
        TT_NEXT_{UINT24|ULONG}.  Because most of them are
 
1068
        compared with FT_UInt32 values in public API, replacing
 
1069
        FT_UFast is not recommended.
 
1070
 
 
1071
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1072
 
 
1073
        sfnt: Cast a character code to FT_UInt32 for LP64 system.
 
1074
 
 
1075
        * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
 
1076
        Insert the casts from unsigned long constant to
 
1077
        FT_UInt32.
 
1078
 
 
1079
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1080
 
 
1081
        sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
 
1082
 
 
1083
        * include/freetype/internal/tttypes.h: The type
 
1084
        of TT_BDF->string_size is extended from FT_UInt32
 
1085
        to FT_ULong, because BDF specification does not
 
1086
        restrict the length of string.
 
1087
        * src/sfnt/ttbdf.c: The scratch variable `strings'
 
1088
        to load TT_BDF->string_size is matched with
 
1089
        TT_BDF->string_size.
 
1090
 
 
1091
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1092
 
 
1093
        psaux: Handle the string length by FT_Offset variables.
 
1094
 
 
1095
        * src/psaux/afmparse.c (afm_parser_next_key,
 
1096
        afm_tokenize, afm_parse_track_kern,
 
1097
        afm_parse_kern_pairs, afm_parse_kern_data,
 
1098
        afm_parser_skip_section, afm_parser_parse):
 
1099
        The length of key is handled by FT_Offset,
 
1100
        instead of FT_UInt.  Although the length of
 
1101
        PostScript strings or name object is 16-bit,
 
1102
        AFM_STREAM_KEY_LEN() calculates the length
 
1103
        from the pointer difference.
 
1104
 
 
1105
        * src/psaux/afmparse.h (afm_parser_next_key):
 
1106
        Ditto.
 
1107
 
 
1108
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1109
 
 
1110
        pcf: Fix some data types mismatching with their sources.
 
1111
 
 
1112
        * src/pcf/pcfread.c (pcf_get_bitmaps): The types
 
1113
        of `nbitmaps', `i', `sizebitmaps' are matched with
 
1114
        the type of area FT_Bitmap.pitch * FT_Bitmap.rows.
 
1115
 
 
1116
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1117
 
 
1118
        pcf: Handle the string length by size_t variables.
 
1119
 
 
1120
        * src/pcf/pcfread.c (pcf_interpret_style): The types
 
1121
        of nn, len, lengths[4] are changed to size_t, because
 
1122
        they are loaded by (or compared with) ft_strlen().
 
1123
 
 
1124
        * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap,
 
1125
        FourByteSwap): The type of the 2nd argument `nbytes'
 
1126
        is changed to size_t, for similarity with ANSI C
 
1127
        string functions.
 
1128
 
 
1129
        * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of
 
1130
        `bytes' is changed to FT_Offset, because it is passed
 
1131
        to FT_ALLOC(), via ft_glyphslot_alloc_bitmap().  At
 
1132
        least, using unsigned type is better.
 
1133
 
 
1134
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1135
 
 
1136
        pcf: Fix some data types mismatching with their sources.
 
1137
 
 
1138
        * src/pcf/pcfread.c (pcf_seek_to_table_type,
 
1139
        pcf_has_table_type): The type of 3rd argument
 
1140
        `ntables' is matched with PCF_Toc->count.
 
1141
 
 
1142
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1143
 
 
1144
        otvalid: Truncate the glyph index to 16-bit.
 
1145
 
 
1146
        * src/otvalid/otvalid.c (otv_validate): Checks
 
1147
        face->num_glyphs does not exceed 16-bit limit,
 
1148
        pass FT_UInt num_glyphs to backend functions
 
1149
        otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate().
 
1150
 
 
1151
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1152
 
 
1153
        cache: Insert explict casts for LP64 systems.
 
1154
 
 
1155
        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
 
1156
        FTC_SBitCache_Lookup): The type of FTC_ImageType->width
 
1157
        is FT_Int, so the cast to unsigned larger type FT_ULong
 
1158
        is introduced for the comparisons with 0x10000L for
 
1159
        LP64 platform.
 
1160
 
 
1161
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1162
 
 
1163
        cache: Fix some data types mismatching with their sources.
 
1164
 
 
1165
        * src/cache/ftccache.h: The type of return value
 
1166
        by FTC_Node_WeightFunc function is changed to
 
1167
        FT_Offset.  The type of FTC_CacheClass->cache_size
 
1168
        is changed to FT_Offset, too.
 
1169
 
 
1170
        * src/cache/ftccback.h (ft_inode_weight,
 
1171
        ftc_snode_weight): Ditto.
 
1172
 
 
1173
        * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
 
1174
 
 
1175
        * src/cache/ftcimage.c (ftc_inode_weight,
 
1176
        FTC_INode_Weight): Ditto.
 
1177
 
 
1178
        * src/cache/ftcsbits.c (ftc_snode_weight,
 
1179
        FTC_SNode_Weight): Ditto.
 
1180
 
 
1181
        * src/cache/ftcmru.h: The type of
 
1182
        FTC_MruListClass->node_size is changed to FT_Offset,
 
1183
        because it is passed to FT_ALLOC() to specify the
 
1184
        size of buffer.
 
1185
 
 
1186
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1187
 
 
1188
        XXX_cmap_encoding_char_next() return FT_UInt32 values.
 
1189
 
 
1190
        * include/freetype/internal/services/svpscmap.h:
 
1191
        The size of the charcode value returned by
 
1192
        the function typed PS_Unicodes_CharNextFunc is
 
1193
        matched with its input charcode value.
 
1194
 
 
1195
        * src/cff/cffmap.c (cff_cmap_encoding_char_next,
 
1196
        cff_cmap_unicode_char_next): Ditto.
 
1197
 
 
1198
        * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
 
1199
        Ditto.
 
1200
 
 
1201
        * src/psaux/t1cmap.c (t1_cmap_std_char_next,
 
1202
        t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
 
1203
        Ditto.
 
1204
 
 
1205
        * src/psnames/psmodule.c (ps_unicodes_char_next):
 
1206
        Ditto.
 
1207
 
 
1208
        * src/winfonts/winfnt.c (fnt_cmap_char_next):
 
1209
        Ditto.
 
1210
 
 
1211
        * src/sfnt/ttcmap.c (tt_cmap0_char_next,
 
1212
        tt_cmap2_char_next, tt_cmap4_char_next,
 
1213
        tt_cmap6_char_next, tt_cmap10_char_next,
 
1214
        tt_cmap12_char_next, tt_cmap13_char_next): Ditto.
 
1215
        (tt_cmap14_char_variants): Handle base unicode
 
1216
        codepoint by FT_UInt32 variable to avoid overflow
 
1217
        on 16-bit platforms.
 
1218
        (tt_cmap14_ensure): The type of `num_results' is
 
1219
        extend to FT_UInt32, to cover unsigned 32-bit
 
1220
        `numVarSelectorRecords' in cmap14 table header.
 
1221
 
 
1222
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1223
 
 
1224
        truetype: Extend TT_Face->num_locations for broken TTFs.
 
1225
 
 
1226
        * include/freetype/internal/tttypes.h:
 
1227
        TT_Face->num_locations are extended from FT_UInt
 
1228
        to FT_ULong, to stand with broken huge loca table.
 
1229
        Some people insists there are broken TTF including
 
1230
        the glyphs over 16-bit limitation, in PRC market.
 
1231
        * src/truetype/ttpload.c (tt_face_load_loca):
 
1232
        Remove unrequired 16-bit truncation for FT_UInt
 
1233
        TT_Face->num_locations.
 
1234
 
 
1235
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1236
 
 
1237
        smooth: Fix some data types mismatching with their sources.
 
1238
 
 
1239
        * src/smooth/ftgrays.c: The type of `TCoord' is
 
1240
        matched to `TPos', because they are mixed in
 
1241
        gray_set_cell().  The type of TCell->x is extended
 
1242
        to `TPos', because gray_find_cell() sets it by
 
1243
        TWorker.ex.  The type of TCell->cover is extended
 
1244
        to `TCoord', because gray_render_scanline() adds
 
1245
        TCoord value to it.  The type of TWork.cover is matched
 
1246
        with TCell->cover.  The types of
 
1247
        TWork.{max_cells,num_cells} are changed to FT_PtrDist,
 
1248
        because they are calculated from the memory addresses.
 
1249
        The type of TWork.ycount is changed to TPos, because
 
1250
        it is calculated from TPos variables.
 
1251
        (gray_find_cell): The type of `x' is matched with
 
1252
        its initial value ras.ex.
 
1253
        (gray_render_scanline): The types of `mod', `lift'
 
1254
        and `rem' are changed to TCoord, because their values
 
1255
        are set with explicit casts to TCoord.  When ras.area
 
1256
        is updated by the differential values including
 
1257
        `delta', they are explicitly cast to TArea, because
 
1258
        the type of `delta' is not TArea but TCoord.
 
1259
        (gray_render_line): The type of `mod' is extended
 
1260
        from int to TCoord, because (TCoord)dy is added to mod.
 
1261
        (gray_hline): The argument `acount' is extended to
 
1262
        TCoord, to match with the parameters in the callers.
 
1263
 
 
1264
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1265
 
 
1266
        cff: Fix some data types mismatching with their sources.
 
1267
 
 
1268
        * src/cff/cffobjs.c (cff_face_init): The type of
 
1269
        `scaling' is matched with the scaling parameter
 
1270
        in FT_Matrix_Multiply_Scaled() and
 
1271
        FT_Vector_Transform_Scaled().
 
1272
 
 
1273
        * src/cff/cffparse.c (cff_parse_real): The type of
 
1274
        `power_ten', `scaling', `exponent_add',
 
1275
        `integer_length', `fraction_length',
 
1276
        `new_fraction_length' and `shift' are matched with
 
1277
        the type of `exponent' to avoid unexpected truncation.
 
1278
        (cff_parse_fixed_scaled): The type of `scaling' is
 
1279
        matched with the `scaling' argument to
 
1280
        cff_parse_real().
 
1281
        (cff_parse_fixed_dynamic): Ditto.
 
1282
        (cff_parse_font_matrix): The type of `scaling' is
 
1283
        matched with the `scaling' argument to
 
1284
        cff_parse_dynamic().
 
1285
 
 
1286
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1287
 
 
1288
        autofit: Fix some data types mismatching with their sources.
 
1289
 
 
1290
        * src/autofit/afglobal.c: Correct the type of
 
1291
        AF_FaceGlobalsRec.glyph_count to match with
 
1292
        FT_Face->num_glyphs.
 
1293
        (af_face_globals_compute_script_coverage):
 
1294
        Insert explicit cast to compare
 
1295
        FT_Long AF_FaceGlobalsRec.glyph_count versus
 
1296
        FT_UInt gindex.  The type of `nn' is changed
 
1297
        to scan glyph index upto AF_FaceGlobalsRec.glyph_count.
 
1298
        (af_face_globals_get_metrics): The type of `script_max'
 
1299
        is changed to cover size_t value.  Insert explicit cast
 
1300
        to compare FT_Long AF_FaceGlobalsRec.glyph_count versus
 
1301
        FT_UInt gindex.
 
1302
 
 
1303
        * src/autofit/afhints.c (af_axis_hints_new_segment):
 
1304
        Insert explicit cast to calculate `big_max' from
 
1305
        integer and size_t values.
 
1306
        (af_axis_hints_new_edge): Ditto.
 
1307
 
 
1308
        * src/autofit/aflatin.c (af_latin_metrics_init_blues):
 
1309
        The type of `best_y' is matched to FT_Vector.y.
 
1310
        (af_latin_compute_stem_width): The type of `delta' is
 
1311
        matched to `dist' and `org_dist'.
 
1312
 
 
1313
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1314
 
 
1315
        autofit: Count the size of the memory object by ptrdiff_t.
 
1316
 
 
1317
        * src/autofit/afcjk.c (af_cjk_hint_edges): The
 
1318
        number of edges `n_edges' should be counted by
 
1319
        FT_PtrDist variable instead of FT_Int.
 
1320
 
 
1321
        * src/autofit/aflatin.c (af_latin_hint_edges):
 
1322
        Ditto.
 
1323
 
 
1324
        * src/autofit/aftypes.h: In AF_ScriptClassRec,
 
1325
        the size of metric `script_metrics_size' should
 
1326
        be counted by FT_Offset variable instead of FT_UInt.
 
1327
 
 
1328
        * src/autofit/afhints.c
 
1329
        (af_glyph_hints_align_strong_points): The cursors
 
1330
        for the edges `min', `max', `mid' in the memory
 
1331
        buffer should be typed FT_PtrDist.
 
1332
 
 
1333
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1334
 
 
1335
        autofit: Fix for unused variable `first'.
 
1336
 
 
1337
        * src/autofit/afhints.c (af_glyph_hints_reload): Insert
 
1338
        FT_UNUSED() to hide the unused variable warning.
 
1339
 
 
1340
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1341
 
 
1342
        Improve bitmap size or pixel variables for 16-bit systems.
 
1343
 
 
1344
        * include/freetype/config/ftstdlib.h: Introduce
 
1345
        FT_INT_MIN, to use in signed integer overflow in
 
1346
        16-bit and 64-bit platforms.
 
1347
        
 
1348
        * include/freetype/internal/fttrace.h: Add a tracer
 
1349
        to ftsynth.c.
 
1350
        
 
1351
        * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
 
1352
        invalid strength causing integer overflow on 16-bit
 
1353
        platform.
 
1354
        
 
1355
        * src/base/ftcalc.c (ft_corner_orientation): Change
 
1356
        the internal calculation from FT_Int to FT_Long, to
 
1357
        avoid an overflow on 16-bit platforms.  The caller of
 
1358
        this function should use only the sign of result,
 
1359
        so the cast to FT_Int is acceptable.
 
1360
        
 
1361
        * src/base/ftsynth.c: Introduce a tracer for synth module.
 
1362
        (FT_GlyphSlot_Embolden): Check invalid strength causing
 
1363
        integer overflow on 16-bit platform.
 
1364
        
 
1365
        * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index
 
1366
        in FT2 API is typed as FT_UInt, although BDF driver
 
1367
        can handle unsigned long glyph index internally.  To
 
1368
        avoid integer overflow on 16-bit platform, too large
 
1369
        glyph index should be excluded.
 
1370
        (BDF_Glyph_Load): The glyph pitch in FT2 is typed as
 
1371
        FT_UInt, although BDF driver can handle unsigned long
 
1372
        glyph pitch internally.  To avoid integer overflow on
 
1373
        16-bit platform, too large glyph pitch should not be
 
1374
        returned.
 
1375
        
 
1376
        * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph
 
1377
        pitch in FT2 is typed as FT_UInt, although PFR font
 
1378
        format can include huge bitmap glyph with 24-bit pitch
 
1379
        (however, a glyph spends 16.7 pixel, it's not realistic).
 
1380
        To avoid integer overflow on 16-bit platform, huge
 
1381
        bitmap glyph should be excluded.
 
1382
        
 
1383
        * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is
 
1384
        truncated to fit its type (16-bit short), FT_Span.y
 
1385
        should be truncated to fit its type (FT_Int).
 
1386
        
 
1387
        * src/cff/cffdrivr.c (cff_get_ros): CFF specification
 
1388
        defines the supplement in ROS as a real number.
 
1389
        Truncate it to fit public FT2 API.
 
1390
        
 
1391
        * src/cff/cffparse.c (cff_parse_cid_ros): Warn the
 
1392
        supplement if it is truncated or rounded in cff_get_ros().
 
1393
        
 
1394
        * src/cff/cfftypes.h: Change the type of internal variable
 
1395
        `supplement' from FT_Long to FT_ULong to fit the signedness
 
1396
        to the type in public API.
 
1397
 
 
1398
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1399
 
 
1400
        psaux: Prevent invalid arguments to afm_parser_read_vals().
 
1401
 
 
1402
        * src/psaux/afmparse.c (afm_parser_read_vals): Change
 
1403
        the type of `n' to prevent negative number how many
 
1404
        arguments should be parsed.
 
1405
 
 
1406
        * src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
 
1407
 
 
1408
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1409
 
 
1410
        base: Prevent some overflows on LP64 systems.
 
1411
 
 
1412
        * src/base/ftadvance.c (FT_Get_Advances): Cast the
 
1413
        unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
 
1414
        for LP64 platforms.
 
1415
 
 
1416
        * src/base/ftcalc.c (FT_Sqrt32): All internal variables
 
1417
        are changed to FT_UInt32 from FT_ULong.
 
1418
        (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms.
 
1419
        This function is designed for 32-bit integer, although
 
1420
        their arguments and return value are FT_Long.
 
1421
 
 
1422
        * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode'
 
1423
        is within unsigned 32-bit integer for LP64 platforms.
 
1424
        (FT_Face_GetCharVariantIndex): Check `charcode' and
 
1425
        `variantSelector' are within 32-bit integer for LP64
 
1426
        platforms.
 
1427
        (FT_Face_GetCharsOfVariant): Check `variantSelector' is
 
1428
        within unsigned 32-bit integer for LP64 platforms.
 
1429
 
 
1430
        * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed
 
1431
        variable `val' and unsigned long constant FT_TRIG_SCALE
 
1432
        are cast to FT_UInt32, when calculates FT_UInt32.
 
1433
        (FT_Vector_Rotate): The long constant 1L is cast to
 
1434
        FT_Int32 to calculate FT_Int32 `half'.
 
1435
 
 
1436
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1437
 
 
1438
        cff: Cast the long variables to 32-bit for LP64 systems.
 
1439
 
 
1440
        * src/cff/cffdrivr.c (cff_get_advances): Insert
 
1441
        explicit cast to modify a 32-bit flag by unsigned
 
1442
        long constant.
 
1443
 
 
1444
        * src/cff/cffobjs.c (cff_face_init): Ditto.
 
1445
 
 
1446
        * src/cff/cffgload.c (cff_decoder_parse_charstrings):
 
1447
        Replace the casts to FT_Long by the casts to FT_Int32
 
1448
        for LP64 platforms.
 
1449
 
 
1450
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1451
 
 
1452
        pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
 
1453
 
 
1454
        * src/pcf/pcf.h: In PCF_PropertyRec.value, the member
 
1455
        `integer' is replaced by `l', `cardinal' is replaced
 
1456
        by `ul', to fix the difference between the name and
 
1457
        the types on LP64 platforms.
 
1458
 
 
1459
        * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect
 
1460
        PCF_PropertyRec.value change, with appropriate casts
 
1461
        to FT_Int32/FT_UInt32.  Their destinations
 
1462
        BDF_PropertyRec.{integer|cardinal} are public and
 
1463
        explicitly defined as FT_Int32/FT_UInt32.
 
1464
 
 
1465
        * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
 
1466
        Reflect PCF_PropertyRec.value change.
 
1467
 
 
1468
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1469
 
 
1470
        pcf: Fix some data types mismatching with their sources.
 
1471
 
 
1472
        * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of
 
1473
        `code' is matched to PCF_Encoding->enc.
 
1474
        (pcf_cmap_char_next): The type of `charcode' is matched
 
1475
        to PCF_Encoding->enc.  When *acharcode is set by charcode,
 
1476
        an overflow is checked and cast to unsigned 32-bit
 
1477
        integer.
 
1478
 
 
1479
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1480
 
 
1481
        bdf: Improve bdf_property_t.value names for LP64 platforms.
 
1482
 
 
1483
        * src/bdf/bdf.h: In bdf_property_t.value, the member
 
1484
        `int32' is replaced by `l', `card32' is replaced by
 
1485
        `ul', to fix the difference between the name and the
 
1486
        types on LP64 platforms.
 
1487
 
 
1488
        * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect
 
1489
        bdf_property_t.value change.
 
1490
        (bdf_get_bdf_property): Reflect bdf_property_t.value
 
1491
        change, with appropriate casts to FT_Int32/FT_UInt32.
 
1492
        Their destinations BDF_PropertyRec.{integer|cardinal}
 
1493
        are public and explicitly defined as FT_Int32/FT_UInt32.
 
1494
 
 
1495
        * src/bdf/bdflib.c (_bdf_add_property): Reflect
 
1496
        bdf_property_t.value change.
 
1497
 
 
1498
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1499
 
 
1500
        bdf: Fix some data types mismatching with their sources.
 
1501
 
 
1502
        * src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type
 
1503
        of `code' is matched with BDF_encoding_el->enc.
 
1504
        (bdf_cmap_char_next): The type of `charcode' is
 
1505
        matched with BDF_encoding_el->enc.  When *acharcode
 
1506
        is set by charcode, an overflow is checked and
 
1507
        cast to unsigned 32-bit integer.
 
1508
 
 
1509
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1510
 
 
1511
        autofit: Improve Unicode range definitions.
 
1512
 
 
1513
        * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro
 
1514
        to declare a range by two unsigned 32-bit integer,
 
1515
        to avoid 64-bit range definition on LP64 platforms.
 
1516
 
 
1517
        * src/autofit/aflatin.c (af_latin_uniranges): Ditto.
 
1518
 
 
1519
        * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
 
1520
 
 
1521
        * src/autofit/afindic.c (af_indic_uniranges): Ditto.
 
1522
 
 
1523
        * src/autofit/afcjk.c (af_cjk_uniranges): Declare
 
1524
        the ranges by AF_UNIRANGE_REC.
 
1525
 
 
1526
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1527
 
 
1528
        smooth: Fix a data type mismatching with its source.
 
1529
 
 
1530
        * src/smooth/ftgrays.c (gray_sweep): The type of
 
1531
        `area' is matched with the 3rd argument `area'
 
1532
        of gray_hline().
 
1533
 
 
1534
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1535
 
 
1536
        smooth: Fix a data type mismatching with its source.
 
1537
 
 
1538
        * src/smooth/ftgrays.c (gray_render_line): The type
 
1539
        of `area' is matched with TWorker.area.
 
1540
 
 
1541
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1542
 
 
1543
        cache: Disable the legacy compatibility if 16-bit system.
 
1544
 
 
1545
        * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude
 
1546
        the legacy behaviour from 16-bit platform, because the
 
1547
        current hack cannot detect the caller uses this function
 
1548
        via legacy convension.
 
1549
        (FTC_SBitCache_Lookup): Ditto.
 
1550
 
 
1551
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1552
 
 
1553
        cache: Check 32-bit glyph index on 16-bit systems.
 
1554
 
 
1555
        * src/cache/ftcbasic.c (ftc_basic_family_get_count):
 
1556
        Check overflow caused by the face including large
 
1557
        number of glyphs > 64k.
 
1558
 
 
1559
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1560
 
 
1561
        cache: Fix some data types mismatching with their sources.
 
1562
 
 
1563
        * src/cache/ftccache.c (ftc_cache_resize): The types of
 
1564
        `p', `mask', `count' are matched with FTC_Cache->{p,mask}.
 
1565
        (FTC_Cache_Clear): The type of `old_index' is matched to
 
1566
        FTC_Cache->{p,mask}.
 
1567
 
 
1568
        * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
 
1569
        of `_idx' is matched with FTC_Cache->{p,mask}.
 
1570
 
 
1571
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1572
 
 
1573
        cache: Fix some data types mismatching with their sources.
 
1574
 
 
1575
        * src/cache/ftcsbits.c (ftc_snode_load): The types
 
1576
        of `xadvance' and `yadvance' are matched with
 
1577
        FT_GlyphSlot->advance.{x|y}.
 
1578
 
 
1579
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1580
 
 
1581
        cache: Cast NULL to a required function type explicitly.
 
1582
 
 
1583
        * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
 
1584
        Insert explicit cast from NULL to function type.
 
1585
 
 
1586
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1587
 
 
1588
        fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
 
1589
 
 
1590
        * include/freetype/fttypes.h (FT_MAKE_TAG):
 
1591
        Cast the result to FT_Tag.
 
1592
 
 
1593
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1594
 
 
1595
        psnames: Handle Unicode codepoints by FT_UInt32 variables.
 
1596
 
 
1597
        * src/psnames/psmodule.c (BASE_GLYPH): Cast the result
 
1598
        to unsigned 32-bit integer for LP64 platform.
 
1599
        (ps_unicode_value): Return the value by unsigned 32-bit
 
1600
        integer instead of unsigned long.
 
1601
 
 
1602
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1603
 
 
1604
        psaux: Use size_t variable to pass the buffer size.
 
1605
 
 
1606
        * src/psaux/psaux.h (to_bytes): The type of `max_bytes'
 
1607
        (the argument to pass the buffer size) is changed to
 
1608
        size_t, to match with ANSI C string functions.
 
1609
 
 
1610
        * src/psaux/psconv.h (PS_Conv_StringDecode,
 
1611
        PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
 
1612
 
 
1613
        * src/psaux/psconv.c (PS_Conv_StringDecode,
 
1614
        PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
 
1615
 
 
1616
        * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
 
1617
 
 
1618
        * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
 
1619
 
 
1620
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1621
 
 
1622
        type1: Use size_t variable to pass the string length.
 
1623
 
 
1624
        * psaux.h: The type of `len' (the argument to pass
 
1625
        the buffer size to the function in AFM_ParserRec)
 
1626
        is changed to size_t, to match with ANSI C string
 
1627
        functions.
 
1628
 
 
1629
        * t1afm.c (t1_get_index): Ditto.
 
1630
 
 
1631
        * test_afm.c (dummy_get_index): Ditto.
 
1632
 
 
1633
        * afmparse.c (afm_parser_read_vals): To call
 
1634
        AFM_ParserRec.get_index, the length of token
 
1635
        `len' is cast to size_t.
 
1636
 
 
1637
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1638
 
 
1639
        cid: Fix some data types mismatching with their sources.
 
1640
 
 
1641
        * src/cid/cidparse.c (cid_parser_new): The types of
 
1642
        `read_len' and `stream_len' are matched to
 
1643
        FT_Stream->size.  Unrequired cast is removed.
 
1644
 
 
1645
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1646
 
 
1647
        cff: Fix for unused variable `rest'.
 
1648
 
 
1649
        * src/cff/cffparse.c (cff_parse_real): Insert
 
1650
        FT_UNUSED() to hide the unused variable warning.
 
1651
 
 
1652
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1653
 
 
1654
        cff: Fix some data types mismatching with their sources.
 
1655
 
 
1656
        * src/cff/cffgload.c (cff_slot_load): The types of      
 
1657
        `top_upm' and `sub_upm' are matched with
 
1658
        CFF_FontRecDict->units_per_em.
 
1659
 
 
1660
        * src/cff/cffobjs.c (cff_size_select): Ditto.
 
1661
        (cff_size_request): Ditto.
 
1662
 
 
1663
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1664
 
 
1665
        bdf: Fix some data types mismatching with their sources.
 
1666
 
 
1667
        * bdflib.c (_bdf_list_ensure): The type of `num_items'
 
1668
        is matched with _bdf_list_t.used.  Also the types of
 
1669
        `oldsize', `newsize', `bigsize' are matched too.
 
1670
        (_bdf_readstream): `cursor' is used as an offset to
 
1671
        the pointer, it should be typed as FT_Offset.  Also
 
1672
        the types of `bytes', `start', `end', `avail' are matched.
 
1673
 
 
1674
        * bdfdrivr.c: The type of BDF_CMap->num_encodings is
 
1675
        matched with FT_CMap->clazz->size.
 
1676
        (bdf_cmap_char_index): The types of `min', `max', `mid'
 
1677
        are matched with BDF_CMap->num_encodings.  The type of
 
1678
        `result' is matched with encoding->glyph.
 
1679
        (bdf_cmap_char_next): Ditto, the type of `code' is
 
1680
        matched with BDF_encoding_el.enc.
 
1681
        (bdf_interpret_style): The type of `lengths' is changed
 
1682
        to size_t, to take the value by ft_strlen().  Also the
 
1683
        types of `len', `nn', `mm' are matched.
 
1684
 
 
1685
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1686
 
 
1687
        sfnt: Count the size of the memory object by ptrdiff_t.
 
1688
 
 
1689
        * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
 
1690
        `peroperty_len' is changed from FT_UInt to FT_Offset,
 
1691
        to match with size_t, which is appropriate type for the
 
1692
        object in the memory buffer.
 
1693
 
 
1694
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1695
 
 
1696
        lzw: Count the size of the memory object by ptrdiff_t.
 
1697
 
 
1698
        * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total,
 
1699
        stack_size} are changed from FT_UInt to FT_Offset, to match
 
1700
        with size_t, which is appropriate type for the object in
 
1701
        the memory buffer.
 
1702
 
 
1703
        * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of
 
1704
        `old_size' and `new_size' are changed from FT_UInt to
 
1705
        FT_Offset, to match with size_t, which is appropriate type
 
1706
        for the object in the memory buffer.
 
1707
 
 
1708
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1709
 
 
1710
        otvalid: Count the table size on memory by ptrdiff_t.
 
1711
 
 
1712
        * src/otvalid/otvgpos.c (otv_ValueRecord_validate):
 
1713
        Change the type of table size from FT_UInt to
 
1714
        FT_PtrDist because it is calculated by the memory
 
1715
        addresses.
 
1716
 
 
1717
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1718
 
 
1719
        otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
 
1720
 
 
1721
        * src/otvalid/otvgpos.c (otv_ExtensionPos_validate):
 
1722
        Extend ExtensionOffset from FT_UInt to FT_ULong, to
 
1723
        cover 32-bit offset on 16-bit platform.
 
1724
 
 
1725
        * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
 
1726
        Ditto.
 
1727
 
 
1728
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1729
 
 
1730
        ftobjs.c: Prevent an overflow in glyph index handling.
 
1731
 
 
1732
        * src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
 
1733
        Improve the cast in comparison to avoid the truncation.
 
1734
 
 
1735
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1736
 
 
1737
        Improve the variable types in raccess_make_file_name().
 
1738
 
 
1739
        * src/base/ftrfork.c (raccess_make_file_name):
 
1740
        Change the type of cursor variable `tmp' to const char*,
 
1741
        to prevent the unexpected modification of original pathname.
 
1742
        (raccess_make_file_name): Change the type of new_length
 
1743
        to size_t.
 
1744
 
 
1745
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1746
 
 
1747
        ftpatent.c: Fix for unused variable `error'.
 
1748
 
 
1749
        * src/base/ftpatent.c (_tt_check_patents_in_range):
 
1750
        Fix warning for unused variable `error'.
 
1751
 
 
1752
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1753
 
 
1754
        type1: Check invalid string longer than PostScript limit.
 
1755
 
 
1756
        * src/type1/t1afm.c (t1_get_index): Check invalid string
 
1757
        which exceeds the limit of PostScript string/name objects.
 
1758
 
 
1759
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1760
 
 
1761
        gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
 
1762
 
 
1763
        * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all
 
1764
        zcalloc() & zfree() by zlib in zutil.c, those in
 
1765
        ftgzip.c by FT2 are enabled by default.  To use
 
1766
        zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC.
 
1767
        See discussion:
 
1768
        http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
 
1769
 
 
1770
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1771
 
 
1772
        gzip: Distinguish PureC from TurboC on MSDOS.
 
1773
 
 
1774
        * src/gzip/zutil.c (zcalloc, zcfree): Enable only for
 
1775
        MSDOS platform.
 
1776
 
 
1777
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1778
 
 
1779
        gxvalid: Insert PureC pragma to allow unevaluated variables.
 
1780
 
 
1781
        * builds/atari/ATARI.H: Insert PureC pragma not to
 
1782
        warn against set-but-unevaluated variable in gxvalid
 
1783
        module.
 
1784
 
 
1785
2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1786
 
 
1787
        gxvalid: Pass the union by the pointer instead of the value.
 
1788
 
 
1789
        * src/gxvalid/gxvcommn.h:
 
1790
          - Declare new type `GXV_LookupValueCPtr'.
 
1791
          - Update the type of the 2nd argument to pass GXV_LookupValueDesc
 
1792
            data to the function prototyped as GXV_Lookup_Value_Validate_Func,
 
1793
            from GXV_LookupValueDesc to GXV_LookupValueCPtr.
 
1794
          - Likewise for the function prototyped as
 
1795
            GXV_Lookup_Fmt4_Transit_Func.
 
1796
 
 
1797
          - Declare new type `GXV_StateTable_GlyphOffsetCPtr'.
 
1798
          - Update the type of the 3rd argument to pass
 
1799
            GXV_StateTable_GlyphOffsetDesc data to the function prototyped
 
1800
            as GXV_StateTable_Entry_Validate_Func, from
 
1801
            GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr.
 
1802
 
 
1803
          - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'.
 
1804
          - Update the type of the 3rd argument to pass
 
1805
            GXV_XStateTable_GlyphOffsetDesc data to the function prototyped
 
1806
            as GXV_XStateTable_Entry_Validate_Func,
 
1807
            from GXV_XStateTable_GlyphOffsetDesc
 
1808
            to GXV_XStateTable_GlyphOffsetCPtr.
 
1809
 
 
1810
        * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate,
 
1811
        gxv_XClassTable_lookupval_validate,
 
1812
        gxv_XClassTable_lookupfmt4_transit):
 
1813
        Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
 
1814
        
 
1815
        * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
 
1816
        gxv_bsln_LookupFmt4_transit): Ditto.
 
1817
        
 
1818
        * src/gxvalid/gxvjust.c
 
1819
        (gxv_just_pcTable_LookupValue_entry_validate,
 
1820
        gxv_just_classTable_entry_validate,
 
1821
        gxv_just_wdcTable_LookupValue_validate): Ditto.
 
1822
        
 
1823
        * src/gxvalid/gxvkern.c
 
1824
        (gxv_kern_subtable_fmt1_entry_validate): Ditto.
 
1825
        
 
1826
        * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
 
1827
        gxv_lcar_LookupFmt4_transit): Ditto.
 
1828
        
 
1829
        * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
 
1830
        gxv_opbd_LookupFmt4_transit): Ditto.
 
1831
        
 
1832
        * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
 
1833
        gxv_prop_LookupFmt4_transit): Ditto.
 
1834
        
 
1835
        * src/gxvalid/gxvmort4.c
 
1836
        (gxv_mort_subtable_type4_lookupval_validate): Ditto.
 
1837
        
 
1838
        * src/gxvalid/gxvmort0.c
 
1839
        (gxv_mort_subtable_type0_entry_validate): Update
 
1840
        from GXV_StateTable_GlyphOffsetDesc
 
1841
        to GXV_StateTable_GlyphOffsetCPtr.
 
1842
        
 
1843
        * src/gxvalid/gxvmort1.c
 
1844
        (gxv_mort_subtable_type1_entry_validate): Ditto.
 
1845
        
 
1846
        * src/gxvalid/gxvmort2.c
 
1847
        (gxv_mort_subtable_type2_entry_validate): Ditto.
 
1848
        
 
1849
        * src/gxvalid/gxvmort5.c
 
1850
        (gxv_mort_subtable_type5_entry_validate): Ditto.
 
1851
        
 
1852
        * src/gxvalid/gxvmorx2.c
 
1853
        (gxv_morx_subtable_type2_entry_validate): Ditto.
 
1854
        
 
1855
        * src/gxvalid/gxvmorx5.c
 
1856
        (gxv_morx_subtable_type5_entry_validate): Ditto.
 
1857
        
 
1858
        * src/gxvalid/gxvmorx1.c
 
1859
        (gxv_morx_subtable_type1_entry_validate): Ditto.
 
1860
        (gxv_morx_subtable_type1_LookupValue_validate,
 
1861
        gxv_morx_subtable_type1_LookupFmt4_transit):
 
1862
        Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
 
1863
        
 
1864
        * src/gxvalid/gxvmorx0.c
 
1865
        (gxv_morx_subtable_type0_entry_validate): Update
 
1866
        from GXV_XStateTable_GlyphOffsetDesc
 
1867
        to GXV_XStateTable_GlyphOffsetCPtr.
 
1868
 
 
1869
2009-07-29  Fabrice Bellet  <fabrice@bellet.info>
 
1870
 
 
1871
        Fix Redhat bugzilla #513582 and Savannah bug #26849.
 
1872
 
 
1873
        * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
 
1874
        aliasing bug.
 
1875
 
 
1876
2009-07-19  Werner Lemberg  <wl@gnu.org>
 
1877
 
 
1878
        Document recent library changes.
 
1879
 
 
1880
        * docs/CHANGES: Do it.
 
1881
 
 
1882
2009-07-17  Werner Lemberg  <wl@gnu.org>
 
1883
 
 
1884
        Fix Savannah bug #23786.
 
1885
 
 
1886
        * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem
 
1887
        and y_ppem.  Otherwise the `*_CVT_Stretched' functions in ttinterp.c
 
1888
        get never called.
 
1889
        An anonymous guy suggested this change on Savannah, and it seems to
 
1890
        be the right solution.
 
1891
 
 
1892
2009-07-15  Werner Lemberg  <wl@gnu.org>
 
1893
 
 
1894
        * docs/release: Updated.
 
1895
 
 
1896
2009-07-15  Werner Lemberg  <wl@gnu.org>
 
1897
 
 
1898
        README.CVS -> README.git
 
1899
 
 
1900
        * README.CVS: Renamed to...
 
1901
        * README.git: This.
 
1902
        Updated.
 
1903
 
 
1904
2009-07-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1905
 
 
1906
        Borland C++ compiler patch proposed by Mirco Babin.
 
1907
        http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
 
1908
 
 
1909
        * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}.
 
1910
        Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform
 
1911
        specific pathname syntax.
 
1912
        * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS.
 
1913
        Define TE = `-e' separately (bcc32 cannot specify the pathname of
 
1914
        binary executable by T = `-o').
 
1915
        Extend the large page size in linking freetype.lib.
 
1916
        Add extra CLEAN target to delete bcc specific temporary files.
 
1917
        * builds/compiler/bcc-dev.mk: Ditto.
 
1918
 
 
1919
2009-07-14  Werner Lemberg  <wl@gnu.org>
 
1920
 
 
1921
        Fix Savannah bug #27026.
 
1922
 
 
1923
        * builds/win32/vc2005/freetype.sln: Use correct version number.
 
1924
 
 
1925
2009-07-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1926
 
 
1927
        Add a script to check the undefined and unused trace macros.
 
1928
 
 
1929
        * src/tools/chktrcmp.py: A script to check trace_XXXX macros
 
1930
        that are used in C source but undefined in fttrace.h, or
 
1931
        defined in fttrace.h but unused in C sources.  See
 
1932
        http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html.
 
1933
        * docs/DEBUG: Mention on chktrcmp.py.
 
1934
        * docs/release: Ditto.
 
1935
 
 
1936
2009-07-09  Werner Lemberg  <wl@gnu.org>
 
1937
 
 
1938
        [ftraster] Make it compile again with -D_STANDALONE_.
 
1939
 
 
1940
        * src/raster/ftraster.c [_STANDALONE_]: Define
 
1941
        FT_CONFIG_STANDARD_LIBRARY_H.
 
1942
        Include `string.h'.
 
1943
        Don't include `rastpic.h'.
 
1944
        Define FT_DEFINE_RASTER_FUNCS.
 
1945
 
 
1946
2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1947
 
 
1948
        smooth: Check glyph size by width/height, instead of pitch/height.
 
1949
        Suggested by der Mouse <mouse@Rodents-Montreal.ORG>.
 
1950
 
 
1951
        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve
 
1952
        the check for too large glyph.  Replace the pair of `pitch' and
 
1953
        `height' by the pair of `width' and `height'.  `pitch' cannot
 
1954
        be greater than `height'.  The required is checking the product
 
1955
        `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for
 
1956
        the realistic case only.
 
1957
 
 
1958
2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1959
 
 
1960
        Register 2 missing trace components, t1afm and ttbdf.
 
1961
 
 
1962
        * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm )
 
1963
        and FT_TRACE_DEF( ttbdf ).  See
 
1964
        http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html
 
1965
 
 
1966
2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1967
 
 
1968
        Register a trace component for ftgloadr.c.
 
1969
 
 
1970
        * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ).
 
1971
        The macro `trace_gloader' was already used in the initial version
 
1972
        on 2002-02-24.
 
1973
 
 
1974
2009-07-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
1975
 
 
1976
        Prevent the overflows by a glyph with too many points or contours.
 
1977
        The bug is reported by Boris Letocha <b.letocha@gmc.net>.  See
 
1978
        http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html
 
1979
        http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html  
 
1980
 
 
1981
        * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX,
 
1982
        FT_OUTLINE_POINTS_MAX): New macros to declare the maximum
 
1983
        values of FT_Outline.{n_contours,n_points}.
 
1984
        * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the
 
1985
        total numbers of points and contours cause no overflows in
 
1986
        FT_Outline.{n_contours,n_points}.
 
1987
 
 
1988
        * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
 
1989
        FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and
 
1990
        contours as unsigned long number, instead of signed int, to
 
1991
        prevent the overflows on 16-bit systems.
 
1992
 
 
1993
2009-07-05  Bram Tassyns  <bramt@enfocus.be>
 
1994
 
 
1995
        Improve compatibility to Acroread.
 
1996
        This fixes Savannah bug #26944.
 
1997
 
 
1998
        * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
 
1999
        single CID mappings, make the lowest value win.
 
2000
 
 
2001
2009-06-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
2002
 
 
2003
        ftpatent: Fix a bug by wrong usage of service->table_info().
 
2004
        http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html
 
2005
 
 
2006
        * include/freetype/internal/services/svsfnt.h: Extend
 
2007
        FT_SFNT_TableInfoFunc() to take new argument to obtain the offset
 
2008
        to the specified table.
 
2009
        * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the
 
2010
        table-offset to the caller function.
 
2011
        * src/base/ftpatent.c (_tt_check_patents_in_table): Use new
 
2012
        service->table_info().
 
2013
        * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new
 
2014
        service->table_info().
 
2015
 
 
2016
2009-06-28  Werner Lemberg  <wl@gnu.org>
 
2017
 
 
2018
        [psaux, cff] Protect against nested `seac' calls.
 
2019
 
 
2020
        * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
 
2021
        (CFF_Decoder): Add `seac' boolean variable.
 
2022
 
 
2023
        * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
 
2024
        (t1operator_seac): Use it.
 
2025
 
 
2026
2009-06-28  Werner Lemberg  <wl@gnu.org>
 
2027
 
 
2028
        Thinko.
 
2029
 
 
2030
        * src/psaux/t1decode.c (t1operator_seac)
 
2031
        [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
 
2032
        interface.
 
2033
 
 
2034
2009-06-28  Werner Lemberg  <wl@gnu.org>
 
2035
 
 
2036
        * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
 
2037
 
 
2038
2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
2039
 
 
2040
        Add tools to preprocess the source files for AtariST PureC.
 
2041
 
 
2042
        * builds/atari/deflinejoiner.awk: New file to filter C source files
 
2043
        for broken C preprocessor of PureC compiler.
 
2044
 
 
2045
        * builds/atari/gen-purec-patch.sh: New file to generate a patch set
 
2046
        for PureC, by using deflinejoiner.awk.
 
2047
 
 
2048
2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
2049
 
 
2050
        Keep existing modules.cfg in the building tree.
 
2051
 
 
2052
        * configure: If `configure' is executed outside of the source tree,
 
2053
        an existing `modules.cfg' file in the build directory should be
 
2054
        kept, not overwritten by the version in the source tree.
 
2055
 
 
2056
2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
2057
 
 
2058
        Filter --srcdir= option before invoking builds/unix/configure.
 
2059
 
 
2060
        * configure: If builds/unix/configure is invoked with --srcdir
 
2061
        option, the option should take `builds/unix' directory instead of
 
2062
        the top source directory.  Thus the configure script in the top
 
2063
        directory should modify the --srcdir= option if
 
2064
        `builds/unix/configure' is invoked.
 
2065
 
 
2066
2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
2067
 
 
2068
        Improve configure.raw for cross-building on exe-suffixed systems.
 
2069
 
 
2070
        * builds/unix/configure.raw: Fix a bug in sed script to extract
 
2071
        native suffix for binary executables, patch by Peter Breitenlohner.
 
2072
        http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html
 
2073
 
 
2074
2009-06-26  Werner Lemberg  <wl@gnu.org>
 
2075
 
 
2076
        [truetype] Remove TT_SubGlyphRec.
 
2077
 
 
2078
        * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
 
2079
 
 
2080
2009-06-26  Werner Lemberg  <wl@gnu.org>
 
2081
 
 
2082
        * */*: For warning messages, replace FT_ERROR with FT_TRACE0.
 
2083
 
 
2084
        FT_ERROR is now used only if a function produces a non-zero `error'
 
2085
        value.
 
2086
 
 
2087
        Formatting, improving and harmonizing debug strings.
 
2088
 
 
2089
2009-06-25  Werner Lemberg  <wl@gnu.org>
 
2090
 
 
2091
        Provide version information better.
 
2092
 
 
2093
        * src/base/ftinit.c (FT_Init_FreeType): Don't set version here
 
2094
        but...
 
2095
        * src/base/ftobjs.c (FT_New_Library): Here.
 
2096
 
 
2097
2009-06-22  Werner Lemberg  <wl@gnu.org>
 
2098
 
 
2099
        Use 16.16 format while parsing Type 1 charstrings.
 
2100
        This fixes Savannah bug #26867.
 
2101
 
 
2102
        Previously, only integers have been used which can lead to serious
 
2103
        rounding errors.
 
2104
 
 
2105
        However, fractional values are only used internally; after the
 
2106
        charstrings (of either Type 1 or 2) have been processed, the
 
2107
        resulting coordinates get rounded to integers currently -- before
 
2108
        applying scaling.  This should be fixed; at the same time a new load
 
2109
        flag should be introduced, to be used in combination with
 
2110
        FT_LOAD_NO_SCALE, which indicates that font units are returned in
 
2111
        16.16 format.  Similarly, the incremental interface should be
 
2112
        extended to allow fractional values for metrics.
 
2113
 
 
2114
        * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
 
2115
        field.
 
2116
        * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
 
2117
        T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.
 
2118
 
 
2119
        * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H.
 
2120
        (t1_build_add_point): Always convert fixed to integer.
 
2121
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
 
2122
        Use 16.16 format everywhere (except for large integers followed by a
 
2123
        `div').
 
2124
        [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
 
2125
        code uncoditionally.
 
2126
        Add support for random numbers and update remaining code
 
2127
        accordingly; this should work now.
 
2128
        (t1_operator_seac): Updated.
 
2129
        * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
 
2130
        (ps_hints_t1stem3, t1_hints_stem): Updated.
 
2131
 
 
2132
        * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H.
 
2133
        (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL],
 
2134
        (cid_face_compute_max_advance, cid_slot_load_glyph): Updated.
 
2135
 
 
2136
        * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
 
2137
        [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
 
2138
        Updated.
 
2139
        * src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
 
2140
        * src/type1/t1objs.c (T1_Face_Init): Updated.
 
2141
 
 
2142
2009-06-21  Werner Lemberg  <wl@gnu.org>
 
2143
 
 
2144
        * src/pshinter/pshrec.c: Use PSH_Err_Ok.
 
2145
 
 
2146
2009-06-21  Werner Lemberg  <wl@gnu.org>
 
2147
 
 
2148
        Code beautification.
 
2149
 
 
2150
        * src/type1/t1load.c (FT_INT_TO_FIXED): Removed.
 
2151
        Replace everywhere with INT_TO_FIXED.
 
2152
        (FT_FIXED_TO_INT): Move to ...
 
2153
        * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here.
 
2154
        Update all users.
 
2155
 
 
2156
2009-06-20  Werner Lemberg  <wl@gnu.org>
 
2157
 
 
2158
        Remove unused variables.
 
2159
 
 
2160
        * include/freetype/internal/psaux.h (T1_BuilderRec),
 
2161
        src/cff/cffgload.h (CFF_Builder): Remove `last'.
 
2162
        Update all users.
 
2163
 
 
2164
2009-06-20  Werner Lemberg  <wl@gnu.org>
 
2165
 
 
2166
        [psaux] Check large integers while parsing charstrings.
 
2167
 
 
2168
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
 
2169
        integers must be followed by a `div' operator.
 
2170
 
 
2171
2009-06-20  Werner Lemberg  <wl@gnu.org>
 
2172
 
 
2173
        [cff] Revert last change.
 
2174
 
 
2175
        * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
 
2176
        Next time, don't confuse Type 2 charstring opcodes with TOP DICT
 
2177
        values...
 
2178
 
 
2179
2009-06-20  Werner Lemberg  <wl@gnu.org>
 
2180
 
 
2181
        * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
 
2182
        compiler warning.
 
2183
 
 
2184
2009-06-20  Werner Lemberg  <wl@gnu.org>
 
2185
 
 
2186
        * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
 
2187
 
 
2188
2009-06-19  Werner Lemberg  <wl@gnu.org>
 
2189
 
 
2190
        [cff] Fix handling of reserved byte 0xFF.
 
2191
 
 
2192
        * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
 
2193
        0xFF is encountered.
 
2194
 
 
2195
2009-06-19  Werner Lemberg  <wl@gnu.org>
 
2196
 
 
2197
        Improve debug messages for Type1 charstrings.
 
2198
 
 
2199
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
 
2200
        after instructions.
 
2201
        Prettify output.
 
2202
 
 
2203
2009-06-19  Werner Lemberg  <wl@gnu.org>
 
2204
 
 
2205
        More ftgray fixes for FT_STATIC_RASTER.
 
2206
        Problems reported by suyu@cooee.cn.
 
2207
 
 
2208
        * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
 
2209
        RAS_VAR.
 
2210
 
 
2211
2009-06-18  Werner Lemberg  <wl@gnu.org>
 
2212
 
 
2213
        * docs/CHANGES: Updated.
 
2214
 
 
2215
2009-06-18  Werner Lemberg  <wl@gnu.org>
 
2216
 
 
2217
        Fix B/W rasterization of subglyphs with different drop-out modes.
 
2218
 
 
2219
        Normally, the SCANMODE instruction (if present) to set the drop-out
 
2220
        mode in a TrueType font is located in the `prep' table only and thus
 
2221
        valid for all glyphs.  However, there are fonts like `pala.ttf'
 
2222
        which additionally contain this instruction in the hinting code of
 
2223
        some glyphs (but not all).  As a result it can happen that a
 
2224
        composite glyph needs multiple drop-out modes for its subglyphs
 
2225
        since the rendering state gets reset for each subglyph.
 
2226
 
 
2227
        FreeType collects the hinted outlines from all subglyphs, then it
 
2228
        sends the data to the rasterizer.  It also sends the drop-out mode
 
2229
        -- after hinting has been applied -- and here is the error: It sends
 
2230
        the drop-out mode of the last subglyph only; drop-out modes of all
 
2231
        other subglyphs are lost.
 
2232
 
 
2233
        This patch fixes the problem; it adds a second, alternative
 
2234
        mechanism to pass the drop-out mode: For each contour, the
 
2235
        rasterizer now checks the first `tags' array element.  If bit 2 is
 
2236
        set, bits 5-7 contain the contour's drop-out mode, overriding the
 
2237
        global drop-out mode.
 
2238
 
 
2239
        * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
 
2240
 
 
2241
        * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
 
2242
        `tags[0]'.
 
2243
 
 
2244
        * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom):
 
2245
        Use bits 3-5 instead of 0-2.
 
2246
        (New_Profile): Set the drop-out mode in the profile's `flags' field.
 
2247
        (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if
 
2248
        necessary.
 
2249
        (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
 
2250
        Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
 
2251
        mode.
 
2252
 
 
2253
2009-06-16  Werner Lemberg  <wl@gnu.org>
 
2254
 
 
2255
        Improve scan conversion rules 4 and 6.
 
2256
 
 
2257
        Two new constraints are introduced to better identify a `stub' -- a
 
2258
        concept which is only vaguely described in the OpenType
 
2259
        specification.  The old code was too rigorous and suppressed more
 
2260
        pixel than it should.
 
2261
 
 
2262
          . The intersection of the two profiles with the scanline is less
 
2263
            than a half pixel.  Code related to this was already present in
 
2264
            the sources but has been commented out.
 
2265
 
 
2266
          . The endpoint of the original contour forming a profile has a
 
2267
            distance (`overshoot') less than half a pixel to the scanline.
 
2268
 
 
2269
        Note that the two additional conditions fix almost all differences
 
2270
        to the Windows rasterizer, but some problematic cases remain.
 
2271
 
 
2272
        * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New
 
2273
        macros for the `flags' field in the `TProfile' structure.
 
2274
        (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros.
 
2275
        (New_Profile, End_Profile): Pass overshoot flag as an argument and
 
2276
        set it accordingly.
 
2277
        Update callers.
 
2278
        (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
 
2279
        constraints.
 
2280
 
 
2281
2009-06-11  Werner Lemberg  <wl@gnu.org>
 
2282
 
 
2283
        Increase precision for B/W rasterizer.
 
2284
 
 
2285
        * src/raster/ftraster.c (Set_High_Precision): Add two more bits to
 
2286
        the precision.  This corrects rendering of some small glyphs, for
 
2287
        example, glyph `xi' in verdana.ttf at 13 ppem.  Testing with ftbench
 
2288
        on my GNU/Linux box I don't see a performance degradation.
 
2289
 
 
2290
2009-06-08  Michael Zucchi  <notzed@gmail.com>
 
2291
 
 
2292
        Handle FT_STROKER_LINECAP_BUTT.
 
2293
        This fixes Savannah bug #26757.
 
2294
 
 
2295
        * src/base/ftstroke.c (ft_stroker_cap): Implement it.
 
2296
 
 
2297
2009-06-07  Harald Fernengel  <harry@kdevelop.org>
 
2298
 
 
2299
        Fix some potential out-of-memory crashes.
 
2300
 
 
2301
        * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'.
 
2302
        * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'.
 
2303
        * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of
 
2304
        `exec' in case of failure.
 
2305
 
 
2306
2009-06-07  Werner Lemberg  <wl@gnu.org>
 
2307
 
 
2308
        Simplify math.
 
2309
        Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
 
2310
 
 
2311
        * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
 
2312
        Horizontal_Gray_Sweep_Drop): Do it.
 
2313
 
 
2314
2009-06-04  Werner Lemberg  <wl@gnu.org>
 
2315
 
 
2316
        Preparation for fixing scan conversion rules 4 and 6.
 
2317
 
 
2318
        * src/raster/ftraster.c (TFlow): Replace enumeration with...
 
2319
        (Flow_Up): This macro.
 
2320
        (TProfile): Replace `flow' member with `flags' bit field.
 
2321
        Update all affected code.
 
2322
 
 
2323
2009-05-29  James Cloos  <cloos@jhcloos.com>
 
2324
 
 
2325
        Enable autohinting for glyphs rotated by multiples of 90°.
 
2326
 
 
2327
        * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted
 
2328
        matrices to allow rotations by multiples of 90°, not only unrotated,
 
2329
        possibly slanted matrices.
 
2330
 
 
2331
2009-05-28  Werner Lemberg  <wl@gnu.org>
 
2332
 
 
2333
        Remove compiler warning.
 
2334
        Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
 
2335
 
 
2336
        * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
 
2337
        `n_edges' into `#if' block.
 
2338
 
 
2339
2009-05-28  Werner Lemberg  <wl@gnu.org>
 
2340
 
 
2341
        Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
 
2342
        Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
 
2343
 
 
2344
        * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
 
2345
        Make it work.
 
2346
        Simplify #ifdef logic.
 
2347
 
 
2348
2009-05-22  Werner Lemberg  <wl@gnu.org>
 
2349
 
 
2350
        Improve b/w rasterizer.
 
2351
        Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>.
 
2352
 
 
2353
        * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
 
2354
        Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if
 
2355
        intersections are equally distant relative to next pixel center,
 
2356
        select the left pixel, not the right one.
 
2357
 
 
2358
2009-05-19  Werner Lemberg  <wl@gnu.org>
 
2359
 
 
2360
        Fix Savannah bug #26600.
 
2361
 
 
2362
        * src/type42/t42parse.c (t42_load_keyword): Handle
 
2363
        T1_FIELD_LOCATION_FONT_EXTRA.
 
2364
 
 
2365
2009-04-30  Werner Lemberg  <wl@gnu.org>
 
2366
 
 
2367
        Document recent changes to ftview.
 
2368
 
 
2369
        * docs/CHANGES: Do it.
 
2370
 
 
2371
2009-04-27  Werner Lemberg  <wl@gnu.org>
 
2372
 
 
2373
        autohinter: Don't change digit widths if all widths are the same.
 
2374
        This fixes FreeDesktop bug #21197.
 
2375
 
 
2376
        * src/autofit/afglobal.c (AF_DIGIT): New macro.
 
2377
        (af_face_globals_compute_script_coverage): Mark ASCII digits in
 
2378
        `glyph_scripts' array.
 
2379
        (af_face_globals_get_metrics): Updated.
 
2380
        (af_face_globals_is_digit): New function.
 
2381
        * src/autofit/afglobal.h: Updated.
 
2382
        (AF_ScriptMetricsRec): Add `digits_have_same_width' flag.
 
2383
 
 
2384
        * src/autofit/aflatin.c: Include FT_ADVANCES_H.
 
2385
        (af_latin_metrics_check_digits): New function.
 
2386
        (af_latin_metrics_init): Use it.
 
2387
        * src/autofit/aflatin.h: Updated.
 
2388
        * src/autofit/afcjk.c (af_cjk_metrics_init): Updated.
 
2389
 
 
2390
        * src/autofit/aflatin2.c: Similar changes as with aflatin.c.
 
2391
 
 
2392
        * src/autofit/afloader.c (af_loader_load_g): Test digit width.
 
2393
 
 
2394
        * docs/CHANGES: Document it.
 
2395
 
 
2396
2009-04-26  Werner Lemberg  <wl@gnu.org>
 
2397
 
 
2398
        Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
 
2399
        Problems reported by suyu@cooee.cn.
 
2400
 
 
2401
        * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS,
 
2402
        FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define.
 
2403
        [!_STANDALONE_]: Include ftspic.h only here.
 
2404
        (ras): Define/declare after definition of `TWorker'.
 
2405
        Use `RAS_VAR_' where necessary.
 
2406
 
 
2407
2009-04-21  Karl Berry  <karl@gnu.org>
 
2408
 
 
2409
        Fix AC_CHECK_FT2.
 
2410
 
 
2411
        * builds/unix/freetype2.m4: Only check PATH for freetype-config if
 
2412
        we did not already find it from a prefix option.
 
2413
 
 
2414
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2415
 
 
2416
        Add #error to modules and files that do not support PIC yet.
 
2417
 
 
2418
        When FT_CONFIG_OPTION_PIC is defined the following files will
 
2419
        create #error:
 
2420
        * src/bdf/bdfdrivr.h
 
2421
        * src/cache/ftcmanag.c
 
2422
        * src/cid/cidriver.h
 
2423
        * src/gxvalid/gxvmod.h
 
2424
        * src/gzip/ftgzip.c
 
2425
        * src/lzw/ftlzw.c
 
2426
        * src/otvalid/otvmod.h
 
2427
        * src/pcf/pcfdrivr.h
 
2428
        * src/pfr/pfrdrivr.h
 
2429
        * src/psaux/psauxmod.h
 
2430
        * src/type1/t1driver.h
 
2431
        * src/type42/t42drivr.h
 
2432
        * src/winfonts/winfnt.h
 
2433
 
 
2434
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2435
 
 
2436
        Position Independent Code (PIC) support in autofit module.
 
2437
 
 
2438
        * include/freetype/internal/autohint.h add macros to init
 
2439
        instances of FT_AutoHinter_ServiceRec.
 
2440
 
 
2441
        * src/autofit/afmodule.h declare autofit_module_class
 
2442
        using macros from ftmodapi.h,
 
2443
        when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2444
        functions will be declared.
 
2445
        * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined
 
2446
        af_autofitter_service and autofit_module_class structs
 
2447
        will have functions to init or create and destroy them
 
2448
        instead of being allocated in the global scope.
 
2449
        And macros will be used from afpic.h in order to access them.
 
2450
 
 
2451
        * src/autofit/aftypes.h add macros to init and declare
 
2452
        instances of AF_ScriptClassRec.
 
2453
 
 
2454
        * src/autofit/afcjk.h declare af_cjk_script_class
 
2455
        using macros from aftypes.h,
 
2456
        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
 
2457
        * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined
 
2458
        af_cjk_script_class struct will have function to init it instead of
 
2459
        being allocated in the global scope.
 
2460
 
 
2461
        * src/autofit/afdummy.h declare af_dummy_script_class
 
2462
        using macros from aftypes.h,
 
2463
        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
 
2464
        * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined
 
2465
        af_dummy_script_class struct will have function to init it instead of
 
2466
        being allocated in the global scope.
 
2467
 
 
2468
        * src/autofit/afindic.h declare af_indic_script_class
 
2469
        using macros from aftypes.h,
 
2470
        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
 
2471
        * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined
 
2472
        af_indic_script_class struct will have function to init it instead of
 
2473
        being allocated in the global scope.
 
2474
 
 
2475
        * src/autofit/aflatin.h declare af_latin_script_class
 
2476
        using macros from aftypes.h,
 
2477
        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
 
2478
        * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined
 
2479
        af_latin_script_class struct will have function to init it instead of
 
2480
        being allocated in the global scope.
 
2481
        Change af_latin_blue_chars to be PIC-compatible by being a two
 
2482
        dimentional array rather than array of pointers.
 
2483
 
 
2484
 
 
2485
        * src/autofit/aflatin2.h declare af_latin2_script_class
 
2486
        using macros from aftypes.h,
 
2487
        when FT_CONFIG_OPTION_PIC is defined init function will be declared.
 
2488
        * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined
 
2489
        af_latin2_script_class struct will have function to init it instead of
 
2490
        being allocated in the global scope.
 
2491
        Change af_latin2_blue_chars to be PIC-compatible by being a two
 
2492
        dimentional array rather than array of pointers.
 
2493
 
 
2494
        * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined
 
2495
        af_script_classes array initialization was moved to afpic.c and
 
2496
        is later refered using macros defeined in afpic.h.
 
2497
 
 
2498
        New Files:
 
2499
        * src/autofit/afpic.h declare struct to hold PIC globals for autofit
 
2500
        module and macros to access them.
 
2501
        * src/autofit/afpic.c implement functions to allocate, destroy and
 
2502
        initialize PIC globals for autofit module.
 
2503
 
 
2504
        * src/autofit/autofit.c add new file to build: afpic.c.
 
2505
        * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c.
 
2506
 
 
2507
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2508
 
 
2509
        Position Independent Code (PIC) support in pshinter module.
 
2510
 
 
2511
        * include/freetype/internal/pshints.h add macros to init
 
2512
        instances of PSHinter_Interface.
 
2513
 
 
2514
        * src/pshinter/pshmod.h declare pshinter_module_class
 
2515
        using macros from ftmodapi.h,
 
2516
        when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2517
        functions will be declared.
 
2518
        * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined
 
2519
        pshinter_interface and pshinter_module_class structs
 
2520
        will have functions to init or create and destroy them
 
2521
        instead of being allocated in the global scope.
 
2522
        And macros will be used from pshpic.h in order to access them.
 
2523
 
 
2524
        New Files:
 
2525
        * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter
 
2526
        module and macros to access them.
 
2527
        * src/pshinter/pshpic.c implement functions to allocate, destroy and
 
2528
        initialize PIC globals for pshinter module.
 
2529
 
 
2530
        * src/pshinter/pshinter.c add new file to build: pshpic.c.
 
2531
        * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c.
 
2532
 
 
2533
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2534
 
 
2535
        Position Independent Code (PIC) support in psnames module.
 
2536
 
 
2537
        * include/freetype/internal/services/svpscmap.h add macros to init
 
2538
        instances of FT_Service_PsCMapsRec.
 
2539
 
 
2540
        * src/psnames/psmodule.h declare psnames_module_class
 
2541
        using macros from ftmodapi.h,
 
2542
        when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2543
        functions will be declared.
 
2544
        * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined
 
2545
        pscmaps_interface and pscmaps_services structs
 
2546
        and psnames_module_class array
 
2547
        will have functions to init or create and destroy them
 
2548
        instead of being allocated in the global scope.
 
2549
        And macros will be used from pspic.h in order to access them.
 
2550
 
 
2551
        New Files:
 
2552
        * src/psnames/pspic.h declare struct to hold PIC globals for psnames
 
2553
        module and macros to access them.
 
2554
        * src/psnames/pspic.c implement functions to allocate, destroy and
 
2555
        initialize PIC globals for psnames module.
 
2556
 
 
2557
        * src/psnames/psnames.c add new file to build: pspic.c.
 
2558
        * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c.
 
2559
 
 
2560
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2561
 
 
2562
        Position Independent Code (PIC) support in raster renderer.
 
2563
 
 
2564
        * src/raster/ftrend1.h declare ft_raster1_renderer_class
 
2565
        and ft_raster5_renderer_class
 
2566
        using macros from ftrender.h,
 
2567
        when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2568
        functions will be declared.
 
2569
        * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined
 
2570
        ft_raster1_renderer_class and ft_raster5_renderer_class structs
 
2571
        will have functions to init or create and destroy them
 
2572
        instead of being allocated in the global scope.
 
2573
        Macros will be used from rastpic.h in order to access
 
2574
        ft_standard_raster from the pic_container (allocated in ftraster.c).
 
2575
        In ft_raster1_render when PIC is enabled, the last letter of
 
2576
        module_name is used to verfy the renderer class rather than the
 
2577
        class pointer.
 
2578
 
 
2579
        * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined
 
2580
        ft_standard_raster struct will have function to init it
 
2581
        instead of being allocated in the global scope.
 
2582
 
 
2583
        New Files:
 
2584
        * src/raster/rastpic.h declare struct to hold PIC globals for raster
 
2585
        renderer and macros to access them.
 
2586
        * src/raster/rastpic.c implement functions to allocate, destroy and
 
2587
        initialize PIC globals for raster renderer.
 
2588
 
 
2589
        * src/raster/raster.c add new file to build: rastpic.c.
 
2590
        * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c.
 
2591
 
 
2592
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2593
 
 
2594
        Position Independent Code (PIC) support in smooth renderer.
 
2595
 
 
2596
        * src/smooth/ftsmooth.h declare ft_smooth_renderer_class,
 
2597
        ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class
 
2598
        using macros from ftrender.h,
 
2599
        when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2600
        functions will be declared.
 
2601
        * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined
 
2602
        the following structs:
 
2603
        ft_smooth_renderer_class, ft_smooth_lcd_renderer_class
 
2604
        and ft_smooth_lcd_v_renderer_class
 
2605
        will have functions to init or create and destroy them
 
2606
        instead of being allocated in the global scope.
 
2607
        And macros will be used from ftspic.h in order to access
 
2608
        ft_grays_raster from the pic_container (allocated in ftgrays.c).
 
2609
 
 
2610
        * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H
 
2611
        * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined
 
2612
        func_interface was moved from gray_convert_glyph_inner function
 
2613
        to the global scope.
 
2614
        When FT_CONFIG_OPTION_PIC is defined
 
2615
        func_interface and ft_grays_raster structs
 
2616
        will have functions to init them
 
2617
        instead of being allocated in the global scope.
 
2618
        And func_interface will be allocated on the stack of
 
2619
        gray_convert_glyph_inner.
 
2620
 
 
2621
        New Files:
 
2622
        * src/smooth/ftspic.h declare struct to hold PIC globals for smooth
 
2623
        renderer and macros to access them.
 
2624
        * src/smooth/ftspic.c implement functions to allocate, destroy and
 
2625
        initialize PIC globals for smooth renderer.
 
2626
 
 
2627
        * src/smooth/smooth.c add new file to build: ftspic.c.
 
2628
        * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c.
 
2629
 
 
2630
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2631
 
 
2632
        Position Independent Code (PIC) support in cff driver.
 
2633
 
 
2634
        * include/freetype/internal/services/svcid.h add macros to init
 
2635
        instances of FT_Service_CIDRec.
 
2636
        * include/freetype/internal/services/svpsinfo.h add macros to init
 
2637
        instances of FT_Service_PsInfoRec.
 
2638
 
 
2639
        * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec
 
2640
        and cff_cmap_unicode_class_rec using macros from
 
2641
        ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2642
        functions will be declared.
 
2643
        * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined
 
2644
        the following structs:
 
2645
        cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec
 
2646
        will have functions to init or create and destroy them
 
2647
        instead of being allocated in the global scope.
 
2648
 
 
2649
        * src/cff/cffdrivr.h declare cff_driver_class using macros from
 
2650
        ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2651
        functions will be declared.
 
2652
        * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined
 
2653
        the following structs:
 
2654
        cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name
 
2655
        cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class,
 
2656
        and cff_services array
 
2657
        will have functions to init or create and destroy them
 
2658
        instead of being allocated in the global scope.
 
2659
        And macros will be used from cffpic.h in order to access them
 
2660
        from the pic_container.
 
2661
        Use macros from cffpic.h in order to access the
 
2662
        structs allocated in cffcmap.c
 
2663
 
 
2664
        * src/cff/cffobjs.c Use macros from cffpic.h in order to access the
 
2665
        structs allocated in cffcmap.c
 
2666
 
 
2667
        * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined
 
2668
        implement functions to create and destroy cff_field_handlers array
 
2669
        instead of being allocated in the global scope.
 
2670
        And macros will be used from cffpic.h in order to access it
 
2671
        from the pic_container.
 
2672
 
 
2673
        New Files:
 
2674
        * src/cff/cffpic.h declare struct to hold PIC globals for cff
 
2675
        driver and macros to access them.
 
2676
        * src/cff/cffpic.c implement functions to allocate, destroy and
 
2677
        initialize PIC globals for cff driver.
 
2678
 
 
2679
        * src/cff/cff.c add new file to build: cffpic.c.
 
2680
        * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c.
 
2681
 
 
2682
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2683
 
 
2684
        Position Independent Code (PIC) support in sfnt driver.
 
2685
 
 
2686
        * include/freetype/internal/services/svbdf.h add macros to init
 
2687
        instances of FT_Service_BDFRec.
 
2688
        * include/freetype/internal/services/svgldict.h add macros to init
 
2689
        instances of FT_Service_GlyphDictRec.
 
2690
        * include/freetype/internal/services/svpostnm.h add macros to init
 
2691
        instances of FT_Service_PsFontNameRec.
 
2692
        * include/freetype/internal/services/svsfnt.h add macros to init
 
2693
        instances of FT_Service_SFNT_TableRec.
 
2694
        * include/freetype/internal/services/svttcmap.h add macros to init
 
2695
        instances of FT_Service_TTCMapsRec.
 
2696
        * include/freetype/internal/sfnt.h add macros to init
 
2697
        instances of SFNT_Interface.
 
2698
 
 
2699
        * src/sfnt/sfdriver.h declare sfnt_module_class using macros from
 
2700
        ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2701
        functions will be declared.
 
2702
        * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
 
2703
        the following structs:
 
2704
        sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
 
2705
        tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
 
2706
        sfnt_module_class, and sfnt_services array
 
2707
        will have functions to init or create and destroy them
 
2708
        instead of being allocated in the global scope.
 
2709
        And macros will be used from sfntpic.h in order to access them
 
2710
        from the pic_container.
 
2711
 
 
2712
        * src/sfnt/ttcmap.h add macros to init
 
2713
        instances of TT_CMap_ClassRec.
 
2714
        * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
 
2715
        the following structs:
 
2716
        tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
 
2717
        tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
 
2718
        tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
 
2719
        will have functions to init or create and destroy them
 
2720
        instead of being allocated in the global scope.
 
2721
        And macros will be used from sfntpic.h in order to access them
 
2722
        from the pic_container.
 
2723
        The content of tt_cmap_classes is now described in the
 
2724
        new file 'ttcmapc.h'.
 
2725
 
 
2726
        New Files:
 
2727
        * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
 
2728
        driver and macros to access them.
 
2729
        * src/sfnt/sfntpic.c implement functions to allocate, destroy and
 
2730
        initialize PIC globals for sfnt driver.
 
2731
        * src/sfnt/ttcmapc.h describing the content of
 
2732
        tt_cmap_classes allocated in ttcmap.c
 
2733
 
 
2734
        * src/sfnt/sfnt.c add new file to build: sfntpic.c.
 
2735
        * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
 
2736
 
 
2737
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2738
 
 
2739
        Position Independent Code (PIC) support in truetype driver.
 
2740
 
 
2741
        * include/freetype/internal/services/svmm.h add macros to init
 
2742
        instances of FT_Service_MultiMastersRec.
 
2743
        * include/freetype/internal/services/svttglyf.h add macros to init
 
2744
        instances of FT_Service_TTGlyfRec.
 
2745
 
 
2746
        * src/truetype/ttdriver.h declare tt_driver_class using macros from
 
2747
        ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
 
2748
        functions will be declared.
 
2749
        * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined
 
2750
        the following structs:
 
2751
        tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class
 
2752
        and tt_services array,
 
2753
        will have functions to init or create and destroy them
 
2754
        instead of being allocated in the global scope.
 
2755
        And macros will be used from ttpic.h in order to access them
 
2756
        from the pic_container.
 
2757
        * src/truetype/ttobjs.c change trick_names array to be
 
2758
        PIC-compatible by being a two dimentional array rather than array
 
2759
        of pointers.
 
2760
 
 
2761
        New Files:
 
2762
        * src/truetype/ttpic.h declare struct to hold PIC globals for truetype
 
2763
        driver and macros to access them.
 
2764
        * src/truetype/ttpic.c implement functions to allocate, destroy and
 
2765
        initialize PIC globals for truetype driver.
 
2766
 
 
2767
        * src/truetype/truetype.c add new file to build: ttpic.c.
 
2768
        * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c.
 
2769
 
 
2770
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2771
 
 
2772
        Position Independent Code (PIC) support and infrastructure in base.
 
2773
 
 
2774
        * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC
 
2775
        * include/freetype/internal/ftobjs.h Add pic_container member to
 
2776
        FT_LibraryRec.
 
2777
        Add macros to declare and init instances of FT_CMap_ClassRec.
 
2778
        Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs.
 
2779
        Add macros to declare, allocate and initialize modules
 
2780
        (FT_Module_Class).
 
2781
        Add macros to declare, allocate and initialize renderers
 
2782
        (FT_Renderer_Class).
 
2783
        Add macro to init instances of FT_Glyph_Class.
 
2784
        Add macros to declare, allocate and initialize drivers
 
2785
        (FT_Driver_ClassRec).
 
2786
        * include/freetype/internal/ftpic.h new file to declare the
 
2787
        FT_PIC_Container struct and the functions to allocate and detroy it.
 
2788
        * include/freetype/internal/ftserv.h add macros to allocate and
 
2789
        destory arrays of FT_ServiceDescRec.
 
2790
        * include/freetype/internal/internal.h define macro to include
 
2791
        ftpic.h.
 
2792
 
 
2793
        New Files:
 
2794
        * src/base/ftpic.c implement functions to allocate and destory the
 
2795
        global pic_container.
 
2796
        * src/base/basepic.h declare struct to hold PIC globals for base and
 
2797
        macros to access them.
 
2798
        * src/base/basepic.c implement functions to allocate, destroy and
 
2799
        initialize PIC globals for base.
 
2800
 
 
2801
        * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement
 
2802
        functions that allocate and destroy ft_default_modules according to
 
2803
        FT_CONFIG_MODULES_H in the pic_container instead of the global scope
 
2804
        and use macro from basepic.h to access it.
 
2805
        * src/base/ftobjs.c add calls to the functions that allocate and
 
2806
        destroy the global pic_container when the library is created and
 
2807
        destroyed.
 
2808
 
 
2809
        * src/base/jamfile add new files to FT2_MULTI build:
 
2810
        ftpic.c and basepic.c.
 
2811
        * src/base/ftbase.c add new files to build:
 
2812
        ftpic.c and basepic.c.
 
2813
 
 
2814
        * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined
 
2815
        ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated
 
2816
        in the pic_container instead of the global scope and use macros from
 
2817
        basepic.h to access them.
 
2818
        * src/base/ftbbox.c allocate bbox_interface stract on the stack
 
2819
        instead of the global scope when FT_CONFIG_OPTION_PIC is defined.
 
2820
        * src/base/ftstroke.c access ft_outline_glyph_class allocated in
 
2821
        ftglyph.c via macros from basepic.h
 
2822
 
 
2823
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2824
 
 
2825
        Preparing changes in cff parser later needed for PIC version.
 
2826
 
 
2827
        * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c,
 
2828
        src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to
 
2829
        'CFF_ParserRec' set by `cff_parser_init'.
 
2830
        Route library pointer from 'cff_face_init' to 'cff_subfont_load'
 
2831
        for `cff_parser_init'.
 
2832
 
 
2833
        * src/cff/cffparse.c (CFF_Field_Handler): Move it to...
 
2834
        * src/cff/cffparse.h: This file, to be used by other C files.
 
2835
 
 
2836
2009-04-05  Oran Agra  <oran@monfort.co.il>
 
2837
 
 
2838
        Minor change in ftstroke.c.
 
2839
 
 
2840
        * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
 
2841
        `library' needed for PIC version.
 
2842
        Update all callers.
 
2843
 
 
2844
2009-04-04  Werner Lemberg  <wl@gnu.org>
 
2845
 
 
2846
        ftnames.c -> ftsnames.c
 
2847
 
 
2848
        * src/base/ftnames.c: Rename to...
 
2849
        * src/base/ftsnames.c: This.
 
2850
        * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
 
2851
 
 
2852
2009-04-04  Werner Lemberg  <wl@gnu.org>
 
2853
 
 
2854
        Add support for cmap type 13.
 
2855
 
 
2856
        * devel/ftoption.h, include/freetype/config/ftoption.h
 
2857
        (TT_CONFIG_CMAP_FORMAT_13): New macro.
 
2858
 
 
2859
        * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init,
 
2860
        tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next,
 
2861
        tt_cmap13_get_info, tt_cmap13_char_map_def_binary,
 
2862
        tt_cmap14_class_rec): New functions and structures for cmap 13
 
2863
        support.
 
2864
        (tt_cmap_classes): Register tt_cmap13_class_rec.
 
2865
 
 
2866
        * docs/CHANGES: Mention cmap 13 support.
 
2867
 
 
2868
2009-04-01  Werner Lemberg  <wl@gnu.org>
 
2869
 
 
2870
        Ignore empty contours in CFF glyphs.
 
2871
 
 
2872
        Problem reported by Albert Astals Cid <aacid@kde.org>.
 
2873
 
 
2874
        * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
 
2875
        t1_builder_close_contour.
 
2876
 
 
2877
2009-03-21  Werner Lemberg  <wl@gnu.org>
 
2878
 
 
2879
        Another redundant header inclusion.
 
2880
 
 
2881
        * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
 
2882
 
 
2883
2009-03-21  Werner Lemberg  <wl@gnu.org>
 
2884
 
 
2885
        Remove redundant header inclusions.
 
2886
 
 
2887
        This covers many Ghostscript Coverity issues.
 
2888
 
 
2889
        * src/*: Do it.
 
2890
 
 
2891
2009-03-21  Werner Lemberg  <wl@gnu.org>
 
2892
 
 
2893
        Fix Ghostscript Coverity issue #3904.
 
2894
 
 
2895
        * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
 
2896
        invalid values of `runcnt'.
 
2897
 
 
2898
2009-03-20  Werner Lemberg  <wl@gnu.org>
 
2899
 
 
2900
        Fix `make multi' run.
 
2901
 
 
2902
        * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
 
2903
 
 
2904
2009-03-20  Werner Lemberg  <wl@gnu.org>
 
2905
 
 
2906
        Fix Savannah bug #25923.
 
2907
 
 
2908
        * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
 
2909
 
 
2910
2009-03-20  Werner Lemberg  <wl@gnu.org>
 
2911
 
 
2912
        Protect against too large glyphs.
 
2913
 
 
2914
        Problem reported by Tavis Ormandy <taviso@google.com>.
 
2915
 
 
2916
        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
 
2917
        `pitch' or `height' to be larger than 0xFFFF.
 
2918
 
 
2919
2009-03-20  Werner Lemberg  <wl@gnu.org>
 
2920
            Tavis Ormandy  <taviso@google.com>
 
2921
 
 
2922
        Fix validation for various cmap table formats.
 
2923
 
 
2924
        * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
 
2925
        tt_cmap12_validate): Check `length' correctly.
 
2926
        (tt_cmap_14_validate): Check `length' and `numMappings' correctly.
 
2927
 
 
2928
2009-03-20  Werner Lemberg  <wl@gnu.org>
 
2929
 
 
2930
        Protect against malformed compressed data.
 
2931
 
 
2932
        * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
 
2933
        zero.
 
2934
 
 
2935
2009-03-20  Werner Lemberg  <wl@gnu.org>
 
2936
 
 
2937
        Protect against invalid SID values in CFFs.
 
2938
 
 
2939
        Problem reported by Tavis Ormandy <taviso@google.com>.
 
2940
 
 
2941
        * src/cff/cffload.c (cff_charset_load): Reject SID values larger
 
2942
        than 64999.
 
2943
 
 
2944
2009-03-19  Vincent Richomme  <richom.v@free.fr>
 
2945
 
 
2946
        Update WinCE Visual C project files.
 
2947
 
 
2948
        * builds/wince/vc2005-ce/freetype.vcproj,
 
2949
        builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
 
2950
        files.
 
2951
 
 
2952
2009-03-19  Werner Lemberg  <wl@gnu.org>
 
2953
 
 
2954
        Remove unused Win32 code.
 
2955
 
 
2956
        * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
 
2957
        Since Win32 is handled separately this is no longer needed.
 
2958
 
 
2959
2009-03-19  Vincent Richomme  <richom.v@free.fr>
 
2960
 
 
2961
        Make `gzip' module compile on WinCE.
 
2962
 
 
2963
        * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
 
2964
 
 
2965
2009-03-19  Werner Lemberg  <wl@gnu.org>
 
2966
 
 
2967
        Remove unused WinCE code.
 
2968
 
 
2969
        * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
 
2970
        Since WinCE is handled separately this is no longer needed.
 
2971
 
 
2972
2009-03-16  Werner Lemberg  <wl@gnu.org>
 
2973
 
 
2974
        docmaker: Don't ignore single-line code blocks.
 
2975
 
 
2976
        * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
 
2977
        2009-01-31.
 
2978
 
 
2979
2009-03-15  Steve Langasek  <steve.langasek@canonical.com>
 
2980
 
 
2981
        Use __asm__ for declaring assembly instead of asm.
 
2982
 
 
2983
        * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
 
2984
        asm on arm, fixing a build failure on armel with -pedantic.
 
2985
 
 
2986
2009-03-14  Werner Lemberg  <wl@gnu.org>
 
2987
 
 
2988
        Fix valgrind warning.
 
2989
 
 
2990
        * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
 
2991
        past the end of the frame.
 
2992
 
 
2993
2009-03-12  Werner Lemberg  <wl@gnu.org>
 
2994
 
 
2995
        * Version 2.3.9 released.
 
2996
        =========================
 
2997
 
 
2998
 
 
2999
        Tag sources with `VER-2-3-9'.
 
3000
 
 
3001
2009-03-12  Werner Lemberg  <wl@gnu.org>
 
3002
 
 
3003
        * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
 
3004
 
 
3005
2009-03-12  Werner Lemberg  <wl@gnu.org>
 
3006
 
 
3007
        Fix some FreeType Coverity issues as reported for Ghostscript.
 
3008
 
 
3009
        * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize
 
3010
        `args.stream' (#3874, #3875).
 
3011
        (open_face_PS_from_sfnt_stream): Improve error management (#3786).
 
3012
        * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice'
 
3013
        (#3870).
 
3014
        * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead
 
3015
        code (#3790).
 
3016
        * src/base/ftrfork.c (raccess_guess_apple_generic): Check error
 
3017
        value of `FT_Stream_Skip' (#3784).
 
3018
 
 
3019
        * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
 
3020
        it (#3872)
 
3021
 
 
3022
        * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing
 
3023
        it (#3871).
 
3024
        * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of
 
3025
        `pcf_get_metric' (#3789, #3782).
 
3026
        (pcf_get_properties): Use FT_STREAM_SKIP (#3783).
 
3027
 
 
3028
        * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
 
3029
        `acache' (#3797)
 
3030
 
 
3031
        * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff'
 
3032
        (#3796).
 
3033
        * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795).
 
3034
        * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794).
 
3035
 
 
3036
        * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
 
3037
        (#3793).
 
3038
        (_bdf_parse_start): Add comment (#3792).
 
3039
 
 
3040
        * src/raster/ftraster.c (Finalize_Profile_Table): Check
 
3041
        `ras.fProfile' (#3791).
 
3042
 
 
3043
        * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
 
3044
 
 
3045
        * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
 
3046
        seek error (#3781).
 
3047
 
 
3048
2009-03-11  Michael Toftdal  <toftdal@gmail.com>
 
3049
 
 
3050
        Extend CID service functions to handle CID-keyed CFFs as CID fonts.
 
3051
 
 
3052
        * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
 
3053
        FT_Get_CID_From_Glyph_Index): New functions.
 
3054
 
 
3055
        * include/freetype/internal/services/svcid.h
 
3056
        (FT_CID_GetIsInternallyCIDKeyedFunc,
 
3057
        FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
 
3058
        (CID Service): Use them.
 
3059
 
 
3060
        * src/base/ftcid.c: Include FT_CID_H.
 
3061
        (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index):
 
3062
        New functions.
 
3063
 
 
3064
        * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index):
 
3065
        New functions.
 
3066
        (cff_service_cid_info): Add them.
 
3067
        * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids'
 
3068
        -- it is needed for access as a CID-keyed font.  It gets deleted
 
3069
        later on.
 
3070
 
 
3071
        * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index):
 
3072
        New functions.
 
3073
        (cid_service_cid_info): Add them.
 
3074
 
 
3075
        * docs/CHANGES: Updated.
 
3076
 
 
3077
2009-03-11  Bram Tassyns  <bramt@enfocus.be>
 
3078
 
 
3079
        Fix Savannah bug #25597.
 
3080
 
 
3081
        * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
 
3082
        to become larger than 9.
 
3083
 
 
3084
2009-03-11  Werner Lemberg  <wl@gnu.org>
 
3085
 
 
3086
        Fix Savannah bug #25814.
 
3087
 
 
3088
        * builds/unix/freetype2.in: As suggested in the bug report, move
 
3089
        @LIBZ@ to `Libs.private'.
 
3090
 
 
3091
2009-03-11  Werner Lemberg  <wl@gnu.org>
 
3092
 
 
3093
        Fix Savannah bug #25781.
 
3094
        We now simply check for a valid `offset', no longer handling `delta
 
3095
        = 1' specially.
 
3096
 
 
3097
        * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for
 
3098
        last segment.
 
3099
        (tt_cmap4_set_range, tt_cmap4_char_map_linear,
 
3100
        tt_cmap4_char_map_binary): Check offset.
 
3101
 
 
3102
2009-03-11  Werner Lemberg  <wl@gnu.org>
 
3103
 
 
3104
        * src/base/Jamfile: Fix handling of ftadvanc.c.
 
3105
        Reported by Oran Agra <oran@monfort.co.il>.
 
3106
 
 
3107
2009-03-10  Vincent Richomme  <richom.v@free.fr>
 
3108
 
 
3109
        Restructure Win32 and Wince compiler support.
 
3110
 
 
3111
        * src/builds/win32: Remove files for WinCE.
 
3112
        Move VC 2005 support to a separate directory.
 
3113
        Add directory for VC 2008 support.
 
3114
 
 
3115
        * src/builds/wince: New directory hierarchy for WinCE compilers
 
3116
        (VC 2005 and VC 2008).
 
3117
 
 
3118
2009-03-09  Werner Lemberg  <wl@gnu.org>
 
3119
 
 
3120
        More preparations for 2.3.9 release.
 
3121
 
 
3122
        * docs/CHANGES: Updated.
 
3123
 
 
3124
        * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
 
3125
 
 
3126
2009-03-09  Werner Lemberg  <wl@gnu.org>
 
3127
 
 
3128
        * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
 
3129
 
 
3130
2009-03-09  Alexey Kryukov  <anagnost@yandex.ru>
 
3131
 
 
3132
        Fix handling of EBDT formats 8 and 9 (part 2).
 
3133
 
 
3134
        This patch fixes the following problems in ttsbit0.c:
 
3135
 
 
3136
        . Bitmaps for compound glyphs were never allocated.
 
3137
 
 
3138
        . `SBitDecoder' refused to load metrics if some other metrics have
 
3139
          already been loaded.  This condition certainly makes no sense for
 
3140
          recursive calls, so I've just disabled it.  Another possibility
 
3141
          would be resetting `decoder->metrics_loaded' to false before
 
3142
          loading each composite component.  However, we must restore the
 
3143
          original metrics after finishing the recursion; otherwise we can
 
3144
          get a misaligned glyph.
 
3145
 
 
3146
        . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos',
 
3147
          causing some glyph components to be shifted too far to the right
 
3148
          (especially noticeable for small sizes).
 
3149
 
 
3150
        Note that support for grayscale bitmaps (not necessarily compound) is
 
3151
        completely broken in ttsbit0.c.
 
3152
 
 
3153
        * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
 
3154
        (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
 
3155
        of `h == height'.
 
3156
        (tt_sbit_decoder_load_compound): Reset metrics after loading
 
3157
        components.
 
3158
        Allocate bitmap.
 
3159
 
 
3160
2009-03-09  Werner Lemberg  <wl@gnu.org>
 
3161
 
 
3162
        * builds/unix/configure.raw (version_info): Set to 9:20:3.
 
3163
 
 
3164
2009-03-03  David Turner  <david@freetype.org>
 
3165
 
 
3166
        Protect SFNT kerning table parser against malformed tables.
 
3167
 
 
3168
        This closes Savannah BUG #25750.
 
3169
 
 
3170
        * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a
 
3171
        bug where a malformed table would be successfully loaded but later
 
3172
        crash the engine during parsing.
 
3173
 
 
3174
2009-03-03  David Turner  <david@freetype.org>
 
3175
 
 
3176
        Update documentation and bump version number to 2.3.9.
 
3177
 
 
3178
        * include/freetype/freetype.h: Bump patch version to 9.
 
3179
        * docs/CHANGES: Document the ABI break in 2.3.8.
 
3180
        * docs/VERSION.DLL: Update version numbers table for 2.3.9.
 
3181
 
 
3182
2009-03-03  David Turner  <david@freetype.org>
 
3183
 
 
3184
        Remove ABI-breaking field in public PS_InfoFontRec definition.
 
3185
 
 
3186
        Instead, we define a new internal PS_FontExtraRec structure to
 
3187
        hold the additional field, then place it in various internal
 
3188
        positions of the corresponding FT_Face derived objects.
 
3189
 
 
3190
        * include/freetype/t1tables.h (PS_FontInfoRec): Remove the
 
3191
        `fs_type' field from the public structure.
 
3192
        * include/freetype/internal/psaux.h (T1_FieldLocation): New
 
3193
        enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
 
3194
        * include/freetype/internal/t1types.h (PS_FontExtraRec): New
 
3195
        structure.
 
3196
        (T1_FontRec, CID_FaceRec): Add it.
 
3197
 
 
3198
        * src/cid/cidload.c (cid_load_keyword): Handle
 
3199
        T1_FIELD_LOCATION_FONT_EXTRA.
 
3200
        * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
 
3201
        Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
 
3202
        * src/type1/t1load.c (t1_load_keyword): Handle
 
3203
        T1_FIELD_LOCATION_FONT_EXTRA.
 
3204
 
 
3205
        * include/freetype/internal/services/svpsinfo.h (PsInfo service):
 
3206
        Add `PS_GetFontExtraFunc' function typedef.
 
3207
 
 
3208
        * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
 
3209
        FT_SERVICE_POSTSCRIPT_INFO_H.
 
3210
        (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
 
3211
 
 
3212
        * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
 
3213
        * src/cid/cidriver.c (cid_ps_get_font_extra): New function.
 
3214
        (cid_service_ps_info): Updated.
 
3215
        * src/type1/t1driver.c (t1_ps_get_font_extra): New function.
 
3216
        (t1_service_ps_info): Updated.
 
3217
        * src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
 
3218
        (t42_service_ps_info): Updated.
 
3219
 
 
3220
2009-03-02  Alexey Kryukov  <anagnost@yandex.ru>
 
3221
 
 
3222
        Fix handling of EBDT formats 8 and 9.
 
3223
 
 
3224
        The main cycle in `blit_sbit' makes too many iterations: it actually
 
3225
        needs the count of lines in the source bitmap rather than in the
 
3226
        target image.
 
3227
 
 
3228
        * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]:
 
3229
        Add parameter `source_height' and use it for main loop.
 
3230
        (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated.
 
3231
 
 
3232
2009-02-23  Werner Lemberg  <wl@gnu.org>
 
3233
 
 
3234
        Fix Savannah bug #25669.
 
3235
 
 
3236
        * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
 
3237
 
 
3238
        * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
 
3239
        scaling factor for non-scalable fonts.
 
3240
 
 
3241
        * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
 
3242
        value to prevent incorrect scaling.
 
3243
 
 
3244
        * docs/CHANGES: Document it.
 
3245
 
 
3246
2009-02-15  Matt Godbolt  <matt@godbolt.org>
 
3247
 
 
3248
        Fix Savannah bug #25588.
 
3249
 
 
3250
        * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
 
3251
        `orr' instruction.
 
3252
 
 
3253
2009-02-11  Werner Lemberg  <wl@gnu.org>
 
3254
 
 
3255
        * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
 
3256
        Reported by David Bevan <dbevan@emtex.com>.
 
3257
 
 
3258
2009-02-09  Werner Lemberg  <wl@gnu.org>
 
3259
 
 
3260
        Fix Savannah bug #25495.
 
3261
 
 
3262
        * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
 
3263
        setting metrics and bbox values.  This ensures that the check for a
 
3264
        font with neither a `glyf' table nor bitmap strikes can be performed
 
3265
        early enough to set metrics and bbox values too.
 
3266
 
 
3267
2009-02-04  Werner Lemberg  <wl@gnu.org>
 
3268
 
 
3269
        Fix Savannah bug #25480.
 
3270
 
 
3271
        * builds/unix/freetype-config.in: For --ftversion, don't use $prefix
 
3272
        but $includedir.
 
3273
 
 
3274
2009-01-31  Werner Lemberg  <wl@gnu.org>
 
3275
 
 
3276
        Minor docmaker improvements.
 
3277
 
 
3278
        * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
 
3279
        code blocks.
 
3280
 
 
3281
2009-01-25  Werner Lemberg  <wl@gnu.org>
 
3282
 
 
3283
        Fix SCANCTRL handling in TTFs.
 
3284
        Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
 
3285
 
 
3286
        * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
 
3287
 
 
3288
2009-01-23  Werner Lemberg  <wl@gnu.org>
 
3289
 
 
3290
        Move FT_Get_FSType_Flags to a separate file.
 
3291
        Problem reported by Mickey Gabel <mickey@monfort.co.il>.
 
3292
 
 
3293
        * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
 
3294
        * src/base/ftfstype.c: This new file.
 
3295
 
 
3296
        * modules.cfg (BASE_EXTENSION): Add ftfstype.c.
 
3297
 
 
3298
        * docs/INSTALL.ANY: Updated.
 
3299
 
 
3300
        * builds/mac/*.txt, builds/amiga/*makefile*,
 
3301
        builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
 
3302
        Updated.
 
3303
 
 
3304
2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3305
 
 
3306
        * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
 
3307
        messages ending without "\n".
 
3308
 
 
3309
2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3310
 
 
3311
        Fix Savannah bug #25347.
 
3312
 
 
3313
        * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
 
3314
        the stream to the original position passed to this function,
 
3315
        when ft_lookup_PS_in_sfnt_stream() failed.
 
3316
        (Mac_Read_sfnt_Resource): Rewind the stream to the head of
 
3317
        sfnt resource body, when open_face_PS_from_sfnt_stream()
 
3318
        failed.
 
3319
 
 
3320
2009-01-19  Michael Lotz  <mmlr@mlotz.ch>
 
3321
 
 
3322
        Fix Savannah bug #25355.
 
3323
 
 
3324
        * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
 
3325
        assembler code work with gcc 2.95.3 (as used by the Haiku project).
 
3326
        Add `cc' register to the clobber list.
 
3327
 
 
3328
2009-01-18  Werner Lemberg  <wl@gnu.org>
 
3329
 
 
3330
        Protect FT_Get_Next_Char.
 
3331
 
 
3332
        * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
 
3333
        change from 2008-07-22.
 
3334
 
 
3335
        Patch from Ronen Ghoshal <rghoshal@emtex.com>.
 
3336
 
 
3337
2009-01-18  Werner Lemberg  <wl@gnu.org>
 
3338
 
 
3339
        Implement FT_Get_Name_Index for SFNT driver.
 
3340
 
 
3341
        * src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
 
3342
        (sfnt_service_glyph_dict): Use it.
 
3343
 
 
3344
        Problem reported by Truc Truong <tructv@necsv.com>.
 
3345
 
 
3346
2009-01-18  Werner Lemberg  <wl@gnu.org>
 
3347
 
 
3348
        * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
 
3349
        documentation.  Problem reported by Truc Truong <tructv@necsv.com>.
 
3350
 
 
3351
        * docs/CHANGES: Updated.
 
3352
 
 
3353
2009-01-14  Werner Lemberg  <wl@gnu.org>
 
3354
 
 
3355
        * Version 2.3.8 released.
 
3356
        =========================
 
3357
 
 
3358
 
 
3359
        Tag sources with `VER-2-3-8'.
 
3360
 
 
3361
        * docs/VERSION.DLL: Update documentation and bump version number to
 
3362
        2.3.8.
 
3363
 
 
3364
        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 
3365
        builds/win32/visualc/freetype.dsp,
 
3366
        builds/win32/visualc/freetype.vcproj,
 
3367
        builds/win32/visualce/index.html,
 
3368
        builds/win32/visualce/freetype.dsp,
 
3369
        builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/.
 
3370
 
 
3371
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
 
3372
 
 
3373
        * builds/unix/configure.raw (version_info): Set to 9:19:3.
 
3374
 
 
3375
        * docs/release: Updated.
 
3376
 
 
3377
2009-01-14  Werner Lemberg  <wl@gnu.org>
 
3378
 
 
3379
        * builds/toplevel.mk (dist): Compress better.
 
3380
 
 
3381
2009-01-13  Werner Lemberg  <wl@gnu.org>
 
3382
 
 
3383
        * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
 
3384
        with C++.
 
3385
 
 
3386
2009-01-13  Werner Lemberg  <wl@gnu.org>
 
3387
 
 
3388
        Don't use stdlib.h and friends directly.
 
3389
        Reported by Mickey Gabel <mickey@monfort.co.il>.
 
3390
 
 
3391
        * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
 
3392
 
 
3393
        * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
 
3394
        s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
 
3395
 
 
3396
        * src/autofit/aftypes.h, src/autofit/afhints.c,
 
3397
        src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
 
3398
 
 
3399
        * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
 
3400
 
 
3401
2009-01-12  Werner Lemberg  <wl@gnu.org>
 
3402
 
 
3403
        Avoid compiler warnings.
 
3404
 
 
3405
        * */*: s/do ; while ( 0 )/do { } while ( 0 )/.
 
3406
        Reported by Sean McBride <sean@rogue-research.com>.
 
3407
 
 
3408
2009-01-12  Werner Lemberg  <wl@gnu.org>
 
3409
 
 
3410
        Fix stdlib dependencies.
 
3411
 
 
3412
        Problem reported by Mickey Gabel <mickey@monfort.co.il>.
 
3413
 
 
3414
        * include/freetype/config/ftstdlib.h (ft_exit): Removed.  Unused.
 
3415
 
 
3416
        * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
 
3417
        s/memcpy/ft_memcpy/.
 
3418
        * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
 
3419
 
 
3420
2009-01-11  Werner Lemberg  <wl@gnu.org>
 
3421
 
 
3422
        * docs/formats.txt: Add link to PCF specification.
 
3423
 
 
3424
        * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
 
3425
        documentation.
 
3426
 
 
3427
2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3428
 
 
3429
        * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
 
3430
        FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
 
3431
        FT_Int32, to match with the flags for FT_Load_Glyph().
 
3432
        * src/cff/cffdrivr.c (cff_get_advances): Ditto.
 
3433
        * src/truetype/ttdriver.c (tt_get_advances): Ditto.
 
3434
        * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
 
3435
        Ditto.
 
3436
        * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
 
3437
        Ditto.
 
3438
 
 
3439
2009-01-09  Daniel Zimmermann  <netzimme@aol.com>
 
3440
 
 
3441
        * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
 
3442
        length check.  From Savannah patch #6682.
 
3443
 
 
3444
2009-01-09  Werner Lemberg  <wl@gnu.org>
 
3445
 
 
3446
        Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
 
3447
 
 
3448
        * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
 
3449
        `count_offset' if it is zero (i.e., unused).  Otherwise, the first
 
3450
        element of the structure which holds the data is erroneously
 
3451
        modified.  Problem reported by Chi Nguyen <chint@necsv.com>.
 
3452
 
 
3453
2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3454
 
 
3455
        * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
 
3456
        FT_Get_Advances): Extend the type of load_flags from FT_UInt to
 
3457
        FT_UInt32, to pass 32-bit flags on 16bit platforms.
 
3458
        * src/cff/cffdrivr.c (cff_get_advances): Ditto.
 
3459
        * src/truetype/ttdriver.c (tt_get_advances): Ditto.
 
3460
        * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
 
3461
        Ditto.
 
3462
        * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
 
3463
        Ditto.
 
3464
 
 
3465
2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3466
 
 
3467
        * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
 
3468
        FT_Done_Face() cannot free all faces. If the list of the opened
 
3469
        faces includes broken face which FT_Done_Face() cannot free,
 
3470
        FT_Done_Library() retries FT_Done_Face() and it can fall into
 
3471
        an endless loop. See the discussion:
 
3472
        http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
 
3473
        http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
 
3474
 
 
3475
2009-01-07  Werner Lemberg  <wl@gnu.org>
 
3476
 
 
3477
        * docs/CHANGES: Document new key `a' in ftdiff.
 
3478
 
 
3479
2009-01-06  Werner Lemberg  <wl@gnu.org>
 
3480
 
 
3481
        * autogen.sh: Don't use GNUisms while calling sed.  Problem reported
 
3482
        by Sean McBride.
 
3483
 
 
3484
2009-01-06  Werner Lemberg  <wl@gnu.org>
 
3485
 
 
3486
        * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
 
3487
        and FT_PIXEL_MODE_LCD_V.  Problem reported by Chi Nguyen
 
3488
        <chint@necsv.com>.
 
3489
 
 
3490
2009-01-06  Diego Pettenò  <flameeyes@gmail.com>
 
3491
 
 
3492
        * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
 
3493
        AC_CANONICAL_TARGET and use $host_os only.  A nice explanation for
 
3494
        this change can be found at
 
3495
        http://blog.flameeyes.eu/s/canonical-target.
 
3496
 
 
3497
        From Savannah patch #6712.
 
3498
 
 
3499
2009-01-06  Sean McBride  <sean@rogue-research.com>
 
3500
 
 
3501
        * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
 
3502
 
 
3503
        * src/base/ftmac.c: Remove some #undefs.
 
3504
 
 
3505
2008-12-26  Werner Lemberg  <wl@gnu.org>
 
3506
 
 
3507
        Set `face_index' field in FT_Face for all font formats.
 
3508
 
 
3509
        * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
 
3510
        sfnt/sfobjs.c (sfnt_init_face): Do it.
 
3511
 
 
3512
        * docs/CHANGES: Document it.
 
3513
 
 
3514
2008-12-22  Steve Grubb
 
3515
 
 
3516
        * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
 
3517
        Patch from Savannah bug #25151.
 
3518
 
 
3519
2008-12-21  Werner Lemberg  <wl@gnu.org>
 
3520
 
 
3521
        * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
 
3522
        src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
 
3523
        s/_Err_Bad_Argument/_Err_Invalid_Argument/.  The former is for
 
3524
        errors in the bytecode interpreter only.
 
3525
 
 
3526
2008-12-21  Werner Lemberg  <wl@gnu.org>
 
3527
 
 
3528
        * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
 
3529
        arguments.
 
3530
        Fix return value for non-PFR fonts.  Both problems reported by Chi
 
3531
        Nguyen <chint@necsv.com>.
 
3532
 
 
3533
2008-12-21  anonymous
 
3534
 
 
3535
        FT_USE_MODULE declares things as:
 
3536
 
 
3537
          extern const FT_Module_Class
 
3538
 
 
3539
        (or similar for C++).  However, the actual types of the variables
 
3540
        being declared are often different, e.g., FT_Driver_ClassRec or
 
3541
        FT_Renderer_Class.  (Some are, indeed, FT_Module_Class.)
 
3542
 
 
3543
        This works with most C compilers (since those structs begin with an
 
3544
        FT_Module_Class struct), but technically it's undefined behavior.
 
3545
 
 
3546
        To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
 
3547
        paragraph 2:
 
3548
 
 
3549
          All declarations that refer to the same object or function shall
 
3550
          have compatible type; otherwise, the behavior is undefined.
 
3551
 
 
3552
        (And they are not compatible types.)
 
3553
 
 
3554
        Most C compilers don't reject (or even detect!) code which has this
 
3555
        issue, but the GCC LTO development branch compiler does.  (It
 
3556
        outputs the types of the objects while generating .o files, along
 
3557
        with a bunch of other information, then compares them when doing the
 
3558
        final link-time code generation pass.)
 
3559
 
 
3560
        Patch from Savannah bug #25133.
 
3561
 
 
3562
        * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
 
3563
 
 
3564
        * builds/amiga/include/freetype/config/ftmodule.h,
 
3565
        include/freetype/config/ftmodule.h, */module.mk: Updated to declare
 
3566
        pass correct types to FT_USE_MODULE.
 
3567
 
 
3568
2008-12-21  Hongbo Ni  <hongbo@njstar.com>
 
3569
 
 
3570
        * src/autofit/aflatin.c (af_latin_hint_edges),
 
3571
        src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
 
3572
        (af_cjk_hint_edges): Protect against division by zero.  This fixes
 
3573
        Savannah bug #25124.
 
3574
 
 
3575
2008-12-18  Werner Lemberg  <wl@gnu.org>
 
3576
 
 
3577
        * docs/CHANGES: Updated.
 
3578
 
 
3579
2008-12-18  Bevan, David  <dbevan@emtex.com>
 
3580
 
 
3581
        Provide API for accessing embedding and subsetting restriction
 
3582
        information.
 
3583
 
 
3584
        * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
 
3585
        FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
 
3586
        FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
 
3587
        FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
 
3588
        macros.
 
3589
        (FT_Get_FSType_Flags): New function declaration.
 
3590
 
 
3591
        * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
 
3592
 
 
3593
        * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
 
3594
        (t42_keywords): Handle `FSType'.
 
3595
 
 
3596
        * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
 
3597
 
 
3598
2008-12-17  Werner Lemberg  <wl@gnu.org>
 
3599
 
 
3600
        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
 
3601
        macros so that copying the source code into an application works
 
3602
        out of the box.
 
3603
 
 
3604
2008-12-17  Werner Lemberg  <wl@gnu.org>
 
3605
 
 
3606
        * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
 
3607
        FT_GlyphSlot_Own_Bitmap to...
 
3608
        * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
 
3609
 
 
3610
        * docs/CHANGES: Document it.
 
3611
 
 
3612
2008-12-10  Werner Lemberg  <wl@gnu.org>
 
3613
 
 
3614
        Generalize the concept of `tricky' fonts by introducing
 
3615
        FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
 
3616
        engine is necessary for correct rendering.
 
3617
 
 
3618
        At the same time, slightly modify the behaviour of tricky fonts:
 
3619
        FT_LOAD_NO_HINTING is now ignored.  To really force raw loading
 
3620
        of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
 
3621
        FT_LOAD_NO_AUTOHINT must be used.
 
3622
 
 
3623
        Finally, tricky TrueType fonts always use the bytecode interpreter
 
3624
        even if the patented code is used.
 
3625
 
 
3626
        * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
 
3627
        New macros.
 
3628
 
 
3629
        * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
 
3630
        semantics as described above.
 
3631
 
 
3632
        * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
 
3633
        code of ...
 
3634
        (tt_face_init): This function, now simplified and updated to new
 
3635
        semantics.
 
3636
 
 
3637
        * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
 
3638
        fonts.
 
3639
 
 
3640
        * docs/CHANGES: Document it.
 
3641
 
 
3642
2008-12-09  Werner Lemberg  <wl@gnu.org>
 
3643
 
 
3644
        Really fix Savannah bug #25010: An SFNT font with neither outlines
 
3645
        nor bitmaps can be considered as containing space `glyphs' only.
 
3646
 
 
3647
        * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
 
3648
        a `glyf' table is missing.
 
3649
 
 
3650
        * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
 
3651
        `glyf' table but a non-zero `loca' entry.
 
3652
        (tt_loader_init): Handle missing `glyf' table.
 
3653
 
 
3654
        * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
 
3655
 
 
3656
        * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
 
3657
        nor bitmaps is scalable.
 
3658
 
 
3659
2008-12-05  Werner Lemberg  <wl@nu.org>
 
3660
 
 
3661
        * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges.  This
 
3662
        fixes Savannah bug #21190 which also provides a basic patch.
 
3663
 
 
3664
2008-12-05  Werner Lemberg  <wl@nu.org>
 
3665
 
 
3666
        * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
 
3667
        0x100 instead of 0x10000; the latter value is already occupied by
 
3668
        FT_LOAD_TARGET_LIGHT.  Bug reported by James Cloos.
 
3669
 
 
3670
 
 
3671
        Handle SFNT with neither outlines nor bitmaps.  This fixes Savannah
 
3672
        bug #25010.
 
3673
 
 
3674
        * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
 
3675
        outlines nor bitmaps.
 
3676
 
 
3677
        * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
 
3678
        is no table with glyphs.
 
3679
 
 
3680
 
 
3681
        * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
 
3682
        message.
 
3683
 
 
3684
2008-12-01  Werner Lemberg  <wl@gnu.org>
 
3685
 
 
3686
        GDEF tables need `glyph_count' too for validation.  Problem reported
 
3687
        by Chi Nguyen <chint@necsv.com>.
 
3688
 
 
3689
        * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
 
3690
        (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
 
3691
        `glyph_count'.
 
3692
 
 
3693
2008-11-29  Werner Lemberg  <wl@gnu.org>
 
3694
 
 
3695
        * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
 
3696
        src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
 
3697
        src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
 
3698
        src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
 
3699
        src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
 
3700
        (Atari PureC).
 
3701
 
 
3702
2008-11-29  James Cloos  <cloos@jhcloos.com>
 
3703
 
 
3704
        * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
 
3705
        it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
 
3706
        in the /BlendDesignMap space).
 
3707
 
 
3708
2008-11-29  James Cloos  <cloos@jhcloos.com>
 
3709
 
 
3710
        * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
 
3711
        whereas `design_points' is FT_Long*.  Therefore, return blend rather
 
3712
        than design points.
 
3713
 
 
3714
2008-11-27  Werner Lemberg  <wl@gnu.org>
 
3715
 
 
3716
        * src/cff/cffparse.c (cff_parse_real): Handle more than nine
 
3717
        significant digits correctly.  This fixes Savannah bug #24953.
 
3718
 
 
3719
2008-11-25  Daniel Zimmermann  <netzimme@aol.com>
 
3720
 
 
3721
        * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
 
3722
        before the NULL check.  From Savannah patch #6681.
 
3723
 
 
3724
2008-11-24  Werner Lemberg  <wl@gnu.org>
 
3725
 
 
3726
        Fixes from the gnuwin32 port.
 
3727
 
 
3728
        * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
 
3729
 
 
3730
        * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
 
3731
 
 
3732
        * src/psaux/psobjs.c (ps_table_add): Check `length'.
 
3733
 
 
3734
2008-11-15  Werner Lemberg  <wl@gnu.org>
 
3735
 
 
3736
        * src/truetype/ttinterp.c (tt_default_graphics_state): The default
 
3737
        value for `scan_type' is zero, as confirmed by Greg Hitchcock from
 
3738
        Microsoft.  Problem reported by Michal Nowakowski
 
3739
        <miszka@limes.com.pl>.
 
3740
 
 
3741
2008-11-12  Tor Andersson  <tor.andersson@gmail.com>
 
3742
 
 
3743
        * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
 
3744
        This fixes Savannah bug #24819.
 
3745
 
 
3746
2008-11-08  Werner Lemberg  <wl@gnu.org>
 
3747
 
 
3748
        * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
 
3749
        since OpenType version 1.5 has been released.
 
3750
 
 
3751
        * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
 
3752
        TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
 
3753
        (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
 
3754
        TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
 
3755
        TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
 
3756
        TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
 
3757
        TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
 
3758
        TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
 
3759
        TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
 
3760
        TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
 
3761
        TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
 
3762
        TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
 
3763
        TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
 
3764
        macros for OpenType 1.5.
 
3765
 
 
3766
2008-11-08  Wenlin Institute  <wenlin@wenlin.com>
 
3767
 
 
3768
        * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
 
3769
        slot->internal == NULL.  Reported by Graham Asher.
 
3770
 
 
3771
2008-11-08  Werner Lemberg  <wl@gnu.org>
 
3772
 
 
3773
        * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
 
3774
        code so that memory allocation problems can be distinguished from
 
3775
        missing table entries.  Reported by Graham Asher.
 
3776
        (GET_NAME): New macro.
 
3777
        (sfnt_load_face): Use it.
 
3778
 
 
3779
2008-11-05  Werner Lemberg  <wl@gnu.org>
 
3780
 
 
3781
        * devel/ftoption.h, include/freetype/config/ftoption.h
 
3782
        [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
 
3783
        TT_CONFIG_OPTION_UNPATENTED_HINTING.  This fixes the return value of
 
3784
        `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
 
3785
        Reported in bug #441638 of bugzilla.novell.com.
 
3786
 
 
3787
        * docs/CHANGES: Document it.
 
3788
 
 
3789
2008-11-03  Werner Lemberg  <wl@gnu.org>
 
3790
 
 
3791
        * src/type1/t1load.c (parse_subrs): Use an endless loop.  There are
 
3792
        fonts (like HELVI.PFB version 003.001, used on OS/2) which define
 
3793
        some `subrs' elements more than once.  Problem reported by Peter
 
3794
        Weilbacher <mozilla@weilbacher.org>.
 
3795
 
 
3796
2008-10-15  Graham Asher  <graham.asher@btinternet.com>
 
3797
 
 
3798
        * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
 
3799
 
 
3800
2008-10-15  David Turner  <david@freetype.org>
 
3801
 
 
3802
        * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
 
3803
        meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
 
3804
 
 
3805
2008-10-14  Werner Lemberg  <wl@gnu.org>
 
3806
 
 
3807
        * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
 
3808
        Suggested by Bram Tassyns in Savannah patch #6651.
 
3809
 
 
3810
2008-10-12  Graham Asher  <graham.asher@btinternet.com>
 
3811
 
 
3812
        * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
 
3813
        `underline_position'.
 
3814
 
 
3815
2008-10-12  Werner Lemberg  <wl@gnu.org>
 
3816
 
 
3817
        * docs/CHANGES: Updated.
 
3818
 
 
3819
2008-10-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3820
 
 
3821
        Fix Savannah bug #24468.
 
3822
 
 
3823
        According to include/freetype/internal/ftobjs.h, the appropriate
 
3824
        type to interchange single character codepoint is FT_UInt32. It
 
3825
        should be distinguished from FT_UInt which can be 16bit integer.
 
3826
 
 
3827
        * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
 
3828
        of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
 
3829
        (tt_cmap4_char_map_binary): Ditto.
 
3830
        (tt_cmap14_get_nondef_chars): Change the type of return value
 
3831
        from FT_UInt* to FT_UInt32*.
 
3832
 
 
3833
2008-10-08  John Tytgat  <John.Tytgat@esko.com>
 
3834
 
 
3835
        Fix Savannah bug #24485.
 
3836
 
 
3837
        * src/type1/t1load.c (parse_charstrings): Assure that we always have
 
3838
        a .notdef glyph.
 
3839
 
 
3840
2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3841
 
 
3842
        * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
 
3843
        * builds/mac/ftmac.c: Ditto.
 
3844
 
 
3845
2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3846
 
 
3847
        * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
 
3848
        * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
 
3849
 
 
3850
2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3851
 
 
3852
        * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
 
3853
        the beginning of sfnt container.
 
3854
        * src/sfnt/ttload.c (check_table_dir): Return
 
3855
        `SFNT_Err_Table_Missing' when sfnt table directory structure is
 
3856
        correct but essential tables for TrueType fonts (`head', `bhed' or
 
3857
        `SING') are missing.  Other errors are returned by
 
3858
        SFNT_Err_Unknown_File_Format.
 
3859
 
 
3860
        * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
 
3861
        `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'.  It is
 
3862
        enabled only when old mac font support is configured.
 
3863
 
 
3864
2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3865
 
 
3866
        * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
 
3867
        TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
 
3868
        the repeated calculations of these values in ftobjs.c and ftmac.c.
 
3869
        * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
 
3870
        * src/base/ftmac.c: Ditto.
 
3871
        * builds/mac/ftmac.c: Ditto.
 
3872
 
 
3873
2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3874
 
 
3875
        * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
 
3876
        initialization of *is_sfnt_cid.
 
3877
 
 
3878
2008-10-04  Werner Lemberg  <wl@gnu.org>
 
3879
 
 
3880
        * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
 
3881
        warnings.
 
3882
 
 
3883
2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3884
 
 
3885
        * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
 
3886
        (ft_lookup_PS_in_sfnt_stream): This.
 
3887
        (open_face_PS_from_sfnt_stream): New function.  It checks whether
 
3888
        the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
 
3889
        font, then try to open a face for given face_index.
 
3890
        (Mac_Read_sfnt_Resource): Replace the combination of
 
3891
        `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
 
3892
        `open_face_PS_from_sfnt_stream'.
 
3893
        * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
 
3894
        * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
 
3895
        * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
 
3896
        `open_face_PS_from_sfnt_stream'.
 
3897
 
 
3898
2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3899
 
 
3900
        * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
 
3901
        FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
 
3902
 
 
3903
2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3904
 
 
3905
        * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
 
3906
        MrC compiler of MPW is used.  These compilers do not define the
 
3907
        macro __APPLE__ by themselves.
 
3908
        * builds/unix/ftconfig.in: Ditto.
 
3909
        * builds/vms/ftconfig.h: Ditto.
 
3910
        * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
 
3911
        include ftmac.c if FreeType 2 is built by MPW.
 
3912
        * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
 
3913
        enable shared functions for ftmac.c if FreeType 2 is built by MPW.
 
3914
 
 
3915
        * builds/mac/ftmac.c: Include ftbase.h.
 
3916
        (memory_stream_close): Removed.
 
3917
        (new_memory_stream): Ditto.
 
3918
        (open_face_from_buffer): Removed.  Use the implementation in
 
3919
        ftobjs.c.
 
3920
        (ft_lookup_PS_in_sfnt): Ditto.
 
3921
 
 
3922
        * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
 
3923
        included part of ftbase.c, to share the functions in ftobjs.c.  The
 
3924
        rule compiling ftmac.c separately is removed and the rule copying
 
3925
        ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
 
3926
        * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
 
3927
        * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
 
3928
        * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
 
3929
 
 
3930
2008-10-02  Bram Tassyns  <bramt@enfocus.be>
 
3931
 
 
3932
        * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0.  This
 
3933
        fixes Savannah bug #24430.
 
3934
 
 
3935
2008-10-02  Werner Lemberg  <wl@gnu.org>
 
3936
 
 
3937
        * builds/freetype.mk (BASE_H): Rename to...
 
3938
        (INTERNAL_H): This.
 
3939
        (FREETYPE_H): Updated.
 
3940
        * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
 
3941
        * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
 
3942
        * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
 
3943
        * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
 
3944
        * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
 
3945
        * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
 
3946
 
 
3947
2008-10-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3948
 
 
3949
        * src/base/ftbase.h: New file to declare the private utility
 
3950
        functions shared by the sources of base modules.  Currently,
 
3951
        `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
 
3952
        share between ftobjs.c and ftmac.c.
 
3953
 
 
3954
        * src/base/rule.mk: Add ftbase.h.
 
3955
 
 
3956
        * src/base/ftobjs.c: Include ftbase.h.
 
3957
        (memory_stream_close): Build on any platform when old MacOS font
 
3958
        support is enabled.
 
3959
        (new_memory_stream): Ditto.
 
3960
        (open_face_from_buffer): Build on any platform when old MacOS font
 
3961
        support is enabled.  The counting of the face in a font file is
 
3962
        slightly different between Carbon-dependent parser and Carbon-free
 
3963
        parser.  They are merged with the platform-specific conditional.
 
3964
        (ft_lookup_PS_in_sfnt): Ditto.
 
3965
 
 
3966
        * src/base/ftmac.c: Include ftbase.h.
 
3967
        (memory_stream_close): Removed.
 
3968
        (new_memory_stream): Ditto.
 
3969
        (open_face_from_buffer): Removed.  Use the implementation in
 
3970
        ftobjs.c.
 
3971
        (ft_lookup_PS_in_sfnt): Ditto.
 
3972
 
 
3973
2008-10-02  Werner Lemberg  <wl@gnu.org>
 
3974
 
 
3975
        * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
 
3976
        if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
 
3977
 
 
3978
2008-10-01  Werner Lemberg  <wl@gnu.org>
 
3979
 
 
3980
        * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
 
3981
        (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
 
3982
        src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
 
3983
        (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
 
3984
        src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
 
3985
        Reported by Graham Asher.
 
3986
 
 
3987
2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
3988
 
 
3989
        * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
 
3990
        multi' on Mac OS X.  If the macro $(ftmac_c) is defined,
 
3991
        $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC.  In a normal build, the
 
3992
        lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
 
3993
        ftmac.c.
 
3994
        * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
 
3995
        * builds/unix/configure.raw: Add procedure to set up appropriate
 
3996
        value of $(ftmac_c) with the consideration of the availability of
 
3997
        Carbon framework.
 
3998
 
 
3999
2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4000
 
 
4001
        * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
 
4002
        * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
 
4003
        function for MPW building.  It is synchronized the condition to
 
4004
        include ftmac.c source into ftbase.c.
 
4005
 
 
4006
2008-09-22  Werner Lemberg  <wl@gnu.org>
 
4007
 
 
4008
        * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
 
4009
        cff_decoder_parse_charstrings): Handle (invalid)
 
4010
        `callothersubr' and `pop' instructions.
 
4011
 
 
4012
2008-09-22  John Tytgat  <John.Tytgat@esko.com>
 
4013
 
 
4014
        Fix Savannah bug #24307.
 
4015
 
 
4016
        * include/freetype/internal/t1types.h (CID_FaceRec),
 
4017
        src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
 
4018
 
 
4019
2008-09-21  Werner Lemberg  <wl@gnu.org>
 
4020
 
 
4021
        * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
 
4022
        `target_map' if FT_RASTER_FLAG_DIRECT is set.  Problem reported by
 
4023
        Stephan T. Lavavej <stl@nuwen.net>.
 
4024
 
 
4025
2008-09-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4026
 
 
4027
        * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
 
4028
        by jam.
 
4029
        * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
 
4030
        jam.
 
4031
 
 
4032
2008-09-20  Werner Lemberg  <wl@gnu.org>
 
4033
 
 
4034
        * src/smooth/ftgrays.c (gray_find_cell): Fix threshold.  The values
 
4035
        passed to this function are already `normalized'.  Problem reported
 
4036
        by Stephan T. Lavavej <stl@nuwen.net>.
 
4037
 
 
4038
        * docs/CHANGES: Document it.
 
4039
 
 
4040
2008-09-20  Werner Lemberg  <wl@gnu.org>
 
4041
 
 
4042
        * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
 
4043
        (FT_Outline_Decompose): Decorate with tracing messages.
 
4044
 
 
4045
        * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
 
4046
        FT_DEBUG_LEVEL_TRACE.
 
4047
        [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
 
4048
        stdarg.h.
 
4049
 
 
4050
        (FT_TRACE) [_STANDALONE_]: Remove.
 
4051
        (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
 
4052
        (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
 
4053
        (FT_ERROR) [_STANDALONE_]: Updated.
 
4054
 
 
4055
        (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
 
4056
        Use FT_TRACE7.
 
4057
        (gray_dump_cells): Make it `static void'.
 
4058
        (gray_convert_glyph): Use FT_TRACE7.
 
4059
 
 
4060
        (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
 
4061
        ftoutln.c.
 
4062
 
 
4063
        * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
 
4064
        FT_ERROR_BASE.
 
4065
 
 
4066
        * docs/formats.txt: Updated.
 
4067
 
 
4068
2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4069
 
 
4070
        * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
 
4071
        CID-keyed font support.
 
4072
        * builds/mac/ftmac.c: Ditto.
 
4073
 
 
4074
2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4075
 
 
4076
        * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
 
4077
        sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
 
4078
        `open_face_from_buffer' frees the passed buffer if it cannot open a
 
4079
        face from the buffer, so the caller must not free it.
 
4080
 
 
4081
2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4082
 
 
4083
        * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
 
4084
        for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
 
4085
        (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
 
4086
        table in sfnt table directory.  It is used before loading TrueType
 
4087
        font driver.
 
4088
 
 
4089
        * docs/CHANGES: Add note about the current status of sfnt-wrapped
 
4090
        Type1 and sfnt-wrapped CID-keyed font support.
 
4091
 
 
4092
2008-09-18  Werner Lemberg  <wl@gnu.org>
 
4093
 
 
4094
        * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
 
4095
        orthogonality (ft_free and ft_sfree could belong to different memory
 
4096
        pools).  This fixes Savannah bug #24297.
 
4097
 
 
4098
2008-09-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4099
 
 
4100
        * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
 
4101
        in ttags.h instead of numerical value 0x4F54544FL.
 
4102
 
 
4103
2008-09-16  Werner Lemberg  <wl@gnu.org>
 
4104
 
 
4105
        * src/cff/cffgload.h, src/cff/cffgload.c
 
4106
        (cff_decoder_set_width_only): Eliminate function call.
 
4107
 
 
4108
2008-09-15  George Williams  <gww@silcom.com>
 
4109
 
 
4110
        Fix Savannah bug #24179, reported by Bram Tassyns.
 
4111
 
 
4112
        * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
 
4113
        of default values.
 
4114
 
 
4115
2008-09-15  Werner Lemberg  <wl@gnu.org>
 
4116
 
 
4117
        * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
 
4118
        and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
 
4119
        prevent unconditional definition.  This fixes Savannah bug #24241.
 
4120
 
 
4121
        * src/psnames/pstables.h: Regenerated.
 
4122
 
 
4123
2008-09-13  Werner Lemberg  <wl@gnu.org>
 
4124
 
 
4125
        * autogen.sh, builds/unix/configure.raw,
 
4126
        include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
 
4127
        beautifying.
 
4128
 
 
4129
        * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
 
4130
        include/freetype/ftlcdfil.h: Protect against FreeType 1.
 
4131
        Some other minor fixes.
 
4132
 
 
4133
        * devel/ftoption.h: Synchronize with
 
4134
        include/freetype/config/ftoption.h.
 
4135
 
 
4136
2008-09-11  Werner Lemberg  <wl@gnu.org>
 
4137
 
 
4138
        * src/base/ftbase.c: Include ftadvanc.c.
 
4139
 
 
4140
2008-09-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4141
 
 
4142
        * builds/unix/ftconfig.in: Duplicate the cpp computation of
 
4143
        FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
 
4144
        (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro.  If defined, the cpp
 
4145
        computation is disabled and the statically configured sizes are
 
4146
        used.  This fixes Savannah bug #21250.
 
4147
 
 
4148
        * builds/unix/configure.raw: Add the checks to compare the cpp
 
4149
        computation results of the bit length of int and long versus the
 
4150
        sizes detected by running `configure'.  If the results are
 
4151
        different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
 
4152
        results.
 
4153
        New option --{enable|disable}-biarch-config is added to define or
 
4154
        undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
 
4155
 
 
4156
2008-09-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4157
 
 
4158
        * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
 
4159
        ApplicationService framework is missing.  Although this value is not
 
4160
        used in building of FreeType2, it is written in `freetype2.pc' and
 
4161
        `freetype-config'.
 
4162
 
 
4163
2008-09-01  david turner  <david@freetype.org>
 
4164
 
 
4165
        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
 
4166
        index to mean `use default cached FT_Face's charmap'.  This fixes
 
4167
        Savannah bug #22625.
 
4168
        * include/freetype/ftcache.h: Document it.
 
4169
 
 
4170
 
 
4171
        Make FT_MulFix an inlined function.  This is done to speed up
 
4172
        FreeType a little (on x86 3% when loading+hinting, 10% when
 
4173
        rendering, ARM savings are more important though).  Disable this by
 
4174
        undefining FT_CONFIG_OPTION_INLINE_MULFIX.
 
4175
 
 
4176
        Use of assembler code can now be controlled with
 
4177
        FT_CONFIG_OPTION_NO_ASSEMBLER.
 
4178
 
 
4179
        * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
 
4180
        [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
 
4181
        implementation.
 
4182
        [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
 
4183
        implementation taken from `ftcalc.c'.
 
4184
        [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
 
4185
        which is defined to the platform-specific assembler implementation
 
4186
        of FT_MulFix.
 
4187
        [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
 
4188
        (FT_MULFIX_INLINED): New macro.
 
4189
 
 
4190
        * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
 
4191
        FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
 
4192
 
 
4193
        * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
 
4194
 
 
4195
        * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
 
4196
        FT_MULFIX_INLINED.
 
4197
 
 
4198
 
 
4199
        Add a new header named FT_ADVANCES_H declaring some new APIs to
 
4200
        extract the advances of one or more glyphs without necessarily
 
4201
        loading their outlines.  Also provide `fast loaders' for the
 
4202
        TrueType, Type1, and CFF font drivers (more to come later).
 
4203
 
 
4204
        * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
 
4205
 
 
4206
        * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
 
4207
        * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
 
4208
 
 
4209
        * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
 
4210
        `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
 
4211
        respectively.
 
4212
 
 
4213
        * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
 
4214
        ftadvanc.c.
 
4215
 
 
4216
        * src/cff/cffdrivr.c (cff_get_advances): New function.
 
4217
        (cff_driver_class): Register it.
 
4218
 
 
4219
        * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
 
4220
        (cff_decoder_parse_charstrings): Handle `width_only'.
 
4221
        (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
 
4222
 
 
4223
        * src/cff/cffgload.h (cff_decoder): New element `width_only'.
 
4224
        (cff_decoder_set_width_only): New declaration.
 
4225
 
 
4226
        * src/truetype/ttdriver.c (tt_get_advances): New function.
 
4227
        (tt_driver_class): Register it.
 
4228
 
 
4229
        * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
 
4230
        (TT_Get_HMetrics, TT_Get_VMetrics): This.
 
4231
        Update callers.
 
4232
        * src/truetype/ttgload.h: Declare them.
 
4233
 
 
4234
        * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
 
4235
        function.
 
4236
        * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
 
4237
 
 
4238
 
 
4239
        Add checks for minimum version of the `autotools' stuff.
 
4240
 
 
4241
        * autogen.sh: Implement it.
 
4242
        (get_major_version, get_minor_version, get_patch_version,
 
4243
        compare_to_minimum_version, check_tool_version): New auxiliary
 
4244
        functions.
 
4245
 
 
4246
        * README.CVS: Document it.
 
4247
 
 
4248
2008-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4249
 
 
4250
        * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
 
4251
        ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
 
4252
 
 
4253
2008-08-28  Werner Lemberg  <wl@gnu.org>
 
4254
 
 
4255
        * src/type1/t1load.c (parse_encoding): Protect against infinite
 
4256
        loop.  This fixes Savannah bug #24150 (where a patch has been posted
 
4257
        too).
 
4258
 
 
4259
2008-08-23  Werner Lemberg  <wl@gnu.org>
 
4260
 
 
4261
        * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
 
4262
        (afm_compare_kern_pairs): Fix comparison.  This fixes Savannah bug
 
4263
        #24119.
 
4264
 
 
4265
2008-08-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4266
 
 
4267
        * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
 
4268
        even if passed library or arguments are invalid.  This fixes a bug
 
4269
        that an uninitialized stream is freed when an invalid library handle
 
4270
        is passed.  Originally proposed by Mike Fabian, 2008/08/18 on
 
4271
        freetype-devel.
 
4272
        (FT_Open_Face): Ditto (stream).
 
4273
        (load_face_in_embedded_rfork): Ditto (stream2).
 
4274
 
 
4275
2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4276
 
 
4277
        * src/base/ftmac.c: Add a fallback to guess the availability of the
 
4278
        `ResourceIndex' type.  It is used when built without configure
 
4279
        (e.g., a build with Jam).
 
4280
        * builds/mac/ftmac.c: Ditto.
 
4281
        * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
 
4282
        explicitly, even if `ResourceIndex' is unavailable.
 
4283
 
 
4284
2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4285
 
 
4286
        * builds/unix/configure.raw: In checking of Mac OS X features,
 
4287
        all-in-one header file `Carbon.h' is replaced by the minimum
 
4288
        header file `CoreServices.h', similar to current src/base/ftmac.c.
 
4289
 
 
4290
2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4291
 
 
4292
        * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
 
4293
        sub-header when its code_count is 0.  Many Japanese Dynalab fonts
 
4294
        include such an empty sub-header (code_count == 0, first_code == 0
 
4295
        delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
 
4296
 
 
4297
2008-08-04  Werner Lemberg  <wl@gnu.org>
 
4298
 
 
4299
        * src/type1/t1tokens.h: Handle `ForceBold' keyword.  This fixes
 
4300
        Savannah bug #23995.
 
4301
 
 
4302
        * src/cid/cidload.c (parse_expansion_factor): New callback function.
 
4303
        (cid_field_records): Use it for `ExpansionFactor'.
 
4304
        * src/cod/cidtoken.h: Handle `ForceBold' keyword.
 
4305
        Don't handle `ExpansionFactor'.
 
4306
 
 
4307
2008-08-04  Bram Tassyns  <bramt@enfocus.be>
 
4308
 
 
4309
        * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
 
4310
        resulted in incorrect scaling.  This fixes Savannah bug #23973.
 
4311
 
 
4312
2008-08-04  Werner Lemberg  <wl@gnu.org>
 
4313
 
 
4314
        Be more tolerant w.r.t. invalid entries in SFNT table directory.
 
4315
 
 
4316
        * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
 
4317
        adjust table count.
 
4318
        Add more trace messages.
 
4319
        (tt_face_load_font_dir): Updated.
 
4320
 
 
4321
2008-07-30  Werner Lemberg  <wl@gnu.org>
 
4322
 
 
4323
        * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
 
4324
        assume that the first argument on the stack is the bottom-most
 
4325
        element.  Two reasons:
 
4326
 
 
4327
          o According to people from Adobe it is missing in the Type 2
 
4328
            specification that pushing of additional, superfluous arguments
 
4329
            on the stack is prohibited.
 
4330
 
 
4331
          o Acroread in general handles fonts differently, namely by popping
 
4332
            the number of arguments needed for a particular operand (as a PS
 
4333
            interpreter would do).  In case of buggy fonts this causes a
 
4334
            different interpretation which of the elements on the stack are
 
4335
            superfluous and which not.
 
4336
 
 
4337
        Since there are CFF subfonts (embedded in PDFs) which rely on
 
4338
        Acroread's behaviour, FreeType now does the same.
 
4339
 
 
4340
2008-07-27  Werner Lemberg  <wl@gnu.org>
 
4341
 
 
4342
        Add extra mappings for `Tcommaaccent' and `tcommaaccent'.  This
 
4343
        fixes Savannah bug #23940.
 
4344
 
 
4345
        * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
 
4346
        (EXTRA_GLYPH_LIST_SIZE): This.
 
4347
        Increase by 2.
 
4348
        (ft_wgl_extra_unicodes): Rename to...
 
4349
        (ft_extra_glyph_unicodes): This.
 
4350
        Add two code values.
 
4351
        (ft_wgl_extra_glyph_names): Rename to...
 
4352
        (ft_extra_glyph_names): This.
 
4353
        Add two glyphs.
 
4354
        (ft_wgl_extra_glyph_name_offsets): Rename to...
 
4355
        (ft_extra_glyph_name_offsets): This.
 
4356
        Add two offsets.
 
4357
 
 
4358
        (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
 
4359
        (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
 
4360
        Updated.
 
4361
        (ps_unicodes_init): Updated.
 
4362
 
 
4363
2008-07-26  Werner Lemberg  <wl@gnu.org>
 
4364
 
 
4365
        * src/cff/cffgload.c (cff_decoder_prepare,
 
4366
        cff_decoder_parse_charstrings): Improve debug output.
 
4367
 
 
4368
2008-07-22  Martin McBride  <mmcbride@emtex.com>
 
4369
 
 
4370
        * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
 
4371
        tt_cmap4_char_map_binary): Handle fonts which treat the last segment
 
4372
        specially.  According to the specification, such fonts would be
 
4373
        invalid but acroread accepts them.
 
4374
 
 
4375
2008-07-16  Jon Foster  <Jon.Foster@cabot.co.uk>
 
4376
 
 
4377
        * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
 
4378
 
 
4379
        * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
 
4380
 
 
4381
        * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
 
4382
        Fix compiler warning.
 
4383
 
 
4384
2008-07-16  Werner Lemberg  <wl@gnu.org>
 
4385
 
 
4386
        Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
 
4387
 
 
4388
        * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
 
4389
        Invert sids table only if `pure_cff' is set.
 
4390
        * src/cff/cffload.h: Udpated.
 
4391
 
 
4392
        * src/cff/cffobjs.c (cff_face_init): Updated.
 
4393
        Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
 
4394
 
 
4395
        * docs/CHANGES: Updated.
 
4396
 
 
4397
2008-07-09  Werner Lemberg  <wl@gnu.org>
 
4398
 
 
4399
        * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
 
4400
        where num_locations < num_glyphs.  Problem reported by Ding Li.
 
4401
 
 
4402
2008-07-05  Werner Lemberg  <wl@gnu.org>
 
4403
 
 
4404
        Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
 
4405
        newer.  This fixes Savannah bug #23648.
 
4406
 
 
4407
        * configure: zsh doesn't like ${1+"$@"}.
 
4408
        Update needed GNU make version.
 
4409
        * builds/toplevel.mk: Check for `$(eval ...)'.
 
4410
        * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
 
4411
        it.
 
4412
 
 
4413
2008-07-04  Werner Lemberg  <wl@gnu.org>
 
4414
 
 
4415
        * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
 
4416
        pixel, only check for dropouts if neither start nor end point lies
 
4417
        on a pixel center.  This fixes Savannah bug #23762.
 
4418
 
 
4419
2008-06-29  Werner Lemberg  <wl@gnu.org>
 
4420
 
 
4421
        * Version 2.3.7 released.
 
4422
        =========================
 
4423
 
 
4424
 
 
4425
        Tag sources with `VER-2-3-7'.
 
4426
 
 
4427
        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 
4428
        version number to 2.3.7.
 
4429
 
 
4430
        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 
4431
        builds/win32/visualc/freetype.dsp,
 
4432
        builds/win32/visualc/freetype.vcproj,
 
4433
        builds/win32/visualce/index.html,
 
4434
        builds/win32/visualce/freetype.dsp,
 
4435
        builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
 
4436
 
 
4437
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
 
4438
 
 
4439
        * builds/unix/configure.raw (version_info): Set to 9:18:3.
 
4440
 
 
4441
        * docs/release: Updated.
 
4442
 
 
4443
2008-06-28  Werner Lemberg  <wl@gnu.org>
 
4444
 
 
4445
        * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
 
4446
        * src/ftcalc.c: Here.  This fixes Savannah bug #23729.
 
4447
 
 
4448
2008-06-27  Werner Lemberg  <wl@gnu.org>
 
4449
 
 
4450
        * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
 
4451
        Horizontal_Gray_Sweep_Drop): Test for intersections which
 
4452
        degenerate to a single point can be ignored; this has been confirmed
 
4453
        by Greg Hitchcock from Microsoft.  (This was commented out code.)
 
4454
 
 
4455
2008-06-26  Werner Lemberg  <wl@gnu.org>
 
4456
 
 
4457
        Improve navigation in API reference.
 
4458
 
 
4459
        * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
 
4460
        (html_header_6): This.
 
4461
        (html_header_3, html_header_3i, html_header_4, html_header_5,
 
4462
        html_header_5t): New strings.
 
4463
        (toc_footer_start, toc_footer_end): New strings.
 
4464
        (HtmlFormatter::html_header): Updated.
 
4465
        (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
 
4466
        New strings.
 
4467
        (HtmlFormatter::index_enter): Use `html_index_header'.
 
4468
        (HtmlFormatter::index_exit): Print `html_footer'.
 
4469
        (HtmlFormatter::toc_enter): Use `html_toc_header'.
 
4470
        (HtmlFormatter::toc_exit): Print proper footer.
 
4471
 
 
4472
        Convert ~ to non-breakable space.
 
4473
 
 
4474
        * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
 
4475
        Update header files accordingly.
 
4476
 
 
4477
2008-06-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4478
 
 
4479
        * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
 
4480
        and define HAVE_TYPE_RESOURCE_INDEX if it is defined.  Mac OS X 10.5
 
4481
        bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
 
4482
        ResourceIndex type definition.  The macro does not inform the type
 
4483
        availability.
 
4484
        * src/base/ftmac.c: More parentheses are inserted to clarify the
 
4485
        conditionals to disable legacy APIs in `10.5 and later' cases.  If
 
4486
        HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
 
4487
 
 
4488
2008-06-24  Werner Lemberg  <wl@gnu.org>
 
4489
 
 
4490
        * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
 
4491
        mode.
 
4492
 
 
4493
        * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
 
4494
        Draw_Sweep): No-dropout mode is value 2, not value 0.
 
4495
        (Draw_Sweep): Really skip dropout handling for no-dropout mode.
 
4496
 
 
4497
2008-06-24  Werner Lemberg  <wl@gnu.org>
 
4498
 
 
4499
        * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
 
4500
        if it consists of one point only.  Based on a patch from Savannah
 
4501
        bug #23683 (from John Tytgat).
 
4502
 
 
4503
2008-06-22  Werner Lemberg  <wl@gnu.org>
 
4504
 
 
4505
        * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
 
4506
        with IS_HINTED.
 
4507
 
 
4508
        * docs/CHANGES: Updated.
 
4509
 
 
4510
2008-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4511
 
 
4512
        * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
 
4513
        but LDFLAGS does not, import it to LDFLAGS.  The option is used to
 
4514
        specify non-default SDK on Mac OS X (e.g., universal binary SDK for
 
4515
        Mac OS X 10.4 on PowerPC platform).  Although Apple TechNote 2137
 
4516
        recommends to add the option only to CFLAGS, LDFLAGS should include
 
4517
        it because libfreetype.la is built with -no-undefined.  This fixes a
 
4518
        bug reported by Ryan Schmidt in MacPorts,
 
4519
        http://trac.macports.org/ticket/15331.
 
4520
 
 
4521
2008-06-21  Werner Lemberg  <wl@gnu.org>
 
4522
 
 
4523
        Enable access to the various dropout rules of the B&W rasterizer.
 
4524
        Pass dropout rules from the TT bytecode interpreter to the
 
4525
        rasterizer.
 
4526
 
 
4527
        * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
 
4528
        FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline.
 
4529
 
 
4530
        * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
 
4531
        Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
 
4532
        OpenType specification.
 
4533
        Fix mode 4 computation.
 
4534
        (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
 
4535
 
 
4536
        * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
 
4537
        mode to FT_OUTLINE_XXX flags.
 
4538
 
 
4539
        * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
 
4540
 
 
4541
2008-06-19  Werner Lemberg  <wl@gnu.org>
 
4542
 
 
4543
        * src/cff/cffobjs.c (cff_face_init): Compute final
 
4544
        `dict->units_per_em' value before assigning it to
 
4545
        `cffface->units_per_EM'.  Otherwise, CFFs without subfonts are
 
4546
        scaled incorrectly if the font matrix is non-standard.  This fixes
 
4547
        Savannah bug #23630.
 
4548
 
 
4549
        * docs/CHANGES: Updated.
 
4550
 
 
4551
2008-06-19  Werner Lemberg  <wl@gnu.org>
 
4552
 
 
4553
        * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
 
4554
        from 2008-06-19.
 
4555
 
 
4556
2008-06-18  Werner Lemberg  <wl@gnu.org>
 
4557
 
 
4558
        * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
 
4559
        Reported by Peter Weilbacher <mozilla@weilbacher.org>.
 
4560
 
 
4561
        * docs/CHANGES: Updated.
 
4562
 
 
4563
2008-06-15  George Williams  <gww@silcom.com>
 
4564
 
 
4565
        * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
 
4566
        `valid->extra2' to 1.  This is undocumented in the OpenType 1.5
 
4567
        specification.
 
4568
 
 
4569
2008-06-15  Werner Lemberg  <wl@gnu.org>
 
4570
 
 
4571
        * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
 
4572
        from clobbering.  Patch from Savannah bug report #23556.
 
4573
 
 
4574
        * docs/CHANGES: Document it.
 
4575
 
 
4576
2008-06-10  Werner Lemberg  <wl@gnu.org>
 
4577
 
 
4578
        * autogen.sh: Add option `--install' to libtoolize.
 
4579
 
 
4580
2008-06-10  Werner Lemberg  <wl@gnu.org>
 
4581
 
 
4582
        * Version 2.3.6 released.
 
4583
        =========================
 
4584
 
 
4585
 
 
4586
        Tag sources with `VER-2-3-6'.
 
4587
 
 
4588
        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 
4589
        version number to 2.3.6.
 
4590
 
 
4591
        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 
4592
        builds/win32/visualc/freetype.dsp,
 
4593
        builds/win32/visualc/freetype.vcproj,
 
4594
        builds/win32/visualce/index.html,
 
4595
        builds/win32/visualce/freetype.dsp,
 
4596
        builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
 
4597
 
 
4598
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
 
4599
 
 
4600
        * builds/unix/configure.raw (version_info): Set to 9:17:3.
 
4601
 
 
4602
 
 
4603
        * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
 
4604
        and `scale_y'.
 
4605
        * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
 
4606
 
 
4607
 
 
4608
        * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
 
4609
        * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
 
4610
 
 
4611
2008-06-10  Werner Lemberg  <wl@gnu.org>
 
4612
 
 
4613
        * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
 
4614
        `clazz->done_face'.
 
4615
 
 
4616
2008-06-09  VaDiM  <s_sliva@rambler.ru>
 
4617
 
 
4618
        Support debugging on WinCE.  From Savannah patch #6536; this fixes
 
4619
        bug #23497.
 
4620
 
 
4621
        * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
 
4622
        as a replacement for OutputDebugStringA (which WinCE doesn't have).
 
4623
        Update all callers.
 
4624
        (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
 
4625
        environment variables.
 
4626
 
 
4627
2008-06-09  Werner Lemberg  <wl@gnu.org>
 
4628
 
 
4629
        * README.CVS: Updated.
 
4630
 
 
4631
        * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
 
4632
        for newer versions of autoconf and friends.
 
4633
 
 
4634
2008-06-08  Werner Lemberg  <wl@gnu.org>
 
4635
 
 
4636
        * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
 
4637
        `private_len' unsigned.
 
4638
 
 
4639
        * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
 
4640
        it as such.
 
4641
        (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
 
4642
 
 
4643
 
 
4644
        * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
 
4645
 
 
4646
 
 
4647
        * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
 
4648
        for sane value.
 
4649
        Fix typo.
 
4650
 
 
4651
 
 
4652
        * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
 
4653
 
 
4654
 
 
4655
        * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
 
4656
        `last_point'.
 
4657
 
 
4658
 
 
4659
        * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
 
4660
        `maxTwilightPoints'.
 
4661
 
 
4662
2008-06-06  Werner Lemberg  <wl@gnu.org>
 
4663
 
 
4664
        * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
 
4665
        correctly.  This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
 
4666
 
 
4667
2008-06-03  Werner Lemberg  <wl@gnu.org>
 
4668
 
 
4669
        * include/freetype/ftcache.h (FTC_FaceID): Change type back to
 
4670
        FT_Pointer.  Reported by Ian Britten <britten@caris.com>.
 
4671
 
 
4672
2008-06-02  Werner Lemberg  <wl@gnu.org>
 
4673
 
 
4674
        Emit header info for defined FreeType objects in reference.
 
4675
 
 
4676
        * src/tools/docmaker/content.py (re_header_macro): New regexp.
 
4677
        (ContentProcessor::__init__): Initialize new dictionary `headers'.
 
4678
        (DocBlock::__init__): Collect macro header definitions.
 
4679
 
 
4680
        * src/tools/docmaker/tohtml.py (header_location_header,
 
4681
        header_location_footer): New strings.
 
4682
        (HtmlFormatter::__init__): Pass `headers' dictionary.
 
4683
        (HtmlFormatter::print_html_field): Don't emit paragraph tags.
 
4684
        (HtmlFormatter::print_html_field_list): Emit empty paragraph.
 
4685
        (HtmlFormatter::block_enter): Emit header info.
 
4686
 
 
4687
2008-06-01  Werner Lemberg  <wl@gnu.org>
 
4688
 
 
4689
        * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
 
4690
        FT_INCREMENTAL_H): Added.
 
4691
 
 
4692
2008-05-28  Werner Lemberg  <wl@gnu.org>
 
4693
 
 
4694
        * src/tools/docmaker/sources.py (SourceBlock::__init__): While
 
4695
        looking for markup tags, return immediately as soon a single one is
 
4696
        found.
 
4697
 
 
4698
2008-05-28  Werner Lemberg  <wl@gnu.org>
 
4699
 
 
4700
        * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
 
4701
        original, unscaled input values.  Confirmed by Greg Hitchcock from
 
4702
        Microsoft.
 
4703
 
 
4704
2008-05-27  Werner Lemberg  <wl@gnu.org>
 
4705
 
 
4706
        * src/tools/docmaker/tohtml.py (block_footer_start,
 
4707
        block_footer_middle): Beautify output.
 
4708
 
 
4709
2008-05-25  Werner Lemberg  <wl@gnu.org>
 
4710
 
 
4711
        * src/raster/ftraster.c (fc_black_render): Return 0 when we are
 
4712
        trying to render into a zero-width/height bitmap, not an error code.
 
4713
 
 
4714
        * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
 
4715
        of the graphics state for subglyphs to...
 
4716
        (TT_Hint_Glyph): This function.
 
4717
        Hinting instructions for a composite glyph apparently refer to the
 
4718
        just hinted subglyphs, not the unhinted, unscaled outline.  This
 
4719
        seems to fix Savannah bugs #20973 and (at least partially) #23310.
 
4720
 
 
4721
2008-05-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4722
 
 
4723
        * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
 
4724
        `aface' is returned by FT_New_Face_From_FOND().  The patch was
 
4725
        proposed by an anonymous reporter of Savannah bug #23204.
 
4726
 
 
4727
2008-05-18  Werner Lemberg  <wl@gnu.org>
 
4728
 
 
4729
        * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
 
4730
        correction for pixel boundary.  Without this patch, the effect can
 
4731
        be cumulative under certain circumstances, making glyphs taller and
 
4732
        taller after each call.  This fixes Savannah bug #19976.
 
4733
 
 
4734
2008-05-18  Werner Lemberg  <wl@gnu.org>
 
4735
 
 
4736
        * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
 
4737
        This fixes Savannah bug #23280.
 
4738
 
 
4739
        * docs/CHANGES: Updated.
 
4740
 
 
4741
2008-05-18  David Turner  <david@freetype.org>
 
4742
 
 
4743
        * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
 
4744
        ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
 
4745
        ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
 
4746
        declarations non-global.
 
4747
 
 
4748
        * src/type1/t1load.c: Add missing comment.
 
4749
 
 
4750
2008-05-17  Sam Hocevar  <samh>
 
4751
 
 
4752
        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
 
4753
        glyphs correctly.  Patch from Savannah bug #23277.
 
4754
 
 
4755
2008-05-16  Werner Lemberg  <wl@gnu.org>
 
4756
 
 
4757
        * docs/CHANGES: Updated.
 
4758
 
 
4759
2008-05-16  Sergey Tolstov  <stolstov@esri.com>
 
4760
 
 
4761
        Improve support for WGL4 encoded fonts.
 
4762
 
 
4763
        * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
 
4764
        (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
 
4765
        ft_wgl_extra_glyph_name_offsets): New arrays.
 
4766
        (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
 
4767
        (ps_unicodes_init): Use them to add additional Unicode mappings.
 
4768
 
 
4769
2008-05-15  Werner Lemberg  <wl@gnu.org>
 
4770
 
 
4771
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
 
4772
        <op_closepath>: `closepath' without a path is a no-op, not an error
 
4773
        (cf. the PS reference manual).
 
4774
 
 
4775
        Reported by Martin McBride.
 
4776
 
 
4777
2008-05-15  Werner Lemberg  <wl@gnu.org>
 
4778
 
 
4779
        * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
 
4780
 
 
4781
2008-05-15  Werner Lemberg  <wl@gnu.org>
 
4782
 
 
4783
        * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
 
4784
        which contains a single but empty entry.  This is technically
 
4785
        invalid (since it must end with `return'), but...
 
4786
 
 
4787
        Reported by Martin McBride.
 
4788
 
 
4789
2008-05-14  Werner Lemberg  <wl@gnu.org>
 
4790
 
 
4791
        Finish fix of scaling bug of CID-keyed CFF subfonts.
 
4792
 
 
4793
        * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
 
4794
        (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
 
4795
        functions.
 
4796
 
 
4797
        * src/cff/cffobjs.h (CFF_Internal): New struct.  It is used to
 
4798
        provide global hinting data for both the top-font and all subfonts
 
4799
        (with proper scaling).
 
4800
 
 
4801
        * src/cff/cffobjs.c (cff_make_private_dict): New function, using
 
4802
        code from `cff_size_init'.
 
4803
        (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
 
4804
        Use CFF_Internal and handle subfonts.
 
4805
        (cff_face_init): Handle top-dict and subfont matrices correctly;
 
4806
        apply some heuristic in case of unlikely matrix concatenation
 
4807
        results.  This has been discussed with people from Adobe (thanks
 
4808
        goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
 
4809
        and not correct.
 
4810
 
 
4811
        * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
 
4812
 
 
4813
        * src/cff/cffgload.c (cff_builder_init): Updated.
 
4814
        (cff_decoder_prepare): Handle hints globals for subfonts.
 
4815
        Update all callers.
 
4816
        (cff_slot_load): Handling scaling of subfonts properly.
 
4817
 
 
4818
        * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
 
4819
        (cff_parse_font_matrix): Use it.
 
4820
 
 
4821
        * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
 
4822
        FT_ULong.
 
4823
 
 
4824
        * docs/CHANGES: Document it.
 
4825
 
 
4826
2008-05-13  Werner Lemberg  <wl@gnu.org>
 
4827
 
 
4828
        * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
 
4829
        Handle case `face_index < 0'.
 
4830
        * docs/CHANGES: Document it.
 
4831
 
 
4832
2008-05-04  Werner Lemberg  <wl@gnu.org>
 
4833
 
 
4834
        First steps to fix the scaling bug of CID-keyed CFF subfonts,
 
4835
        reported by Ding Li on 2008/03/28 on freetype-devel.
 
4836
 
 
4837
        * src/base/cff/cffparse.c (power_tens): New array.
 
4838
        (cff_parse_real): Rewritten to introduce a fourth parameter which
 
4839
        returns the `scaling' of the real number so that we have no
 
4840
        precision loss.  This is not used yet.
 
4841
        Update all callers.
 
4842
        (cff_parse_fixed_thousand): Replace with...
 
4843
        (cff_parse_fixed_scaled): This function.  Update all callers.
 
4844
 
 
4845
2008-05-03  Werner Lemberg  <wl@gnu.org>
 
4846
 
 
4847
        * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
 
4848
        transformation since it recursively calls FT_Load_Glyph.  This fixes
 
4849
        Savannah bug #23143.
 
4850
 
 
4851
2008-04-26  Werner Lemberg  <wl@gnu.org>
 
4852
 
 
4853
        * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
 
4854
        and `scale_y' as obsolete since they aren't used.
 
4855
        * src/psaux/psobjs.c (t1_builder_init): Updated.
 
4856
 
 
4857
        * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
 
4858
        obsolete since they aren't used.
 
4859
        * src/cff/cffgload.c (cff_builder_init): Updated.
 
4860
 
 
4861
2008-04-14  Werner Lemberg  <wl@gnu.org>
 
4862
 
 
4863
        * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
 
4864
        `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'.  From Savannah
 
4865
        bug #22909.
 
4866
 
 
4867
2008-04-13  Werner Lemberg  <wl@gnu.org>
 
4868
 
 
4869
        * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
 
4870
        integer part is zero.
 
4871
 
 
4872
2008-04-01  Werner Lemberg  <wl@gnu.org>
 
4873
 
 
4874
        Fix compilation with g++ 4.1 (with both `single' and `multi'
 
4875
        targets).
 
4876
 
 
4877
        * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
 
4878
        which is crossed by a `goto'.
 
4879
 
 
4880
        * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
 
4881
 
 
4882
2008-03-31  Werner Lemberg  <wl@gnu.org>
 
4883
 
 
4884
        Fix support for subsetted CID-keyed CFFs.
 
4885
 
 
4886
        * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
 
4887
        FT_IS_CID_KEYED): New macros.
 
4888
 
 
4889
        * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
 
4890
        maximum CID value in CID-keyed CFFs.
 
4891
        Handle FT_FACE_FLAG_CID_KEYED flag.
 
4892
 
 
4893
        * docs/CHANGES: Document it.
 
4894
 
 
4895
 
 
4896
        Fix CFF font matrix calculation and improve precision.
 
4897
 
 
4898
        * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
 
4899
        part is zero.
 
4900
        (cff_parse_font_matrix): Simplify computation of `units_per_em';
 
4901
        this prevents overflow also.
 
4902
 
 
4903
 
 
4904
        Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
 
4905
 
 
4906
        * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
 
4907
        (cid_get_ros): New function.
 
4908
        (cid_service_cid_info): New service structure.
 
4909
        (cid_services): Register it.
 
4910
 
 
4911
2008-03-23  Werner Lemberg  <wl@gnu.org>
 
4912
 
 
4913
        Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
 
4914
 
 
4915
        * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
 
4916
        (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
 
4917
 
 
4918
2008-03-21  Laurence Darby  <ldarby>
 
4919
 
 
4920
        * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'.  Patch from
 
4921
        Savannah bug #22675.
 
4922
 
 
4923
2008-03-13  Derek Clegg  <dclegg@apple.com>
 
4924
 
 
4925
        * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
 
4926
        Patch from Savannah bug #22541.
 
4927
 
 
4928
2008-03-03  Masatoshi Kimura  <VYV03354@nifty.ne.jp>
 
4929
 
 
4930
        * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
 
4931
        tt_cmap14_find_variant): Return correct value.
 
4932
        (tt_cmap14_variant_chars): Fix check for `di'.
 
4933
 
 
4934
2008-02-29  Wermer Lemberg  <wl@gnu.org>
 
4935
 
 
4936
        * docs/CHANGES: Updated.
 
4937
 
 
4938
2008-02-29  Wolf
 
4939
 
 
4940
        Add build support for symbian platform.  From Savannah bug #22440.
 
4941
 
 
4942
        * builds/symbian/*: New files.
 
4943
 
 
4944
2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4945
 
 
4946
        * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
 
4947
        synthesis.  For any face of a specified FOND, always the name for
 
4948
        the first face was used.  Except of a FOND that refers multiple
 
4949
        Type1 font files, wrong synthesized font names are not used at all,
 
4950
        so this is an invisible bug.  A few limit checks are added too.
 
4951
 
 
4952
        * builds/mac/ftmac.c: Ditto.
 
4953
 
 
4954
2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4955
 
 
4956
        * builds/unix/configure.raw: Split compiler option to link Carbon
 
4957
        frameworks to one option for CoreServices framework and another
 
4958
        option for ApplicationServices framework.  The split options can be
 
4959
        managed by GNU libtool to avoid unrequired duplication when FreeType
 
4960
        is linked with other applications.  Suggested by Daniel Macks,
 
4961
        Savannah bug #22366.
 
4962
 
 
4963
2008-02-18  Victor Stinner  <victor.stinner@haypocalc.com>
 
4964
 
 
4965
        * src/truetype/ttinterp.c (Ins_IUP): Check number of points.  Fix
 
4966
        from Savannah bug #22356.
 
4967
 
 
4968
2008-02-17  Jonathan Blow  <jon@number-none.com>
 
4969
 
 
4970
        * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
 
4971
        Check for valid callback pointers.
 
4972
 
 
4973
2008-02-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4974
 
 
4975
        * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
 
4976
        handle by its value instead of ResError(), fix provided by Deron
 
4977
        Kazmaier.  According to the Resource Manager Reference,
 
4978
        GetResource(), Get1Resource(), GetNamedResource(),
 
4979
        Get1NamedResource() and RGetResource() set noErr but return NULL
 
4980
        handle when they can not find the requested resource.  These
 
4981
        functions never return undefined values, so it is sufficient to
 
4982
        check if the handle is not NULL.
 
4983
 
 
4984
        * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
 
4985
 
 
4986
2008-02-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
4987
 
 
4988
        * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
 
4989
        inclusion styles.  Now it always includes src/base/ftmac.c;
 
4990
        builds/mac/ftmac.c is never included in any configuration.
 
4991
 
 
4992
        * builds/unix/configure.raw: Print warning if configure is executed
 
4993
        with options to specify Carbon functionalities explicitly.
 
4994
 
 
4995
        * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
 
4996
        included automatically and manual replacement is required.
 
4997
 
 
4998
2008-02-11  Werner Lemberg  <wl@gnu.org>
 
4999
 
 
5000
        * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
 
5001
        (dos_setup), builds/freetype.mk (clean_project_dos,
 
5002
        distclean_project_dos): Don't use \ but $(SEP).  Reported by Duncan
 
5003
        Murdoch.
 
5004
 
 
5005
2008-01-18  Sylvain Pasche  <sylvain.pasche@gmail.com>
 
5006
 
 
5007
        * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
 
5008
        mention intra-pixel algorithm.
 
5009
 
 
5010
        * include/freetype/freetype.h (FT_Render_Mode): Mention that
 
5011
        FT_Library_SetLcdFilter can be used to reduce fringes.
 
5012
 
 
5013
2008-01-16  Werner Lemberg  <wl@gnu.org>
 
5014
 
 
5015
        * src/raster/ftraster.c (ft_black_render): Check `outline' before
 
5016
        using it.  Reported by Allan Yang.
 
5017
 
 
5018
2008-01-12  Werner Lemberg  <wl@gnu.org>
 
5019
 
 
5020
        * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
 
5021
 
 
5022
2008-01-12  Allan Yang, Jian Hua - SH  <Allan.Yang@fmc.fujitsu.com>
 
5023
 
 
5024
        * src/raster/ftraster.c (ft_black_init)
 
5025
        [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
 
5026
 
 
5027
2008-01-10  Werner Lemberg  <wl@gnu.org>
 
5028
 
 
5029
        * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
 
5030
        where the number of contours in a simple glyph is zero (and which
 
5031
        does contain an entry in the `glyf' table).  This fixes Savannah bug
 
5032
        #21990.
 
5033
 
 
5034
2008-01-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5035
 
 
5036
        Formatting suggested by Sean McBride.
 
5037
 
 
5038
        * builds/mac/ftmac.c: Formatting (tab expanded).
 
5039
        * src/autofit/afindic.c: Ditto.
 
5040
        * src/base/ftcid.c: Ditto.
 
5041
        * src/base/ftmac.c: Ditto.
 
5042
 
 
5043
2007-12-30  Werner Lemberg  <wl@gnu.org>
 
5044
 
 
5045
        * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
 
5046
        correctly.
 
5047
 
 
5048
2007-12-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5049
 
 
5050
        Improvement of POSIX resource-fork accessor to load unsorted
 
5051
        references in a resource.  In HelveLTMM (resource-fork PostScript
 
5052
        Type1 font bundled with Mac OS X since 10.3.x), the appearance order
 
5053
        of PFB chunks is not sorted; sorting the chunks by reference IDs is
 
5054
        required.
 
5055
 
 
5056
        * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
 
5057
        type to store a pair of reference ID and offset to the chunk.
 
5058
 
 
5059
        * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
 
5060
        sort FT_RFork_Ref by their reference IDs.
 
5061
 
 
5062
        (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
 
5063
        sorted by reference ID.
 
5064
 
 
5065
2007-12-14  Werner Lemberg  <wl@gnu.org>
 
5066
 
 
5067
        * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
 
5068
        division too early; otherwise the most significant digit(s) of the
 
5069
        final result are lost as the value is truncated to an integer.  This
 
5070
        fixes Savannah bug #21794 (where the patch has been posted too).
 
5071
 
 
5072
2007-12-06  Fix  <4d876b82@gmail.com>
 
5073
 
 
5074
        Pass options from one configure script to another as-is (not
 
5075
        expanded).  This is needed for options like
 
5076
        --includedir='${prefix}/include'.
 
5077
 
 
5078
        * builds/unix/detect.mk, configure: Prevent argument expansion in
 
5079
        call to the (real) `configure' script.
 
5080
 
 
5081
2007-12-06  Werner Lemberg  <wl@gnu.org>
 
5082
 
 
5083
        * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
 
5084
        TT_USE_BYTECODE_INTERPRETER isn't defined.
 
5085
 
 
5086
2007-12-06  Werner Lemberg  <wl@gnu.org>
 
5087
 
 
5088
        There exist CFFs which contain opcodes for the Type 1 operators
 
5089
        `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
 
5090
        However, it doesn't harm to support them.
 
5091
 
 
5092
        * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
 
5093
        `cff_op_closepath.'
 
5094
        (cff_argument_counts): Ditto.
 
5095
 
 
5096
        (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
 
5097
        and 13 (hsbw) which are invalid in Type 2 charstrings.
 
5098
 
 
5099
2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5100
 
 
5101
        * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
 
5102
        support new pathname syntax `..namedfork/rsrc' to access a resource
 
5103
        fork on Mac OS X.  The legacy syntax `/rsrc' does not work on
 
5104
        case-sensitive HFS+.
 
5105
        (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
 
5106
        buffer size to store a pathname.
 
5107
        * include/freetype/internal/ftrfork.h: Increment the number of
 
5108
        resource fork guessing rule.
 
5109
 
 
5110
2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5111
 
 
5112
        * builds/unix/configure.raw: Improve the compile tests to search
 
5113
        Carbon functions.
 
5114
        * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
 
5115
        proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
 
5116
 
 
5117
2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5118
 
 
5119
        The documents and comments for Mac OS X are improved by Sean
 
5120
        McBride.
 
5121
 
 
5122
        * src/base/ftmac.c: Fix a comment.
 
5123
        * include/freetype/ftmac.h: Ditto.
 
5124
        * docs/INSTALL.MAC: Improve English and add comment on lowest
 
5125
        system version specified by MACOSX_DEPLOYMENT_TARGET.
 
5126
 
 
5127
2007-12-04  Werner Lemberg  <wl@gnu.org>
 
5128
 
 
5129
        * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
 
5130
        concatenate error codes.
 
5131
        * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
 
5132
 
 
5133
2007-12-04  Graham Asher  <graham.asher@btinternet.com>
 
5134
 
 
5135
        * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
 
5136
        concatenate error codes.
 
5137
 
 
5138
2007-12-04  Sean McBride  <sean@rogue-research.com>
 
5139
 
 
5140
        * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
 
5141
        warning.
 
5142
 
 
5143
2007-11-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5144
 
 
5145
        Fix MacOS legacy font support by Masatake Yamato on Mac OS X.  It is
 
5146
        not working since 2.3.5.  In FT_Open_New(), if FT_New_Stream()
 
5147
        cannot mmap() the specified file and cannot seek to head of the
 
5148
        specified file, it returns NULL stream and FT_Open_New() returns the
 
5149
        error immediately.  On MacOS, most legacy MacOS fonts fall into such
 
5150
        a scenario because their data forks are zero-sized and cannot be
 
5151
        sought.  To proceed to guessing of resource fork fonts, the
 
5152
        functions for legacy MacOS font must properly handle the NULL stream
 
5153
        returned by FT_New_Stream().
 
5154
 
 
5155
        * src/base/ftobjs.c (IsMacBinary): Return error
 
5156
        FT_Err_Invalid_Stream_Operation immediately when NULL stream is
 
5157
        passed.
 
5158
        (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
 
5159
        to fallback.  Originally, legacy MacOS font is tested in the cases
 
5160
        of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
 
5161
        or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
 
5162
        .dfont header is combined).  Now the case of
 
5163
        FT_Err_Cannot_Open_Stream is included.
 
5164
 
 
5165
        * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
 
5166
        skip FT_Stream_Seek(), which seeks to the head of stream, and
 
5167
        proceed to unit testing of raccess_guess_XXX().  FT_Stream_Seek()
 
5168
        for a NULL stream causes a Bus error on Mac OS X.
 
5169
        (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
 
5170
        immediately if passed stream is NULL.
 
5171
        (raccess_guess_apple_single): Ditto.
 
5172
 
 
5173
2007-11-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5174
 
 
5175
        Fix for Carbon incompatibilities since Mac OS X 10.5,
 
5176
        proposed by Sean McBride.
 
5177
 
 
5178
        * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
 
5179
 
 
5180
        * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
 
5181
        FT_GetFilePath_From_Mac_ATS_Name.  Since Mac OS X 10.5, calling
 
5182
        Carbon functions from a forked process is classified as unsafe
 
5183
        by Apple.  All Carbon-dependent functions should be deprecated.
 
5184
 
 
5185
        * src/base/ftmac.c: Use essential header files
 
5186
        <CoreServices/CoreServices.h> and
 
5187
        <ApplicationServices/ApplicationServices.h> instead of
 
5188
        all-in-one header file <Carbon/Carbon.h>.
 
5189
 
 
5190
        Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
 
5191
        genuine macro PATH_MAX.
 
5192
 
 
5193
        Add fallback macro for kATSOptionFlagsUnRestrictedScope which
 
5194
        is not found in Mac OS X 10.0.
 
5195
 
 
5196
        Multi-character constants ('POST', 'sfnt' etc) are replaced by
 
5197
        64bit constants calculated by FT_MAKE_TAG() macro.
 
5198
 
 
5199
        For the index in the segment of resource fork, new portable
 
5200
        type ResourceIndex is introduced for better compatibility.
 
5201
        This type is since Mac OS X 10.5, so it is defined as short
 
5202
        when built on older platforms.
 
5203
 
 
5204
        (FT_ATSFontGetFileReference): If build target is only the systems
 
5205
        10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
 
5206
 
 
5207
        (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
 
5208
        and newer or 64bit platform, because legacy type FSSpec type is
 
5209
        removed completely.
 
5210
 
 
5211
        (FT_New_Face_From_FSSpec): Ditto.
 
5212
 
 
5213
2007-11-01  Werner Lemberg  <wl@gnu.org>
 
5214
 
 
5215
        * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere.  This
 
5216
        fixes Savannah bug #21485.
 
5217
 
 
5218
2007-10-29  Daniel Svoboda  <dasvo@planeta@cz>
 
5219
 
 
5220
        * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
 
5221
        can handle the font at all, then check `face_index'.  Otherwise, the
 
5222
        driver might return the wrong error code.  This fixes Savannah bug
 
5223
        #21468.
 
5224
 
 
5225
2007-10-21  Werner Lemberg  <wl@gnu.org>
 
5226
 
 
5227
        * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
 
5228
        support for bit 8 of the `fsSelection' field in the `OS/2' table.
 
5229
        MS is already using this; hopefully, this becomes part of OpenType
 
5230
        1.5.
 
5231
        Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
 
5232
        (WWS_SUBFAMILY).
 
5233
 
 
5234
2007-10-20  Werner Lemberg  <wl@gnu.org>
 
5235
 
 
5236
        * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
 
5237
        Add `td.left' element to CSS.
 
5238
        (toc_section_enter): Use it.
 
5239
 
 
5240
2007-10-18  David Turner  <david@freetype.org>
 
5241
 
 
5242
        * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
 
5243
        functions related to cmap type 14 support to the
 
5244
        `FT_Object_ActionName' scheme:
 
5245
 
 
5246
          FT_Get_Char_Variant_index     -> FT_Face_GetCharVariantIndex
 
5247
          FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
 
5248
          FT_Get_Variant_Selectors      -> FT_Face_GetVariantSelectors
 
5249
          FT_Get_Variants_Of_Char       -> FT_Face_GetVariantsOfChar
 
5250
          FT_Get_Chars_Of_Variant       -> FT_Face_GetCharsOfVariant
 
5251
 
 
5252
        Update documentation accordingly.
 
5253
 
 
5254
        * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
 
5255
        Make the code a little more consistent with FreeType coding
 
5256
        conventions and modify the cmap14 functions that returned a newly
 
5257
        allocated array to use a persistent vector from the TT_CMap14 object
 
5258
        instead.
 
5259
 
 
5260
        (TT_CMap14Rec): Provide array and auxiliary data for result.
 
5261
        (tt_cmap14_done, tt_cmap14_ensure): New functions.
 
5262
 
 
5263
        (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
 
5264
        tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
 
5265
        tt_cmap14_char_var_index, tt_cmap14_variants,
 
5266
        tt_cmap14_char_variants, tt_cmap14_def_char_count,
 
5267
        tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
 
5268
        tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
 
5269
 
 
5270
2007-10-15  George Williams  <gww@silcom.com>
 
5271
 
 
5272
        Add support for cmap type 14.
 
5273
 
 
5274
        * devel/ftoption.h, include/freetype/config/ftoption.h
 
5275
        (TT_CONFIG_CMAP_FORMAT_14): New macro.
 
5276
 
 
5277
        * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
 
5278
        FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
 
5279
        FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
 
5280
        support function prototypes.
 
5281
        (FT_CMap_ClassRec): Add them.
 
5282
        Update all users.
 
5283
 
 
5284
        * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
 
5285
        macro.
 
5286
 
 
5287
        * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
 
5288
        FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
 
5289
        FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
 
5290
        functions.
 
5291
 
 
5292
        * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
 
5293
        function.
 
5294
        (FT_Set_Charmap): Disallow cmaps of type 14.
 
5295
        (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
 
5296
        FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
 
5297
        FT_Get_Chars_Of_Variant): New API functions.
 
5298
 
 
5299
        * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
 
5300
 
 
5301
        (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
 
5302
        tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
 
5303
        tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
 
5304
        tt_cmap14_find_variant, tt_cmap14_char_var_index,
 
5305
        tt_cmap14_char_var_isdefault, tt_cmap14_variants,
 
5306
        tt_cmap14_char_variants, tt_cmap14_def_char_count,
 
5307
        tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
 
5308
        tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
 
5309
        structures for cmap 14 support.
 
5310
        (tt_cmap_classes): Register tt_cmap14_class_rec.
 
5311
        (tt_face_build_cmaps): One more error message.
 
5312
 
 
5313
        * docs/CHANGES: Mention cmap 14 support.
 
5314
 
 
5315
2007-10-01  Werner Lemberg  <wl@gnu.org>
 
5316
 
 
5317
        * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
 
5318
        charmap fails, do the loop again while searching a UCS-2 charmap.
 
5319
        This favours MS charmaps over Apple ones.
 
5320
 
 
5321
2007-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5322
 
 
5323
        * src/base/ftmac.c: Introduction of abstract `short' data types,
 
5324
        ResFileRefNum and ResID.  These types were introduced for Copland,
 
5325
        then backported to MPW.  The variables exchanged with FileManager
 
5326
        QuickDraw frameworks are redefined by these data types.  Patch was
 
5327
        proposed by Sean McBride.
 
5328
        * builds/mac/ftmac.c: Ditto.
 
5329
 
 
5330
2007-08-18  Werner Lemberg  <wl@gnu.org>
 
5331
 
 
5332
        * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs.  Found
 
5333
        by Imran Yousaf.  Fixes Savannah bug #20773.
 
5334
 
 
5335
        (otv_Lookup_validate): Correct handling of LookupType.  Found by
 
5336
        Imran Yousaf.  Fixes Savannah bug #20782.
 
5337
 
 
5338
2007-08-17  George Williams  <gww@silcom.com>
 
5339
 
 
5340
        * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
 
5341
        SingleSubstFormat1.
 
5342
 
 
5343
2007-08-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5344
 
 
5345
        * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
 
5346
        ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
 
5347
        Found by Ryan Hill.
 
5348
 
 
5349
2007-08-11  George Williams  <gww@silcom.com>
 
5350
 
 
5351
        * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
 
5352
        (otv_Coverage_validate): Add fourth argument to pass an expected
 
5353
        count value.  Update all users.
 
5354
        Check glyph IDs.
 
5355
        (otv_ClassDef_validate): Check `StartGlyph'.
 
5356
 
 
5357
        * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
 
5358
        checks.
 
5359
 
 
5360
        * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
 
5361
        56 constants.
 
5362
        (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
 
5363
        Check glyph IDs.
 
5364
 
 
5365
2007-08-08  Werner Lemberg  <wl@gnu.org>
 
5366
 
 
5367
        * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
 
5368
        src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
 
5369
        src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
 
5370
        appropriate.  Reported by George.
 
5371
 
 
5372
        * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
 
5373
 
 
5374
        * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
 
5375
 
 
5376
        * docs/CHANGES: Updated.
 
5377
 
 
5378
2007-08-08  George Williams  <gww@silcom.com>
 
5379
 
 
5380
        Add `MATH' validating support to otvalid module.
 
5381
 
 
5382
        * include/freetype/tttags.h (TTAG_MATH): New macro.
 
5383
        * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
 
5384
        (FT_VALIDATE_OT): Updated.
 
5385
 
 
5386
        * src/otvalid/otmath.c: New file.
 
5387
 
 
5388
        * src/otvalid/otvalid.c: Include otvmath.c.
 
5389
        * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
 
5390
 
 
5391
2007-08-04  Werner Lemberg  <wl@gnu.org>
 
5392
 
 
5393
        * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
 
5394
        Fixes Savannah bug #20686.
 
5395
 
 
5396
2007-08-03  Werner Lemberg  <wl@gnu.org>
 
5397
 
 
5398
        * src/psnames/psmodule.c: Fix usage of
 
5399
        FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro.  Reported by Graham Asher.
 
5400
 
 
5401
2007-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5402
 
 
5403
        * src/base/ftmac.c (open_face_from_buffer): The argument
 
5404
        `driver_name' is typed as `const char*' to match with the
 
5405
        callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
 
5406
        This is same with open_face_from_buffer in src/base/ftobjs.c.
 
5407
        Found and fixed by Sean McBride.
 
5408
 
 
5409
2007-07-28  Werner Lemberg  <wl@gnu.org>
 
5410
 
 
5411
        * src/raster/ftraster.c (count_table): Make it conditional.
 
5412
        * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
 
5413
        a preprocessor statement.
 
5414
 
 
5415
2007-07-27  Werner Lemberg  <wl@gnu.org>
 
5416
 
 
5417
        * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
 
5418
        first usage.  From Savannah patch #6115.
 
5419
 
 
5420
2007-07-16  Werner Lemberg  <wl@gnu.org>
 
5421
 
 
5422
        * docs/CHANGES: Updated.
 
5423
 
 
5424
2007-07-16  Derek Clegg  <dclegg@apple.com>
 
5425
 
 
5426
        Add new service for getting the ROS from a CID font.
 
5427
 
 
5428
        * include/freetype/config/ftheader.h (FT_CID_H): New macro.
 
5429
        * include/freetype/ftcid.h: New file.
 
5430
 
 
5431
        * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
 
5432
        * include/freetype/internal/services/svcid.h: New file.
 
5433
 
 
5434
        * src/base/ftcid.c: New file.
 
5435
 
 
5436
        * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
 
5437
        (cff_get_ros): New function.
 
5438
        (cff_service_cid_info): New service structure.
 
5439
        (cff_services): Register it.
 
5440
 
 
5441
        * src/cff/cffload.c (cff_font_done): Free registry and ordering.
 
5442
 
 
5443
        * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
 
5444
 
 
5445
        * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
 
5446
 
 
5447
2007-07-11  Derek Clegg  <dclegg@apple.com>
 
5448
 
 
5449
        Add support for postscript name service to CFF driver.
 
5450
 
 
5451
        * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
 
5452
        (cff_get_ps_name): New function.
 
5453
        (cff_service_ps_name): New service structure.
 
5454
        (cff_services): Register it.
 
5455
 
 
5456
2007-07-07  Werner Lemberg  <wl@gnu.org>
 
5457
 
 
5458
        * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
 
5459
        `target'.  Reported by Sean McBride.
 
5460
 
 
5461
2007-07-06  Werner Lemberg  <wl@gnu.org>
 
5462
 
 
5463
        * src/pfr/pfrcmap.c: Include pfrerror.h.
 
5464
 
 
5465
        * src/autofit/afindic.c: Add some external declarations to pacify
 
5466
        `make multi' compilation.
 
5467
 
 
5468
        * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
 
5469
 
 
5470
        * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
 
5471
        (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
 
5472
        src/autofit/aflatin.c (af_latin_hints_compute_edges),
 
5473
        src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
 
5474
        (tt_face_get_metrics), src/base/ftobjs.c (open_face)
 
5475
        [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
 
5476
 
 
5477
        * docs/release: Mention test compilation targets.
 
5478
 
 
5479
2007-07-04  Werner Lemberg  <wl@gnu.org>
 
5480
 
 
5481
        * docs/PROBLEMS: Mention that some PS based fonts can't be
 
5482
        handled correctly by FreeType.
 
5483
 
 
5484
        * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
 
5485
        recursion depth of 1.  This was the maximum value in TrueType 1.0,
 
5486
        and some older fonts don't set this field correctly.
 
5487
 
 
5488
        * src/gxvalid/gxvmort1.c
 
5489
        (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
 
5490
 
 
5491
2007-07-03  Werner Lemberg  <wl@gnu.org>
 
5492
 
 
5493
        * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
 
5494
        `round' to pacify compiler.
 
5495
 
 
5496
2007-07-02  Werner Lemberg  <wl@gnu.org>
 
5497
 
 
5498
 
 
5499
        * Version 2.3.5 released.
 
5500
        =========================
 
5501
 
 
5502
 
 
5503
        Tag sources with `VER-2-3-5'.
 
5504
 
 
5505
        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 
5506
        version number to 2.3.5.
 
5507
 
 
5508
        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 
5509
        builds/win32/visualc/freetype.dsp,
 
5510
        builds/win32/visualc/freetype.vcproj,
 
5511
        builds/win32/visualce/index.html,
 
5512
        builds/win32/visualce/freetype.dsp,
 
5513
        builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
 
5514
 
 
5515
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
 
5516
 
 
5517
        * builds/unix/configure.raw (version_info): Set to 9:16:3.
 
5518
 
 
5519
2007-07-01  David Turner  <david@freetype.org>
 
5520
 
 
5521
        * include/freetype/freetype.h, src/base/ftpatent.c
 
5522
        (FT_Face_SetUnpatentedHinting): New function to dynamically change
 
5523
        the setting after a face is created.
 
5524
 
 
5525
        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
 
5526
        that created distortions in the bytecode interpreter results.
 
5527
 
 
5528
2007-06-30  David Turner  <david@freetype.org>
 
5529
 
 
5530
        * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
 
5531
        initialization.
 
5532
 
 
5533
        * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
 
5534
        infinite loop in the case of degenerate fonts.
 
5535
 
 
5536
2007-06-26  Rahul Bhalerao  <b.rahul.pm@gmail.com>
 
5537
 
 
5538
        Add autofit module for Indic scripts.  This currently just reuses
 
5539
        the CJK-specific functions.
 
5540
 
 
5541
        * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
 
5542
        macro.
 
5543
        * devel/ftoption.h: Synchronize with
 
5544
        include/freetype/config/ftoption.h.
 
5545
 
 
5546
        * src/autofit/afindic.c, src/autofit/afindic.h: New files.
 
5547
 
 
5548
        * src/autofit/afglobal.c, src/autofit/aftypes.h,
 
5549
        src/autofit/autofit.c: Updated.
 
5550
 
 
5551
        * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
 
5552
        (AUTOF_DRV_SRC): Updated.
 
5553
 
 
5554
2007-06-23  David Turner  <david@freetype.org>
 
5555
 
 
5556
        * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
 
5557
        2007-06-16 that prevented the TrueType module from loading most
 
5558
        glyphs.
 
5559
 
 
5560
2007-06-20  Werner Lemberg  <wl@gnu.org>
 
5561
 
 
5562
        * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
 
5563
        change.
 
5564
 
 
5565
2007-06-19  Werner Lemberg  <wl@gnu.org>
 
5566
 
 
5567
        * src/type1/t1load.c (parse_encoding): Handle one more error.
 
5568
 
 
5569
2007-06-19  Dmitry Timoshkov  <dmitry@codeweavers.com>
 
5570
 
 
5571
        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
 
5572
        FNT_Err_Invalid_File_Format if file format was recognized but
 
5573
        the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
 
5574
        Add verbose debug logs to make it easier to debug failing load
 
5575
        attempts.
 
5576
        (FNT_Face_Init): A single FNT font can't contain more than 1 face,
 
5577
        so return an error if requested face index is > 0.
 
5578
        Do not do further attempt to load fonts if a previous attempt has
 
5579
        failed but returned error FNT_Err_Invalid_File_Format, i.e., the
 
5580
        file format has been recognized but no fonts found in the file.
 
5581
 
 
5582
2007-07-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
5583
 
 
5584
        * src/base/ftmac.c: Apply patches proposed by Sean McBride.
 
5585
        (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
 
5586
        the compiler warnings against unused arguments.
 
5587
        (FT_ATSFontGetFileReference): Ditto.
 
5588
        (FT_GetFile_From_Mac_ATS_Name): Ditto.
 
5589
        (FT_New_Face_From_FSSpec): Ditto.
 
5590
        (lookup_lwfn_by_fond): Fix wrong comment.
 
5591
        Replace `const StringPtr' by more appropriate type
 
5592
        `ConstStr255Param'.
 
5593
        FSRefMakePathPath always returns UTF8 POSIX pathname in
 
5594
        Mach-O, thus HFS pathname support is dropped.
 
5595
        (count_faces): Remove HLock and HUnlock which is not
 
5596
        required on Mac OS X anymore.
 
5597
        (FT_New_Face_From_SFNT): Ditto.
 
5598
        (FT_New_Face_From_FOND): Ditto.
 
5599
        * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
 
5600
        except of HFS pathname support and HLock/HUnlock.
 
5601
        They are required on classic CFM environment.
 
5602
 
 
5603
2007-06-18  Werner Lemberg  <wl@gnu.org>
 
5604
 
 
5605
        * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
 
5606
        assertion.
 
5607
        (ps_parser_to_bytes): Fix error message.
 
5608
 
 
5609
        * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
 
5610
        * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
 
5611
        Don't allow mixed binary and hex strings.
 
5612
        Handle string_size == 0 and string_buf == 0.
 
5613
        (t42_parse_encoding): Handle one more error.
 
5614
 
 
5615
2007-06-18  Werner Lemberg  <wl@gnu.org>
 
5616
 
 
5617
        * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
 
5618
        logic.
 
5619
        (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
 
5620
        correctly.
 
5621
        (ps_parser_load_field_table): Use `fields->array_max' instead of
 
5622
        T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
 
5623
 
 
5624
        * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
 
5625
        2007-06-06.
 
5626
 
 
5627
2007-06-17  Werner Lemberg  <wl@gnu.org>
 
5628
 
 
5629
        * src/tools/ftrandom.c (font_size): New global variable.
 
5630
        (TestFace): Use it.
 
5631
        (main): Handle new option `--size' to set `font_size'.
 
5632
        (Usage): Updated.
 
5633
 
 
5634
        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
 
5635
        invalid font.
 
5636
        (FNT_Load_Glyph): Protect against invalid bitmap width.
 
5637
 
 
5638
2007-06-16  David Turner  <david@freetype.org>
 
5639
 
 
5640
        * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
 
5641
        Prevent integer overflows when rendering very large outlines.
 
5642
 
 
5643
        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
 
5644
        well-formedness of the contours array when loading a glyph.
 
5645
 
 
5646
        * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
 
5647
        and `zp2'.
 
5648
        (Ins_IP): Check argument ranges to reject bogus operations properly.
 
5649
        (IUP_WorkerRec): Add `max_points' member.
 
5650
        (_iup_worker_interpolate): Check argument ranges.
 
5651
        (Ins_IUP): Ignore empty outlines.
 
5652
 
 
5653
2007-06-16  Dmitry Timoshkov  <dmitry@codeweavers.com>
 
5654
 
 
5655
        * src/winfonts/winfnt.h: Add necessary structures for PE resource
 
5656
        parsing.
 
5657
        (WinPE32_HeaderRec): New structure.
 
5658
        (WinPE32_SectionRec): New structure.
 
5659
        (WinPE_RsrcDirRec): New structure.
 
5660
        (WinPE_RsrcDirEntryRec): New structure.
 
5661
        (WinPE_RsrcDataEntryRec): New structure.
 
5662
        (FNT_FontRec): Remove unused `size_shift' field.
 
5663
 
 
5664
        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
 
5665
        loading bitmap .fon files in PE format.
 
5666
 
 
5667
2007-06-15  Dmitry Timoshkov  <dmitry@codeweavers.com>
 
5668
 
 
5669
        * builds/win32/ftdebug.c: Unify debug level handling with other
 
5670
        platforms.
 
5671
 
 
5672
2007-06-14  Dmitry Timoshkov  <dmitry@codeweavers.com>
 
5673
 
 
5674
        * builds/win32/ftdebug.c (FT_Message): Send debug output to the
 
5675
        console as well as to the debugger.
 
5676
 
 
5677
2007-06-14  Werner Lemberg  <wl@gnu.org>
 
5678
 
 
5679
        * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
 
5680
        cover all ranges which could possibly be handled by the aflatin
 
5681
        module (since the default fallback for unknown ranges is now the
 
5682
        afcjk module).  It might be necessary to fine-tune this further by
 
5683
        splitting off modules for Greek, Cyrillic, or other blocks.
 
5684
 
 
5685
2007-06-11  David Turner  <david@freetype.org>
 
5686
 
 
5687
        * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
 
5688
        incorrect segment linking computation.  This was the root cause of
 
5689
        Savannah bug #19565.
 
5690
 
 
5691
 
 
5692
        * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
 
5693
        to improve the Latin auto-hinter.  Note that the new code is
 
5694
        disabled by default since it is not stabilized yet.
 
5695
 
 
5696
        * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
 
5697
        (disabled currently).
 
5698
 
 
5699
        * src/autofit/afhints.c: Remove dead code.
 
5700
        (af_axis_hints_new_edge): Add argument to handle segment directions.
 
5701
        (af_edge_flags_to_string): New function.
 
5702
        (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
 
5703
        option flags.
 
5704
        (af_glyph_hints_reload): Add argument to handle inflections.
 
5705
        Simplify.
 
5706
        (af_direction_compute): Fine tuning.
 
5707
        (af_glyph_hints_align_edge_points): Fix logic.
 
5708
        (af_glyph_hints_align_strong_points): Do linear search for small
 
5709
        edge counts.
 
5710
        (af_glyph_hints_align_weak_points): Skip any touched neighbors.
 
5711
        (af_iup_shift): Handle zero `delta'.
 
5712
 
 
5713
        * src/autofit/afhints.h: Updated.
 
5714
        (AF_SORT_SEGMENTS): New macro (disabled).
 
5715
        (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
 
5716
 
 
5717
        * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
 
5718
        argument to pass option flags for handling scripts.
 
5719
        * src/autofit/afglobal.h: Updated.
 
5720
 
 
5721
        * src/autofit/afcjk.c: Updated.
 
5722
        * src/autofit/aflatin.c: Updated.
 
5723
        (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
 
5724
 
 
5725
        (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
 
5726
        (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
 
5727
        Don't set `edge->dir'
 
5728
        (af_latin_hint_edges): Add more logging.
 
5729
 
 
5730
        * src/autofit/afloader.c: Updated.
 
5731
 
 
5732
2007-06-11  Werner Lemberg  <wl@gnu.org>
 
5733
 
 
5734
        * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
 
5735
 
 
5736
2007-06-10  David Turner  <david@freetype.org>
 
5737
 
 
5738
        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
 
5739
        the TrueType glyph loader.
 
5740
 
 
5741
        * include/freetype/config/ftoption.h: Clarify documentation
 
5742
        regarding unpatented hinting.
 
5743
 
 
5744
 
 
5745
        Add new `FT_Face_CheckTrueTypePatents' API.
 
5746
 
 
5747
        * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
 
5748
        declaration.
 
5749
 
 
5750
        * include/freetype/internal/services/svttglyf.h,
 
5751
        src/base/ftpatent.c: New files.
 
5752
 
 
5753
        * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
 
5754
        New macro.
 
5755
 
 
5756
        * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
 
5757
        `ttpload.h'.
 
5758
        (tt_service_truetype_glyf): New service structure.
 
5759
        (tt_services): Register it.
 
5760
 
 
5761
        * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
 
5762
        `ftpatent.c'.
 
5763
 
 
5764
2007-06-08  Werner Lemberg  <wl@gnu.org>
 
5765
 
 
5766
        * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
 
5767
        Fonts without a cmap must be handled correctly by FreeType (anything
 
5768
        else would be a bug).
 
5769
 
 
5770
 
 
5771
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
 
5772
        [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
 
5773
 
 
5774
2007-06-07  Werner Lemberg  <wl@gnu.org>
 
5775
 
 
5776
        * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
 
5777
        tt_sbit_decoder_load_image): Protect against integer overflows.
 
5778
 
 
5779
 
 
5780
        * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
 
5781
        for `x_control' and `y_control'.
 
5782
 
 
5783
2007-06-06  Werner Lemberg  <wl@gnu.org>
 
5784
 
 
5785
        * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
 
5786
 
 
5787
 
 
5788
        * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
 
5789
        FreeType error.
 
5790
 
 
5791
 
 
5792
        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
 
5793
        `font_count'.
 
5794
 
 
5795
 
 
5796
        * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
 
5797
 
 
5798
 
 
5799
        * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
 
5800
        `FT_Error'.
 
5801
        Check `fd_index'.
 
5802
        (cff_slot_load): Updated.
 
5803
        * src/cff/cffgload.h: Updated.
 
5804
 
 
5805
2007-06-05  Werner Lemberg  <wl@gnu.org>
 
5806
 
 
5807
        * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
 
5808
        (pfr_glyph_load_simple): Convert assertion into normal FreeType
 
5809
        error.
 
5810
        Check `idx'.
 
5811
        (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
 
5812
        Convert assertion into normal FreeType error.
 
5813
 
 
5814
        * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
 
5815
 
 
5816
 
 
5817
        * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
 
5818
 
 
5819
 
 
5820
        * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
 
5821
        in case of parsing error.
 
5822
        (ps_parser_load_field): Updated.
 
5823
 
 
5824
        * src/type1/t1load.c (parse_font_matrix): Updated.
 
5825
 
 
5826
2007-06-04  Werner Lemberg  <wl@gnu.org>
 
5827
 
 
5828
        * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
 
5829
 
 
5830
        * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
 
5831
 
 
5832
2007-06-03  Werner Lemberg  <wl@gnu.org>
 
5833
 
 
5834
        * src/tools/ftrandom/*: Add the `ftrandom' test program written by
 
5835
        George Williams (with some modifications).
 
5836
 
 
5837
2007-06-03  Werner Lemberg  <wl@gnu.org>
 
5838
 
 
5839
        * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
 
5840
        (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
 
5841
        face == NULL.  Suggested by Graham Asher.
 
5842
 
 
5843
2007-06-03  Ismail Dönmez  <ismail@pardus.org.tr>
 
5844
 
 
5845
        * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
 
5846
 
 
5847
2007-06-02  Werner Lemberg  <wl@gnu.org>
 
5848
 
 
5849
        * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
 
5850
        FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
 
5851
 
 
5852
        * src/bdf/bdflib.c (bdf_load_font): Use them.
 
5853
 
 
5854
        * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
 
5855
 
 
5856
2007-06-01  Werner Lemberg  <wl@gnu.org>
 
5857
 
 
5858
        * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
 
5859
        (FTC_CMapCache_Lookup): Remove unused code.
 
5860
 
 
5861
2007-06-01  Sean McBride  <sean@rogue-research.com>
 
5862
 
 
5863
        * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
 
5864
        unused.
 
5865
 
 
5866
2007-06-01  Werner Lemberg  <wl@gnu.org>
 
5867
 
 
5868
        * src/cid/cidparse.c (cid_parser_new): Don't continue second search
 
5869
        pass for `StartData' if an error has occurred.
 
5870
        Exit properly if no `StartData' has been seen at all.
 
5871
 
 
5872
        * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
 
5873
        LONG_MAX to avoid compiler warning.  Suggested by Sean McBride.
 
5874
 
 
5875
2007-05-30  Werner Lemberg  <wl@gnu.org>
 
5876
 
 
5877
        * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
 
5878
        against too small binary data strings.
 
5879
 
 
5880
        * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
 
5881
 
 
5882
2007-05-28  David Turner  <david@freetype.org>
 
5883
 
 
5884
        * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
 
5885
        transformation.  This significantly reduces the loading time of CFF
 
5886
        glyphs.
 
5887
 
 
5888
        * docs/CHANGES: Updated.
 
5889
 
 
5890
        * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
 
5891
        hinting script to CJK, since it works well with more scripts than
 
5892
        latin.  Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
 
5893
        this out!
 
5894
 
 
5895
2007-05-25  Werner Lemberg  <wl@gnu.org>
 
5896
 
 
5897
        * docs/CHANGES: Updated.
 
5898
 
 
5899
2007-05-24  Werner Lemberg  <wl@gnu.org>
 
5900
 
 
5901
        * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
 
5902
        into TT_USE_BYTECODE_INTERPRETER preprocessor block.
 
5903
 
 
5904
2007-05-24  Graham Asher  <graham.asher@btinternet.com>
 
5905
 
 
5906
        * src/truetype/ttobjs.c (tt_size_ready_bytecode)
 
5907
        [!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.
 
5908
 
 
5909
2007-05-22  David Turner  <david@freetype.org>
 
5910
 
 
5911
        * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
 
5912
        avoid crashes in case the bytecode interpreter is not used.
 
5913
 
 
5914
 
 
5915
        Avoid heap blowup with very large .Z font files.  This fixes
 
5916
        Savannah bug #19910.
 
5917
 
 
5918
        * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
 
5919
        `in_limit', `pad', `pad_bits', and `in_buff' members.
 
5920
        Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
 
5921
        `buf_total' members.
 
5922
 
 
5923
        * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten.  It now takes
 
5924
        only one argument.
 
5925
        (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
 
5926
 
 
5927
2007-05-20  Ismail Dönmez  <ismail@pardus.org.tr>
 
5928
 
 
5929
        * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
 
5930
        (ps_dimension_set_mask_bits): Remove `const'.
 
5931
 
 
5932
2007-05-19  Werner Lemberg  <wl@gnu.org>
 
5933
 
 
5934
        * src/sfnt/ttmtx.c (tt_face_get_metrics)
 
5935
        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
 
5936
 
 
5937
2007-05-19  Derek Clegg  <dclegg@apple.com>
 
5938
 
 
5939
        Savannah patch #5929.
 
5940
 
 
5941
        * include/freetype/tttables.h, src/base/ftobjcs.c
 
5942
        (FT_Get_CMap_Format): New function.
 
5943
 
 
5944
        * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
 
5945
        `format' member.
 
5946
        * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
 
5947
        cmap_info->format.
 
5948
 
 
5949
2007-05-19  Werner Lemberg  <wl@gnu.org>
 
5950
 
 
5951
        * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
 
5952
        before handling subglyphs so that it can be reinitialized each time.
 
5953
        This fixes Savannah bug #19859.
 
5954
 
 
5955
2007-05-16  Werner Lemberg  <wl@gnu.org>
 
5956
 
 
5957
        * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
 
5958
        src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
 
5959
        (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
 
5960
        src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
 
5961
        tt_face_get_metrics): Fix type-punning issues.
 
5962
 
 
5963
2007-05-15  David Turner  <david@freetype.org>
 
5964
 
 
5965
        * include/freetype/config/ftstdlib.h,
 
5966
        include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
 
5967
        ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
 
5968
        instead on relying on the locale-dependent functions provided by
 
5969
        <ctypes.h>.
 
5970
 
 
5971
2007-05-15  Graham Asher  <graham.asher@btinternet.com>
 
5972
 
 
5973
        * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
 
5974
        variable.
 
5975
        * src/autofit/afloader.c (af_loader_load_g): Ditto.
 
5976
 
 
5977
        * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
 
5978
        (open_face_from_buffer): Initialize `stream'.
 
5979
        (FT_Request_Metrics): Remove unused variable.
 
5980
        Remove redundant `break' statements.
 
5981
        (FT_Get_Track_Kerning): Remove unused variable.
 
5982
 
 
5983
        * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
 
5984
        afm_parse_kern_data): Remove redundant
 
5985
        `break' statements.
 
5986
        (afm_parser_parse): Ditto.
 
5987
        Don't use uninitialized variables.
 
5988
 
 
5989
        * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
 
5990
        Use `|' operator instead of `^' to set it.
 
5991
        Update all users.
 
5992
 
 
5993
        * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
 
5994
        * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
 
5995
 
 
5996
        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
 
5997
        comparison.
 
5998
        (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
 
5999
        (TT_Load_Glyph): Remove unused variable.
 
6000
 
 
6001
2007-05-13  Derek Clegg  <dclegg@apple.com>
 
6002
 
 
6003
        * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
 
6004
        if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.
 
6005
 
 
6006
2007-05-11  David Turner  <david@freetype.org>
 
6007
 
 
6008
        * src/cache/ftbasic.c, include/freetype/ftcache.h
 
6009
        (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
 
6010
        functions that allow us to look up glyphs using an FTC_Scaler object
 
6011
        to specify the size, making it possible to use fractional pixel
 
6012
        sizes.
 
6013
 
 
6014
        * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
 
6015
        `size->cvt_ready'.  Reported by Boris Letocha.
 
6016
 
 
6017
2007-05-09  Graham Asher  <graham.asher@btinternet.com>
 
6018
 
 
6019
        * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
 
6020
        (af_latin_metrics_scale_dim): Fix compiler warnings.
 
6021
 
 
6022
2007-05-06  Werner Lemberg  <wl@gnu.org>
 
6023
 
 
6024
        * builds/win32/visualce/freetype.sln: Removed, as requested by
 
6025
        Vincent.
 
6026
 
 
6027
2007-05-04  Vincent RICHOMME  <richom.v@free.fr>
 
6028
 
 
6029
        * builds/win32/visualce/*: Add Visual C++ project files for Pocket
 
6030
        PC targets.
 
6031
 
 
6032
        * docs/CHANGES: Document them.
 
6033
 
 
6034
2007-05-04  <harry@kdevelop.org>
 
6035
 
 
6036
        * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
 
6037
        mmap (which might happen on some RTOS).  From Savannah patch #5909.
 
6038
 
 
6039
2007-05-03  Werner Lemberg  <wl@gnu.org>
 
6040
 
 
6041
        * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
 
6042
        * include/freetype/freetype.h (FT_Set_Char_Size): Update
 
6043
        documentation.
 
6044
 
 
6045
2007-04-28  Victor Stinner  <victor.stinner@inl.fr>
 
6046
 
 
6047
        * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
 
6048
        `cmap'.
 
6049
 
 
6050
2007-04-27  Werner Lemberg  <wl@gnu.org>
 
6051
 
 
6052
        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
 
6053
        number of points in contours.  Problem reported by Victor Stinner
 
6054
        <victor.stinner@haypocalc.com>.
 
6055
        (TT_Process_Simple_Glyph): Synchronize variable types.
 
6056
 
 
6057
2007-04-26  Werner Lemberg  <wl@gnu.org>
 
6058
 
 
6059
        * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
 
6060
        zero in case of error.  This fixes Savannah bug #19689.
 
6061
 
 
6062
2007-04-25  Boris Letocha  <b.letocha@cz.gmc.net>
 
6063
 
 
6064
        * src/truetype/ttobjs.c: Fix a typo that created a speed regression
 
6065
        in the TrueType bytecode loader.
 
6066
 
 
6067
2007-04-10  Martin Horak  <horakm@centrum.cz>
 
6068
 
 
6069
        * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
 
6070
        Ignore `hhea' table.  This fixes Savannah bug #19261.
 
6071
 
 
6072
2007-04-09  Werner Lemberg  <wl@gnu.org>
 
6073
 
 
6074
 
 
6075
        * Version 2.3.4 released.
 
6076
        =========================
 
6077
 
 
6078
 
 
6079
        Tag sources with `VER-2-3-4'.
 
6080
 
 
6081
        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 
6082
        version number to 2.3.4.
 
6083
 
 
6084
        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
 
6085
        builds/win32/visualc/freetype.dsp,
 
6086
        builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
 
6087
 
 
6088
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
 
6089
 
 
6090
        * builds/unix/configure.raw (version_info): Set to 9:15:3.
 
6091
 
 
6092
2007-04-09  Martin Horak  <horakm@centrum.cz>
 
6093
 
 
6094
        * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
 
6095
        memory stream to avoid a crash with the incremental memory
 
6096
        interface (Savannah bug #19260).
 
6097
 
 
6098
2007-04-06  David Turner  <david@freetype.org>
 
6099
 
 
6100
        * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
 
6101
        (Savannah bug #19536).
 
6102
 
 
6103
2007-04-04  Werner Lemberg  <wl@gnu.org>
 
6104
 
 
6105
 
 
6106
        * Version 2.3.3 released.
 
6107
        =========================
 
6108
 
 
6109
 
 
6110
        Tag sources with `VER-2-3-3'.
 
6111
 
 
6112
        * docs/CHANGES: Mention CVE-2007-1351.
 
6113
 
 
6114
2007-04-03  David Turner  <david@freetype.org>
 
6115
 
 
6116
        * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
 
6117
        if one of the resolution values is 0, treat it as if it were the
 
6118
        same as the other value.
 
6119
 
 
6120
2007-04-02  David Turner  <david@freetype.org>
 
6121
 
 
6122
        Add special code to detect `extra-light' fonts and do not snap their
 
6123
        stem widths too much to avoid bizarre hinting effects.
 
6124
 
 
6125
        * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
 
6126
        `extra_light' members.
 
6127
 
 
6128
        * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
 
6129
        them.
 
6130
        (af_latin_metrics_scale_dim): Set `extra_light'.
 
6131
        (af_latin_compute_stem_width): Use `extra_light'.
 
6132
 
 
6133
2007-03-28  David Turner  <david@freetype.org>
 
6134
 
 
6135
        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
 
6136
        padding.
 
6137
 
 
6138
2007-03-28  Werner Lemberg  <wl@gnu.org>
 
6139
 
 
6140
        * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
 
6141
        gracefully.
 
6142
        (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
 
6143
        issue an error for longer names.  This fixes CVE-2007-1351.
 
6144
        (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
 
6145
        number of code points in Unicode.
 
6146
 
 
6147
        * builds/win32/visualc/index.html,
 
6148
        builds/win32/visualc/freetype.dsp,
 
6149
        builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
 
6150
        s/232/233/.
 
6151
 
 
6152
        * docs/CHANGES: Mention ftdiff.
 
6153
 
 
6154
2007-03-26  David Turner  <david@freetype.org>
 
6155
 
 
6156
        * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
 
6157
        corresponding code.
 
6158
        (Ins_MD): Last regression fix.
 
6159
 
 
6160
        * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
 
6161
        computations in order to ignore single-point contours.  These are
 
6162
        never rasterized and correspond in certain fonts to mark-attach
 
6163
        points that are very far from the glyph's real outline, ruining the
 
6164
        computation.
 
6165
 
 
6166
        * src/autofit/afloader.c (af_loader_load_g): In the case of
 
6167
        monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
 
6168
        Otherwise code that uses them will most certainly ruin the fixed
 
6169
        advance property.
 
6170
 
 
6171
        * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
 
6172
        documentation and bump version number to 2.3.3.
 
6173
 
 
6174
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
 
6175
 
 
6176
        * builds/unix/configure.raw (version_info): Set to 9:14:3.
 
6177
 
 
6178
2007-03-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6179
 
 
6180
        * builds/unix/ftconfig.in: Disable Carbon framework dependency on
 
6181
        64bit ABI on Mac OS X 10.4.x (ppc & i386).  Found by Sean McBride.
 
6182
        * builds/vms/ftconfig.h: Ditto.
 
6183
        * include/freetype/config/ftconfig.h: Ditto.
 
6184
 
 
6185
2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6186
 
 
6187
        * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
 
6188
        32bit unsigned long overflow by 64bit filesize on LP64 platform, as
 
6189
        proposed by Sean McBride:
 
6190
        http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
 
6191
 
 
6192
2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6193
 
 
6194
        * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
 
6195
        setjmp, proposed by Sean McBride:
 
6196
        http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
 
6197
 
 
6198
2007-03-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6199
 
 
6200
        * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
 
6201
        conftest.c, to avoid unexpected shell evaluation.  Possibly it is a
 
6202
        bug or undocumented behaviour of autoconf.
 
6203
 
 
6204
2007-03-18  David Turner   <david@freetype.org>
 
6205
 
 
6206
        * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
 
6207
        fix; testing still needed.
 
6208
 
 
6209
        * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
 
6210
 
 
6211
2007-03-17  David Turner   <david@freetype.org>
 
6212
 
 
6213
        * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
 
6214
        (undocumented) twilight zone special case.
 
6215
 
 
6216
2007-03-09  Werner Lemberg  <wl@gnu.org>
 
6217
 
 
6218
 
 
6219
        * Version 2.3.2 released.
 
6220
        =========================
 
6221
 
 
6222
 
 
6223
        Tag sources with `VER-2-3-2'.
 
6224
 
 
6225
        * builds/win32/visualc/index.html,
 
6226
        builds/win32/visualc/freetype.dsp,
 
6227
        builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
 
6228
        s/231/232/.
 
6229
 
 
6230
2007-03-08  David Turner  <david@freetype.org>
 
6231
 
 
6232
        * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
 
6233
 
 
6234
        * builds/unix/configure.raw (version_info): Set to 9:13:3.
 
6235
 
 
6236
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
 
6237
 
 
6238
        * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
 
6239
 
 
6240
        * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
 
6241
        function to work properly, over-writing user-provided buffers in
 
6242
        some cases.  Reported by James Cloos <cloos@jhcloos.com>.
 
6243
 
 
6244
 
 
6245
2007-03-05  Werner Lemberg  <wl@gnu.org>
 
6246
 
 
6247
        * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
 
6248
        macro for `strstr'.
 
6249
 
 
6250
        * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
 
6251
        `trick_names', as suggested by Ivan Nincic.
 
6252
 
 
6253
2007-03-05  David Turner  <david@freetype.org>
 
6254
 
 
6255
        * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
 
6256
        case FT_Init_FreeType fails for some reason.  Problem reported by
 
6257
        Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
 
6258
 
 
6259
        * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
 
6260
        and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
 
6261
        `TT_Size.root.metrics'.  Problem reported by Daniel Glöckner
 
6262
        <daniel-gl@gmx.net>.
 
6263
 
 
6264
        * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
 
6265
        signed values, not unsigned ones.  Problem reported by Johannes
 
6266
        Walther <joh_walt@yahoo.de>.
 
6267
 
 
6268
2007-02-21  David Turner  <david@freetype.org>
 
6269
 
 
6270
        * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
 
6271
        of small and ghost stems in the Postscript interpreter.
 
6272
 
 
6273
2007-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6274
 
 
6275
        * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
 
6276
        leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
 
6277
        * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
 
6278
 
 
6279
2007-02-16  Werner Lemberg  <wl@gnu.org>
 
6280
 
 
6281
        * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
 
6282
        * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
 
6283
 
 
6284
2007-02-14  David Turner  <david@freetype.org>
 
6285
 
 
6286
        It seems that the following changes fix most of the known
 
6287
        interpreter problems with my fonts, but more testing is needed,
 
6288
        though.
 
6289
 
 
6290
        * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
 
6291
        (TT_MulFix14): Rewrite.
 
6292
        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
 
6293
        (Ins_MIRP): Ditto.
 
6294
 
 
6295
2007-02-12  Werner Lemberg  <wl@gnu.org>
 
6296
 
 
6297
        * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
 
6298
        warnings.
 
6299
 
 
6300
        * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
 
6301
        (bdf_interpret_style): Ditto.
 
6302
 
 
6303
2007-02-12  David Turner  <david@freetype.org>
 
6304
 
 
6305
        Simplify projection and dual-projection code interface.
 
6306
 
 
6307
        * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
 
6308
        FT_Vector' as argument type.
 
6309
        * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
 
6310
        Updated.
 
6311
        (CUR_fast_project, CUR_fast_dualproj): New macros.
 
6312
        (Project, Dual_Project, Project_x, Project_y): Updated.
 
6313
        (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
 
6314
        macros.
 
6315
 
 
6316
 
 
6317
        * src/autofit/afloader.c (af_loader_load_g): Improve spacing
 
6318
        adjustments for the non-light auto-hinted modes.  Gets rid of
 
6319
        `inter-letter spacing is too wide' problems.
 
6320
 
 
6321
        * src/autofit/aflatin.c (af_latin_hints_link_segments,
 
6322
        af_latin_hints_compute_edges): Slight optimization of the segment
 
6323
        linker and better handling of serif segments to get rid of broken
 
6324
        `9' in Arial at 9pt (96dpi).
 
6325
 
 
6326
 
 
6327
        Introduce new string functions and the corresponding macros to get
 
6328
        rid of various uses of strcpy and other `evil' functions, as well as
 
6329
        to simplify a few things.
 
6330
 
 
6331
        * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
 
6332
        ft_mem_strcpyn): New declarations.
 
6333
        (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
 
6334
        macros.
 
6335
        * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
 
6336
        functions.
 
6337
 
 
6338
        * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
 
6339
        src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
 
6340
        (pcf_get_properties, pcf_interpret_style, pcf_load_font),
 
6341
        src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
 
6342
        (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
 
6343
        src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
 
6344
        (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
 
6345
        t42_get_name_index): Use new functions and simplify code.
 
6346
 
 
6347
        * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
 
6348
 
 
6349
2007-02-11  Werner Lemberg  <wl@gnu.org>
 
6350
 
 
6351
        * src/autofit/afloader.c (af_loader_load_g): Don't change width for
 
6352
        non-spacing glyphs.
 
6353
 
 
6354
2007-02-07  Tom Parker  <palfrey@tevp.net>
 
6355
 
 
6356
        * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
 
6357
        pointer.
 
6358
 
 
6359
2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6360
 
 
6361
        * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
 
6362
        Introduce __attribute((deprecated))__ to warn functions
 
6363
        which use non-ANSI data types in its interfaces.
 
6364
        (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
 
6365
        (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
 
6366
        (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
 
6367
        (FT_New_Face_From_FSRef): Deprecated, using FSRef.
 
6368
 
 
6369
        * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
 
6370
        to avoid warning in building FreeType.
 
6371
        * builds/mac/ftmac.c: Ditto.
 
6372
 
 
6373
2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6374
 
 
6375
        * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
 
6376
        `--with-fsspec' etc.  Replace #include "ftmac.c" with
 
6377
        #include <ftmac.c>.
 
6378
 
 
6379
2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6380
 
 
6381
        * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
 
6382
        Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
 
6383
        * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
 
6384
        (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
 
6385
        FT_GetFilePath_From_Mac_ATS_Name.
 
6386
        * builds/mac/ftmac.c: Ditto.
 
6387
 
 
6388
2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6389
 
 
6390
        * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
 
6391
        FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
 
6392
        for passing to FT_New_Face_From_FSSpec.
 
6393
 
 
6394
2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6395
 
 
6396
        * builds/unix/configure.raw: Check whether Mac OS X system headers
 
6397
        can be built under ANSI C mode.
 
6398
 
 
6399
        * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
 
6400
        compatible to ANSI C in case system headers are ANSI C incompatible.
 
6401
        * builds/mac/ftmac.c (OS_INLINE): Ditto.
 
6402
 
 
6403
2007-02-01  Werner Lemberg  <wl@gnu.org>
 
6404
 
 
6405
        * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
 
6406
        Explain why applications shouldn't use it.  Found by Alexei.
 
6407
 
 
6408
2007-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
6409
 
 
6410
        * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
 
6411
        message.
 
6412
 
 
6413
        * src/gxvalid/gxvmort1.c
 
6414
        (gxv_mort_subtable_type1_substTable_validate): Fix debugging
 
6415
        message.
 
6416
 
 
6417
2007-01-31  Werner Lemberg  <wl@gnu.org>
 
6418
 
 
6419
 
 
6420
        * Version 2.3.1 released.
 
6421
        =========================
 
6422
 
 
6423
 
 
6424
        Tag sources with `VER-2-3-1-FINAL'.
 
6425
 
 
6426
        * builds/win32/visualc/freetype.dsp,
 
6427
        builds/win32/visualc/freetype.vcproj: s/230/231/.
 
6428
        * builds/win32/visualc/index.html: s/221/231/.
 
6429
 
 
6430
        * vms_make.com: Add `ftgasp'.
 
6431
 
 
6432
2007-01-30  David Turner  <david@freetype.org>
 
6433
 
 
6434
        Tag sources with VER-2-3-1 to prepare release.
 
6435
 
 
6436
        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
 
6437
 
 
6438
        * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
 
6439
        s/2.3.0/2.3.1/.
 
6440
 
 
6441
        * builds/unix/configure.raw (version_info): Set to 9:12:3.
 
6442
 
 
6443
 
 
6444
        * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
 
6445
        (af_loader_load_g): Disable the warper (i.e., the light hinting
 
6446
        improvements) to make a 2.3.1 bugfix release before introducing a
 
6447
        new feature.  This should give us more time to tune and improve the
 
6448
        warper for the next release.
 
6449
 
 
6450
        * docs/CHANGES: Update accordingly.
 
6451
 
 
6452
2007-01-25  David Turner  <david@freetype.org>
 
6453
 
 
6454
        For light auto-hinting, improve glyph advance widths and resurrect
 
6455
        normal/full hinting to its normal quality.
 
6456
 
 
6457
        * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
 
6458
        and `xmax_delta'.
 
6459
        * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
 
6460
        and `xmax_delta'.
 
6461
 
 
6462
        * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
 
6463
        preprocessor conditional with if-clause, handling both light and
 
6464
        normal mode.
 
6465
 
 
6466
        * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
 
6467
        (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
 
6468
 
 
6469
2007-01-25  Werner Lemberg  <wl@gnu.org>
 
6470
 
 
6471
        * docs/release: Updated -- Savannah uses a new uploading scheme.
 
6472
 
 
6473
2007-01-25  David Turner  <david@freetype.org>
 
6474
 
 
6475
        * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
 
6476
 
 
6477
        * src/cff/cffgload.c (cff_decoder_parse_charstrings)
 
6478
        <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
 
6479
        functions.
 
6480
 
 
6481
        * docs/CHANGES: Document light auto-hinting improvement.
 
6482
 
 
6483
2007-01-25  Werner Lemberg  <wl@gnu.org>
 
6484
 
 
6485
        * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
 
6486
        correctly in a sanity check.  Since this function is only used to
 
6487
        load local and global functions, any charstring that called the last
 
6488
        local/global function would fail otherwise.  This fixes Savannah bug
 
6489
        #18867.
 
6490
 
 
6491
        * docs/CHANGES: Document it.
 
6492
 
 
6493
2007-01-23  David Turner  <david@freetype.org>
 
6494
 
 
6495
        * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
 
6496
        prevented compilation when disabling both the unpatented and the
 
6497
        bytecode interpreter in the TrueType font driver.
 
6498
 
 
6499
 
 
6500
        Fix and enable the warper to improve `light' hinting mode.  This is
 
6501
        not necessarily a final version, but it seems to work well.
 
6502
 
 
6503
        * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
 
6504
        Disable code.
 
6505
        (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
 
6506
        * src/autofit/aftypes.h: Activate AF_USE_WARPER.
 
6507
 
 
6508
        * src/autofit/afwarp.c (AF_WarpScore): Tune table.
 
6509
        (af_warper_compute_line_best): Fix array size of `scores'.
 
6510
        (af_warper_compute): Better handling of border cases.
 
6511
        * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
 
6512
        and `X2'.
 
6513
 
 
6514
2007-01-21  Werner Lemberg  <wl@gnu.org>
 
6515
 
 
6516
        * ChangeLog: Split off older entries into...
 
6517
        * ChangeLog.22: This new file.
 
6518
 
 
6519
2007-01-21  Werner Lemberg  <wl@gnu.org>
 
6520
 
 
6521
        * docs/CHANGES: Document SHZ fix.
 
6522
 
 
6523
2007-01-21  George Williams  <gww@silcom.com>
 
6524
 
 
6525
        * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
 
6526
        points.
 
6527
 
 
6528
2007-01-21  Werner Lemberg  <wl@gnu.org>
 
6529
 
 
6530
        * src/sfnt/ttmtx.c (tt_face_get_metrics)
 
6531
        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
 
6532
 
 
6533
2007-01-17  Werner Lemberg  <wl@gnu.org>
 
6534
 
 
6535
 
 
6536
        * Version 2.3.0 released.
 
6537
        =========================
 
6538
 
 
6539
 
 
6540
        Tag sources with `VER-2-3-0-FINAL'.
 
6541
 
 
6542
2007-01-17  Werner Lemberg  <wl@gnu.org>
 
6543
 
 
6544
        * docs/release: Updated.
 
6545
 
 
6546
2007-01-16  David Turner  <david@freetype.org>
 
6547
 
 
6548
        * src/autofit/aflatin.c (af_latin_hints_compute_segments),
 
6549
        src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
 
6550
        (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
 
6551
        warnings.
 
6552
 
 
6553
2007-01-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
 
6554
 
 
6555
        * builds/amiga/makefile, builds/amiga/makefile.os4,
 
6556
        builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
 
6557
 
 
6558
        * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
 
6559
 
 
6560
2007-01-14  Detlef Würkner  <TetiSoft@apg.lahn.de>
 
6561
 
 
6562
        Fix various compiler warnings.
 
6563
 
 
6564
        * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
 
6565
        src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
 
6566
        s/index/strike_index/.
 
6567
        * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
 
6568
 
 
6569
        * src/gxvalid/gxvmorx5.c
 
6570
        (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
 
6571
 
 
6572
        * src/truetype/ttinterp.c (Compute_Point_Displacement),
 
6573
        src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
 
6574
        uninitialized variables.
 
6575
 
 
6576
2007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6577
 
 
6578
        * docs/CHANGES, docs/INSTALL.MAC: Improvements.
 
6579
 
 
6580
2007-01-13  Werner Lemberg  <wl@gnu.org>
 
6581
 
 
6582
        * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
 
6583
        versions up to 0x3FF without complaining.
 
6584
 
 
6585
2007-01-13  Derek Clegg  <dclegg@apple.com>
 
6586
 
 
6587
        Add FT_Get_PS_Font_Info interface to CFF driver.
 
6588
 
 
6589
        * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
 
6590
        (CFF_FontRec): Add `font_info' field.
 
6591
 
 
6592
        * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
 
6593
        (cff_font_done): Free font->font_info if necessary.
 
6594
 
 
6595
        * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
 
6596
        (cff_service_ps_info): Register cff_ps_get_font_info.
 
6597
 
 
6598
2007-01-13  Werner Lemberg  <wl@gnu.org>
 
6599
 
 
6600
        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
 
6601
        with C++ compiler.
 
6602
 
 
6603
        * src/autofit/afhints.c (af_glyph_hints_dump_segments,
 
6604
        af_glyph_hints_dump_edges): Ditto.
 
6605
 
 
6606
        * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
 
6607
        `modules.cfg').
 
6608
 
 
6609
        * src/sfnt/ttsbit0.h: Remove.
 
6610
 
 
6611
        * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
 
6612
 
 
6613
2007-01-12  David Turner  <david@freetype.org>
 
6614
 
 
6615
        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
 
6616
        bug in the bitmap emboldener if the pitch of the source bitmap is
 
6617
        much larger than its width.
 
6618
 
 
6619
        * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
 
6620
        compilation warning.
 
6621
 
 
6622
2007-01-12  Werner Lemberg  <wl@gnu.org>
 
6623
 
 
6624
        * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
 
6625
        `automake' CVS module from sources.redhat.com.
 
6626
 
 
6627
2007-01-11  Werner Lemberg  <wl@gnu.org>
 
6628
 
 
6629
        * src/type1/t1load.c (is_space): Removed.
 
6630
        (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
 
6631
        (parse_charstrings): Use IS_PS_TOKEN.
 
6632
 
 
6633
 
 
6634
        * autogen.sh: Avoid bash specific syntax.
 
6635
 
 
6636
2007-01-11  David Turner  <david@freetype.org>
 
6637
 
 
6638
        * docs/CHANGES: Small update.
 
6639
 
 
6640
        * builds/unix/configure.raw (version_info): Set to 9:11:3.
 
6641
 
 
6642
        * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
 
6643
        crash with some Mac OS X .dfont files.  Submitted by Masatake
 
6644
        Yamato.
 
6645
 
 
6646
        * autogen.sh: Small fix to get it working on Mac OS X properly:
 
6647
        The issue is that GNU libtool is called `glibtool' on this platform,
 
6648
        and we must call `glibtoolize', since `libtoolize' doesn't exist.
 
6649
 
 
6650
2007-01-10  David Turner  <david@freetype.org>
 
6651
 
 
6652
        * all-sources: Tag all sources with VER-2-3-0-RC1 and
 
6653
        VER-2-3-0.
 
6654
 
 
6655
        * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
 
6656
        builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
 
6657
        version number to 2.3.0.
 
6658
 
 
6659
        * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
 
6660
        (FREETYPE_PATCH): Set to 0.
 
6661
 
 
6662
        * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
 
6663
        include/freetype/ftlcdfil.h: Update reference documentation with
 
6664
        GASP support and LCD filtering sections.
 
6665
 
 
6666
        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
 
6667
        which created an endless loop with some malformed font files.
 
6668
 
 
6669
2007-01-10  Derek Clegg  <dclegg@apple.com>
 
6670
 
 
6671
        * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
 
6672
        values.
 
6673
 
 
6674
2007-01-08  David Turner  <david@freetype.org>
 
6675
 
 
6676
        * docs/CHANGES: Updated.
 
6677
 
 
6678
        * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
 
6679
        a new API `FT_Get_Gasp' to return entries of the `gasp' table
 
6680
        corresponding to a given character pixel size.
 
6681
 
 
6682
        * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
 
6683
        `gasp' table, in order to avoid potential problems with later
 
6684
        versions.
 
6685
 
 
6686
        * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
 
6687
        <freetype/ftgasp.h>.
 
6688
 
 
6689
        * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
 
6690
        modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
 
6691
        builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
 
6692
        default build.
 
6693
 
 
6694
2007-01-07  Werner Lemberg  <wl@gnu.org>
 
6695
 
 
6696
        * src/cid/cidparse.c (cid_parser_new): Improve error message for
 
6697
        Type 11 fonts.
 
6698
        Scan for `/sfnts' token.
 
6699
 
 
6700
2007-01-07  Werner Lemberg  <wl@gnu.org>
 
6701
 
 
6702
        * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
 
6703
 
 
6704
2007-01-06  Werner Lemberg  <wl@gnu.org>
 
6705
 
 
6706
        * src/cff/cffload.c (cff_index_init): Remove unused variable.
 
6707
        (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
 
6708
 
 
6709
2007-01-04  David Turner  <david@freetype.org>
 
6710
 
 
6711
        * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
 
6712
        correctly.  This fixes Savannah bug #17876.
 
6713
 
 
6714
 
 
6715
        Do not allocate interpreter-specific tables in memory if we are not
 
6716
        going to load glyphs with the bytecode interpreter anyway.
 
6717
 
 
6718
        * src/truetype/ttgload.c (tt_loader_init): Load execution context
 
6719
        only if glyph is hinted.
 
6720
        Updated.
 
6721
        * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
 
6722
        and `cvs_ready'.
 
6723
        Add `tt_size_ready_bytecode' declaration.
 
6724
        * src/truetype/ttobjs.c (tt_size_done_bytecode,
 
6725
        tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
 
6726
        (tt_size_init): Move most code into `tt_size_init_bytecode'.
 
6727
        (tt_size_done): Move most code into `tt_size_done_bytecode'.
 
6728
        (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
 
6729
 
 
6730
 
 
6731
        Don't extract the metrics table from the SFNT font file.  Instead,
 
6732
        reparse it on each glyph load.  The runtime difference is not
 
6733
        noticeable, and it can save a lot of heap memory when memory-mapped
 
6734
        files are not used.
 
6735
 
 
6736
        * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
 
6737
        `horz_metrics_offset' and `vert_metrics_ofset'.
 
6738
        * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
 
6739
        Updated.
 
6740
 
 
6741
 
 
6742
        * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
 
6743
 
 
6744
 
 
6745
        Do not load the CFF index offsets into memory, since this wastes a
 
6746
        *lot* of heap memory with large Asian CFF fonts.  There is no
 
6747
        significant performance loss.
 
6748
 
 
6749
        * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
 
6750
        * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
 
6751
        `data_size'.
 
6752
        (CFF_CharsetRec): Add field `num_glyphs'.
 
6753
 
 
6754
        * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
 
6755
        cff_charset_cid_to_gindex): New functions.
 
6756
        (cff_new_index): Renamed to...
 
6757
        (cff_index_init): This.  Update all callers.
 
6758
        Updated -- some code has been moved to `cff_index_load_offsets'.
 
6759
        (cff_done_index): Renamed to...
 
6760
        (cff_index_done): This.  Update all callers.
 
6761
        (cff_index_get_pointers, cff_index_access_element): Updated to use
 
6762
        stream offsets.
 
6763
        (cff_charset_compute_cids): Set `num_glyphs' field.
 
6764
        (cff_encoding_load): Updated.
 
6765
 
 
6766
        * src/cff/cffgload.c (cff_slot_load): Updated.
 
6767
 
 
6768
2007-01-04  David Turner  <david@freetype.org>
 
6769
 
 
6770
        * docs/INSTALL.UNIX: Simplify some parts, add reference to
 
6771
        autogen.sh and pointer to README.CVS.
 
6772
 
 
6773
        * README.CVS: Add common problem description and solution
 
6774
        when running autogen.sh.
 
6775
 
 
6776
        * docs/INSTALL: Add reference to MacOS X.
 
6777
 
 
6778
        * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
 
6779
 
 
6780
        * docs/TODO: Remove obsolete items.
 
6781
 
 
6782
        * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
 
6783
        (TWorker): This.
 
6784
        Remove `count_table' and `memory'.
 
6785
        Make `grays' a pointer.
 
6786
        (TRaster): New structure.
 
6787
        (count_table): New static array.
 
6788
        (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
 
6789
        Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
 
6790
        ft_black_set_mode, ft_black_render): Updated.
 
6791
        (ft_black_init): Don't initialize `count_table'.
 
6792
        (ft_black_reset): Use the render pool.  This saves about 6KB of
 
6793
        heap space for each FT_Library instance.
 
6794
 
 
6795
        * src/smooth/ftgrays.c (TRaster): Replaced with...
 
6796
        (TWorker): This.
 
6797
        Remove `memory'.
 
6798
        (TRaster): New structure.
 
6799
 
 
6800
        (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
 
6801
        gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
 
6802
        gray_render_span, gray_raster_render): Updated.
 
6803
        (gray_raster_reset): Use the render pool.  This saves about 6KB of
 
6804
        heap space for each FT_Library instance.
 
6805
 
 
6806
        * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
 
6807
        src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
 
6808
        src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
 
6809
        FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
 
6810
        the optimization is no longer experimental.
 
6811
 
 
6812
        * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
 
6813
        Remove a typo that results in no hinting and a memory leak with some
 
6814
        large Asian CFF fonts.
 
6815
 
 
6816
        * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
 
6817
        which happens when FT_Done_Library is called with still opened
 
6818
        CFF_Faces in it.  We need to close all faces before destroying the
 
6819
        modules, or else some bad things (memory leaks) may happen.
 
6820
 
 
6821
2007-01-02  Werner Lemberg  <wl@gnu.org>
 
6822
 
 
6823
        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
 
6824
        Remove compiler warning.
 
6825
 
 
6826
2007-01-02  David Turner  <david@freetype.org>
 
6827
 
 
6828
        * src/sfnt/sfobjs.c: Add documentation comment.
 
6829
 
 
6830
2006-12-31  Masatake YAMATO  <jet@gyve.org>
 
6831
 
 
6832
        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
 
6833
        function.
 
6834
        Check uniqueness of the gid pairs.
 
6835
        (gxv_kern_subtable_fmt0_validate): Move some code to
 
6836
        `gxv_kern_subtable_fmt0_pairs_validate'.
 
6837
 
 
6838
2006-12-22  David Turner  <david@freetype.org>
 
6839
 
 
6840
        * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
 
6841
        warnings.
 
6842
 
 
6843
        * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
 
6844
        to avoid deprecation warnings with Visual C++ 8.
 
6845
 
 
6846
2006-12-16  Anders Kaseorg  <anders@kaseorg.com>
 
6847
 
 
6848
        * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
 
6849
        [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
 
6850
 
 
6851
2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6852
 
 
6853
        * include/freetype/internal/services/svotval.h: Add `volatile' to
 
6854
        sync with the modification by Jens Claudius on 2006-08-22; cf.
 
6855
          http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
 
6856
 
 
6857
2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6858
 
 
6859
        * src/base/ftmac.c: Specialized for Mac OS X only.
 
6860
        * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
 
6861
        * builds/unix/configure.raw: Ditto.  When explicit switches for
 
6862
        FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
 
6863
        builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
 
6864
 
 
6865
2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6866
 
 
6867
        * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
 
6868
        * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
 
6869
        instead of src/base/ftmac.c
 
6870
        * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
 
6871
        * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
 
6872
        * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
 
6873
        that cannot be built at present.
 
6874
 
 
6875
2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
6876
 
 
6877
        * src/base/ftobjs.c: Improvement of resource fork handler for
 
6878
        POSIX, cf.
 
6879
          http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
 
6880
        (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
 
6881
        format or .dfont, to simulate the face index number counted by ftmac.c.
 
6882
        (IsMacResource): Return the number of scalable faces correctly.
 
6883
 
 
6884
2006-12-10  Werner Lemberg  <wl@gnu.org>
 
6885
 
 
6886
        * builds/toplevel.mk (version): Protect against `distclean' target.
 
6887
 
 
6888
2006-12-09  Werner Lemberg  <wl@gnu.org>
 
6889
 
 
6890
        * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
 
6891
        or `type'.
 
6892
 
 
6893
        * builds/freetype.mk (version): Extracted from freetype.h, using
 
6894
        GNU make's built-in string functions.
 
6895
        (refdoc): Use $(version) instead of static version number.
 
6896
 
 
6897
2006-12-08  Werner Lemberg  <wl@gnu.org>
 
6898
 
 
6899
        * builds/toplevel.mk (dist): Extract version number from freetype.h.
 
6900
 
 
6901
2006-12-08  Vladimir Volovich  <vvv@vsu.ru>
 
6902
 
 
6903
        * src/tools/apinames.c (State): Remove final comma in structure --
 
6904
        xlc v5 under AIX 4.3 doesn't like this.
 
6905
 
 
6906
2006-12-07  David Turner  <david@freetype.org>
 
6907
 
 
6908
        * src/autofit/afloader.c (af_loader_load_g): Small adjustment
 
6909
        to the spacing of auto-fitted glyphs.  This only impacts rare
 
6910
        cases (e.g., Arial Bold at rather small character sizes).
 
6911
 
 
6912
2006-12-03  Werner Lemberg  <wl@gnu.org>
 
6913
 
 
6914
        * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
 
6915
 
 
6916
2006-12-01  Werner Lemberg  <wl@gnu.org>
 
6917
 
 
6918
        * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
 
6919
        encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
 
6920
        (tt_name_entry_ascii_from_ucs4): Removed.
 
6921
 
 
6922
 
 
6923
        * include/freetype/ftxf86.h: Fix and extend comment so that it
 
6924
        appears in the documentation.
 
6925
 
 
6926
        * include/freetype/ftchapters.h: Add `font_format' section.
 
6927
 
 
6928
 
 
6929
        * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
 
6930
        to TOC in index page.
 
6931
 
 
6932
2006-11-28  David Turner  <david@freetype.org>
 
6933
 
 
6934
        * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
 
6935
        trying to render into a zero-width/height bitmap, not an error code.
 
6936
 
 
6937
        * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
 
6938
 
 
6939
        * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
 
6940
        ones instead.
 
6941
 
 
6942
        * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
 
6943
        variable.
 
6944
 
 
6945
2006-11-26  Pierre Hanser  <hanser@club-internet.fr>
 
6946
 
 
6947
        * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
 
6948
 
 
6949
2006-11-25  David Turner  <david@freetype.org>
 
6950
 
 
6951
        * src/autofit/afhints.c (af_glyph_hints_dump_points,
 
6952
        af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
 
6953
        Add stubs to link the `ftgrid' test program when debugging is
 
6954
        disabled in the auto-hinter.
 
6955
 
 
6956
2006-11-23  David Turner  <david@freetype.org>
 
6957
 
 
6958
        * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
 
6959
        src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
 
6960
 
 
6961
        * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
 
6962
        Emit more sensible information.
 
6963
 
 
6964
        * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
 
6965
 
 
6966
        * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
 
6967
        rounding of blue values.
 
6968
        (af_latin_hints_compute_segments): Hint segment heights.
 
6969
        (af_latin_hints_link_segments): Reduce `len_score' value.
 
6970
        (af_latin_hints_compute_edges): Increase `segment_length_threshold'
 
6971
        value and use `height' member for comparisons.
 
6972
        (af_latin_hint_edges): Extend logging message.
 
6973
        Improve handling of remaining edges.
 
6974
 
 
6975
2006-11-22  Werner Lemberg  <wl@gnu.org>
 
6976
 
 
6977
        Fix Savannah bug #15553.
 
6978
 
 
6979
        * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
 
6980
        program after a change from mono to grayscaling (and vice versa).
 
6981
        Use correct constant for comparison to get `exec->grayscale'.
 
6982
 
 
6983
2006-11-18  Werner Lemberg  <wl@gnu.org>
 
6984
 
 
6985
        Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
 
6986
        test for a valid glyph index must be deferred to the font drivers.
 
6987
        This patch fixes Savannah bug #18301.
 
6988
 
 
6989
        * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
 
6990
        * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
 
6991
        (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
 
6992
        src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
 
6993
        (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
 
6994
        src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
 
6995
        (FNT_Load_Glyph): Check validity of `glyph_index'.
 
6996
 
 
6997
2006-11-13  David Turner  <david@freetype.org>
 
6998
 
 
6999
        * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
 
7000
        `enhancements' are still too buggy for general use.
 
7001
 
 
7002
        * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
 
7003
        FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
 
7004
        when building the library to change the default LCD filter to be
 
7005
        used.  This is only useful for experimentation.
 
7006
 
 
7007
        * include/freetype/ftlcdfil.h: Update documentation.
 
7008
 
 
7009
2006-11-10  David Turner  <david@freetype.org>
 
7010
 
 
7011
        * src/smooth/ftsmooth.c: API change for the LCD
 
7012
        filter.  The FT_LcdFilter value is an enumeration describing which
 
7013
        filter to apply, with new values FT_LCD_FILTER_LIGHT and
 
7014
        FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
 
7015
        algorithm which produces strong color fringes for everything
 
7016
        except very-well hinted text).
 
7017
 
 
7018
        * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
 
7019
        second parameter to an enum type.
 
7020
 
 
7021
        * src/base/ftlcdfil.c (USE_LEGACY): Define.
 
7022
        (_ft_lcd_filter): Rename to...
 
7023
        (_ft_lcd_filter_fir): This.
 
7024
        Update parameters.
 
7025
        (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
 
7026
        (FT_Library_Set_LcdFilter): Update parameters.
 
7027
        Handle new filter modes.
 
7028
 
 
7029
        * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
 
7030
        (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
 
7031
        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
 
7032
        callback and update other fields.
 
7033
 
 
7034
        * src/smooth/ftsmooth.c (ft_smooth_render_generic)
 
7035
        [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
 
7036
        Other minor improvements.
 
7037
 
 
7038
        * src/autofit/aflatin.c: Various tiny improvements that drastically
 
7039
        improve the handling of serif fonts and of LCD/LCD_V hinting modes.
 
7040
        (af_latin_hints_compute_edges): Fix typo.
 
7041
        (af_latin_compute_stem_width): Take better care of diagonal stems.
 
7042
 
 
7043
2006-11-09  David Turner  <david@freetype.org>
 
7044
 
 
7045
        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
 
7046
        typo which created a variable-used-before-initialized bug.
 
7047
 
 
7048
2006-11-07  Zhe Su  <james.su@gmail.com>
 
7049
 
 
7050
        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
 
7051
        also.
 
7052
 
 
7053
2006-11-03  Werner Lemberg  <wl@gnu.org>
 
7054
 
 
7055
        * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
 
7056
 
 
7057
2006-11-02  David Turner  <david@freetype.org>
 
7058
 
 
7059
        Add a few tweaks to better handle serif fonts.
 
7060
        Add more debugging messages.
 
7061
 
 
7062
        * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
 
7063
        segments that are less than 1.5 pixels high.  This gets rid of
 
7064
        *many* corner cases with serifs.
 
7065
        (af_latin_align_linked_edge): Add logging message.
 
7066
        (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
 
7067
        Add logging messages.
 
7068
        Handle AF_EDGE_FLAG flag specially.
 
7069
 
 
7070
        * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
 
7071
        _af_debug_disable_blue_hints, and _af_debug_hints variables.
 
7072
 
 
7073
        * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
 
7074
        Update external declarations.
 
7075
        (af_corner_orientation, af_corner_is_flat): Replaced by...
 
7076
 
 
7077
        * include/freetype/internal/ftcalc.h (ft_corner_orientation,
 
7078
        ft_corner_is_flat): These declarations.
 
7079
 
 
7080
        * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
 
7081
        Comment out.  Replaced by...
 
7082
 
 
7083
        * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
 
7084
        These functions.  Update all callers.
 
7085
        (FT_Add64) [!FT_LONG64]: Simplify.
 
7086
 
 
7087
        * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
 
7088
        (af_direction_compute): Add a missing FT_ABS call.  This bug caused
 
7089
        production of garbage by missing lots of segments.
 
7090
 
 
7091
        * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
 
7092
 
 
7093
        * src/autofit/afloader.c (af_loader_init, af_loader_done)
 
7094
        [AF_DEBUG]: Set _af_debug_hints.
 
7095
 
 
7096
 
 
7097
        * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
 
7098
        (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
 
7099
        and ft_corner_orientation.
 
7100
 
 
7101
 
 
7102
        * src/gzip/inftrees.c (huft_build): Remove compiler warning.
 
7103
 
 
7104
2006-10-24  Werner Lemberg  <wl@gnu.org>
 
7105
 
 
7106
        * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
 
7107
 
 
7108
        * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
 
7109
        as argument.
 
7110
 
 
7111
2006-10-23  Zhe Su  <zsu@novell.com>
 
7112
 
 
7113
        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
 
7114
        better deal with broken Asian fonts with strange glyphs, having
 
7115
        self-intersections and other peculiarities.  The used algorithm is
 
7116
        based on the nonzero winding rule.
 
7117
 
 
7118
2006-10-23  David Turner  <david@freetype.org>
 
7119
 
 
7120
        Speed up the CFF font loader.  With some large CFF fonts,
 
7121
        FT_Open_Face is now more than three times faster.
 
7122
 
 
7123
        * src/cff/cffload.c (cff_get_offset): Removed.
 
7124
        (cff_new_index): Inline functionality of `cff_get_offset'.
 
7125
        (cff_charset_compute_cids, cff_charset_free_cids): New functions.
 
7126
        (cff_charset_done): Call `cff_charset_free_cids'.
 
7127
        (cff_charset_load): Call `cff_charset_compute_cids'.
 
7128
        (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
 
7129
 
 
7130
        * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
 
7131
        with FT_NEXT_XXX.
 
7132
 
 
7133
 
 
7134
        Speed up the Postscript hinter, with more than 100% speed increase
 
7135
        on my machine.
 
7136
 
 
7137
        * src/pshinter/pshalgo.c (psh_corner_is_flat,
 
7138
        psh_corner_orientation): New functions.
 
7139
        (psh_glyph_compute_inflections): Merge loops for efficiency.
 
7140
        Use `psh_corner_orientation'.
 
7141
        (psh_glyph_init): Use `psh_corner_is_flat'.
 
7142
        (psh_hint_table_find_strong_point): Renamed to...
 
7143
        (psh_hint_table_find_strong_points): This.
 
7144
        Rewrite, adding argument to handle all points at once.
 
7145
        Update all callers.
 
7146
        (PSH_MAX_STRONG_INTERNAL): New macro.
 
7147
        (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
 
7148
 
 
7149
2006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7150
 
 
7151
        * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
 
7152
        `error' with FT_Err_Ok.
 
7153
 
 
7154
2006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7155
 
 
7156
        * docs/INSTALL.CROSS: New document file for cross-building.
 
7157
 
 
7158
        * builds/unix/configure.raw: Preliminary cross-building support.
 
7159
        Find native C compiler and pass it by CC_BUILD, and
 
7160
        find suffix for native executable and pass it by EXEEXT_BUILD.
 
7161
        Also suffix for target executable is passed by EXEEXT.
 
7162
 
 
7163
        * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
 
7164
        build `apinames' which runs on building system.  They are set by
 
7165
        CC_BUILD and EXEEXT_BUILD.
 
7166
 
 
7167
        * builds/exports.mk (APINAMES_EXE): Change the extension for
 
7168
        apinames from the suffix for target (E) to that for building host
 
7169
        (E_BUILD).
 
7170
 
 
7171
2006-10-12  Werner Lemberg  <wl@gnu.org>
 
7172
 
 
7173
        * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
 
7174
        * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
 
7175
        which reference those files.
 
7176
 
 
7177
2006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7178
 
 
7179
        * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
 
7180
        embedded in freetype2.pc and freetype-config.  Use it to record
 
7181
        Carbon dependency of MacOSX.
 
7182
 
 
7183
        * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
 
7184
 
 
7185
        * builds/unix/freetype-config.in: Ditto.
 
7186
 
 
7187
2006-10-11  Werner Lemberg  <wl@gnu.org>
 
7188
 
 
7189
        * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
 
7190
        development.
 
7191
 
 
7192
2006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
 
7193
 
 
7194
        * include/freetype/config/ftstdlib.h: Cast away volatileness from
 
7195
        argument to ft_setjmp.
 
7196
 
 
7197
        * include/freetype/internal/ftvalid.h: Add comment that
 
7198
        ft_validator_run must not be used.
 
7199
 
 
7200
2006-10-01  Werner Lemberg  <wl@gnu.org>
 
7201
 
 
7202
        * src/base/ftbase.c: Undo change from 2006-09-30.
 
7203
 
 
7204
        * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
 
7205
 
 
7206
2006-09-30  David Turner  <david@freetype.org>
 
7207
 
 
7208
        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
 
7209
        s/unpatented_hinting/ignore_unpatented_hinter/.
 
7210
        Update all callers.
 
7211
 
 
7212
        * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
 
7213
        auto-hinting shall be used or not.
 
7214
 
 
7215
        * src/truetype/ttobjs.c (tt_face_init): Ditto.
 
7216
 
 
7217
2006-09-30  Werner Lemberg  <wl@gnu.org>
 
7218
 
 
7219
        * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
 
7220
        in use).
 
7221
 
 
7222
        * src/base/ftbase.c: Include `ftlcdfil.c'.
 
7223
 
 
7224
2006-09-29  Werner Lemberg  <wl@gnu.org>
 
7225
 
 
7226
        * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
 
7227
        overlapping segments.  Bug reported by Stefan Koch.
 
7228
 
 
7229
2006-09-28  David Turner  <david@freetype.org>
 
7230
 
 
7231
        Fix a bug in the automatic unpatented hinting support which prevents
 
7232
        normal bytecode hinting to work properly.
 
7233
 
 
7234
        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
 
7235
        s/force_autohint/unpatented_hinting/.  Update all callers.
 
7236
 
 
7237
        * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
 
7238
 
 
7239
        * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
 
7240
 
 
7241
2006-09-27  David Turner  <david@freetype.org>
 
7242
 
 
7243
        * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
 
7244
 
 
7245
 
 
7246
        Add a new API to support color filtering of subpixel glyph bitmaps.
 
7247
        In a default build, the function `FT_Library_SetLcdFilter' returns
 
7248
        `FT_Err_Unimplemented_Feature'; you need to #define
 
7249
        FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
 
7250
        real implementation.
 
7251
 
 
7252
        * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
 
7253
 
 
7254
        * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
 
7255
        typedef.
 
7256
        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
 
7257
        `lcd_filter_weights' and `lcd_filter'.
 
7258
 
 
7259
        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
 
7260
        `hmul' and `vmul'.
 
7261
 
 
7262
        Handle subpixel rendering.
 
7263
        Simplify function.
 
7264
        (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
 
7265
        (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
 
7266
 
 
7267
        * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
 
7268
        pointing to <freetype/ftlcdfil.h>.
 
7269
 
 
7270
        * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
 
7271
        vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
 
7272
 
 
7273
        * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
 
7274
 
 
7275
2006-09-26  David Bustin
 
7276
 
 
7277
        * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
 
7278
        correctly.  Reported as Savannah bug #17843.
 
7279
 
 
7280
2006-09-26  David Turner  <david@freetype.org>
 
7281
 
 
7282
        * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
 
7283
        AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
 
7284
        horizontal and vertical hinting for the purpose of debugging the
 
7285
        auto-fitter.
 
7286
 
 
7287
        * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
 
7288
        _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
 
7289
 
 
7290
        * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
 
7291
 
 
7292
        * include/freetype/config/ftoption.h, devel/ftoption.h
 
7293
        (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
 
7294
        we want to compile LCD-optimized rendering code (à la ClearType) or
 
7295
        not.  The macro *must* be disabled in default builds of the library
 
7296
        for patent reasons.
 
7297
 
 
7298
        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
 
7299
        LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
 
7300
        isn't defined at compile time.  This only changes the content of the
 
7301
        rendered glyph to match the one of normal gray-level rendering,
 
7302
        hence clients should not need to be modified.
 
7303
 
 
7304
        * docs/CHANGES: Updated.
 
7305
 
 
7306
2006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
 
7307
 
 
7308
        * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
 
7309
        LWFN fails and both are available.
 
7310
 
 
7311
2006-09-11  David Turner  <david@freetype.org>
 
7312
 
 
7313
        * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
 
7314
        report their English names through an Apple Roman
 
7315
        (platform,encoding) pair, with language_id != English.
 
7316
 
 
7317
        If the font uses another name entry with language_id == English, it
 
7318
        will be selected correctly, though.
 
7319
 
 
7320
        * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
 
7321
        selection for `mingli.ttf'.
 
7322
 
 
7323
2006-09-05  Werner Lemberg  <wl@gnu.org>
 
7324
 
 
7325
        * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
 
7326
        values which have the upper two bytes set to 0xFF instead of 0x00
 
7327
        (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
 
7328
        `HAN NOM B.ttf').
 
7329
 
 
7330
        * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
 
7331
 
 
7332
2006-09-05  David Turner  <david@freetype.org>
 
7333
 
 
7334
        Minor source cleanups and optimizations.
 
7335
 
 
7336
        * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
 
7337
        (TRaster): Remove `count_ex' and `count_ey'.
 
7338
        (gray_find_cell): Remove 2nd and 3rd argument.
 
7339
        (gray_alloc_cell): Merged with `gray_find_cell'.
 
7340
        (gray_record_cell): Simplify.
 
7341
        (gray_set_cell): Rewrite.
 
7342
        (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
 
7343
        (gray_render_span): Don't use FT_MEM_SET for small values.
 
7344
        (gray_dump_cells) [DEBUG_GRAYS]: New function.
 
7345
        (gray_sweep): Avoid buffer overwrites when to drawing the end of a
 
7346
        bitmap scanline.
 
7347
        (gray_convert_glyph): Fix speed-up.
 
7348
 
 
7349
2006-09-04  David Turner  <david@freetype.org>
 
7350
 
 
7351
        * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
 
7352
        64bit processors.
 
7353
 
 
7354
2006-09-03  Werner Lemberg  <wl@gnu.org>
 
7355
 
 
7356
        * devel/ftoption.h: Synchronize with
 
7357
        include/freetype/config/ftoption.h.
 
7358
 
 
7359
        * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
 
7360
        variable declaration.
 
7361
        (gray_convert_glyph): Fix compiler warnings.
 
7362
 
 
7363
2006-09-01  David Turner  <david@freetype.org>
 
7364
 
 
7365
        * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
 
7366
        to recognize a few fonts that require the automatic unpatented
 
7367
        loader.
 
7368
 
 
7369
        * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
 
7370
        rasterizer.  The speed improvement is between 15% and 25%, depending
 
7371
        on the font data.
 
7372
 
 
7373
        (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
 
7374
        (TCell): Redefine.
 
7375
        (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
 
7376
        (gray_init_cells): Updated.
 
7377
        (gray_find_cell, gray_alloc_cell): New functions.
 
7378
        (gray_record_cell): Rewritten to use `gray_find_cell' and
 
7379
        `gray_alloc_cell'.
 
7380
        (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
 
7381
        QSORT_THRESHOLD):
 
7382
        Removed.
 
7383
        (gray_shell_sort, gray_quick_sort, gray_check_sort,
 
7384
        gray_dump_cells): Removed.
 
7385
        (gray_sweep): Rewritten.
 
7386
        (gray_convert_glyph): Rewrite code which used one of the sorting
 
7387
        functions.
 
7388
        (gray_raster_render): Updated.
 
7389
 
 
7390
2006-08-29  Dr. Werner Fink  <werner@suse.de>
 
7391
 
 
7392
        * configure: Make it possible to handle configure options which
 
7393
        have strings containing spaces.
 
7394
 
 
7395
2006-08-27  David Turner  <david@freetype.org>
 
7396
 
 
7397
        * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
 
7398
        New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
 
7399
        or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
 
7400
 
 
7401
        * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
 
7402
        src/truetype/truetype.c, src/truetype/ttdriver.c,
 
7403
        src/truetype/ttgload.c, src/truetype/ttgload.h,
 
7404
        src/truetype/ttinterp.c, src/truetype/ttobjs.c,
 
7405
        src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
 
7406
        s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
 
7407
 
 
7408
        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
 
7409
        member `force_autohint'.
 
7410
 
 
7411
        * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
 
7412
 
 
7413
        * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
 
7414
        against a list of font names which need the bytecode interpreter.
 
7415
 
 
7416
2006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
 
7417
 
 
7418
        Fix miscellaneous compiler warnings.
 
7419
 
 
7420
        * include/freetype/internal/ftobjs.h: Close comment with `*/' to
 
7421
        avoid `/* in comment' compiler warning.
 
7422
 
 
7423
        * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
 
7424
        `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
 
7425
        64-bit platforms void* is larger than FT_UInt32.
 
7426
 
 
7427
        * src/base/ftobjs.c (t_validator_error): Cast away
 
7428
        volatileness of argument to ft_longjmp.  Spotted by Werner
 
7429
        `Putzfrau' Lemberg.
 
7430
 
 
7431
        * src/bdf/bdflib.c (bdf_load_font): Initialize local
 
7432
        variable `lineno'.
 
7433
 
 
7434
        * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
 
7435
        `error' as volatile.
 
7436
 
 
7437
2006-08-27  Werner Lemberg  <wl@gnu.org>
 
7438
 
 
7439
        * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
 
7440
        Reported by Jens.
 
7441
 
 
7442
2006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
 
7443
 
 
7444
        Fix for previous commit, which caused many compiler warnings/errors
 
7445
        about addresses of volatile objects passed as function arguments as
 
7446
        non-volatile pointers.
 
7447
 
 
7448
        * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
 
7449
        pointer to a volatile object.
 
7450
 
 
7451
        * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
 
7452
        `table' a pointer to a volatile object.
 
7453
 
 
7454
        * src/otvalid/otvmod.c (otv_load_table): Make function argument
 
7455
        `table' a pointer to a volatile object.
 
7456
 
 
7457
2006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
 
7458
 
 
7459
        * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
 
7460
        as volatile since it must keep its value across a call to ft_setjmp.
 
7461
        (gxv_validate): Same for local variables `memory' and `valid'.
 
7462
        (classic_kern_validate): Same for local variables `memory',
 
7463
        `ckern', and `valid'.
 
7464
 
 
7465
        * src/otvalid/otvmod.c (otv_validate): Same for function parameter
 
7466
        `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
 
7467
        and 'valid'.
 
7468
 
 
7469
        * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
 
7470
        `cmap'.
 
7471
 
 
7472
2006-08-16  David Turner  <david@freetype.org>
 
7473
 
 
7474
        * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
 
7475
        warnings.
 
7476
 
 
7477
        * src/base/ftobjs.c (ft_validator_run): Disable function; it is
 
7478
        buggy by design.  Always return -1.
 
7479
 
 
7480
 
 
7481
        Improvements to native TrueType hinting.  This is a first try,
 
7482
        controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
 
7483
 
 
7484
        * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
 
7485
        `extra_points2'.
 
7486
 
 
7487
        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
 
7488
        `orus'.
 
7489
 
 
7490
        * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
 
7491
        FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
 
7492
        FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
 
7493
        handle `extra_points2'.
 
7494
 
 
7495
        * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
 
7496
        Remove compiler warning.
 
7497
        (cur_to_arg): Remove macro.
 
7498
        (TT_Hint_Glyph): Updated.
 
7499
        (TT_Process_Simple_Glyph): Handle `orus'.
 
7500
 
 
7501
        * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
 
7502
        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
 
7503
        (LOC_Ins_IUP): Renamed to...
 
7504
        (IUP_WorkerRec): This.
 
7505
        Add `orus' member.
 
7506
        (Shift): Renamed to...
 
7507
        (_iup_worker_shift): This.
 
7508
        Updated.
 
7509
        (Interp): Renamed to...
 
7510
        (_iup_worker_interpolate): This.
 
7511
        Updated to handle `orus'.
 
7512
        (Ins_IUP): Updated.
 
7513
 
 
7514
        * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
 
7515
        Handle `orus'.
 
7516
 
 
7517
2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7518
 
 
7519
        * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
 
7520
        build ftvalid in ft2demos.  This has been inadvertedly changed
 
7521
        2006-08-13.
 
7522
 
 
7523
2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7524
 
 
7525
        `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
 
7526
        Jens:
 
7527
        http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
 
7528
 
 
7529
        * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
 
7530
        It reverts the change introduced on 2005-08-20.
 
7531
 
 
7532
        * src/gxvalid/gxvmod.c: Ditto.
 
7533
 
 
7534
2006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
 
7535
 
 
7536
        * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
 
7537
        T1_TOKEN_TYPE_KEY.
 
7538
        (T1_FieldRec): Add `dict'.
 
7539
        (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
 
7540
        (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
 
7541
        keyword is expected as an additional argument.
 
7542
 
 
7543
        * src/cid/cidload.c: (cid_field_records): Adjust invocations of
 
7544
        T1_FIELD_XXX.
 
7545
 
 
7546
        * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
 
7547
 
 
7548
        * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
 
7549
        (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
 
7550
        not T1_TOKEN_TYPE_ANY.
 
7551
        (ps_parser_load_field): Make sure a token that should be a string or
 
7552
        name is really a string or name.
 
7553
        Avoid memory leak if a keyword has been already encountered and its
 
7554
        value is overwritten.
 
7555
        * src/type1/t1load.c: (t1_keywords): Adjust invocations of
 
7556
        T1_FIELD_XXX.
 
7557
        (parse_dict): Ignore keywords that occur in the wrong dictionary
 
7558
        (e.g., in `Private' instead of `FontDict').
 
7559
 
 
7560
        * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
 
7561
 
 
7562
        * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
 
7563
        T1_FIELD_XXX.
 
7564
 
 
7565
2006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
 
7566
 
 
7567
        Move creation of field `buildchar' of T1_DecoderRec out of
 
7568
        `t1_decoder_init' and let the caller of `t1_decoder_init' take care
 
7569
        of it.
 
7570
 
 
7571
        Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
 
7572
        and `T1_Compute_Max_Advance'.
 
7573
 
 
7574
        * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
 
7575
        `face', add `len_buildchar'.
 
7576
 
 
7577
        * include/freetype/internal/t1types.h (T1_FaceRec): Add field
 
7578
        `buildchar'.
 
7579
 
 
7580
        * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
 
7581
        for T1_Decoder.
 
7582
        (cid_slot_load_glyph): Do not ignore failure when initializing the
 
7583
        T1_Decoder.
 
7584
 
 
7585
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
 
7586
        (t1_decoder_init): Remove initialization of fields `buildchar' and
 
7587
        `len_buildchar'.
 
7588
        (t1_decoder_done): Remove deallocation of field `buildchar'.
 
7589
 
 
7590
        * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
 
7591
        T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
 
7592
        T1_Decoder.
 
7593
        (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
 
7594
        `len_buildchar'; make sure to call finisher for T1_Decoder even in
 
7595
        case of error.
 
7596
 
 
7597
        * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
 
7598
        of T1_FaceRec.
 
7599
 
 
7600
        * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
 
7601
        T1_FaceRec.
 
7602
 
 
7603
2006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
 
7604
 
 
7605
        * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
 
7606
        IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
 
7607
        and IS_PS_BASE85 (from src/psaux/psconv.h).
 
7608
        (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
 
7609
        T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
 
7610
        (T1_DecoderRec): New fields `buildchar' and `face'.
 
7611
        (IS_PS_TOKEN): New macro.
 
7612
 
 
7613
        * include/freetype/internal/t1types.h (T1_FaceRec): New fields
 
7614
        `ndv_idx', `cdv_idx', and `len_buildchar'.
 
7615
 
 
7616
        * include/freetype/t1tables.h (PS_BlendRec): New fields
 
7617
        `default_design_vector' and `num_default_design_vector'.
 
7618
 
 
7619
        * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
 
7620
        IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
 
7621
        IS_PS_BASE85 to include/freetype/internal/psaux.h.
 
7622
 
 
7623
        * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
 
7624
        argument to be NULL if we want only to count the number of tokens.
 
7625
        (ps_tocoordarray): Allow `coords' argument to be NULL if we just
 
7626
        want to skip the array.
 
7627
        (ps_tofixedarray): Allow `values' argument to be NULL if we just
 
7628
        want to skip the array.
 
7629
 
 
7630
        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
 
7631
        for (partially commented out) othersubrs 19-25, 27, and 28.
 
7632
        (t1_decoder_init): Initialize new fields `face' and `buildchar'.
 
7633
        (t1_decoder_done): Release new field `buildchar'.
 
7634
 
 
7635
        * src/type1/t1load.c (parse_buildchar, parse_private): New
 
7636
        functions.
 
7637
        (t1_keywords): Register them.
 
7638
        (t1_allocate_blend): Updated.
 
7639
        (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
 
7640
        T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
 
7641
        (parse_dict): Remove `keyword_flags' argument.
 
7642
        Use new macro IS_PS_TOKEN.
 
7643
        Changed function so that later PostScript definitions override
 
7644
        earlier ones.
 
7645
        (t1_init_loader): Initialize new field `keywords_encountered'.
 
7646
        (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
 
7647
        `len_buildchar'.
 
7648
        Remove `keywords_flags'.
 
7649
 
 
7650
        * src/type1/t1load.h (T1_LoaderRect): New field
 
7651
        `keywords_encountered'.
 
7652
        (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
 
7653
 
 
7654
        * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
 
7655
        entries for parsing /NDV, /CDV, and /DesignVector.
 
7656
 
 
7657
2006-07-07  Werner Lemberg  <wl@gnu.org>
 
7658
 
 
7659
        Add many checks to protect against malformed PCF files.
 
7660
 
 
7661
        * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
 
7662
        (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
 
7663
 
 
7664
        * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
 
7665
        data and check that tables don't overlap (using a simple
 
7666
        bubblesort).
 
7667
        (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
 
7668
        New macros which give the size of data structures in the data
 
7669
        stream.
 
7670
        (pcf_get_properties): Use rough estimates to get array size limits.
 
7671
        Assign `face->nprops' and `face->properties' earlier so that a call
 
7672
        to PCF_Face_Done can do the clean-up in case of error.
 
7673
        Protect against invalid string offsets.
 
7674
        (pcf_get_metrics): Clean up code.
 
7675
        Adjust tracing message levels.
 
7676
        Use rough estimate to get array size limit.
 
7677
        (pcf_get_bitmaps): Clean up code.
 
7678
        Adjust tracing message levels.
 
7679
        Use rough estimates to get offset limits.
 
7680
        (pcf_get_encodings): Adjust tracing message level.
 
7681
        (pcf_get_accel): Clean up code.
 
7682
 
 
7683
2006-06-26  Werner Lemberg  <wl@gnu.org>
 
7684
 
 
7685
        * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
 
7686
        don't have a POINT_SIZE property.  This fixes Savannah bug #16914.
 
7687
 
 
7688
2006-06-26  Jens Claudius  <jens.claudius@yahoo.com>
 
7689
 
 
7690
        * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
 
7691
        (t1_decoder_parse_charstrings): Operator with
 
7692
        opcode 15 pops its two arguments.
 
7693
        Handle the case where the pops of an othersubr may be part of a
 
7694
        subroutine.
 
7695
        Handle unknown othersubrs gracefully: count their operands and let
 
7696
        the following pop operators push the operands as the results onto
 
7697
        the Type1 stack.
 
7698
        Improve handling of setcurrentpoint opcode.
 
7699
 
 
7700
2006-06-25  Jens Claudius  <jens.claudius@yahoo.com>
 
7701
 
 
7702
        The Type 1 parser now skips over top-level procedures as required
 
7703
        for a `Simplified Parser'.  This makes the parser more robust as it
 
7704
        doesn't poke around in PostScript code.  Additionally, it makes the
 
7705
        FontDirectory hackery in src/type1/t1load.c unnecessary.
 
7706
 
 
7707
        * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
 
7708
        (skip_literal_string): Add FT_Error as return value.
 
7709
        Handle escapes better.
 
7710
        (skip_string): Add FT_Error as return value.
 
7711
        Don't set `parser->error' but return error code directly.
 
7712
        (skip_procedure): New function.
 
7713
        (ps_parser_skip_PS_token): Handle procedures.
 
7714
        Update code.
 
7715
        (ps_parser_to_token): Update code.
 
7716
        (ps_parser_load_field_table): Handle bbox entries also.
 
7717
 
 
7718
        * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
 
7719
        Add commented-out code for synthetic fonts.
 
7720
 
 
7721
2006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>
 
7722
 
 
7723
        Fix two hinting bugs as reported in
 
7724
        http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
 
7725
 
 
7726
        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
 
7727
        `first_point' member.
 
7728
 
 
7729
        * src/truetype/ttgload.c (tt_prepare_zone): Initialize
 
7730
        `first_point'.
 
7731
        (TT_Process_Composite_Glyph): Always untouch points.
 
7732
 
 
7733
        * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
 
7734
        `first_point' and `last_point' in case of composite glyphs.
 
7735
        (Ins_IUP): Fix computation of `end_point'.
 
7736
 
 
7737
2006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7738
 
 
7739
        Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
 
7740
        Mac.  The original patch was written by David Sachitano and Lawrence
 
7741
        Coopet, and modified by Sean McBride for MPW compatibility.  Only
 
7742
        required data are converted; unused data are left in big endian.
 
7743
 
 
7744
        * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
 
7745
        Mac OS X platforms.
 
7746
        (OS_INLINE): Undefine before definition.
 
7747
        (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
 
7748
        FontAssociation table in FOND resource.
 
7749
        (count_faces_scalable): Insert EndianS16_BtoN to parse the header
 
7750
        and fontSize at each entry of FontAssociation table in FOND
 
7751
        resource.
 
7752
        (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
 
7753
        ffStylOff of FamilyRecord header of FOND resource, the header,
 
7754
        fontSize, fontID at each entry of FontAssociation table, and
 
7755
        StyleMapping table.
 
7756
        (count_faces): Call `HUnlock' after all FOND utilization.
 
7757
 
 
7758
2006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7759
 
 
7760
        Public API of TrueTypeGX, OpenType, and classic kern table validator
 
7761
        should return `FT_Err_Unimplemented_Feature' if validation service
 
7762
        is unavailable (disabled in `modules.cfg').  It is originally
 
7763
        suggested by David Turner, cf.
 
7764
        http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
 
7765
 
 
7766
        * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
 
7767
        FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
 
7768
        unavailable.
 
7769
        (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
 
7770
        classic kern table validation service is unavailable.
 
7771
 
 
7772
        * src/base/ftotval.c (FT_OpenType_Validate): Return
 
7773
        FT_Err_Unimplemented_Feature if OpenType validation service is
 
7774
        unavailable.
 
7775
 
 
7776
2006-06-08  Werner Lemberg  <wl@gnu.org>
 
7777
 
 
7778
        * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
 
7779
        errors.
 
7780
 
 
7781
2006-06-07  David Turner  <david@freetype.org>
 
7782
 
 
7783
        * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
 
7784
        (T1_Read_Metrics): Fix memory leak which happened when the metrics
 
7785
        file doesn't have kerning pairs.  This fixes Savannah bug #16768.
 
7786
 
 
7787
2006-06-06  David Turner  <david@freetype.org>
 
7788
 
 
7789
        Fix memory leak described in Savannah bug #16759.
 
7790
 
 
7791
        We change `ps_unicodes_init' so that it also takes a
 
7792
        `free_glyph_name' callback to release the glyph names returned by
 
7793
        `get_glyph_name'
 
7794
 
 
7795
        * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
 
7796
        Renamed to ...
 
7797
        (PS_GetGlyphNameFunc): This.
 
7798
        (PS_FreeGlyphNameFunc): New typedef.
 
7799
        (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
 
7800
 
 
7801
        * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
 
7802
        argument.
 
7803
        (cff_sid_free_glyph_name): New function.
 
7804
        (cff_cmap_unicode_init): Updated.
 
7805
 
 
7806
        * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
 
7807
 
 
7808
        * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
 
7809
        PS_FreeGlyphNameFunc and use it.
 
7810
 
 
7811
 
 
7812
2006-06-04  David Turner  <david@freetype.org>
 
7813
 
 
7814
        * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
 
7815
        `item_size == 0' as well -- though this sounds weird, it can
 
7816
        theoretically happen.  This fixes Savannah bug #16669.
 
7817
 
 
7818
        * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
 
7819
        of `face->num_glyphs' which missed the last glyph, due to
 
7820
        the offset-by-1 computation, since the PFR format doesn't
 
7821
        guarantee that glyph index 0 corresponds to the `missing
 
7822
        glyph.  This fixes Savannah bug #16668.
 
7823
 
 
7824
2006-05-25  Werner Lemberg  <wl@gnu.org>
 
7825
 
 
7826
        * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
 
7827
        `-no-undefined'.  Reported by Christian Biesinger.
 
7828
 
 
7829
2006-05-19  Brian Weed  <bw@imaginengine.com>
 
7830
 
 
7831
        * builds/win32/visualc/freetype.dsp: Release libraries no longer
 
7832
        have debug information, and debug libraries use `C7 compatible'
 
7833
        debug info.
 
7834
 
 
7835
2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7836
 
 
7837
        Apply patch by Derek Clegg to fix two memory leaks in the MacOS
 
7838
        resource fork handler.  This fixes Savannah bug #16631.
 
7839
 
 
7840
        * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
 
7841
        `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
 
7842
 
 
7843
        * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
 
7844
        Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
 
7845
 
 
7846
2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7847
 
 
7848
        * build/unix/configure.raw: Add a fallback to disable Carbon
 
7849
        dependency, if configured with no options on Mac OS X.
 
7850
 
 
7851
2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
7852
 
 
7853
        * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
 
7854
        its content cannot be parsed as supported font.  This fixes
 
7855
        the second part of Savannah bug #16590.
 
7856
 
 
7857
2006-05-18  Werner Lemberg  <wl@gnu.org>
 
7858
 
 
7859
        * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
 
7860
        [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
 
7861
 
 
7862
2006-05-17  David Turner  <david@freetype.org>
 
7863
 
 
7864
        This is a major patch used to drastically improve the performance of
 
7865
        loading glyphs.  This both speeds up loading the glyph vectors
 
7866
        themselves and the auto-fitter module.
 
7867
 
 
7868
        We now use inline assembler code with GCC to implement `FT_MulFix',
 
7869
        which is probably the most important function related to the
 
7870
        engine's performance.
 
7871
 
 
7872
        The resulting speed-up is about 25%.
 
7873
 
 
7874
 
 
7875
        * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
 
7876
        `cursor' and `limit'.
 
7877
 
 
7878
        * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
 
7879
        New functions.
 
7880
        (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
 
7881
        [TEST]: Remove.
 
7882
 
 
7883
        * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
 
7884
        code.
 
7885
 
 
7886
        * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
 
7887
        `FT_ZERO'
 
7888
        (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
 
7889
        (af_glyph_hints_reload: Rewrite recognition of weak points.
 
7890
 
 
7891
        * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
 
7892
        constant values out of the loops.
 
7893
 
 
7894
        * src/autofit/aftypes.h: Updated.
 
7895
 
 
7896
        * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
 
7897
 
 
7898
        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
 
7899
        product to get orientation.
 
7900
 
 
7901
        * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
 
7902
        (FT_Stream_OpenGzip): Use it to handle small files directly in
 
7903
        memory.
 
7904
 
 
7905
        * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
 
7906
        Improve performance.
 
7907
 
 
7908
        * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
 
7909
        `limit'.
 
7910
 
 
7911
        (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
 
7912
        TT_Load_Composite_Glyph): Updated.  Add threshold to protect against
 
7913
        exceedingly large values of number of contours.  Speed up by
 
7914
        reducing the number of loops.
 
7915
 
 
7916
        * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
 
7917
 
 
7918
 
 
7919
        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
 
7920
        used to detect rogue clients from 4 to 16.  This is to prevent some
 
7921
        segmentation faults with fonts like `KozMinProVI-Regular.otf' which
 
7922
        comes from the Japanese Adobe Reader Asian Font pack.
 
7923
 
 
7924
2007-05-17  Werner Lemberg  <wl@gnu.org>
 
7925
 
 
7926
        * src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
 
7927
        fixes the first part of Savannah bug #16590.
 
7928
 
 
7929
2006-05-16  Werner Lemberg  <wl@gnu.org>
 
7930
 
 
7931
        * docs/PROBLEMS: Updated icl issues.
 
7932
 
 
7933
----------------------------------------------------------------------------
 
7934
 
 
7935
Copyright 2006, 2007, 2008, 2009, 2010 by
 
7936
David Turner, Robert Wilhelm, and Werner Lemberg.
 
7937
 
 
7938
This file is part of the FreeType project, and may only be used, modified,
 
7939
and distributed under the terms of the FreeType project license,
 
7940
LICENSE.TXT.  By continuing to use, modify, or distribute this file you
 
7941
indicate that you have read the license and understand and accept it
 
7942
fully.
 
7943
 
 
7944
 
 
7945
Local Variables:
 
7946
version-control: never
 
7947
coding: utf-8
 
7948
End: