1
2010-02-13 Werner Lemberg <wl@gnu.org>
3
* Version 2.3.12 released.
4
==========================
7
Tag sources with `VER-2-3-12'.
9
* docs/CHANGES: Updated.
11
* docs/VERSION.DLL: Update documentation and bump version number to
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/.
27
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
29
* builds/unix/configure.raw (version_info): Set to 10:0:4.
31
2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
33
Improve autotool version checking to work with beta releases.
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.
39
2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
41
Fix overallocating bug in FT_Outline_New_Internal().
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
48
2010-02-10 Ken Sharp <ken.sharp@artifex.com>
50
Really fix Savannah bug #28678 (part 2).
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
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
61
2010-02-10 Ken Sharp <ken.sharp@artifex.com>
63
Really fix Savannah bug #28678 (part 1).
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
74
* include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
75
`advance_v' field to hold the vertical component of the advance
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.
83
2010-02-08 Werner Lemberg <wl@gnu.org>
85
* devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
87
2010-02-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
89
Prevent NULL pointer dereference passed to FT_Module_Requester.
91
* src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
92
* src/psnames/psmodule.c (psnames_get_interface): Ditto.
94
* src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
95
* src/truetype/ttdriver.c (tt_get_interface): Ditto.
97
2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
99
Fix memory leaks in previous patch.
101
* src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
102
allocated for face->root.family_name and style_name.
104
2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
106
New parameters for FT_Open_Face() to ignore preferred family names.
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
111
http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
113
* include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
114
FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
116
* src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and
117
ignore preferred family and subfamily names if requested.
119
2010-01-27 Ken Sharp <ken.sharp@artifex.com>
121
Fix Savannah bug #28678.
123
* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
124
(cid_load_glyph): Handle vertical metrics correctly.
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.
130
2010-01-14 Werner Lemberg <wl@gnu.org>
132
Make FT_Set_Transform work if no renderer is available.
134
* src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
135
if no renderer is compiled into the library.
137
2010-01-14 Werner Lemberg <wl@gnu.org>
139
Fix compilation warning.
141
* src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
142
* src/base/ftobjc.s: Include ftbase.h conditionally.
144
2010-01-11 Kwang Yul Seo <skyul@company100.net>
146
Provide inline assembly code for RVCT compiler.
147
This is Savannah patch #7059.
149
* include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
150
FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
152
2010-01-08 Ken Sharp <ken.sharp@artifex.com>
154
Fix Savannah bug #28521.
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.
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
168
* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
169
<op_setcurrentpoint>: Handle `flex_state' correctly.
171
2010-01-05 Werner Lemberg <wl@gnu.org>
173
Apply reports from clang static analyzer.
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.
179
* src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
180
`offset_i' and `length_i'.
182
2010-01-05 Ralph Giles <giles@ghostscript.com>
184
Enable the incremental font interface by default.
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
192
* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
195
2010-01-05 Werner Lemberg <wl@gnu.org>
197
Fix Savannah bug #28395.
199
* src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
200
(T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
203
2010-01-05 Ken Sharp <ken.sharp@artifex.com>
205
Make Type 1 `seac' operator work with incremental interface.
206
This fixes Savannah bug #28480.
208
* src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
209
if incremental interface is used.
211
2010-01-04 Ken Sharp <ken.sharp@artifex.com>
213
Make incremental interface work with TrueType fonts.
214
This fixes Savannah bug #28478.
216
* src/truetype/ttgload.c (load_truetype_glyph): Don't check
217
`glyf_offset' if incremental interface is used.
219
2009-12-31 Lars Abrahamsson <wonko@opera.com>
221
Make compilation with FT_CONFIG_OPTION_PIC work again.
223
* src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
224
Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
226
* src/base/ftinit.c (ft_destroy_default_module_classes,
227
ft_create_default_module_classes): Use proper casts (needed for C++
230
* src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
232
2009-12-22 Marc Kleine-Budde <mkl@pengutronix.de>
234
Make freetype-config aware of $SYSROOT.
235
This is Savannah patch #7040.
237
* builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
240
2009-12-20 Werner Lemberg <wl@gnu.org>
242
Fix compiler warning.
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.
249
2009-12-18 Werner Lemberg <wl@gnu.org>
251
Fix Savannah bug #28320.
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
258
* src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
259
unterminated floating point numbers.
261
2009-12-16 Werner Lemberg <wl@gnu.org>
263
Really fix compiler warnings.
266
* src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
267
GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
269
2009-12-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
276
* builds/unix/configure.raw: Replace `-isysroot' option parser by
277
more generic argument parser.
279
2009-12-15 Werner Lemberg <wl@gnu.org>
281
Fix compiler warnings.
284
* src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
287
2009-12-14 Ken Sharp <ken.sharp@artifex.com>
289
Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
290
This fixes Savannah bug #28226.
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
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.
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.
307
* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
308
<op_setcurrentpoint>: Comment out code.
310
2009-12-14 Bram Tassyns <bramt@enfocus.be>
312
Fix parsing of /CIDFontVersion.
313
This fixes Savannah bug #28287.
315
* src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
316
t1tables.h) is of type FT_Fixed.
318
2009-12-14 Werner Lemberg <wl@gnu.org>
320
Trace glyph index in CID module.
321
Suggested in Savannah patch #7023.
323
* src/cid/cidgload.c (cid_load_glyph): Add tracing message.
325
2009-12-03 Werner Lemberg <wl@gnu.org>
327
Fix compiler warnings.
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.
333
2009-11-25 John Tytgat <John.Tytgat@esko.com>
335
Better handling of start of `eexec' section.
336
This fixes Savannah bug #28090.
338
* src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
339
characters before start of `eexec' section.
341
2009-11-20 Werner Lemberg <wl@gnu.org>
343
Fix Savannah bug #27742.
345
* src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
346
zero, using a threshold for `theta'.
348
2009-11-20 Werner Lemberg <wl@gnu.org>
350
Fix Savannah bug #28036.
352
* src/type1/t1afm.c (t1_get_index): Fix comparison.
354
2009-11-16 Werner Lemberg <wl@gnu.org>
356
Fix compiler warnings.
357
Reported by Kevin Blenkinsopp <arqon@promode.org>.
359
* src/sfnt/ttload.c (check_table_dir): Use proper data type.
361
2009-11-15 Werner Lemberg <wl@gnu.org>
363
Really fix FreeDesktop bug #21197.
364
This also fixes Savannah bug #28021.
366
* src/autofit/aflatin.c (af_latin_metrics_check_digits),
367
src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
369
2009-11-15 Werner Lemberg <wl@gnu.org>
371
Add tracing messages for advance values.
373
* src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
374
(TT_Get_HMetrics, TT_Get_VMetrics): Do it.
376
2009-11-08 Werner Lemberg <wl@gnu.org>
378
Fix compiler warning.
379
Reported by Jeremy Manson <jeremy.manson@gmail.com>.
381
* src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
383
2009-11-04 Werner Lemberg <wl@gnu.org>
385
Remove compiler warning.
386
Reported by Sean McBride <sean@rogue-research.com>.
388
* src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
389
`int', as specified in the printf(3) man page.
391
2009-11-04 Werner Lemberg <wl@gnu.org>
393
Fix Savannah bug #27921.
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.
400
2009-11-03 Bram Tassyns <bramt@enfocus.be>
402
Add basic support for Type1 charstrings in CFF.
403
This fixes Savannah bug #27922.
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.
409
(cff_operator_seac): Add parameter for side bearing.
410
(cff_decoder_parse_charstrings): Updated for more Type1 support.
412
2009-11-03 Werner Lemberg <wl@gnu.org>
414
Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
415
Reported by Jeremy Manson <jeremy.manson@gmail.com>.
417
src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
418
quickly load the glyph header only.
420
(tt_loader_init): Add parameter to quickly load the `glyf' table
423
(TT_Load_Glyph): Compute linear advance values for embedded bitmap
426
2009-11-03 Werner Lemberg <wl@gnu.org>
428
Improve code readability.
430
* src/ttgload.c (load_truetype_glyph): Move metrics calculation
432
(tt_get_metrics): This new function.
434
2009-10-26 Bram Tassyns <bramt@enfocus.be>
436
Fix Savannah bug #27811.
438
* src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
439
signed/unsigned mismatch.
441
2009-10-19 Ning Dong <flintning@163.com>
443
Fix handling of `get' and `put' CFF instructions.
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'.
451
2009-10-18 Werner Lemberg <wl@gnu.org>
453
Fix handling of `dup' CFF instruction.
454
Problem and solution reported by Ning Dong <flintning@163.com>.
456
* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
457
Increase `args' by 2, not 1.
459
2009-10-10 Werner Lemberg <wl@gnu.org>
461
* Version 2.3.11 released.
462
==========================
465
Tag sources with `VER-2-3-11'.
467
* docs/VERSION.DLL: Update documentation and bump version number to
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/.
477
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
479
* builds/unix/configure.raw (version_info): Set to 9:22:3.
481
2009-10-10 Werner Lemberg <wl@gnu.org>
483
* docs/CHANGES, docs/release: Updated.
485
2009-10-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
491
2009-10-06 Werner Lemberg <wl@gnu.org>
493
* Version 2.3.10 released.
494
==========================
497
Tag sources with `VER-2-3-10'.
499
* builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
501
(dist): We now use git.
503
* docs/VERSION.DLL: Update documentation and bump version number to
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/.
513
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
515
* builds/unix/configure.raw (version_info): Set to 9:21:3.
517
2009-10-06 Werner Lemberg <wl@gnu.org>
521
* src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
523
* src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
525
2009-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
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
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.
543
* src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
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.
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()
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()
558
(FTC_SBitCache_LookupScaler): Ditto.
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.
564
2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
566
[cache, psaux, type1] Fix for multi build.
567
In multi build, some cpp functions are left as unresolved symbols.
569
* src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
571
* src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
573
* src/type1/t1gload.c: Ditto.
574
* src/type1/t1objs.c: Ditto.
576
2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
578
[autofit] Fix for multi build.
580
* src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
581
FT_DECLARE_MODULE() macro in multi build.
583
* src/autofit/aflatin.c: Include <ft2build.h> to handle
584
FT_ADVANCES_H correctly in multi build.
586
2009-09-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
588
[cache] Check the face filled by FTC_Manager_LookupFace().
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.
594
2009-09-23 Werner Lemberg <wl@gnu.org>
596
* docs/CHANGES: Updated.
598
2009-09-12 Werner Lemberg <wl@gnu.org>
600
[raster] Fix 5-levels grayscale output.
601
This was broken since version 2.3.0.
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.
607
(ft_black_render): Initialize `worker->gray_lines' (problem found by
610
(FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
613
2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
615
Improve configure.raw for cross build.
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.
622
2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
624
[BDF] Modify hash API to take size_t value instead of void *.
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
634
http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
636
* src/bdf/bdf.h: The type of hashnode->data is changed from
639
* src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
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
648
(_bdf_add_property): Ditto.
649
(_bdf_parse_start): Calculate the index to the property array
651
(bdf_get_font_property): Drop a cast to unsigned long.
653
2009-09-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
655
[Win64] Improve the computation of random seed from stack address.
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
662
* src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
664
* src/psaux/t1decode.c: Ditto.
667
2009-09-03 Werner Lemberg <wl@gnu.org>
669
[raster] Improvements for stand-alone mode.
671
* src/raster/rules.mk: Don't handle ftmisc.h. It is needed for
672
stand-alone mode only.
674
* src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
675
FT_Realloc_Func): Copy declarations from ftsystem.h.
677
2009-09-02 Bram Tassyns <bramt@enfocus.be>
679
Improve vertical metrics calculation (Savannah bug #27364).
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:
686
FreeType: Use the middle of the bounding box as the X coordinate
687
of the vertical origin.
689
Adobe PDF spec: Use the middle of the horizontal advance vector as
690
the X coordinate of the vertical origin.
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.
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'.
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.
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
718
* src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
719
now calculated as described by the Adobe PDF Spec.
721
2009-09-01 John Tytgat <John.Tytgat@esko.com>
723
Fix custom cmap for empty Type 1 font (Savannah bug #27294).
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.
733
2009-08-25 Werner Lemberg <wl@gnu.org>
735
Fix rendering of horizontally compressed CFFs.
736
Bug reported by Ivan Nincic <inincic@pdftron.com>.
738
* src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
741
* docs/CHANGES: Updated.
743
2009-08-03 suyu0925@gmail.com
745
Don't call `ft_fseek' every time when executing `ft_fread'.
747
* src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
748
(ft_ansi_stream_io): Implement it.
750
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
752
sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
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.
760
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
762
sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
764
* src/sfnt/ttcmap.c (tt_cmap12_char_next):
765
Insert explicit cast from FT_UFast to FT_UInt32
768
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
770
psaux: Fix a few casts to FT_Int32 value.
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.
776
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
778
sfnt: Fix a data type mismatching with its source.
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.
785
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
787
sfnt: Extend a few local variables to load 32-bit values.
789
* src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
790
and `kern' to load 32-bit values.
792
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
794
pfr: Extend `num_aux' to take 32-bit value.
796
* src/pfr/pfrload.c (pfr_phy_font_load): Extend
797
`num_aux' to load 32-bit value.
799
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
801
pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
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.
808
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
810
gxvalid: Extend a few local variables to reduce the casts.
812
* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
813
Extend `type' and `rest' to take FT_ULong values.
815
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
817
gxvalid: Extend `settingTable' to take 32-bit offset.
819
* src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
820
Extend `settingTable' to take 32-bit offset.
822
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
824
autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
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
831
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
833
smooth: Exclude 16-bit system in invalid pitch/height check.
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.
840
2009-07-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
842
cff: Type large constants > 0x7FFF as long for 16-bit systems.
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
849
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
851
base: Remove an unused variable.
853
* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
854
unused variable `library'. glyph->library is used.
856
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
858
cache: Check higher bits in flags for non ILP32 systems.
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.
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.
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',
876
(FTC_SBitCache_LookupScaler): Ditto.
878
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
880
sfnt: Ignore invalid GIDs in glyph name lookup.
882
* include/freetype/internal/fttrace.h:
883
New trace module for sfdriver.c is added.
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.
889
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
891
pcf: Fix a comparison between FT_Long and FT_ULong.
893
* src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
894
if PCF_Face->nemetrics is negative.
896
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
898
gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
900
* src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
901
Extend the 3rd argument `nFeatureFlags' to FT_ULong.
902
* src/gxvalid/gxvmort.h: Ditto.
904
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
906
sfnt: Insert explicit cast for LP64 system.
908
* src/sfnt/ttkern.c (tt_face_load_kern): Insert
909
cast from unsigned long to FT_UInt32.
911
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
913
gxvalid: Guarantee `just' table size upto 32-bit.
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.
919
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
921
gxvalid: Guarantee `trak' table size upto 32-bit.
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.
927
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
929
type1: Fix a data type mismatching with its source.
931
* include/freetype/internal/t1types.h: The type of
932
T1_Face->buildchar is matched with T1_Decorder->top.
934
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
936
pfr: Fix a data type mismatching with its source.
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().
943
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
945
pfr: Fix a data type mismatching with its source.
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().
951
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
953
pfr: Fix a data type mismatching with its source.
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().
959
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
961
smooth: Improve the format in debug message.
963
* src/smooth/ftgrays.c (gray_dump_cells): Improve the
964
format specifications to dump variables.
966
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
968
sfnt: Fix a data type mismatching with its source.
970
* src/sfnt/sfobjs.c (sfnt_load_face): The type of
971
local `flags' is matched with FT_Face->face_flags.
973
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
975
psaux: Fix a data type mismatching with its source.
977
* include/freetype/internal/psaux.h: The type of
978
T1_DecorderRec.buildchar is matched with
981
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
983
truetype: Extend TrueType GX packed deltas to FT_Offset.
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.
990
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
992
truetype: Extend mmvar_len to hold size_t values.
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
999
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1001
truetype: Check invalid function number in IDEF instruction.
1003
* src/truetype/ttinterp.c (Ins_IDEF): Check
1004
if the operand fits to 8-bit opcode limitation.
1006
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1008
truetype: Check invalid function number in FDEF instruction.
1010
* src/truetype/ttinterp.c (Ins_FDEF): Check
1011
if the operand fits 16-bit function number.
1013
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1015
truetype: Truncate the deltas of composite glyph at 16-bit values.
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.
1026
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1028
truetype: Truncate the instructions upto 16-bit per a glyph.
1030
* src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
1031
the instructions upto 16-bit length per a glyph.
1033
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1035
truetype: Cast the numerical operands to 32-bit for LP64 systems.
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()).
1042
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1044
truetype: Cast the project vector to 32-bit for LP64 system.
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()).
1050
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1052
truetype: Cast the scaling params to 32-bit for LP64 system.
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()).
1058
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1060
sfnt: Cast a character code to FT_UInt32 for LP64 system.
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.
1071
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1073
sfnt: Cast a character code to FT_UInt32 for LP64 system.
1075
* src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
1076
Insert the casts from unsigned long constant to
1079
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1081
sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
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.
1091
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1093
psaux: Handle the string length by FT_Offset variables.
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.
1105
* src/psaux/afmparse.h (afm_parser_next_key):
1108
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1110
pcf: Fix some data types mismatching with their sources.
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.
1116
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1118
pcf: Handle the string length by size_t variables.
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().
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
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.
1134
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1136
pcf: Fix some data types mismatching with their sources.
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.
1142
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1144
otvalid: Truncate the glyph index to 16-bit.
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().
1151
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1153
cache: Insert explict casts for LP64 systems.
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
1161
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1163
cache: Fix some data types mismatching with their sources.
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.
1170
* src/cache/ftccback.h (ft_inode_weight,
1171
ftc_snode_weight): Ditto.
1173
* src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
1175
* src/cache/ftcimage.c (ftc_inode_weight,
1176
FTC_INode_Weight): Ditto.
1178
* src/cache/ftcsbits.c (ftc_snode_weight,
1179
FTC_SNode_Weight): Ditto.
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
1186
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1188
XXX_cmap_encoding_char_next() return FT_UInt32 values.
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.
1195
* src/cff/cffmap.c (cff_cmap_encoding_char_next,
1196
cff_cmap_unicode_char_next): Ditto.
1198
* src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
1201
* src/psaux/t1cmap.c (t1_cmap_std_char_next,
1202
t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
1205
* src/psnames/psmodule.c (ps_unicodes_char_next):
1208
* src/winfonts/winfnt.c (fnt_cmap_char_next):
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.
1222
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1224
truetype: Extend TT_Face->num_locations for broken TTFs.
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.
1235
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1237
smooth: Fix some data types mismatching with their sources.
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.
1264
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1266
cff: Fix some data types mismatching with their sources.
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().
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
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().
1286
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1288
autofit: Fix some data types mismatching with their sources.
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
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.
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'.
1313
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1315
autofit: Count the size of the memory object by ptrdiff_t.
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.
1321
* src/autofit/aflatin.c (af_latin_hint_edges):
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.
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.
1333
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1335
autofit: Fix for unused variable `first'.
1337
* src/autofit/afhints.c (af_glyph_hints_reload): Insert
1338
FT_UNUSED() to hide the unused variable warning.
1340
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1342
Improve bitmap size or pixel variables for 16-bit systems.
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.
1348
* include/freetype/internal/fttrace.h: Add a tracer
1351
* src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
1352
invalid strength causing integer overflow on 16-bit
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.
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.
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
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.
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).
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.
1391
* src/cff/cffparse.c (cff_parse_cid_ros): Warn the
1392
supplement if it is truncated or rounded in cff_get_ros().
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.
1398
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1400
psaux: Prevent invalid arguments to afm_parser_read_vals().
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.
1406
* src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
1408
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1410
base: Prevent some overflows on LP64 systems.
1412
* src/base/ftadvance.c (FT_Get_Advances): Cast the
1413
unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
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.
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
1427
(FT_Face_GetCharsOfVariant): Check `variantSelector' is
1428
within unsigned 32-bit integer for LP64 platforms.
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'.
1436
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1438
cff: Cast the long variables to 32-bit for LP64 systems.
1440
* src/cff/cffdrivr.c (cff_get_advances): Insert
1441
explicit cast to modify a 32-bit flag by unsigned
1444
* src/cff/cffobjs.c (cff_face_init): Ditto.
1446
* src/cff/cffgload.c (cff_decoder_parse_charstrings):
1447
Replace the casts to FT_Long by the casts to FT_Int32
1450
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1452
pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
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.
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.
1465
* src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
1466
Reflect PCF_PropertyRec.value change.
1468
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1470
pcf: Fix some data types mismatching with their sources.
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
1479
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1481
bdf: Improve bdf_property_t.value names for LP64 platforms.
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.
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.
1495
* src/bdf/bdflib.c (_bdf_add_property): Reflect
1496
bdf_property_t.value change.
1498
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1500
bdf: Fix some data types mismatching with their sources.
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.
1509
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1511
autofit: Improve Unicode range definitions.
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.
1517
* src/autofit/aflatin.c (af_latin_uniranges): Ditto.
1519
* src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
1521
* src/autofit/afindic.c (af_indic_uniranges): Ditto.
1523
* src/autofit/afcjk.c (af_cjk_uniranges): Declare
1524
the ranges by AF_UNIRANGE_REC.
1526
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1528
smooth: Fix a data type mismatching with its source.
1530
* src/smooth/ftgrays.c (gray_sweep): The type of
1531
`area' is matched with the 3rd argument `area'
1534
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1536
smooth: Fix a data type mismatching with its source.
1538
* src/smooth/ftgrays.c (gray_render_line): The type
1539
of `area' is matched with TWorker.area.
1541
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1543
cache: Disable the legacy compatibility if 16-bit system.
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.
1551
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1553
cache: Check 32-bit glyph index on 16-bit systems.
1555
* src/cache/ftcbasic.c (ftc_basic_family_get_count):
1556
Check overflow caused by the face including large
1557
number of glyphs > 64k.
1559
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1561
cache: Fix some data types mismatching with their sources.
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}.
1568
* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
1569
of `_idx' is matched with FTC_Cache->{p,mask}.
1571
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1573
cache: Fix some data types mismatching with their sources.
1575
* src/cache/ftcsbits.c (ftc_snode_load): The types
1576
of `xadvance' and `yadvance' are matched with
1577
FT_GlyphSlot->advance.{x|y}.
1579
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1581
cache: Cast NULL to a required function type explicitly.
1583
* src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
1584
Insert explicit cast from NULL to function type.
1586
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1588
fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
1590
* include/freetype/fttypes.h (FT_MAKE_TAG):
1591
Cast the result to FT_Tag.
1593
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1595
psnames: Handle Unicode codepoints by FT_UInt32 variables.
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.
1602
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1604
psaux: Use size_t variable to pass the buffer size.
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.
1610
* src/psaux/psconv.h (PS_Conv_StringDecode,
1611
PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
1613
* src/psaux/psconv.c (PS_Conv_StringDecode,
1614
PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
1616
* src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
1618
* src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
1620
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1622
type1: Use size_t variable to pass the string length.
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
1629
* t1afm.c (t1_get_index): Ditto.
1631
* test_afm.c (dummy_get_index): Ditto.
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.
1637
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1639
cid: Fix some data types mismatching with their sources.
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.
1645
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1647
cff: Fix for unused variable `rest'.
1649
* src/cff/cffparse.c (cff_parse_real): Insert
1650
FT_UNUSED() to hide the unused variable warning.
1652
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1654
cff: Fix some data types mismatching with their sources.
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.
1660
* src/cff/cffobjs.c (cff_size_select): Ditto.
1661
(cff_size_request): Ditto.
1663
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1665
bdf: Fix some data types mismatching with their sources.
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.
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.
1685
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1687
sfnt: Count the size of the memory object by ptrdiff_t.
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.
1694
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1696
lzw: Count the size of the memory object by ptrdiff_t.
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
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.
1708
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1710
otvalid: Count the table size on memory by ptrdiff_t.
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
1717
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1719
otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
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.
1725
* src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
1728
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1730
ftobjs.c: Prevent an overflow in glyph index handling.
1732
* src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
1733
Improve the cast in comparison to avoid the truncation.
1735
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1737
Improve the variable types in raccess_make_file_name().
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
1745
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1747
ftpatent.c: Fix for unused variable `error'.
1749
* src/base/ftpatent.c (_tt_check_patents_in_range):
1750
Fix warning for unused variable `error'.
1752
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1754
type1: Check invalid string longer than PostScript limit.
1756
* src/type1/t1afm.c (t1_get_index): Check invalid string
1757
which exceeds the limit of PostScript string/name objects.
1759
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1761
gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
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.
1768
http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
1770
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1772
gzip: Distinguish PureC from TurboC on MSDOS.
1774
* src/gzip/zutil.c (zcalloc, zcfree): Enable only for
1777
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1779
gxvalid: Insert PureC pragma to allow unevaluated variables.
1781
* builds/atari/ATARI.H: Insert PureC pragma not to
1782
warn against set-but-unevaluated variable in gxvalid
1785
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1787
gxvalid: Pass the union by the pointer instead of the value.
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.
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.
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.
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.
1815
* src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
1816
gxv_bsln_LookupFmt4_transit): Ditto.
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.
1823
* src/gxvalid/gxvkern.c
1824
(gxv_kern_subtable_fmt1_entry_validate): Ditto.
1826
* src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
1827
gxv_lcar_LookupFmt4_transit): Ditto.
1829
* src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
1830
gxv_opbd_LookupFmt4_transit): Ditto.
1832
* src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
1833
gxv_prop_LookupFmt4_transit): Ditto.
1835
* src/gxvalid/gxvmort4.c
1836
(gxv_mort_subtable_type4_lookupval_validate): Ditto.
1838
* src/gxvalid/gxvmort0.c
1839
(gxv_mort_subtable_type0_entry_validate): Update
1840
from GXV_StateTable_GlyphOffsetDesc
1841
to GXV_StateTable_GlyphOffsetCPtr.
1843
* src/gxvalid/gxvmort1.c
1844
(gxv_mort_subtable_type1_entry_validate): Ditto.
1846
* src/gxvalid/gxvmort2.c
1847
(gxv_mort_subtable_type2_entry_validate): Ditto.
1849
* src/gxvalid/gxvmort5.c
1850
(gxv_mort_subtable_type5_entry_validate): Ditto.
1852
* src/gxvalid/gxvmorx2.c
1853
(gxv_morx_subtable_type2_entry_validate): Ditto.
1855
* src/gxvalid/gxvmorx5.c
1856
(gxv_morx_subtable_type5_entry_validate): Ditto.
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.
1864
* src/gxvalid/gxvmorx0.c
1865
(gxv_morx_subtable_type0_entry_validate): Update
1866
from GXV_XStateTable_GlyphOffsetDesc
1867
to GXV_XStateTable_GlyphOffsetCPtr.
1869
2009-07-29 Fabrice Bellet <fabrice@bellet.info>
1871
Fix Redhat bugzilla #513582 and Savannah bug #26849.
1873
* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
1876
2009-07-19 Werner Lemberg <wl@gnu.org>
1878
Document recent library changes.
1880
* docs/CHANGES: Do it.
1882
2009-07-17 Werner Lemberg <wl@gnu.org>
1884
Fix Savannah bug #23786.
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
1889
An anonymous guy suggested this change on Savannah, and it seems to
1890
be the right solution.
1892
2009-07-15 Werner Lemberg <wl@gnu.org>
1894
* docs/release: Updated.
1896
2009-07-15 Werner Lemberg <wl@gnu.org>
1898
README.CVS -> README.git
1900
* README.CVS: Renamed to...
1904
2009-07-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1906
Borland C++ compiler patch proposed by Mirco Babin.
1907
http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
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.
1919
2009-07-14 Werner Lemberg <wl@gnu.org>
1921
Fix Savannah bug #27026.
1923
* builds/win32/vc2005/freetype.sln: Use correct version number.
1925
2009-07-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1927
Add a script to check the undefined and unused trace macros.
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.
1936
2009-07-09 Werner Lemberg <wl@gnu.org>
1938
[ftraster] Make it compile again with -D_STANDALONE_.
1940
* src/raster/ftraster.c [_STANDALONE_]: Define
1941
FT_CONFIG_STANDARD_LIBRARY_H.
1943
Don't include `rastpic.h'.
1944
Define FT_DEFINE_RASTER_FUNCS.
1946
2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1948
smooth: Check glyph size by width/height, instead of pitch/height.
1949
Suggested by der Mouse <mouse@Rodents-Montreal.ORG>.
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.
1958
2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1960
Register 2 missing trace components, t1afm and ttbdf.
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
1966
2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1968
Register a trace component for ftgloadr.c.
1970
* include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ).
1971
The macro `trace_gloader' was already used in the initial version
1974
2009-07-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
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}.
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.
1993
2009-07-05 Bram Tassyns <bramt@enfocus.be>
1995
Improve compatibility to Acroread.
1996
This fixes Savannah bug #26944.
1998
* src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
1999
single CID mappings, make the lowest value win.
2001
2009-06-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
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().
2016
2009-06-28 Werner Lemberg <wl@gnu.org>
2018
[psaux, cff] Protect against nested `seac' calls.
2020
* include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
2021
(CFF_Decoder): Add `seac' boolean variable.
2023
* src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
2024
(t1operator_seac): Use it.
2026
2009-06-28 Werner Lemberg <wl@gnu.org>
2030
* src/psaux/t1decode.c (t1operator_seac)
2031
[FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
2034
2009-06-28 Werner Lemberg <wl@gnu.org>
2036
* devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
2038
2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2040
Add tools to preprocess the source files for AtariST PureC.
2042
* builds/atari/deflinejoiner.awk: New file to filter C source files
2043
for broken C preprocessor of PureC compiler.
2045
* builds/atari/gen-purec-patch.sh: New file to generate a patch set
2046
for PureC, by using deflinejoiner.awk.
2048
2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2050
Keep existing modules.cfg in the building tree.
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.
2056
2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2058
Filter --srcdir= option before invoking builds/unix/configure.
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.
2066
2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2068
Improve configure.raw for cross-building on exe-suffixed systems.
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
2074
2009-06-26 Werner Lemberg <wl@gnu.org>
2076
[truetype] Remove TT_SubGlyphRec.
2078
* src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
2080
2009-06-26 Werner Lemberg <wl@gnu.org>
2082
* */*: For warning messages, replace FT_ERROR with FT_TRACE0.
2084
FT_ERROR is now used only if a function produces a non-zero `error'
2087
Formatting, improving and harmonizing debug strings.
2089
2009-06-25 Werner Lemberg <wl@gnu.org>
2091
Provide version information better.
2093
* src/base/ftinit.c (FT_Init_FreeType): Don't set version here
2095
* src/base/ftobjs.c (FT_New_Library): Here.
2097
2009-06-22 Werner Lemberg <wl@gnu.org>
2099
Use 16.16 format while parsing Type 1 charstrings.
2100
This fixes Savannah bug #26867.
2102
Previously, only integers have been used which can lead to serious
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.
2114
* include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
2116
* include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
2117
T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.
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
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.
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.
2136
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
2137
[FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
2139
* src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
2140
* src/type1/t1objs.c (T1_Face_Init): Updated.
2142
2009-06-21 Werner Lemberg <wl@gnu.org>
2144
* src/pshinter/pshrec.c: Use PSH_Err_Ok.
2146
2009-06-21 Werner Lemberg <wl@gnu.org>
2148
Code beautification.
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.
2156
2009-06-20 Werner Lemberg <wl@gnu.org>
2158
Remove unused variables.
2160
* include/freetype/internal/psaux.h (T1_BuilderRec),
2161
src/cff/cffgload.h (CFF_Builder): Remove `last'.
2164
2009-06-20 Werner Lemberg <wl@gnu.org>
2166
[psaux] Check large integers while parsing charstrings.
2168
* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
2169
integers must be followed by a `div' operator.
2171
2009-06-20 Werner Lemberg <wl@gnu.org>
2173
[cff] Revert last change.
2175
* src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
2176
Next time, don't confuse Type 2 charstring opcodes with TOP DICT
2179
2009-06-20 Werner Lemberg <wl@gnu.org>
2181
* src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
2184
2009-06-20 Werner Lemberg <wl@gnu.org>
2186
* builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
2188
2009-06-19 Werner Lemberg <wl@gnu.org>
2190
[cff] Fix handling of reserved byte 0xFF.
2192
* src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
2193
0xFF is encountered.
2195
2009-06-19 Werner Lemberg <wl@gnu.org>
2197
Improve debug messages for Type1 charstrings.
2199
* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
2203
2009-06-19 Werner Lemberg <wl@gnu.org>
2205
More ftgray fixes for FT_STATIC_RASTER.
2206
Problems reported by suyu@cooee.cn.
2208
* src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
2211
2009-06-18 Werner Lemberg <wl@gnu.org>
2213
* docs/CHANGES: Updated.
2215
2009-06-18 Werner Lemberg <wl@gnu.org>
2217
Fix B/W rasterization of subglyphs with different drop-out modes.
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.
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.
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.
2239
* include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
2241
* src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
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
2249
(Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
2250
Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
2253
2009-06-16 Werner Lemberg <wl@gnu.org>
2255
Improve scan conversion rules 4 and 6.
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.
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.
2266
. The endpoint of the original contour forming a profile has a
2267
distance (`overshoot') less than half a pixel to the scanline.
2269
Note that the two additional conditions fix almost all differences
2270
to the Windows rasterizer, but some problematic cases remain.
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
2278
(Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
2281
2009-06-11 Werner Lemberg <wl@gnu.org>
2283
Increase precision for B/W rasterizer.
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.
2290
2009-06-08 Michael Zucchi <notzed@gmail.com>
2292
Handle FT_STROKER_LINECAP_BUTT.
2293
This fixes Savannah bug #26757.
2295
* src/base/ftstroke.c (ft_stroker_cap): Implement it.
2297
2009-06-07 Harald Fernengel <harry@kdevelop.org>
2299
Fix some potential out-of-memory crashes.
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.
2306
2009-06-07 Werner Lemberg <wl@gnu.org>
2309
Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
2311
* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
2312
Horizontal_Gray_Sweep_Drop): Do it.
2314
2009-06-04 Werner Lemberg <wl@gnu.org>
2316
Preparation for fixing scan conversion rules 4 and 6.
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.
2323
2009-05-29 James Cloos <cloos@jhcloos.com>
2325
Enable autohinting for glyphs rotated by multiples of 90°.
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.
2331
2009-05-28 Werner Lemberg <wl@gnu.org>
2333
Remove compiler warning.
2334
Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
2336
* src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
2337
`n_edges' into `#if' block.
2339
2009-05-28 Werner Lemberg <wl@gnu.org>
2341
Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
2342
Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
2344
* src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
2346
Simplify #ifdef logic.
2348
2009-05-22 Werner Lemberg <wl@gnu.org>
2350
Improve b/w rasterizer.
2351
Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>.
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.
2358
2009-05-19 Werner Lemberg <wl@gnu.org>
2360
Fix Savannah bug #26600.
2362
* src/type42/t42parse.c (t42_load_keyword): Handle
2363
T1_FIELD_LOCATION_FONT_EXTRA.
2365
2009-04-30 Werner Lemberg <wl@gnu.org>
2367
Document recent changes to ftview.
2369
* docs/CHANGES: Do it.
2371
2009-04-27 Werner Lemberg <wl@gnu.org>
2373
autohinter: Don't change digit widths if all widths are the same.
2374
This fixes FreeDesktop bug #21197.
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.
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.
2390
* src/autofit/aflatin2.c: Similar changes as with aflatin.c.
2392
* src/autofit/afloader.c (af_loader_load_g): Test digit width.
2394
* docs/CHANGES: Document it.
2396
2009-04-26 Werner Lemberg <wl@gnu.org>
2398
Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
2399
Problems reported by suyu@cooee.cn.
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.
2407
2009-04-21 Karl Berry <karl@gnu.org>
2411
* builds/unix/freetype2.m4: Only check PATH for freetype-config if
2412
we did not already find it from a prefix option.
2414
2009-04-05 Oran Agra <oran@monfort.co.il>
2416
Add #error to modules and files that do not support PIC yet.
2418
When FT_CONFIG_OPTION_PIC is defined the following files will
2420
* src/bdf/bdfdrivr.h
2421
* src/cache/ftcmanag.c
2422
* src/cid/cidriver.h
2423
* src/gxvalid/gxvmod.h
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
2434
2009-04-05 Oran Agra <oran@monfort.co.il>
2436
Position Independent Code (PIC) support in autofit module.
2438
* include/freetype/internal/autohint.h add macros to init
2439
instances of FT_AutoHinter_ServiceRec.
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.
2451
* src/autofit/aftypes.h add macros to init and declare
2452
instances of AF_ScriptClassRec.
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.
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.
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.
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.
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.
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.
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.
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.
2507
2009-04-05 Oran Agra <oran@monfort.co.il>
2509
Position Independent Code (PIC) support in pshinter module.
2511
* include/freetype/internal/pshints.h add macros to init
2512
instances of PSHinter_Interface.
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.
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.
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.
2533
2009-04-05 Oran Agra <oran@monfort.co.il>
2535
Position Independent Code (PIC) support in psnames module.
2537
* include/freetype/internal/services/svpscmap.h add macros to init
2538
instances of FT_Service_PsCMapsRec.
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.
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.
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.
2560
2009-04-05 Oran Agra <oran@monfort.co.il>
2562
Position Independent Code (PIC) support in raster renderer.
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
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.
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.
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.
2592
2009-04-05 Oran Agra <oran@monfort.co.il>
2594
Position Independent Code (PIC) support in smooth renderer.
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).
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.
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.
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.
2630
2009-04-05 Oran Agra <oran@monfort.co.il>
2632
Position Independent Code (PIC) support in cff driver.
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.
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.
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
2664
* src/cff/cffobjs.c Use macros from cffpic.h in order to access the
2665
structs allocated in cffcmap.c
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.
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.
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.
2682
2009-04-05 Oran Agra <oran@monfort.co.il>
2684
Position Independent Code (PIC) support in sfnt driver.
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.
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.
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'.
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
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.
2737
2009-04-05 Oran Agra <oran@monfort.co.il>
2739
Position Independent Code (PIC) support in truetype driver.
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.
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
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.
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.
2770
2009-04-05 Oran Agra <oran@monfort.co.il>
2772
Position Independent Code (PIC) support and infrastructure in base.
2774
* include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC
2775
* include/freetype/internal/ftobjs.h Add pic_container member to
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
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
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.
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
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.
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
2823
2009-04-05 Oran Agra <oran@monfort.co.il>
2825
Preparing changes in cff parser later needed for PIC version.
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'.
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.
2836
2009-04-05 Oran Agra <oran@monfort.co.il>
2838
Minor change in ftstroke.c.
2840
* src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
2841
`library' needed for PIC version.
2844
2009-04-04 Werner Lemberg <wl@gnu.org>
2846
ftnames.c -> ftsnames.c
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.
2852
2009-04-04 Werner Lemberg <wl@gnu.org>
2854
Add support for cmap type 13.
2856
* devel/ftoption.h, include/freetype/config/ftoption.h
2857
(TT_CONFIG_CMAP_FORMAT_13): New macro.
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
2864
(tt_cmap_classes): Register tt_cmap13_class_rec.
2866
* docs/CHANGES: Mention cmap 13 support.
2868
2009-04-01 Werner Lemberg <wl@gnu.org>
2870
Ignore empty contours in CFF glyphs.
2872
Problem reported by Albert Astals Cid <aacid@kde.org>.
2874
* src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
2875
t1_builder_close_contour.
2877
2009-03-21 Werner Lemberg <wl@gnu.org>
2879
Another redundant header inclusion.
2881
* src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
2883
2009-03-21 Werner Lemberg <wl@gnu.org>
2885
Remove redundant header inclusions.
2887
This covers many Ghostscript Coverity issues.
2891
2009-03-21 Werner Lemberg <wl@gnu.org>
2893
Fix Ghostscript Coverity issue #3904.
2895
* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
2896
invalid values of `runcnt'.
2898
2009-03-20 Werner Lemberg <wl@gnu.org>
2900
Fix `make multi' run.
2902
* src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
2904
2009-03-20 Werner Lemberg <wl@gnu.org>
2906
Fix Savannah bug #25923.
2908
* src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
2910
2009-03-20 Werner Lemberg <wl@gnu.org>
2912
Protect against too large glyphs.
2914
Problem reported by Tavis Ormandy <taviso@google.com>.
2916
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
2917
`pitch' or `height' to be larger than 0xFFFF.
2919
2009-03-20 Werner Lemberg <wl@gnu.org>
2920
Tavis Ormandy <taviso@google.com>
2922
Fix validation for various cmap table formats.
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.
2928
2009-03-20 Werner Lemberg <wl@gnu.org>
2930
Protect against malformed compressed data.
2932
* src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
2935
2009-03-20 Werner Lemberg <wl@gnu.org>
2937
Protect against invalid SID values in CFFs.
2939
Problem reported by Tavis Ormandy <taviso@google.com>.
2941
* src/cff/cffload.c (cff_charset_load): Reject SID values larger
2944
2009-03-19 Vincent Richomme <richom.v@free.fr>
2946
Update WinCE Visual C project files.
2948
* builds/wince/vc2005-ce/freetype.vcproj,
2949
builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
2952
2009-03-19 Werner Lemberg <wl@gnu.org>
2954
Remove unused Win32 code.
2956
* builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
2957
Since Win32 is handled separately this is no longer needed.
2959
2009-03-19 Vincent Richomme <richom.v@free.fr>
2961
Make `gzip' module compile on WinCE.
2963
* src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
2965
2009-03-19 Werner Lemberg <wl@gnu.org>
2967
Remove unused WinCE code.
2969
* builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
2970
Since WinCE is handled separately this is no longer needed.
2972
2009-03-16 Werner Lemberg <wl@gnu.org>
2974
docmaker: Don't ignore single-line code blocks.
2976
* src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
2979
2009-03-15 Steve Langasek <steve.langasek@canonical.com>
2981
Use __asm__ for declaring assembly instead of asm.
2983
* builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
2984
asm on arm, fixing a build failure on armel with -pedantic.
2986
2009-03-14 Werner Lemberg <wl@gnu.org>
2988
Fix valgrind warning.
2990
* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
2991
past the end of the frame.
2993
2009-03-12 Werner Lemberg <wl@gnu.org>
2995
* Version 2.3.9 released.
2996
=========================
2999
Tag sources with `VER-2-3-9'.
3001
2009-03-12 Werner Lemberg <wl@gnu.org>
3003
* builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
3005
2009-03-12 Werner Lemberg <wl@gnu.org>
3007
Fix some FreeType Coverity issues as reported for Ghostscript.
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'
3014
* src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead
3016
* src/base/ftrfork.c (raccess_guess_apple_generic): Check error
3017
value of `FT_Stream_Skip' (#3784).
3019
* src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
3022
* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing
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).
3028
* src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
3031
* src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff'
3033
* src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795).
3034
* src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794).
3036
* src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
3038
(_bdf_parse_start): Add comment (#3792).
3040
* src/raster/ftraster.c (Finalize_Profile_Table): Check
3041
`ras.fProfile' (#3791).
3043
* src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
3045
* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
3048
2009-03-11 Michael Toftdal <toftdal@gmail.com>
3050
Extend CID service functions to handle CID-keyed CFFs as CID fonts.
3052
* include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
3053
FT_Get_CID_From_Glyph_Index): New functions.
3055
* include/freetype/internal/services/svcid.h
3056
(FT_CID_GetIsInternallyCIDKeyedFunc,
3057
FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
3058
(CID Service): Use them.
3060
* src/base/ftcid.c: Include FT_CID_H.
3061
(FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index):
3064
* src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index):
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
3071
* src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index):
3073
(cid_service_cid_info): Add them.
3075
* docs/CHANGES: Updated.
3077
2009-03-11 Bram Tassyns <bramt@enfocus.be>
3079
Fix Savannah bug #25597.
3081
* src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
3082
to become larger than 9.
3084
2009-03-11 Werner Lemberg <wl@gnu.org>
3086
Fix Savannah bug #25814.
3088
* builds/unix/freetype2.in: As suggested in the bug report, move
3089
@LIBZ@ to `Libs.private'.
3091
2009-03-11 Werner Lemberg <wl@gnu.org>
3093
Fix Savannah bug #25781.
3094
We now simply check for a valid `offset', no longer handling `delta
3097
* src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for
3099
(tt_cmap4_set_range, tt_cmap4_char_map_linear,
3100
tt_cmap4_char_map_binary): Check offset.
3102
2009-03-11 Werner Lemberg <wl@gnu.org>
3104
* src/base/Jamfile: Fix handling of ftadvanc.c.
3105
Reported by Oran Agra <oran@monfort.co.il>.
3107
2009-03-10 Vincent Richomme <richom.v@free.fr>
3109
Restructure Win32 and Wince compiler support.
3111
* src/builds/win32: Remove files for WinCE.
3112
Move VC 2005 support to a separate directory.
3113
Add directory for VC 2008 support.
3115
* src/builds/wince: New directory hierarchy for WinCE compilers
3116
(VC 2005 and VC 2008).
3118
2009-03-09 Werner Lemberg <wl@gnu.org>
3120
More preparations for 2.3.9 release.
3122
* docs/CHANGES: Updated.
3124
* Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
3126
2009-03-09 Werner Lemberg <wl@gnu.org>
3128
* src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
3130
2009-03-09 Alexey Kryukov <anagnost@yandex.ru>
3132
Fix handling of EBDT formats 8 and 9 (part 2).
3134
This patch fixes the following problems in ttsbit0.c:
3136
. Bitmaps for compound glyphs were never allocated.
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.
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).
3150
Note that support for grayscale bitmaps (not necessarily compound) is
3151
completely broken in ttsbit0.c.
3153
* src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
3154
(tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
3156
(tt_sbit_decoder_load_compound): Reset metrics after loading
3160
2009-03-09 Werner Lemberg <wl@gnu.org>
3162
* builds/unix/configure.raw (version_info): Set to 9:20:3.
3164
2009-03-03 David Turner <david@freetype.org>
3166
Protect SFNT kerning table parser against malformed tables.
3168
This closes Savannah BUG #25750.
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.
3174
2009-03-03 David Turner <david@freetype.org>
3176
Update documentation and bump version number to 2.3.9.
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.
3182
2009-03-03 David Turner <david@freetype.org>
3184
Remove ABI-breaking field in public PS_InfoFontRec definition.
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.
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
3196
(T1_FontRec, CID_FaceRec): Add it.
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.
3205
* include/freetype/internal/services/svpsinfo.h (PsInfo service):
3206
Add `PS_GetFontExtraFunc' function typedef.
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.
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.
3220
2009-03-02 Alexey Kryukov <anagnost@yandex.ru>
3222
Fix handling of EBDT formats 8 and 9.
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
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.
3232
2009-02-23 Werner Lemberg <wl@gnu.org>
3234
Fix Savannah bug #25669.
3236
* src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
3238
* src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
3239
scaling factor for non-scalable fonts.
3241
* src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
3242
value to prevent incorrect scaling.
3244
* docs/CHANGES: Document it.
3246
2009-02-15 Matt Godbolt <matt@godbolt.org>
3248
Fix Savannah bug #25588.
3250
* builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
3253
2009-02-11 Werner Lemberg <wl@gnu.org>
3255
* src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
3256
Reported by David Bevan <dbevan@emtex.com>.
3258
2009-02-09 Werner Lemberg <wl@gnu.org>
3260
Fix Savannah bug #25495.
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.
3267
2009-02-04 Werner Lemberg <wl@gnu.org>
3269
Fix Savannah bug #25480.
3271
* builds/unix/freetype-config.in: For --ftversion, don't use $prefix
3274
2009-01-31 Werner Lemberg <wl@gnu.org>
3276
Minor docmaker improvements.
3278
* src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
3281
2009-01-25 Werner Lemberg <wl@gnu.org>
3283
Fix SCANCTRL handling in TTFs.
3284
Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
3286
* src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
3288
2009-01-23 Werner Lemberg <wl@gnu.org>
3290
Move FT_Get_FSType_Flags to a separate file.
3291
Problem reported by Mickey Gabel <mickey@monfort.co.il>.
3293
* src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
3294
* src/base/ftfstype.c: This new file.
3296
* modules.cfg (BASE_EXTENSION): Add ftfstype.c.
3298
* docs/INSTALL.ANY: Updated.
3300
* builds/mac/*.txt, builds/amiga/*makefile*,
3301
builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
3304
2009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3306
* builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
3307
messages ending without "\n".
3309
2009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3311
Fix Savannah bug #25347.
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()
3320
2009-01-19 Michael Lotz <mmlr@mlotz.ch>
3322
Fix Savannah bug #25355.
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.
3328
2009-01-18 Werner Lemberg <wl@gnu.org>
3330
Protect FT_Get_Next_Char.
3332
* src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
3333
change from 2008-07-22.
3335
Patch from Ronen Ghoshal <rghoshal@emtex.com>.
3337
2009-01-18 Werner Lemberg <wl@gnu.org>
3339
Implement FT_Get_Name_Index for SFNT driver.
3341
* src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
3342
(sfnt_service_glyph_dict): Use it.
3344
Problem reported by Truc Truong <tructv@necsv.com>.
3346
2009-01-18 Werner Lemberg <wl@gnu.org>
3348
* include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
3349
documentation. Problem reported by Truc Truong <tructv@necsv.com>.
3351
* docs/CHANGES: Updated.
3353
2009-01-14 Werner Lemberg <wl@gnu.org>
3355
* Version 2.3.8 released.
3356
=========================
3359
Tag sources with `VER-2-3-8'.
3361
* docs/VERSION.DLL: Update documentation and bump version number to
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/.
3371
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
3373
* builds/unix/configure.raw (version_info): Set to 9:19:3.
3375
* docs/release: Updated.
3377
2009-01-14 Werner Lemberg <wl@gnu.org>
3379
* builds/toplevel.mk (dist): Compress better.
3381
2009-01-13 Werner Lemberg <wl@gnu.org>
3383
* src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
3386
2009-01-13 Werner Lemberg <wl@gnu.org>
3388
Don't use stdlib.h and friends directly.
3389
Reported by Mickey Gabel <mickey@monfort.co.il>.
3391
* src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
3393
* src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
3394
s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
3396
* src/autofit/aftypes.h, src/autofit/afhints.c,
3397
src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
3399
* src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
3401
2009-01-12 Werner Lemberg <wl@gnu.org>
3403
Avoid compiler warnings.
3405
* */*: s/do ; while ( 0 )/do { } while ( 0 )/.
3406
Reported by Sean McBride <sean@rogue-research.com>.
3408
2009-01-12 Werner Lemberg <wl@gnu.org>
3410
Fix stdlib dependencies.
3412
Problem reported by Mickey Gabel <mickey@monfort.co.il>.
3414
* include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused.
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/.
3420
2009-01-11 Werner Lemberg <wl@gnu.org>
3422
* docs/formats.txt: Add link to PCF specification.
3424
* include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
3427
2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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):
3436
* include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
3439
2009-01-09 Daniel Zimmermann <netzimme@aol.com>
3441
* src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
3442
length check. From Savannah patch #6682.
3444
2009-01-09 Werner Lemberg <wl@gnu.org>
3446
Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
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>.
3453
2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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):
3462
* include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
3465
2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
3475
2009-01-07 Werner Lemberg <wl@gnu.org>
3477
* docs/CHANGES: Document new key `a' in ftdiff.
3479
2009-01-06 Werner Lemberg <wl@gnu.org>
3481
* autogen.sh: Don't use GNUisms while calling sed. Problem reported
3484
2009-01-06 Werner Lemberg <wl@gnu.org>
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
3490
2009-01-06 Diego Pettenò <flameeyes@gmail.com>
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.
3497
From Savannah patch #6712.
3499
2009-01-06 Sean McBride <sean@rogue-research.com>
3501
* src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
3503
* src/base/ftmac.c: Remove some #undefs.
3505
2008-12-26 Werner Lemberg <wl@gnu.org>
3507
Set `face_index' field in FT_Face for all font formats.
3509
* cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
3510
sfnt/sfobjs.c (sfnt_init_face): Do it.
3512
* docs/CHANGES: Document it.
3514
2008-12-22 Steve Grubb
3516
* builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
3517
Patch from Savannah bug #25151.
3519
2008-12-21 Werner Lemberg <wl@gnu.org>
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.
3526
2008-12-21 Werner Lemberg <wl@gnu.org>
3528
* src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
3530
Fix return value for non-PFR fonts. Both problems reported by Chi
3531
Nguyen <chint@necsv.com>.
3533
2008-12-21 anonymous
3535
FT_USE_MODULE declares things as:
3537
extern const FT_Module_Class
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.)
3543
This works with most C compilers (since those structs begin with an
3544
FT_Module_Class struct), but technically it's undefined behavior.
3546
To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
3549
All declarations that refer to the same object or function shall
3550
have compatible type; otherwise, the behavior is undefined.
3552
(And they are not compatible types.)
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.)
3560
Patch from Savannah bug #25133.
3562
* src/base/ftinit.c (FT_USE_MODULE): Include variable type.
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.
3568
2008-12-21 Hongbo Ni <hongbo@njstar.com>
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.
3575
2008-12-18 Werner Lemberg <wl@gnu.org>
3577
* docs/CHANGES: Updated.
3579
2008-12-18 Bevan, David <dbevan@emtex.com>
3581
Provide API for accessing embedding and subsetting restriction
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
3589
(FT_Get_FSType_Flags): New function declaration.
3591
* src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
3593
* src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
3594
(t42_keywords): Handle `FSType'.
3596
* include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
3598
2008-12-17 Werner Lemberg <wl@gnu.org>
3600
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
3601
macros so that copying the source code into an application works
3604
2008-12-17 Werner Lemberg <wl@gnu.org>
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.
3610
* docs/CHANGES: Document it.
3612
2008-12-10 Werner Lemberg <wl@gnu.org>
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.
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.
3623
Finally, tricky TrueType fonts always use the bytecode interpreter
3624
even if the patented code is used.
3626
* include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
3629
* src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
3630
semantics as described above.
3632
* src/truetype/ttobjs.c (tt_check_trickyness): New function, using
3634
(tt_face_init): This function, now simplified and updated to new
3637
* src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
3640
* docs/CHANGES: Document it.
3642
2008-12-09 Werner Lemberg <wl@gnu.org>
3644
Really fix Savannah bug #25010: An SFNT font with neither outlines
3645
nor bitmaps can be considered as containing space `glyphs' only.
3647
* src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
3648
a `glyf' table is missing.
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.
3654
* src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
3656
* src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
3657
nor bitmaps is scalable.
3659
2008-12-05 Werner Lemberg <wl@nu.org>
3661
* src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This
3662
fixes Savannah bug #21190 which also provides a basic patch.
3664
2008-12-05 Werner Lemberg <wl@nu.org>
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.
3671
Handle SFNT with neither outlines nor bitmaps. This fixes Savannah
3674
* src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
3675
outlines nor bitmaps.
3677
* src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
3678
is no table with glyphs.
3681
* src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
3684
2008-12-01 Werner Lemberg <wl@gnu.org>
3686
GDEF tables need `glyph_count' too for validation. Problem reported
3687
by Chi Nguyen <chint@necsv.com>.
3689
* src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
3690
(otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
3693
2008-11-29 Werner Lemberg <wl@gnu.org>
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
3702
2008-11-29 James Cloos <cloos@jhcloos.com>
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).
3708
2008-11-29 James Cloos <cloos@jhcloos.com>
3710
* src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
3711
whereas `design_points' is FT_Long*. Therefore, return blend rather
3714
2008-11-27 Werner Lemberg <wl@gnu.org>
3716
* src/cff/cffparse.c (cff_parse_real): Handle more than nine
3717
significant digits correctly. This fixes Savannah bug #24953.
3719
2008-11-25 Daniel Zimmermann <netzimme@aol.com>
3721
* src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
3722
before the NULL check. From Savannah patch #6681.
3724
2008-11-24 Werner Lemberg <wl@gnu.org>
3726
Fixes from the gnuwin32 port.
3728
* src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
3730
* src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
3732
* src/psaux/psobjs.c (ps_table_add): Check `length'.
3734
2008-11-15 Werner Lemberg <wl@gnu.org>
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>.
3741
2008-11-12 Tor Andersson <tor.andersson@gmail.com>
3743
* src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
3744
This fixes Savannah bug #24819.
3746
2008-11-08 Werner Lemberg <wl@gnu.org>
3748
* src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
3749
since OpenType version 1.5 has been released.
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.
3766
2008-11-08 Wenlin Institute <wenlin@wenlin.com>
3768
* src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
3769
slot->internal == NULL. Reported by Graham Asher.
3771
2008-11-08 Werner Lemberg <wl@gnu.org>
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.
3779
2008-11-05 Werner Lemberg <wl@gnu.org>
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.
3787
* docs/CHANGES: Document it.
3789
2008-11-03 Werner Lemberg <wl@gnu.org>
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>.
3796
2008-10-15 Graham Asher <graham.asher@btinternet.com>
3798
* src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
3800
2008-10-15 David Turner <david@freetype.org>
3802
* src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
3803
meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
3805
2008-10-14 Werner Lemberg <wl@gnu.org>
3807
* src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
3808
Suggested by Bram Tassyns in Savannah patch #6651.
3810
2008-10-12 Graham Asher <graham.asher@btinternet.com>
3812
* src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
3813
`underline_position'.
3815
2008-10-12 Werner Lemberg <wl@gnu.org>
3817
* docs/CHANGES: Updated.
3819
2008-10-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3821
Fix Savannah bug #24468.
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.
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*.
3833
2008-10-08 John Tytgat <John.Tytgat@esko.com>
3835
Fix Savannah bug #24485.
3837
* src/type1/t1load.c (parse_charstrings): Assure that we always have
3840
2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3842
* src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
3843
* builds/mac/ftmac.c: Ditto.
3845
2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3847
* include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
3848
* src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
3850
2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
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.
3864
2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
3873
2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3875
* src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
3876
initialization of *is_sfnt_cid.
3878
2008-10-04 Werner Lemberg <wl@gnu.org>
3880
* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
3883
2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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'.
3898
2008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
3903
2008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
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
3920
(ft_lookup_PS_in_sfnt): Ditto.
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.
3930
2008-10-02 Bram Tassyns <bramt@enfocus.be>
3932
* src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This
3933
fixes Savannah bug #24430.
3935
2008-10-02 Werner Lemberg <wl@gnu.org>
3937
* builds/freetype.mk (BASE_H): Rename to...
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.
3947
2008-10-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
3954
* src/base/rule.mk: Add ftbase.h.
3956
* src/base/ftobjs.c: Include ftbase.h.
3957
(memory_stream_close): Build on any platform when old MacOS font
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.
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
3971
(ft_lookup_PS_in_sfnt): Ditto.
3973
2008-10-02 Werner Lemberg <wl@gnu.org>
3975
* src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
3976
if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
3978
2008-10-01 Werner Lemberg <wl@gnu.org>
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.
3987
2008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
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
3999
2008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4006
2008-09-22 Werner Lemberg <wl@gnu.org>
4008
* src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
4009
cff_decoder_parse_charstrings): Handle (invalid)
4010
`callothersubr' and `pop' instructions.
4012
2008-09-22 John Tytgat <John.Tytgat@esko.com>
4014
Fix Savannah bug #24307.
4016
* include/freetype/internal/t1types.h (CID_FaceRec),
4017
src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
4019
2008-09-21 Werner Lemberg <wl@gnu.org>
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>.
4025
2008-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4027
* src/otvalid/Jamfile: Add missing target `otvmath' for multi build
4029
* src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
4032
2008-09-20 Werner Lemberg <wl@gnu.org>
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>.
4038
* docs/CHANGES: Document it.
4040
2008-09-20 Werner Lemberg <wl@gnu.org>
4042
* src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
4043
(FT_Outline_Decompose): Decorate with tracing messages.
4045
* src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
4046
FT_DEBUG_LEVEL_TRACE.
4047
[_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
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.
4055
(gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
4057
(gray_dump_cells): Make it `static void'.
4058
(gray_convert_glyph): Use FT_TRACE7.
4060
(FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
4063
* src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
4066
* docs/formats.txt: Updated.
4068
2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4070
* src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
4071
CID-keyed font support.
4072
* builds/mac/ftmac.c: Ditto.
4074
2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4081
2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
4089
* docs/CHANGES: Add note about the current status of sfnt-wrapped
4090
Type1 and sfnt-wrapped CID-keyed font support.
4092
2008-09-18 Werner Lemberg <wl@gnu.org>
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.
4098
2008-09-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4100
* src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
4101
in ttags.h instead of numerical value 0x4F54544FL.
4103
2008-09-16 Werner Lemberg <wl@gnu.org>
4105
* src/cff/cffgload.h, src/cff/cffgload.c
4106
(cff_decoder_set_width_only): Eliminate function call.
4108
2008-09-15 George Williams <gww@silcom.com>
4110
Fix Savannah bug #24179, reported by Bram Tassyns.
4112
* src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
4115
2008-09-15 Werner Lemberg <wl@gnu.org>
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.
4121
* src/psnames/pstables.h: Regenerated.
4123
2008-09-13 Werner Lemberg <wl@gnu.org>
4125
* autogen.sh, builds/unix/configure.raw,
4126
include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
4129
* include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
4130
include/freetype/ftlcdfil.h: Protect against FreeType 1.
4131
Some other minor fixes.
4133
* devel/ftoption.h: Synchronize with
4134
include/freetype/config/ftoption.h.
4136
2008-09-11 Werner Lemberg <wl@gnu.org>
4138
* src/base/ftbase.c: Include ftadvanc.c.
4140
2008-09-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
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
4153
New option --{enable|disable}-biarch-config is added to define or
4154
undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
4156
2008-09-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
4163
2008-09-01 david turner <david@freetype.org>
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.
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.
4176
Use of assembler code can now be controlled with
4177
FT_CONFIG_OPTION_NO_ASSEMBLER.
4179
* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
4180
[!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
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
4187
[FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
4188
(FT_MULFIX_INLINED): New macro.
4190
* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
4191
FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
4193
* include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
4195
* src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
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).
4204
* src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
4206
* include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
4207
* include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
4209
* include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
4210
`flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
4213
* src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
4216
* src/cff/cffdrivr.c (cff_get_advances): New function.
4217
(cff_driver_class): Register it.
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.
4223
* src/cff/cffgload.h (cff_decoder): New element `width_only'.
4224
(cff_decoder_set_width_only): New declaration.
4226
* src/truetype/ttdriver.c (tt_get_advances): New function.
4227
(tt_driver_class): Register it.
4229
* src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
4230
(TT_Get_HMetrics, TT_Get_VMetrics): This.
4232
* src/truetype/ttgload.h: Declare them.
4234
* src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
4236
* src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
4239
Add checks for minimum version of the `autotools' stuff.
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
4246
* README.CVS: Document it.
4248
2008-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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' ).
4253
2008-08-28 Werner Lemberg <wl@gnu.org>
4255
* src/type1/t1load.c (parse_encoding): Protect against infinite
4256
loop. This fixes Savannah bug #24150 (where a patch has been posted
4259
2008-08-23 Werner Lemberg <wl@gnu.org>
4261
* src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
4262
(afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug
4265
2008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
4272
(FT_Open_Face): Ditto (stream).
4273
(load_face_in_embedded_rfork): Ditto (stream2).
4275
2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4284
2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4290
2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4297
2008-08-04 Werner Lemberg <wl@gnu.org>
4299
* src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes
4300
Savannah bug #23995.
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'.
4307
2008-08-04 Bram Tassyns <bramt@enfocus.be>
4309
* src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
4310
resulted in incorrect scaling. This fixes Savannah bug #23973.
4312
2008-08-04 Werner Lemberg <wl@gnu.org>
4314
Be more tolerant w.r.t. invalid entries in SFNT table directory.
4316
* src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
4318
Add more trace messages.
4319
(tt_face_load_font_dir): Updated.
4321
2008-07-30 Werner Lemberg <wl@gnu.org>
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:
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.
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.
4337
Since there are CFF subfonts (embedded in PDFs) which rely on
4338
Acroread's behaviour, FreeType now does the same.
4340
2008-07-27 Werner Lemberg <wl@gnu.org>
4342
Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This
4343
fixes Savannah bug #23940.
4345
* src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
4346
(EXTRA_GLYPH_LIST_SIZE): This.
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.
4354
(ft_wgl_extra_glyph_name_offsets): Rename to...
4355
(ft_extra_glyph_name_offsets): This.
4358
(ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
4359
(ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
4361
(ps_unicodes_init): Updated.
4363
2008-07-26 Werner Lemberg <wl@gnu.org>
4365
* src/cff/cffgload.c (cff_decoder_prepare,
4366
cff_decoder_parse_charstrings): Improve debug output.
4368
2008-07-22 Martin McBride <mmcbride@emtex.com>
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.
4375
2008-07-16 Jon Foster <Jon.Foster@cabot.co.uk>
4377
* src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
4379
* src/base/ftcalc.c (FT_MulFix): Fix portability issue.
4381
* src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
4382
Fix compiler warning.
4384
2008-07-16 Werner Lemberg <wl@gnu.org>
4386
Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
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.
4392
* src/cff/cffobjs.c (cff_face_init): Updated.
4393
Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
4395
* docs/CHANGES: Updated.
4397
2008-07-09 Werner Lemberg <wl@gnu.org>
4399
* src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
4400
where num_locations < num_glyphs. Problem reported by Ding Li.
4402
2008-07-05 Werner Lemberg <wl@gnu.org>
4404
Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
4405
newer. This fixes Savannah bug #23648.
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
4413
2008-07-04 Werner Lemberg <wl@gnu.org>
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.
4419
2008-06-29 Werner Lemberg <wl@gnu.org>
4421
* Version 2.3.7 released.
4422
=========================
4425
Tag sources with `VER-2-3-7'.
4427
* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
4428
version number to 2.3.7.
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/.
4437
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
4439
* builds/unix/configure.raw (version_info): Set to 9:18:3.
4441
* docs/release: Updated.
4443
2008-06-28 Werner Lemberg <wl@gnu.org>
4445
* src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
4446
* src/ftcalc.c: Here. This fixes Savannah bug #23729.
4448
2008-06-27 Werner Lemberg <wl@gnu.org>
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.)
4455
2008-06-26 Werner Lemberg <wl@gnu.org>
4457
Improve navigation in API reference.
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):
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.
4472
Convert ~ to non-breakable space.
4474
* src/tools/docmaker/tohtml.py (make_html_para): Implement it.
4475
Update header files accordingly.
4477
2008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
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.
4488
2008-06-24 Werner Lemberg <wl@gnu.org>
4490
* src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
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.
4497
2008-06-24 Werner Lemberg <wl@gnu.org>
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).
4503
2008-06-22 Werner Lemberg <wl@gnu.org>
4505
* src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
4508
* docs/CHANGES: Updated.
4510
2008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4521
2008-06-21 Werner Lemberg <wl@gnu.org>
4523
Enable access to the various dropout rules of the B&W rasterizer.
4524
Pass dropout rules from the TT bytecode interpreter to the
4527
* include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
4528
FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline.
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.
4536
* src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
4537
mode to FT_OUTLINE_XXX flags.
4539
* src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
4541
2008-06-19 Werner Lemberg <wl@gnu.org>
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.
4549
* docs/CHANGES: Updated.
4551
2008-06-19 Werner Lemberg <wl@gnu.org>
4553
* src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
4556
2008-06-18 Werner Lemberg <wl@gnu.org>
4558
* src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
4559
Reported by Peter Weilbacher <mozilla@weilbacher.org>.
4561
* docs/CHANGES: Updated.
4563
2008-06-15 George Williams <gww@silcom.com>
4565
* src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
4566
`valid->extra2' to 1. This is undocumented in the OpenType 1.5
4569
2008-06-15 Werner Lemberg <wl@gnu.org>
4571
* src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
4572
from clobbering. Patch from Savannah bug report #23556.
4574
* docs/CHANGES: Document it.
4576
2008-06-10 Werner Lemberg <wl@gnu.org>
4578
* autogen.sh: Add option `--install' to libtoolize.
4580
2008-06-10 Werner Lemberg <wl@gnu.org>
4582
* Version 2.3.6 released.
4583
=========================
4586
Tag sources with `VER-2-3-6'.
4588
* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
4589
version number to 2.3.6.
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/.
4598
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
4600
* builds/unix/configure.raw (version_info): Set to 9:17:3.
4603
* include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
4605
* src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
4608
* src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
4609
* src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
4611
2008-06-10 Werner Lemberg <wl@gnu.org>
4613
* src/base/ftobjs.c (open_face): Check `clazz->init_face' and
4616
2008-06-09 VaDiM <s_sliva@rambler.ru>
4618
Support debugging on WinCE. From Savannah patch #6536; this fixes
4621
* builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
4622
as a replacement for OutputDebugStringA (which WinCE doesn't have).
4624
(ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
4625
environment variables.
4627
2008-06-09 Werner Lemberg <wl@gnu.org>
4629
* README.CVS: Updated.
4631
* builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
4632
for newer versions of autoconf and friends.
4634
2008-06-08 Werner Lemberg <wl@gnu.org>
4636
* src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
4637
`private_len' unsigned.
4639
* src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
4641
(T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
4644
* src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
4647
* src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
4652
* src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
4655
* src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
4659
* src/sfnt/ttload.c (tt_face_load_max_profile): Limit
4660
`maxTwilightPoints'.
4662
2008-06-06 Werner Lemberg <wl@gnu.org>
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.
4667
2008-06-03 Werner Lemberg <wl@gnu.org>
4669
* include/freetype/ftcache.h (FTC_FaceID): Change type back to
4670
FT_Pointer. Reported by Ian Britten <britten@caris.com>.
4672
2008-06-02 Werner Lemberg <wl@gnu.org>
4674
Emit header info for defined FreeType objects in reference.
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.
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.
4687
2008-06-01 Werner Lemberg <wl@gnu.org>
4689
* include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
4690
FT_INCREMENTAL_H): Added.
4692
2008-05-28 Werner Lemberg <wl@gnu.org>
4694
* src/tools/docmaker/sources.py (SourceBlock::__init__): While
4695
looking for markup tags, return immediately as soon a single one is
4698
2008-05-28 Werner Lemberg <wl@gnu.org>
4700
* src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
4701
original, unscaled input values. Confirmed by Greg Hitchcock from
4704
2008-05-27 Werner Lemberg <wl@gnu.org>
4706
* src/tools/docmaker/tohtml.py (block_footer_start,
4707
block_footer_middle): Beautify output.
4709
2008-05-25 Werner Lemberg <wl@gnu.org>
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.
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.
4721
2008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4727
2008-05-18 Werner Lemberg <wl@gnu.org>
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.
4734
2008-05-18 Werner Lemberg <wl@gnu.org>
4736
* src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
4737
This fixes Savannah bug #23280.
4739
* docs/CHANGES: Updated.
4741
2008-05-18 David Turner <david@freetype.org>
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.
4748
* src/type1/t1load.c: Add missing comment.
4750
2008-05-17 Sam Hocevar <samh>
4752
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
4753
glyphs correctly. Patch from Savannah bug #23277.
4755
2008-05-16 Werner Lemberg <wl@gnu.org>
4757
* docs/CHANGES: Updated.
4759
2008-05-16 Sergey Tolstov <stolstov@esri.com>
4761
Improve support for WGL4 encoded fonts.
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.
4769
2008-05-15 Werner Lemberg <wl@gnu.org>
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).
4775
Reported by Martin McBride.
4777
2008-05-15 Werner Lemberg <wl@gnu.org>
4779
* builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
4781
2008-05-15 Werner Lemberg <wl@gnu.org>
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...
4787
Reported by Martin McBride.
4789
2008-05-14 Werner Lemberg <wl@gnu.org>
4791
Finish fix of scaling bug of CID-keyed CFF subfonts.
4793
* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
4794
(FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
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).
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
4811
* src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
4813
* src/cff/cffgload.c (cff_builder_init): Updated.
4814
(cff_decoder_prepare): Handle hints globals for subfonts.
4816
(cff_slot_load): Handling scaling of subfonts properly.
4818
* src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
4819
(cff_parse_font_matrix): Use it.
4821
* src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
4824
* docs/CHANGES: Document it.
4826
2008-05-13 Werner Lemberg <wl@gnu.org>
4828
* src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
4829
Handle case `face_index < 0'.
4830
* docs/CHANGES: Document it.
4832
2008-05-04 Werner Lemberg <wl@gnu.org>
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.
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.
4842
(cff_parse_fixed_thousand): Replace with...
4843
(cff_parse_fixed_scaled): This function. Update all callers.
4845
2008-05-03 Werner Lemberg <wl@gnu.org>
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.
4851
2008-04-26 Werner Lemberg <wl@gnu.org>
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.
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.
4861
2008-04-14 Werner Lemberg <wl@gnu.org>
4863
* src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
4864
`FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
4867
2008-04-13 Werner Lemberg <wl@gnu.org>
4869
* src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
4870
integer part is zero.
4872
2008-04-01 Werner Lemberg <wl@gnu.org>
4874
Fix compilation with g++ 4.1 (with both `single' and `multi'
4877
* src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
4878
which is crossed by a `goto'.
4880
* src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
4882
2008-03-31 Werner Lemberg <wl@gnu.org>
4884
Fix support for subsetted CID-keyed CFFs.
4886
* include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
4887
FT_IS_CID_KEYED): New macros.
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.
4893
* docs/CHANGES: Document it.
4896
Fix CFF font matrix calculation and improve precision.
4898
* src/cff/cffparse.c (cff_parse_real): Increase precision if integer
4900
(cff_parse_font_matrix): Simplify computation of `units_per_em';
4901
this prevents overflow also.
4904
Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
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.
4911
2008-03-23 Werner Lemberg <wl@gnu.org>
4913
Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
4915
* builds/compiler/visualc.mk (CFLAGS): Remove /W5.
4916
(ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
4918
2008-03-21 Laurence Darby <ldarby>
4920
* src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
4921
Savannah bug #22675.
4923
2008-03-13 Derek Clegg <dclegg@apple.com>
4925
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
4926
Patch from Savannah bug #22541.
4928
2008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
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'.
4934
2008-02-29 Wermer Lemberg <wl@gnu.org>
4936
* docs/CHANGES: Updated.
4940
Add build support for symbian platform. From Savannah bug #22440.
4942
* builds/symbian/*: New files.
4944
2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4952
* builds/mac/ftmac.c: Ditto.
4954
2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4963
2008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
4965
* src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
4966
from Savannah bug #22356.
4968
2008-02-17 Jonathan Blow <jon@number-none.com>
4970
* src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4971
Check for valid callback pointers.
4973
2008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4984
* builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
4986
2008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
4992
* builds/unix/configure.raw: Print warning if configure is executed
4993
with options to specify Carbon functionalities explicitly.
4995
* docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
4996
included automatically and manual replacement is required.
4998
2008-02-11 Werner Lemberg <wl@gnu.org>
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
5005
2008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
5007
* src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
5008
mention intra-pixel algorithm.
5010
* include/freetype/freetype.h (FT_Render_Mode): Mention that
5011
FT_Library_SetLcdFilter can be used to reduce fringes.
5013
2008-01-16 Werner Lemberg <wl@gnu.org>
5015
* src/raster/ftraster.c (ft_black_render): Check `outline' before
5016
using it. Reported by Allan Yang.
5018
2008-01-12 Werner Lemberg <wl@gnu.org>
5020
* src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
5022
2008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
5024
* src/raster/ftraster.c (ft_black_init)
5025
[FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
5027
2008-01-10 Werner Lemberg <wl@gnu.org>
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
5034
2008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5036
Formatting suggested by Sean McBride.
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.
5043
2007-12-30 Werner Lemberg <wl@gnu.org>
5045
* src/smooth/ftgrays.c (gray_raster_render): Check `outline'
5048
2007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
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.
5059
* src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
5060
sort FT_RFork_Ref by their reference IDs.
5062
(FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
5063
sorted by reference ID.
5065
2007-12-14 Werner Lemberg <wl@gnu.org>
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).
5072
2007-12-06 Fix <4d876b82@gmail.com>
5074
Pass options from one configure script to another as-is (not
5075
expanded). This is needed for options like
5076
--includedir='${prefix}/include'.
5078
* builds/unix/detect.mk, configure: Prevent argument expansion in
5079
call to the (real) `configure' script.
5081
2007-12-06 Werner Lemberg <wl@gnu.org>
5083
* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
5084
TT_USE_BYTECODE_INTERPRETER isn't defined.
5086
2007-12-06 Werner Lemberg <wl@gnu.org>
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.
5092
* src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
5094
(cff_argument_counts): Ditto.
5096
(cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
5097
and 13 (hsbw) which are invalid in Type 2 charstrings.
5099
2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
5110
2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5112
* builds/unix/configure.raw: Improve the compile tests to search
5114
* builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
5115
proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
5117
2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5119
The documents and comments for Mac OS X are improved by Sean
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.
5127
2007-12-04 Werner Lemberg <wl@gnu.org>
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.
5133
2007-12-04 Graham Asher <graham.asher@btinternet.com>
5135
* src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
5136
concatenate error codes.
5138
2007-12-04 Sean McBride <sean@rogue-research.com>
5140
* src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
5143
2007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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().
5155
* src/base/ftobjs.c (IsMacBinary): Return error
5156
FT_Err_Invalid_Stream_Operation immediately when NULL stream is
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.
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.
5173
2007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5175
Fix for Carbon incompatibilities since Mac OS X 10.5,
5176
proposed by Sean McBride.
5178
* doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
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.
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>.
5190
Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
5191
genuine macro PATH_MAX.
5193
Add fallback macro for kATSOptionFlagsUnRestrictedScope which
5194
is not found in Mac OS X 10.0.
5196
Multi-character constants ('POST', 'sfnt' etc) are replaced by
5197
64bit constants calculated by FT_MAKE_TAG() macro.
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.
5204
(FT_ATSFontGetFileReference): If build target is only the systems
5205
10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
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
5211
(FT_New_Face_From_FSSpec): Ditto.
5213
2007-11-01 Werner Lemberg <wl@gnu.org>
5215
* src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
5216
fixes Savannah bug #21485.
5218
2007-10-29 Daniel Svoboda <dasvo@planeta@cz>
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
5225
2007-10-21 Werner Lemberg <wl@gnu.org>
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
5231
Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
5234
2007-10-20 Werner Lemberg <wl@gnu.org>
5236
* src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
5237
Add `td.left' element to CSS.
5238
(toc_section_enter): Use it.
5240
2007-10-18 David Turner <david@freetype.org>
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:
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
5252
Update documentation accordingly.
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
5260
(TT_CMap14Rec): Provide array and auxiliary data for result.
5261
(tt_cmap14_done, tt_cmap14_ensure): New functions.
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.
5270
2007-10-15 George Williams <gww@silcom.com>
5272
Add support for cmap type 14.
5274
* devel/ftoption.h, include/freetype/config/ftoption.h
5275
(TT_CONFIG_CMAP_FORMAT_14): New macro.
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.
5284
* include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
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
5292
* src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
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.
5299
* src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
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.
5313
* docs/CHANGES: Mention cmap 14 support.
5315
2007-10-01 Werner Lemberg <wl@gnu.org>
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.
5321
2007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
5330
2007-08-18 Werner Lemberg <wl@gnu.org>
5332
* src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
5333
by Imran Yousaf. Fixes Savannah bug #20773.
5335
(otv_Lookup_validate): Correct handling of LookupType. Found by
5336
Imran Yousaf. Fixes Savannah bug #20782.
5338
2007-08-17 George Williams <gww@silcom.com>
5340
* src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
5343
2007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5345
* builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
5346
${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
5349
2007-08-11 George Williams <gww@silcom.com>
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.
5355
(otv_ClassDef_validate): Check `StartGlyph'.
5357
* src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
5360
* src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
5362
(otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
5365
2007-08-08 Werner Lemberg <wl@gnu.org>
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.
5372
* include/freetype/internal/fttrace.h: Define `trace_otvmath'.
5374
* src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
5376
* docs/CHANGES: Updated.
5378
2007-08-08 George Williams <gww@silcom.com>
5380
Add `MATH' validating support to otvalid module.
5382
* include/freetype/tttags.h (TTAG_MATH): New macro.
5383
* include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
5384
(FT_VALIDATE_OT): Updated.
5386
* src/otvalid/otmath.c: New file.
5388
* src/otvalid/otvalid.c: Include otvmath.c.
5389
* src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
5391
2007-08-04 Werner Lemberg <wl@gnu.org>
5393
* builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
5394
Fixes Savannah bug #20686.
5396
2007-08-03 Werner Lemberg <wl@gnu.org>
5398
* src/psnames/psmodule.c: Fix usage of
5399
FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
5401
2007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
5409
2007-07-28 Werner Lemberg <wl@gnu.org>
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.
5415
2007-07-27 Werner Lemberg <wl@gnu.org>
5417
* src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
5418
first usage. From Savannah patch #6115.
5420
2007-07-16 Werner Lemberg <wl@gnu.org>
5422
* docs/CHANGES: Updated.
5424
2007-07-16 Derek Clegg <dclegg@apple.com>
5426
Add new service for getting the ROS from a CID font.
5428
* include/freetype/config/ftheader.h (FT_CID_H): New macro.
5429
* include/freetype/ftcid.h: New file.
5431
* include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
5432
* include/freetype/internal/services/svcid.h: New file.
5434
* src/base/ftcid.c: New file.
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.
5441
* src/cff/cffload.c (cff_font_done): Free registry and ordering.
5443
* src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
5445
* modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
5447
2007-07-11 Derek Clegg <dclegg@apple.com>
5449
Add support for postscript name service to CFF driver.
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.
5456
2007-07-07 Werner Lemberg <wl@gnu.org>
5458
* src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
5459
`target'. Reported by Sean McBride.
5461
2007-07-06 Werner Lemberg <wl@gnu.org>
5463
* src/pfr/pfrcmap.c: Include pfrerror.h.
5465
* src/autofit/afindic.c: Add some external declarations to pacify
5466
`make multi' compilation.
5468
* src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
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.
5477
* docs/release: Mention test compilation targets.
5479
2007-07-04 Werner Lemberg <wl@gnu.org>
5481
* docs/PROBLEMS: Mention that some PS based fonts can't be
5482
handled correctly by FreeType.
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.
5488
* src/gxvalid/gxvmort1.c
5489
(gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
5491
2007-07-03 Werner Lemberg <wl@gnu.org>
5493
* src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
5494
`round' to pacify compiler.
5496
2007-07-02 Werner Lemberg <wl@gnu.org>
5499
* Version 2.3.5 released.
5500
=========================
5503
Tag sources with `VER-2-3-5'.
5505
* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
5506
version number to 2.3.5.
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/.
5515
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
5517
* builds/unix/configure.raw (version_info): Set to 9:16:3.
5519
2007-07-01 David Turner <david@freetype.org>
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.
5525
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
5526
that created distortions in the bytecode interpreter results.
5528
2007-06-30 David Turner <david@freetype.org>
5530
* src/truetype/ttinterp.c (Ins_IUP): Add missing variable
5533
* src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
5534
infinite loop in the case of degenerate fonts.
5536
2007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
5538
Add autofit module for Indic scripts. This currently just reuses
5539
the CJK-specific functions.
5541
* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
5543
* devel/ftoption.h: Synchronize with
5544
include/freetype/config/ftoption.h.
5546
* src/autofit/afindic.c, src/autofit/afindic.h: New files.
5548
* src/autofit/afglobal.c, src/autofit/aftypes.h,
5549
src/autofit/autofit.c: Updated.
5551
* src/autofit/Jamfile (_sources), * src/autofit/rules.mk
5552
(AUTOF_DRV_SRC): Updated.
5554
2007-06-23 David Turner <david@freetype.org>
5556
* src/truetype/ttgload.c (TT_Load_Simple): Fix change from
5557
2007-06-16 that prevented the TrueType module from loading most
5560
2007-06-20 Werner Lemberg <wl@gnu.org>
5562
* src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
5565
2007-06-19 Werner Lemberg <wl@gnu.org>
5567
* src/type1/t1load.c (parse_encoding): Handle one more error.
5569
2007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
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
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.
5582
2007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
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.
5603
2007-06-18 Werner Lemberg <wl@gnu.org>
5605
* src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
5607
(ps_parser_to_bytes): Fix error message.
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.
5615
2007-06-18 Werner Lemberg <wl@gnu.org>
5617
* src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
5619
(ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
5621
(ps_parser_load_field_table): Use `fields->array_max' instead of
5622
T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
5624
* src/cff/cffgload.c (cff_decoder_prepare): Fix change from
5627
2007-06-17 Werner Lemberg <wl@gnu.org>
5629
* src/tools/ftrandom.c (font_size): New global variable.
5631
(main): Handle new option `--size' to set `font_size'.
5634
* src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
5636
(FNT_Load_Glyph): Protect against invalid bitmap width.
5638
2007-06-16 David Turner <david@freetype.org>
5640
* src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
5641
Prevent integer overflows when rendering very large outlines.
5643
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
5644
well-formedness of the contours array when loading a glyph.
5646
* src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
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.
5653
2007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
5655
* src/winfonts/winfnt.h: Add necessary structures for PE resource
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.
5664
* src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
5665
loading bitmap .fon files in PE format.
5667
2007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
5669
* builds/win32/ftdebug.c: Unify debug level handling with other
5672
2007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
5674
* builds/win32/ftdebug.c (FT_Message): Send debug output to the
5675
console as well as to the debugger.
5677
2007-06-14 Werner Lemberg <wl@gnu.org>
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.
5685
2007-06-11 David Turner <david@freetype.org>
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.
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.
5696
* src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
5697
(disabled currently).
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
5704
(af_glyph_hints_reload): Add argument to handle inflections.
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
5710
(af_glyph_hints_align_weak_points): Skip any touched neighbors.
5711
(af_iup_shift): Handle zero `delta'.
5713
* src/autofit/afhints.h: Updated.
5714
(AF_SORT_SEGMENTS): New macro (disabled).
5715
(AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
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.
5721
* src/autofit/afcjk.c: Updated.
5722
* src/autofit/aflatin.c: Updated.
5723
(af_latin_metrics_scale_dim): Don't reduce scale by 2%.
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.
5730
* src/autofit/afloader.c: Updated.
5732
2007-06-11 Werner Lemberg <wl@gnu.org>
5734
* docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
5736
2007-06-10 David Turner <david@freetype.org>
5738
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
5739
the TrueType glyph loader.
5741
* include/freetype/config/ftoption.h: Clarify documentation
5742
regarding unpatented hinting.
5745
Add new `FT_Face_CheckTrueTypePatents' API.
5747
* include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
5750
* include/freetype/internal/services/svttglyf.h,
5751
src/base/ftpatent.c: New files.
5753
* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
5756
* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
5758
(tt_service_truetype_glyf): New service structure.
5759
(tt_services): Register it.
5761
* modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
5764
2007-06-08 Werner Lemberg <wl@gnu.org>
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).
5771
* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
5772
[FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
5774
2007-06-07 Werner Lemberg <wl@gnu.org>
5776
* src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
5777
tt_sbit_decoder_load_image): Protect against integer overflows.
5780
* src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
5781
for `x_control' and `y_control'.
5783
2007-06-06 Werner Lemberg <wl@gnu.org>
5785
* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
5788
* src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
5792
* src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
5796
* src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
5799
* src/cff/cffgload.c (cff_decoder_prepare): Change return type to
5802
(cff_slot_load): Updated.
5803
* src/cff/cffgload.h: Updated.
5805
2007-06-05 Werner Lemberg <wl@gnu.org>
5807
* src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
5808
(pfr_glyph_load_simple): Convert assertion into normal FreeType
5811
(pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
5812
Convert assertion into normal FreeType error.
5814
* src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
5817
* src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
5820
* src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
5821
in case of parsing error.
5822
(ps_parser_load_field): Updated.
5824
* src/type1/t1load.c (parse_font_matrix): Updated.
5826
2007-06-04 Werner Lemberg <wl@gnu.org>
5828
* src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
5830
* src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
5832
2007-06-03 Werner Lemberg <wl@gnu.org>
5834
* src/tools/ftrandom/*: Add the `ftrandom' test program written by
5835
George Williams (with some modifications).
5837
2007-06-03 Werner Lemberg <wl@gnu.org>
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.
5843
2007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
5845
* src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
5847
2007-06-02 Werner Lemberg <wl@gnu.org>
5849
* include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
5850
FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
5852
* src/bdf/bdflib.c (bdf_load_font): Use them.
5854
* src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
5856
2007-06-01 Werner Lemberg <wl@gnu.org>
5858
* src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
5859
(FTC_CMapCache_Lookup): Remove unused code.
5861
2007-06-01 Sean McBride <sean@rogue-research.com>
5863
* src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
5866
2007-06-01 Werner Lemberg <wl@gnu.org>
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.
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.
5875
2007-05-30 Werner Lemberg <wl@gnu.org>
5877
* src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
5878
against too small binary data strings.
5880
* src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
5882
2007-05-28 David Turner <david@freetype.org>
5884
* src/cff/cffgload.c (cff_slot_load): Do not apply the identity
5885
transformation. This significantly reduces the loading time of CFF
5888
* docs/CHANGES: Updated.
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
5895
2007-05-25 Werner Lemberg <wl@gnu.org>
5897
* docs/CHANGES: Updated.
5899
2007-05-24 Werner Lemberg <wl@gnu.org>
5901
* src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
5902
into TT_USE_BYTECODE_INTERPRETER preprocessor block.
5904
2007-05-24 Graham Asher <graham.asher@btinternet.com>
5906
* src/truetype/ttobjs.c (tt_size_ready_bytecode)
5907
[!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
5909
2007-05-22 David Turner <david@freetype.org>
5911
* src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
5912
avoid crashes in case the bytecode interpreter is not used.
5915
Avoid heap blowup with very large .Z font files. This fixes
5916
Savannah bug #19910.
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.
5923
* src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
5925
(ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
5927
2007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
5929
* src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
5930
(ps_dimension_set_mask_bits): Remove `const'.
5932
2007-05-19 Werner Lemberg <wl@gnu.org>
5934
* src/sfnt/ttmtx.c (tt_face_get_metrics)
5935
[!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
5937
2007-05-19 Derek Clegg <dclegg@apple.com>
5939
Savannah patch #5929.
5941
* include/freetype/tttables.h, src/base/ftobjcs.c
5942
(FT_Get_CMap_Format): New function.
5944
* include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
5946
* src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
5949
2007-05-19 Werner Lemberg <wl@gnu.org>
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.
5955
2007-05-16 Werner Lemberg <wl@gnu.org>
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.
5963
2007-05-15 David Turner <david@freetype.org>
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
5971
2007-05-15 Graham Asher <graham.asher@btinternet.com>
5973
* src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
5975
* src/autofit/afloader.c (af_loader_load_g): Ditto.
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.
5983
* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
5984
afm_parse_kern_data): Remove redundant
5986
(afm_parser_parse): Ditto.
5987
Don't use uninitialized variables.
5989
* src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
5990
Use `|' operator instead of `^' to set it.
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.
5996
* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
5998
(TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
5999
(TT_Load_Glyph): Remove unused variable.
6001
2007-05-13 Derek Clegg <dclegg@apple.com>
6003
* src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
6004
if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
6006
2007-05-11 David Turner <david@freetype.org>
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
6014
* src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
6015
`size->cvt_ready'. Reported by Boris Letocha.
6017
2007-05-09 Graham Asher <graham.asher@btinternet.com>
6019
* src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
6020
(af_latin_metrics_scale_dim): Fix compiler warnings.
6022
2007-05-06 Werner Lemberg <wl@gnu.org>
6024
* builds/win32/visualce/freetype.sln: Removed, as requested by
6027
2007-05-04 Vincent RICHOMME <richom.v@free.fr>
6029
* builds/win32/visualce/*: Add Visual C++ project files for Pocket
6032
* docs/CHANGES: Document them.
6034
2007-05-04 <harry@kdevelop.org>
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.
6039
2007-05-03 Werner Lemberg <wl@gnu.org>
6041
* src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
6042
* include/freetype/freetype.h (FT_Set_Char_Size): Update
6045
2007-04-28 Victor Stinner <victor.stinner@inl.fr>
6047
* src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
6050
2007-04-27 Werner Lemberg <wl@gnu.org>
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.
6057
2007-04-26 Werner Lemberg <wl@gnu.org>
6059
* src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
6060
zero in case of error. This fixes Savannah bug #19689.
6062
2007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
6064
* src/truetype/ttobjs.c: Fix a typo that created a speed regression
6065
in the TrueType bytecode loader.
6067
2007-04-10 Martin Horak <horakm@centrum.cz>
6069
* src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
6070
Ignore `hhea' table. This fixes Savannah bug #19261.
6072
2007-04-09 Werner Lemberg <wl@gnu.org>
6075
* Version 2.3.4 released.
6076
=========================
6079
Tag sources with `VER-2-3-4'.
6081
* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
6082
version number to 2.3.4.
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/.
6088
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
6090
* builds/unix/configure.raw (version_info): Set to 9:15:3.
6092
2007-04-09 Martin Horak <horakm@centrum.cz>
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).
6098
2007-04-06 David Turner <david@freetype.org>
6100
* src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
6101
(Savannah bug #19536).
6103
2007-04-04 Werner Lemberg <wl@gnu.org>
6106
* Version 2.3.3 released.
6107
=========================
6110
Tag sources with `VER-2-3-3'.
6112
* docs/CHANGES: Mention CVE-2007-1351.
6114
2007-04-03 David Turner <david@freetype.org>
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.
6120
2007-04-02 David Turner <david@freetype.org>
6122
Add special code to detect `extra-light' fonts and do not snap their
6123
stem widths too much to avoid bizarre hinting effects.
6125
* src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
6126
`extra_light' members.
6128
* src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
6130
(af_latin_metrics_scale_dim): Set `extra_light'.
6131
(af_latin_compute_stem_width): Use `extra_light'.
6133
2007-03-28 David Turner <david@freetype.org>
6135
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
6138
2007-03-28 Werner Lemberg <wl@gnu.org>
6140
* src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
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.
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/,
6152
* docs/CHANGES: Mention ftdiff.
6154
2007-03-26 David Turner <david@freetype.org>
6156
* src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
6158
(Ins_MD): Last regression fix.
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
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
6171
* docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
6172
documentation and bump version number to 2.3.3.
6174
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
6176
* builds/unix/configure.raw (version_info): Set to 9:14:3.
6178
2007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6185
2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
6192
2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
6198
2007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6204
2007-03-18 David Turner <david@freetype.org>
6206
* src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
6207
fix; testing still needed.
6209
* src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
6211
2007-03-17 David Turner <david@freetype.org>
6213
* src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
6214
(undocumented) twilight zone special case.
6216
2007-03-09 Werner Lemberg <wl@gnu.org>
6219
* Version 2.3.2 released.
6220
=========================
6223
Tag sources with `VER-2-3-2'.
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/,
6230
2007-03-08 David Turner <david@freetype.org>
6232
* docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
6234
* builds/unix/configure.raw (version_info): Set to 9:13:3.
6236
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
6238
* README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
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>.
6245
2007-03-05 Werner Lemberg <wl@gnu.org>
6247
* include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
6250
* src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
6251
`trick_names', as suggested by Ivan Nincic.
6253
2007-03-05 David Turner <david@freetype.org>
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>.
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>.
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>.
6268
2007-02-21 David Turner <david@freetype.org>
6270
* src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
6271
of small and ghost stems in the Postscript interpreter.
6273
2007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6279
2007-02-16 Werner Lemberg <wl@gnu.org>
6281
* src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
6282
* src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
6284
2007-02-14 David Turner <david@freetype.org>
6286
It seems that the following changes fix most of the known
6287
interpreter problems with my fonts, but more testing is needed,
6290
* src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
6291
(TT_MulFix14): Rewrite.
6292
(Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
6295
2007-02-12 Werner Lemberg <wl@gnu.org>
6297
* src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
6300
* src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
6301
(bdf_interpret_style): Ditto.
6303
2007-02-12 David Turner <david@freetype.org>
6305
Simplify projection and dual-projection code interface.
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):
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'
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.
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).
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.
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
6335
* src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
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.
6347
* builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
6349
2007-02-11 Werner Lemberg <wl@gnu.org>
6351
* src/autofit/afloader.c (af_loader_load_g): Don't change width for
6354
2007-02-07 Tom Parker <palfrey@tevp.net>
6356
* src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
6359
2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6369
* src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
6370
to avoid warning in building FreeType.
6371
* builds/mac/ftmac.c: Ditto.
6373
2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
6375
* src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
6376
`--with-fsspec' etc. Replace #include "ftmac.c" with
6379
2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6388
2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6394
2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
6396
* builds/unix/configure.raw: Check whether Mac OS X system headers
6397
can be built under ANSI C mode.
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.
6403
2007-02-01 Werner Lemberg <wl@gnu.org>
6405
* include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
6406
Explain why applications shouldn't use it. Found by Alexei.
6408
2007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
6410
* builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
6413
* src/gxvalid/gxvmort1.c
6414
(gxv_mort_subtable_type1_substTable_validate): Fix debugging
6417
2007-01-31 Werner Lemberg <wl@gnu.org>
6420
* Version 2.3.1 released.
6421
=========================
6424
Tag sources with `VER-2-3-1-FINAL'.
6426
* builds/win32/visualc/freetype.dsp,
6427
builds/win32/visualc/freetype.vcproj: s/230/231/.
6428
* builds/win32/visualc/index.html: s/221/231/.
6430
* vms_make.com: Add `ftgasp'.
6432
2007-01-30 David Turner <david@freetype.org>
6434
Tag sources with VER-2-3-1 to prepare release.
6436
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
6438
* docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
6441
* builds/unix/configure.raw (version_info): Set to 9:12:3.
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.
6450
* docs/CHANGES: Update accordingly.
6452
2007-01-25 David Turner <david@freetype.org>
6454
For light auto-hinting, improve glyph advance widths and resurrect
6455
normal/full hinting to its normal quality.
6457
* src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
6459
* src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
6462
* src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
6463
preprocessor conditional with if-clause, handling both light and
6466
* src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
6467
(af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
6469
2007-01-25 Werner Lemberg <wl@gnu.org>
6471
* docs/release: Updated -- Savannah uses a new uploading scheme.
6473
2007-01-25 David Turner <david@freetype.org>
6475
* src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
6477
* src/cff/cffgload.c (cff_decoder_parse_charstrings)
6478
<cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
6481
* docs/CHANGES: Document light auto-hinting improvement.
6483
2007-01-25 Werner Lemberg <wl@gnu.org>
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
6491
* docs/CHANGES: Document it.
6493
2007-01-23 David Turner <david@freetype.org>
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.
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.
6503
* src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
6505
(af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
6506
* src/autofit/aftypes.h: Activate AF_USE_WARPER.
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'
6514
2007-01-21 Werner Lemberg <wl@gnu.org>
6516
* ChangeLog: Split off older entries into...
6517
* ChangeLog.22: This new file.
6519
2007-01-21 Werner Lemberg <wl@gnu.org>
6521
* docs/CHANGES: Document SHZ fix.
6523
2007-01-21 George Williams <gww@silcom.com>
6525
* src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
6528
2007-01-21 Werner Lemberg <wl@gnu.org>
6530
* src/sfnt/ttmtx.c (tt_face_get_metrics)
6531
[!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
6533
2007-01-17 Werner Lemberg <wl@gnu.org>
6536
* Version 2.3.0 released.
6537
=========================
6540
Tag sources with `VER-2-3-0-FINAL'.
6542
2007-01-17 Werner Lemberg <wl@gnu.org>
6544
* docs/release: Updated.
6546
2007-01-16 David Turner <david@freetype.org>
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
6553
2007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
6555
* builds/amiga/makefile, builds/amiga/makefile.os4,
6556
builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
6558
* builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
6560
2007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
6562
Fix various compiler warnings.
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/.
6569
* src/gxvalid/gxvmorx5.c
6570
(gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
6572
* src/truetype/ttinterp.c (Compute_Point_Displacement),
6573
src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
6574
uninitialized variables.
6576
2007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
6578
* docs/CHANGES, docs/INSTALL.MAC: Improvements.
6580
2007-01-13 Werner Lemberg <wl@gnu.org>
6582
* src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
6583
versions up to 0x3FF without complaining.
6585
2007-01-13 Derek Clegg <dclegg@apple.com>
6587
Add FT_Get_PS_Font_Info interface to CFF driver.
6589
* src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
6590
(CFF_FontRec): Add `font_info' field.
6592
* src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
6593
(cff_font_done): Free font->font_info if necessary.
6595
* src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
6596
(cff_service_ps_info): Register cff_ps_get_font_info.
6598
2007-01-13 Werner Lemberg <wl@gnu.org>
6600
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
6603
* src/autofit/afhints.c (af_glyph_hints_dump_segments,
6604
af_glyph_hints_dump_edges): Ditto.
6606
* src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
6609
* src/sfnt/ttsbit0.h: Remove.
6611
* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
6613
2007-01-12 David Turner <david@freetype.org>
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.
6619
* src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
6620
compilation warning.
6622
2007-01-12 Werner Lemberg <wl@gnu.org>
6624
* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
6625
`automake' CVS module from sources.redhat.com.
6627
2007-01-11 Werner Lemberg <wl@gnu.org>
6629
* src/type1/t1load.c (is_space): Removed.
6630
(parse_encoding, parse_charstrings): Use IS_PS_DELIM.
6631
(parse_charstrings): Use IS_PS_TOKEN.
6634
* autogen.sh: Avoid bash specific syntax.
6636
2007-01-11 David Turner <david@freetype.org>
6638
* docs/CHANGES: Small update.
6640
* builds/unix/configure.raw (version_info): Set to 9:11:3.
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
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.
6650
2007-01-10 David Turner <david@freetype.org>
6652
* all-sources: Tag all sources with VER-2-3-0-RC1 and
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.
6659
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
6660
(FREETYPE_PATCH): Set to 0.
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.
6666
* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
6667
which created an endless loop with some malformed font files.
6669
2007-01-10 Derek Clegg <dclegg@apple.com>
6671
* src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
6674
2007-01-08 David Turner <david@freetype.org>
6676
* docs/CHANGES: Updated.
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.
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
6686
* include/freetype/config/ftheader.h (FT_GASP_H): New macro for
6687
<freetype/ftgasp.h>.
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
6694
2007-01-07 Werner Lemberg <wl@gnu.org>
6696
* src/cid/cidparse.c (cid_parser_new): Improve error message for
6698
Scan for `/sfnts' token.
6700
2007-01-07 Werner Lemberg <wl@gnu.org>
6702
* src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
6704
2007-01-06 Werner Lemberg <wl@gnu.org>
6706
* src/cff/cffload.c (cff_index_init): Remove unused variable.
6707
(cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
6709
2007-01-04 David Turner <david@freetype.org>
6711
* src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
6712
correctly. This fixes Savannah bug #17876.
6715
Do not allocate interpreter-specific tables in memory if we are not
6716
going to load glyphs with the bytecode interpreter anyway.
6718
* src/truetype/ttgload.c (tt_loader_init): Load execution context
6719
only if glyph is hinted.
6721
* src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_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'.
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
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):
6742
* src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
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.
6749
* src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
6750
* src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
6752
(CFF_CharsetRec): Add field `num_glyphs'.
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
6763
(cff_charset_compute_cids): Set `num_glyphs' field.
6764
(cff_encoding_load): Updated.
6766
* src/cff/cffgload.c (cff_slot_load): Updated.
6768
2007-01-04 David Turner <david@freetype.org>
6770
* docs/INSTALL.UNIX: Simplify some parts, add reference to
6771
autogen.sh and pointer to README.CVS.
6773
* README.CVS: Add common problem description and solution
6774
when running autogen.sh.
6776
* docs/INSTALL: Add reference to MacOS X.
6778
* docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
6780
* docs/TODO: Remove obsolete items.
6782
* src/raster/ftraster.c: (TRaster_Instance): Replace it with...
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.
6795
* src/smooth/ftgrays.c (TRaster): Replaced with...
6798
(TRaster): New structure.
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.
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.
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.
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.
6821
2007-01-02 Werner Lemberg <wl@gnu.org>
6823
* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
6824
Remove compiler warning.
6826
2007-01-02 David Turner <david@freetype.org>
6828
* src/sfnt/sfobjs.c: Add documentation comment.
6830
2006-12-31 Masatake YAMATO <jet@gyve.org>
6832
* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
6834
Check uniqueness of the gid pairs.
6835
(gxv_kern_subtable_fmt0_validate): Move some code to
6836
`gxv_kern_subtable_fmt0_pairs_validate'.
6838
2006-12-22 David Turner <david@freetype.org>
6840
* src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
6843
* builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
6844
to avoid deprecation warnings with Visual C++ 8.
6846
2006-12-16 Anders Kaseorg <anders@kaseorg.com>
6848
* src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
6849
[FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
6851
2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
6857
2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6865
2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
6875
2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
6877
* src/base/ftobjs.c: Improvement of resource fork handler for
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.
6884
2006-12-10 Werner Lemberg <wl@gnu.org>
6886
* builds/toplevel.mk (version): Protect against `distclean' target.
6888
2006-12-09 Werner Lemberg <wl@gnu.org>
6890
* builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
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.
6897
2006-12-08 Werner Lemberg <wl@gnu.org>
6899
* builds/toplevel.mk (dist): Extract version number from freetype.h.
6901
2006-12-08 Vladimir Volovich <vvv@vsu.ru>
6903
* src/tools/apinames.c (State): Remove final comma in structure --
6904
xlc v5 under AIX 4.3 doesn't like this.
6906
2006-12-07 David Turner <david@freetype.org>
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).
6912
2006-12-03 Werner Lemberg <wl@gnu.org>
6914
* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
6916
2006-12-01 Werner Lemberg <wl@gnu.org>
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.
6923
* include/freetype/ftxf86.h: Fix and extend comment so that it
6924
appears in the documentation.
6926
* include/freetype/ftchapters.h: Add `font_format' section.
6929
* src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
6930
to TOC in index page.
6932
2006-11-28 David Turner <david@freetype.org>
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.
6937
* src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
6939
* src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
6942
* src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
6945
2006-11-26 Pierre Hanser <hanser@club-internet.fr>
6947
* src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
6949
2006-11-25 David Turner <david@freetype.org>
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.
6956
2006-11-23 David Turner <david@freetype.org>
6958
* src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
6959
src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
6961
* src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
6962
Emit more sensible information.
6964
* src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
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.
6975
2006-11-22 Werner Lemberg <wl@gnu.org>
6977
Fix Savannah bug #15553.
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'.
6983
2006-11-18 Werner Lemberg <wl@gnu.org>
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.
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'.
6997
2006-11-13 David Turner <david@freetype.org>
6999
* src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
7000
`enhancements' are still too buggy for general use.
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.
7007
* include/freetype/ftlcdfil.h: Update documentation.
7009
2006-11-10 David Turner <david@freetype.org>
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).
7018
* include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
7019
second parameter to an enum type.
7021
* src/base/ftlcdfil.c (USE_LEGACY): Define.
7022
(_ft_lcd_filter): Rename to...
7023
(_ft_lcd_filter_fir): This.
7025
(_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
7026
(FT_Library_Set_LcdFilter): Update parameters.
7027
Handle new filter modes.
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.
7034
* src/smooth/ftsmooth.c (ft_smooth_render_generic)
7035
[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
7036
Other minor improvements.
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.
7043
2006-11-09 David Turner <david@freetype.org>
7045
* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
7046
typo which created a variable-used-before-initialized bug.
7048
2006-11-07 Zhe Su <james.su@gmail.com>
7050
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
7053
2006-11-03 Werner Lemberg <wl@gnu.org>
7055
* src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
7057
2006-11-02 David Turner <david@freetype.org>
7059
Add a few tweaks to better handle serif fonts.
7060
Add more debugging messages.
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.
7070
* src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
7071
_af_debug_disable_blue_hints, and _af_debug_hints variables.
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...
7077
* include/freetype/internal/ftcalc.h (ft_corner_orientation,
7078
ft_corner_is_flat): These declarations.
7080
* src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
7081
Comment out. Replaced by...
7083
* src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
7084
These functions. Update all callers.
7085
(FT_Add64) [!FT_LONG64]: Simplify.
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.
7091
* src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
7093
* src/autofit/afloader.c (af_loader_init, af_loader_done)
7094
[AF_DEBUG]: Set _af_debug_hints.
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.
7102
* src/gzip/inftrees.c (huft_build): Remove compiler warning.
7104
2006-10-24 Werner Lemberg <wl@gnu.org>
7106
* src/cff/cffload.c (cff_encoding_load): Remove unused variable.
7108
* src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
7111
2006-10-23 Zhe Su <zsu@novell.com>
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.
7118
2006-10-23 David Turner <david@freetype.org>
7120
Speed up the CFF font loader. With some large CFF fonts,
7121
FT_Open_Face is now more than three times faster.
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.
7130
* src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
7134
Speed up the Postscript hinter, with more than 100% speed increase
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.
7146
(PSH_MAX_STRONG_INTERNAL): New macro.
7147
(psh_glyph_interpolate_normal_points): Rewrite for efficiency.
7149
2006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7151
* src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
7152
`error' with FT_Err_Ok.
7154
2006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7156
* docs/INSTALL.CROSS: New document file for cross-building.
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.
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.
7167
* builds/exports.mk (APINAMES_EXE): Change the extension for
7168
apinames from the suffix for target (E) to that for building host
7171
2006-10-12 Werner Lemberg <wl@gnu.org>
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.
7177
2006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
7183
* builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
7185
* builds/unix/freetype-config.in: Ditto.
7187
2006-10-11 Werner Lemberg <wl@gnu.org>
7189
* devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
7192
2006-10-03 Jens Claudius <jens.claudius@yahoo.com>
7194
* include/freetype/config/ftstdlib.h: Cast away volatileness from
7195
argument to ft_setjmp.
7197
* include/freetype/internal/ftvalid.h: Add comment that
7198
ft_validator_run must not be used.
7200
2006-10-01 Werner Lemberg <wl@gnu.org>
7202
* src/base/ftbase.c: Undo change from 2006-09-30.
7204
* src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
7206
2006-09-30 David Turner <david@freetype.org>
7208
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
7209
s/unpatented_hinting/ignore_unpatented_hinter/.
7212
* src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
7213
auto-hinting shall be used or not.
7215
* src/truetype/ttobjs.c (tt_face_init): Ditto.
7217
2006-09-30 Werner Lemberg <wl@gnu.org>
7219
* src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
7222
* src/base/ftbase.c: Include `ftlcdfil.c'.
7224
2006-09-29 Werner Lemberg <wl@gnu.org>
7226
* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
7227
overlapping segments. Bug reported by Stefan Koch.
7229
2006-09-28 David Turner <david@freetype.org>
7231
Fix a bug in the automatic unpatented hinting support which prevents
7232
normal bytecode hinting to work properly.
7234
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
7235
s/force_autohint/unpatented_hinting/. Update all callers.
7237
* src/base/ftobjs.c (FT_Load_Glyph): Updated code.
7239
* src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
7241
2006-09-27 David Turner <david@freetype.org>
7243
* include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
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.
7252
* include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
7254
* include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
7256
(FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
7257
`lcd_filter_weights' and `lcd_filter'.
7259
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
7262
Handle subpixel rendering.
7264
(ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
7265
(ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
7267
* include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
7268
pointing to <freetype/ftlcdfil.h>.
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.
7273
* modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
7275
2006-09-26 David Bustin
7277
* src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
7278
correctly. Reported as Savannah bug #17843.
7280
2006-09-26 David Turner <david@freetype.org>
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
7287
* src/autofit/afmodule.c (_af_debug_disable_horz_hints,
7288
_af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
7290
* src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
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
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.
7304
* docs/CHANGES: Updated.
7306
2006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
7308
* src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
7309
LWFN fails and both are available.
7311
2006-09-11 David Turner <david@freetype.org>
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.
7317
If the font uses another name entry with language_id == English, it
7318
will be selected correctly, though.
7320
* src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
7321
selection for `mingli.ttf'.
7323
2006-09-05 Werner Lemberg <wl@gnu.org>
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
7330
* src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
7332
2006-09-05 David Turner <david@freetype.org>
7334
Minor source cleanups and optimizations.
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
7347
(gray_convert_glyph): Fix speed-up.
7349
2006-09-04 David Turner <david@freetype.org>
7351
* src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
7354
2006-09-03 Werner Lemberg <wl@gnu.org>
7356
* devel/ftoption.h: Synchronize with
7357
include/freetype/config/ftoption.h.
7359
* src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
7360
variable declaration.
7361
(gray_convert_glyph): Fix compiler warnings.
7363
2006-09-01 David Turner <david@freetype.org>
7365
* src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
7366
to recognize a few fonts that require the automatic unpatented
7369
* src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
7370
rasterizer. The speed improvement is between 15% and 25%, depending
7373
(GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
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
7380
(PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
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
7388
(gray_raster_render): Updated.
7390
2006-08-29 Dr. Werner Fink <werner@suse.de>
7392
* configure: Make it possible to handle configure options which
7393
have strings containing spaces.
7395
2006-08-27 David Turner <david@freetype.org>
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.
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/.
7408
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
7409
member `force_autohint'.
7411
* src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
7413
* src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
7414
against a list of font names which need the bytecode interpreter.
7416
2006-08-27 Jens Claudius <jens.claudius@yahoo.com>
7418
Fix miscellaneous compiler warnings.
7420
* include/freetype/internal/ftobjs.h: Close comment with `*/' to
7421
avoid `/* in comment' compiler warning.
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.
7427
* src/base/ftobjs.c (t_validator_error): Cast away
7428
volatileness of argument to ft_longjmp. Spotted by Werner
7431
* src/bdf/bdflib.c (bdf_load_font): Initialize local
7434
* src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
7435
`error' as volatile.
7437
2006-08-27 Werner Lemberg <wl@gnu.org>
7439
* builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
7442
2006-08-22 Jens Claudius <jens.claudius@yahoo.com>
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.
7448
* include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
7449
pointer to a volatile object.
7451
* src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
7452
`table' a pointer to a volatile object.
7454
* src/otvalid/otvmod.c (otv_load_table): Make function argument
7455
`table' a pointer to a volatile object.
7457
2006-08-18 Jens Claudius <jens.claudius@yahoo.com>
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'.
7465
* src/otvalid/otvmod.c (otv_validate): Same for function parameter
7466
`face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
7469
* src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
7472
2006-08-16 David Turner <david@freetype.org>
7474
* src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
7477
* src/base/ftobjs.c (ft_validator_run): Disable function; it is
7478
buggy by design. Always return -1.
7481
Improvements to native TrueType hinting. This is a first try,
7482
controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
7484
* include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
7487
* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
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'.
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'.
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.
7506
(Shift): Renamed to...
7507
(_iup_worker_shift): This.
7509
(Interp): Renamed to...
7510
(_iup_worker_interpolate): This.
7511
Updated to handle `orus'.
7514
* src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
7517
2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7519
* modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
7520
build ftvalid in ft2demos. This has been inadvertedly changed
7523
2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7525
`ft_validator_run' wrapping `setjmp' can cause a crash, as found by
7527
http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
7529
* src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
7530
It reverts the change introduced on 2005-08-20.
7532
* src/gxvalid/gxvmod.c: Ditto.
7534
2006-08-13 Jens Claudius <jens.claudius@yahoo.com>
7536
* finclude/freetype/internal/psaux.h: (T1_TokenType): Add
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.
7543
* src/cid/cidload.c: (cid_field_records): Adjust invocations of
7546
* src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
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
7557
(parse_dict): Ignore keywords that occur in the wrong dictionary
7558
(e.g., in `Private' instead of `FontDict').
7560
* src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
7562
* src/type42/t42parse.c: (t42_keywords): Adjust invocations of
7565
2006-07-18 Jens Claudius <jens.claudius@yahoo.com>
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
7571
Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
7572
and `T1_Compute_Max_Advance'.
7574
* include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
7575
`face', add `len_buildchar'.
7577
* include/freetype/internal/t1types.h (T1_FaceRec): Add field
7580
* src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
7582
(cid_slot_load_glyph): Do not ignore failure when initializing the
7585
* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
7586
(t1_decoder_init): Remove initialization of fields `buildchar' and
7588
(t1_decoder_done): Remove deallocation of field `buildchar'.
7590
* freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
7591
T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
7593
(T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
7594
`len_buildchar'; make sure to call finisher for T1_Decoder even in
7597
* src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
7600
* src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
7603
2006-07-14 Jens Claudius <jens.claudius@yahoo.com>
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.
7613
* include/freetype/internal/t1types.h (T1_FaceRec): New fields
7614
`ndv_idx', `cdv_idx', and `len_buildchar'.
7616
* include/freetype/t1tables.h (PS_BlendRec): New fields
7617
`default_design_vector' and `num_default_design_vector'.
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.
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.
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'.
7635
* src/type1/t1load.c (parse_buildchar, parse_private): New
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
7645
(t1_init_loader): Initialize new field `keywords_encountered'.
7646
(T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
7648
Remove `keywords_flags'.
7650
* src/type1/t1load.h (T1_LoaderRect): New field
7651
`keywords_encountered'.
7652
(T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
7654
* src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
7655
entries for parsing /NDV, /CDV, and /DesignVector.
7657
2006-07-07 Werner Lemberg <wl@gnu.org>
7659
Add many checks to protect against malformed PCF files.
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.
7664
* src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
7665
data and check that tables don't overlap (using a simple
7667
(PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
7668
New macros which give the size of data structures in the data
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.
7683
2006-06-26 Werner Lemberg <wl@gnu.org>
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.
7688
2006-06-26 Jens Claudius <jens.claudius@yahoo.com>
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
7695
Handle unknown othersubrs gracefully: count their operands and let
7696
the following pop operators push the operands as the results onto
7698
Improve handling of setcurrentpoint opcode.
7700
2006-06-25 Jens Claudius <jens.claudius@yahoo.com>
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.
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.
7715
(ps_parser_to_token): Update code.
7716
(ps_parser_load_field_table): Handle bbox entries also.
7718
* src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
7719
Add commented-out code for synthetic fonts.
7721
2006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
7723
Fix two hinting bugs as reported in
7724
http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
7726
* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
7727
`first_point' member.
7729
* src/truetype/ttgload.c (tt_prepare_zone): Initialize
7731
(TT_Process_Composite_Glyph): Always untouch points.
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'.
7737
2006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
7744
* src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
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
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
7756
(count_faces): Call `HUnlock' after all FOND utilization.
7758
2006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
7766
* src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
7767
FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
7769
(FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
7770
classic kern table validation service is unavailable.
7772
* src/base/ftotval.c (FT_OpenType_Validate): Return
7773
FT_Err_Unimplemented_Feature if OpenType validation service is
7776
2006-06-08 Werner Lemberg <wl@gnu.org>
7778
* src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
7781
2006-06-07 David Turner <david@freetype.org>
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.
7787
2006-06-06 David Turner <david@freetype.org>
7789
Fix memory leak described in Savannah bug #16759.
7791
We change `ps_unicodes_init' so that it also takes a
7792
`free_glyph_name' callback to release the glyph names returned by
7795
* include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
7797
(PS_GetGlyphNameFunc): This.
7798
(PS_FreeGlyphNameFunc): New typedef.
7799
(PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
7801
* src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
7803
(cff_sid_free_glyph_name): New function.
7804
(cff_cmap_unicode_init): Updated.
7806
* src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
7808
* src/psnames/psmodule.c (ps_unicodes_init): Add variable for
7809
PS_FreeGlyphNameFunc and use it.
7812
2006-06-04 David Turner <david@freetype.org>
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.
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.
7824
2006-05-25 Werner Lemberg <wl@gnu.org>
7826
* builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
7827
`-no-undefined'. Reported by Christian Biesinger.
7829
2006-05-19 Brian Weed <bw@imaginengine.com>
7831
* builds/win32/visualc/freetype.dsp: Release libraries no longer
7832
have debug information, and debug libraries use `C7 compatible'
7835
2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7837
Apply patch by Derek Clegg to fix two memory leaks in the MacOS
7838
resource fork handler. This fixes Savannah bug #16631.
7840
* src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
7841
`FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
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.
7846
2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7848
* build/unix/configure.raw: Add a fallback to disable Carbon
7849
dependency, if configured with no options on Mac OS X.
7851
2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
7857
2006-05-18 Werner Lemberg <wl@gnu.org>
7859
* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
7860
[FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
7862
2006-05-17 David Turner <david@freetype.org>
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.
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.
7872
The resulting speed-up is about 25%.
7875
* include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
7876
`cursor' and `limit'.
7878
* src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
7880
(AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
7883
* src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
7886
* src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
7888
(af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
7889
(af_glyph_hints_reload: Rewrite recognition of weak points.
7891
* src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
7892
constant values out of the loops.
7894
* src/autofit/aftypes.h: Updated.
7896
* src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
7898
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
7899
product to get orientation.
7901
* src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
7902
(FT_Stream_OpenGzip): Use it to handle small files directly in
7905
* src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
7906
Improve performance.
7908
* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
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.
7916
* src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
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.
7924
2007-05-17 Werner Lemberg <wl@gnu.org>
7926
* src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
7927
fixes the first part of Savannah bug #16590.
7929
2006-05-16 Werner Lemberg <wl@gnu.org>
7931
* docs/PROBLEMS: Updated icl issues.
7933
----------------------------------------------------------------------------
7935
Copyright 2006, 2007, 2008, 2009, 2010 by
7936
David Turner, Robert Wilhelm, and Werner Lemberg.
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
7946
version-control: never