Sync with trunk head
[reactos.git] / lib / 3rdparty / freetype / ChangeLog
1 2007-07-02 Werner Lemberg <wl@gnu.org>
2
3
4 * Version 2.3.5 released.
5 =========================
6
7
8 Tag sources with `VER-2-3-5'.
9
10 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
11 version number to 2.3.5.
12
13 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
14 builds/win32/visualc/freetype.dsp,
15 builds/win32/visualc/freetype.vcproj,
16 builds/win32/visualce/index.html,
17 builds/win32/visualce/freetype.dsp,
18 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
19
20 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
21
22 * builds/unix/configure.raw (version_info): Set to 9:16:3.
23
24 2007-07-01 David Turner <david@freetype.org>
25
26 * include/freetype/freetype.h, src/base/ftpatent.c
27 (FT_Face_SetUnpatentedHinting): New function to dynamically change
28 the setting after a face is created.
29
30 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
31 that created distortions in the bytecode interpreter results.
32
33 2007-06-30 David Turner <david@freetype.org>
34
35 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
36 initialization.
37
38 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
39 infinite loop in the case of degenerate fonts.
40
41 2007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
42
43 Add autofit module for Indic scripts. This currently just reuses
44 the CJK-specific functions.
45
46 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
47 macro.
48 * devel/ftoption.h: Synchronize with
49 include/freetype/config/ftoption.h.
50
51 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
52
53 * src/autofit/afglobal.c, src/autofit/aftypes.h,
54 src/autofit/autofit.c: Updated.
55
56 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
57 (AUTOF_DRV_SRC): Updated.
58
59 2007-06-23 David Turner <david@freetype.org>
60
61 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
62 2007-06-16 that prevented the TrueType module from loading most
63 glyphs.
64
65 2007-06-20 Werner Lemberg <wl@gnu.org>
66
67 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
68 change.
69
70 2007-06-19 Werner Lemberg <wl@gnu.org>
71
72 * src/type1/t1load.c (parse_encoding): Handle one more error.
73
74 2007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
75
76 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
77 FNT_Err_Invalid_File_Format if file format was recognized but
78 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
79 Add verbose debug logs to make it easier to debug failing load
80 attempts.
81 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
82 so return an error if requested face index is > 0.
83 Do not do further attempt to load fonts if a previous attempt has
84 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
85 file format has been recognized but no fonts found in the file.
86
87 2007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
88
89 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
90 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
91 the compiler warnings against unused arguments.
92 (FT_ATSFontGetFileReference): Ditto.
93 (FT_GetFile_From_Mac_ATS_Name): Ditto.
94 (FT_New_Face_From_FSSpec): Ditto.
95 (lookup_lwfn_by_fond): Fix wrong comment.
96 Replace `const StringPtr' by more appropriate type
97 `ConstStr255Param'.
98 FSRefMakePathPath always returns UTF8 POSIX pathname in
99 Mach-O, thus HFS pathname support is dropped.
100 (count_faces): Remove HLock and HUnlock which is not
101 required on Mac OS X anymore.
102 (FT_New_Face_From_SFNT): Ditto.
103 (FT_New_Face_From_FOND): Ditto.
104 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
105 except of HFS pathname support and HLock/HUnlock.
106 They are required on classic CFM environment.
107
108 2007-06-18 Werner Lemberg <wl@gnu.org>
109
110 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
111 assertion.
112 (ps_parser_to_bytes): Fix error message.
113
114 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
115 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
116 Don't allow mixed binary and hex strings.
117 Handle string_size == 0 and string_buf == 0.
118 (t42_parse_encoding): Handle one more error.
119
120 2007-06-18 Werner Lemberg <wl@gnu.org>
121
122 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
123 logic.
124 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
125 correctly.
126 (ps_parser_load_field_table): Use `fields->array_max' instead of
127 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
128
129 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
130 2007-06-06.
131
132 2007-06-17 Werner Lemberg <wl@gnu.org>
133
134 * src/tools/ftrandom.c (font_size): New global variable.
135 (TestFace): Use it.
136 (main): Handle new option `--size' to set `font_size'.
137 (Usage): Updated.
138
139 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
140 invalid font.
141 (FNT_Load_Glyph): Protect against invalid bitmap width.
142
143 2007-06-16 David Turner <david@freetype.org>
144
145 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
146 Prevent integer overflows when rendering very large outlines.
147
148 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
149 well-formedness of the contours array when loading a glyph.
150
151 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
152 and `zp2'.
153 (Ins_IP): Check argument ranges to reject bogus operations properly.
154 (IUP_WorkerRec): Add `max_points' member.
155 (_iup_worker_interpolate): Check argument ranges.
156 (Ins_IUP): Ignore empty outlines.
157
158 2007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
159
160 * src/winfonts/winfnt.h: Add necessary structures for PE resource
161 parsing.
162 (WinPE32_HeaderRec): New structure.
163 (WinPE32_SectionRec): New structure.
164 (WinPE_RsrcDirRec): New structure.
165 (WinPE_RsrcDirEntryRec): New structure.
166 (WinPE_RsrcDataEntryRec): New structure.
167 (FNT_FontRec): Remove unused `size_shift' field.
168
169 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
170 loading bitmap .fon files in PE format.
171
172 2007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
173
174 * builds/win32/ftdebug.c: Unify debug level handling with other
175 platforms.
176
177 2007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
178
179 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
180 console as well as to the debugger.
181
182 2007-06-14 Werner Lemberg <wl@gnu.org>
183
184 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
185 cover all ranges which could possibly be handled by the aflatin
186 module (since the default fallback for unknown ranges is now the
187 afcjk module). It might be necessary to fine-tune this further by
188 splitting off modules for Greek, Cyrillic, or other blocks.
189
190 2007-06-11 David Turner <david@freetype.org>
191
192 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
193 incorrect segment linking computation. This was the root cause of
194 Savannah bug #19565.
195
196
197 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
198 to improve the Latin auto-hinter. Note that the new code is
199 disabled by default since it is not stabilized yet.
200
201 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
202 (disabled currently).
203
204 * src/autofit/afhints.c: Remove dead code.
205 (af_axis_hints_new_edge): Add argument to handle segment directions.
206 (af_edge_flags_to_string): New function.
207 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
208 option flags.
209 (af_glyph_hints_reload): Add argument to handle inflections.
210 Simplify.
211 (af_direction_compute): Fine tuning.
212 (af_glyph_hints_align_edge_points): Fix logic.
213 (af_glyph_hints_align_strong_points): Do linear search for small
214 edge counts.
215 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
216 (af_iup_shift): Handle zero `delta'.
217
218 * src/autofit/afhints.h: Updated.
219 (AF_SORT_SEGMENTS): New macro (disabled).
220 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
221
222 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
223 argument to pass option flags for handling scripts.
224 * src/autofit/afglobal.h: Updated.
225
226 * src/autofit/afcjk.c: Updated.
227 * src/autofit/aflatin.c: Updated.
228 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
229
230 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
231 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
232 Don't set `edge->dir'
233 (af_latin_hint_edges): Add more logging.
234
235 * src/autofit/afloader.c: Updated.
236
237 2007-06-11 Werner Lemberg <wl@gnu.org>
238
239 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
240
241 2007-06-10 David Turner <david@freetype.org>
242
243 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
244 the TrueType glyph loader.
245
246 * include/freetype/config/ftoption.h: Clarify documentation
247 regarding unpatented hinting.
248
249
250 Add new `FT_Face_CheckTrueTypePatents' API.
251
252 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
253 declaration.
254
255 * include/freetype/internal/services/svttglyf.h,
256 src/base/ftpatent.c: New files.
257
258 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
259 New macro.
260
261 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
262 `ttpload.h'.
263 (tt_service_truetype_glyf): New service structure.
264 (tt_services): Register it.
265
266 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
267 `ftpatent.c'.
268
269 2007-06-08 Werner Lemberg <wl@gnu.org>
270
271 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
272 Fonts without a cmap must be handled correctly by FreeType (anything
273 else would be a bug).
274
275
276 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
277 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
278
279 2007-06-07 Werner Lemberg <wl@gnu.org>
280
281 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
282 tt_sbit_decoder_load_image): Protect against integer overflows.
283
284
285 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
286 for `x_control' and `y_control'.
287
288 2007-06-06 Werner Lemberg <wl@gnu.org>
289
290 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
291
292
293 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
294 FreeType error.
295
296
297 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
298 `font_count'.
299
300
301 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
302
303
304 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
305 `FT_Error'.
306 Check `fd_index'.
307 (cff_slot_load): Updated.
308 * src/cff/cffgload.h: Updated.
309
310 2007-06-05 Werner Lemberg <wl@gnu.org>
311
312 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
313 (pfr_glyph_load_simple): Convert assertion into normal FreeType
314 error.
315 Check `idx'.
316 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
317 Convert assertion into normal FreeType error.
318
319 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
320
321
322 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
323
324
325 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
326 in case of parsing error.
327 (ps_parser_load_field): Updated.
328
329 * src/type1/t1load.c (parse_font_matrix): Updated.
330
331 2007-06-04 Werner Lemberg <wl@gnu.org>
332
333 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
334
335 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
336
337 2007-06-03 Werner Lemberg <wl@gnu.org>
338
339 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
340 George Williams (with some modifications).
341
342 2007-06-03 Werner Lemberg <wl@gnu.org>
343
344 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
345 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
346 face == NULL. Suggested by Graham Asher.
347
348 2007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
349
350 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
351
352 2007-06-02 Werner Lemberg <wl@gnu.org>
353
354 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
355 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
356
357 * src/bdf/bdflib.c (bdf_load_font): Use them.
358
359 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
360
361 2007-06-01 Werner Lemberg <wl@gnu.org>
362
363 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
364 (FTC_CMapCache_Lookup): Remove unused code.
365
366 2007-06-01 Sean McBride <sean@rogue-research.com>
367
368 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
369 unused.
370
371 2007-06-01 Werner Lemberg <wl@gnu.org>
372
373 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
374 pass for `StartData' if an error has occurred.
375 Exit properly if no `StartData' has been seen at all.
376
377 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
378 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
379
380 2007-05-30 Werner Lemberg <wl@gnu.org>
381
382 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
383 against too small binary data strings.
384
385 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
386
387 2007-05-28 David Turner <david@freetype.org>
388
389 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
390 transformation. This significantly reduces the loading time of CFF
391 glyphs.
392
393 * docs/CHANGES: Updated.
394
395 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
396 hinting script to CJK, since it works well with more scripts than
397 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
398 this out!
399
400 2007-05-25 Werner Lemberg <wl@gnu.org>
401
402 * docs/CHANGES: Updated.
403
404 2007-05-24 Werner Lemberg <wl@gnu.org>
405
406 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
407 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
408
409 2007-05-24 Graham Asher <graham.asher@btinternet.com>
410
411 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
412 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
413
414 2007-05-22 David Turner <david@freetype.org>
415
416 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
417 avoid crashes in case the bytecode interpreter is not used.
418
419
420 Avoid heap blowup with very large .Z font files. This fixes
421 Savannah bug #19910.
422
423 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
424 `in_limit', `pad', `pad_bits', and `in_buff' members.
425 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
426 `buf_total' members.
427
428 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
429 only one argument.
430 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
431
432 2007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
433
434 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
435 (ps_dimension_set_mask_bits): Remove `const'.
436
437 2007-05-19 Werner Lemberg <wl@gnu.org>
438
439 * src/sfnt/ttmtx.c (tt_face_get_metrics)
440 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
441
442 2007-05-19 Derek Clegg <dclegg@apple.com>
443
444 Savannah patch #5929.
445
446 * include/freetype/tttables.h, src/base/ftobjcs.c
447 (FT_Get_CMap_Format): New function.
448
449 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
450 `format' member.
451 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
452 cmap_info->format.
453
454 2007-05-19 Werner Lemberg <wl@gnu.org>
455
456 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
457 before handling subglyphs so that it can be reinitialized each time.
458 This fixes Savannah bug #19859.
459
460 2007-05-16 Werner Lemberg <wl@gnu.org>
461
462 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
463 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
464 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
465 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
466 tt_face_get_metrics): Fix type-punning issues.
467
468 2007-05-15 David Turner <david@freetype.org>
469
470 * include/freetype/config/ftstdlib.h,
471 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
472 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
473 instead on relying on the locale-dependent functions provided by
474 <ctypes.h>.
475
476 2007-05-15 Graham Asher <graham.asher@btinternet.com>
477
478 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
479 variable.
480 * src/autofit/afloader.c (af_loader_load_g): Ditto.
481
482 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
483 (open_face_from_buffer): Initialize `stream'.
484 (FT_Request_Metrics): Remove unused variable.
485 Remove redundant `break' statements.
486 (FT_Get_Track_Kerning): Remove unused variable.
487
488 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
489 afm_parse_kern_data): Remove redundant
490 `break' statements.
491 (afm_parser_parse): Ditto.
492 Don't use uninitialized variables.
493
494 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
495 Use `|' operator instead of `^' to set it.
496 Update all users.
497
498 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
499 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
500
501 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
502 comparison.
503 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
504 (TT_Load_Glyph): Remove unused variable.
505
506 2007-05-13 Derek Clegg <dclegg@apple.com>
507
508 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
509 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
510
511 2007-05-11 David Turner <david@freetype.org>
512
513 * src/cache/ftbasic.c, include/freetype/ftcache.h
514 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
515 functions that allow us to look up glyphs using an FTC_Scaler object
516 to specify the size, making it possible to use fractional pixel
517 sizes.
518
519 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
520 `size->cvt_ready'. Reported by Boris Letocha.
521
522 2007-05-09 Graham Asher <graham.asher@btinternet.com>
523
524 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
525 (af_latin_metrics_scale_dim): Fix compiler warnings.
526
527 2007-05-06 Werner Lemberg <wl@gnu.org>
528
529 * builds/win32/visualce/freetype.sln: Removed, as requested by
530 Vincent.
531
532 2007-05-04 Vincent RICHOMME <richom.v@free.fr>
533
534 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
535 PC targets.
536
537 * docs/CHANGES: Document them.
538
539 2007-05-04 <harry@kdevelop.org>
540
541 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
542 mmap (which might happen on some RTOS). From Savannah patch #5909.
543
544 2007-05-03 Werner Lemberg <wl@gnu.org>
545
546 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
547 * include/freetype/freetype.h (FT_Set_Char_Size): Update
548 documentation.
549
550 2007-04-28 Victor Stinner <victor.stinner@inl.fr>
551
552 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
553 `cmap'.
554
555 2007-04-27 Werner Lemberg <wl@gnu.org>
556
557 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
558 number of points in contours. Problem reported by Victor Stinner
559 <victor.stinner@haypocalc.com>.
560 (TT_Process_Simple_Glyph): Synchronize variable types.
561
562 2007-04-26 Werner Lemberg <wl@gnu.org>
563
564 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
565 zero in case of error. This fixes Savannah bug #19689.
566
567 2007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
568
569 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
570 in the TrueType bytecode loader.
571
572 2007-04-10 Martin Horak <horakm@centrum.cz>
573
574 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
575 Ignore `hhea' table. This fixes Savannah bug #19261.
576
577 2007-04-09 Werner Lemberg <wl@gnu.org>
578
579
580 * Version 2.3.4 released.
581 =========================
582
583
584 Tag sources with `VER-2-3-4'.
585
586 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
587 version number to 2.3.4.
588
589 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
590 builds/win32/visualc/freetype.dsp,
591 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
592
593 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
594
595 * builds/unix/configure.raw (version_info): Set to 9:15:3.
596
597 2007-04-09 Martin Horak <horakm@centrum.cz>
598
599 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
600 memory stream to avoid a crash with the incremental memory
601 interface (Savannah bug #19260).
602
603 2007-04-06 David Turner <david@freetype.org>
604
605 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
606 (Savannah bug #19536).
607
608 2007-04-04 Werner Lemberg <wl@gnu.org>
609
610
611 * Version 2.3.3 released.
612 =========================
613
614
615 Tag sources with `VER-2-3-3'.
616
617 * docs/CHANGES: Mention CVE-2007-1351.
618
619 2007-04-03 David Turner <david@freetype.org>
620
621 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
622 if one of the resolution values is 0, treat it as if it were the
623 same as the other value.
624
625 2007-04-02 David Turner <david@freetype.org>
626
627 Add special code to detect `extra-light' fonts and do not snap their
628 stem widths too much to avoid bizarre hinting effects.
629
630 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
631 `extra_light' members.
632
633 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
634 them.
635 (af_latin_metrics_scale_dim): Set `extra_light'.
636 (af_latin_compute_stem_width): Use `extra_light'.
637
638 2007-03-28 David Turner <david@freetype.org>
639
640 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
641 padding.
642
643 2007-03-28 Werner Lemberg <wl@gnu.org>
644
645 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
646 gracefully.
647 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
648 issue an error for longer names. This fixes CVE-2007-1351.
649 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
650 number of code points in Unicode.
651
652 * builds/win32/visualc/index.html,
653 builds/win32/visualc/freetype.dsp,
654 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
655 s/232/233/.
656
657 * docs/CHANGES: Mention ftdiff.
658
659 2007-03-26 David Turner <david@freetype.org>
660
661 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
662 corresponding code.
663 (Ins_MD): Last regression fix.
664
665 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
666 computations in order to ignore single-point contours. These are
667 never rasterized and correspond in certain fonts to mark-attach
668 points that are very far from the glyph's real outline, ruining the
669 computation.
670
671 * src/autofit/afloader.c (af_loader_load_g): In the case of
672 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
673 Otherwise code that uses them will most certainly ruin the fixed
674 advance property.
675
676 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
677 documentation and bump version number to 2.3.3.
678
679 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
680
681 * builds/unix/configure.raw (version_info): Set to 9:14:3.
682
683 2007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
684
685 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
686 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
687 * builds/vms/ftconfig.h: Ditto.
688 * include/freetype/config/ftconfig.h: Ditto.
689
690 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
691
692 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
693 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
694 proposed by Sean McBride:
695 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
696
697 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
698
699 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
700 setjmp, proposed by Sean McBride:
701 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
702
703 2007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
704
705 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
706 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
707 bug or undocumented behaviour of autoconf.
708
709 2007-03-18 David Turner <david@freetype.org>
710
711 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
712 fix; testing still needed.
713
714 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
715
716 2007-03-17 David Turner <david@freetype.org>
717
718 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
719 (undocumented) twilight zone special case.
720
721 2007-03-09 Werner Lemberg <wl@gnu.org>
722
723
724 * Version 2.3.2 released.
725 =========================
726
727
728 Tag sources with `VER-2-3-2'.
729
730 * builds/win32/visualc/index.html,
731 builds/win32/visualc/freetype.dsp,
732 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
733 s/231/232/.
734
735 2007-03-08 David Turner <david@freetype.org>
736
737 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
738
739 * builds/unix/configure.raw (version_info): Set to 9:13:3.
740
741 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
742
743 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
744
745 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
746 function to work properly, over-writing user-provided buffers in
747 some cases. Reported by James Cloos <cloos@jhcloos.com>.
748
749
750 2007-03-05 Werner Lemberg <wl@gnu.org>
751
752 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
753 macro for `strstr'.
754
755 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
756 `trick_names', as suggested by Ivan Nincic.
757
758 2007-03-05 David Turner <david@freetype.org>
759
760 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
761 case FT_Init_FreeType fails for some reason. Problem reported by
762 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
763
764 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
765 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
766 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
767 <daniel-gl@gmx.net>.
768
769 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
770 signed values, not unsigned ones. Problem reported by Johannes
771 Walther <joh_walt@yahoo.de>.
772
773 2007-02-21 David Turner <david@freetype.org>
774
775 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
776 of small and ghost stems in the Postscript interpreter.
777
778 2007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
779
780 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
781 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
782 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
783
784 2007-02-16 Werner Lemberg <wl@gnu.org>
785
786 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
787 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
788
789 2007-02-14 David Turner <david@freetype.org>
790
791 It seems that the following changes fix most of the known
792 interpreter problems with my fonts, but more testing is needed,
793 though.
794
795 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
796 (TT_MulFix14): Rewrite.
797 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
798 (Ins_MIRP): Ditto.
799
800 2007-02-12 Werner Lemberg <wl@gnu.org>
801
802 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
803 warnings.
804
805 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
806 (bdf_interpret_style): Ditto.
807
808 2007-02-12 David Turner <david@freetype.org>
809
810 Simplify projection and dual-projection code interface.
811
812 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
813 FT_Vector' as argument type.
814 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
815 Updated.
816 (CUR_fast_project, CUR_fast_dualproj): New macros.
817 (Project, Dual_Project, Project_x, Project_y): Updated.
818 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
819 macros.
820
821
822 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
823 adjustments for the non-light auto-hinted modes. Gets rid of
824 `inter-letter spacing is too wide' problems.
825
826 * src/autofit/aflatin.c (af_latin_hints_link_segments,
827 af_latin_hints_compute_edges): Slight optimization of the segment
828 linker and better handling of serif segments to get rid of broken
829 `9' in Arial at 9pt (96dpi).
830
831
832 Introduce new string functions and the corresponding macros to get
833 rid of various uses of strcpy and other `evil' functions, as well as
834 to simplify a few things.
835
836 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
837 ft_mem_strcpyn): New declarations.
838 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
839 macros.
840 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
841 functions.
842
843 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
844 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
845 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
846 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
847 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
848 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
849 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
850 t42_get_name_index): Use new functions and simplify code.
851
852 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
853
854 2007-02-11 Werner Lemberg <wl@gnu.org>
855
856 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
857 non-spacing glyphs.
858
859 2007-02-07 Tom Parker <palfrey@tevp.net>
860
861 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
862 pointer.
863
864 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
865
866 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
867 Introduce __attribute((deprecated))__ to warn functions
868 which use non-ANSI data types in its interfaces.
869 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
870 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
871 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
872 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
873
874 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
875 to avoid warning in building FreeType.
876 * builds/mac/ftmac.c: Ditto.
877
878 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
879
880 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
881 `--with-fsspec' etc. Replace #include "ftmac.c" with
882 #include <ftmac.c>.
883
884 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
885
886 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
887 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
888 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
889 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
890 FT_GetFilePath_From_Mac_ATS_Name.
891 * builds/mac/ftmac.c: Ditto.
892
893 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
894
895 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
896 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
897 for passing to FT_New_Face_From_FSSpec.
898
899 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
900
901 * builds/unix/configure.raw: Check whether Mac OS X system headers
902 can be built under ANSI C mode.
903
904 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
905 compatible to ANSI C in case system headers are ANSI C incompatible.
906 * builds/mac/ftmac.c (OS_INLINE): Ditto.
907
908 2007-02-01 Werner Lemberg <wl@gnu.org>
909
910 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
911 Explain why applications shouldn't use it. Found by Alexei.
912
913 2007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
914
915 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
916 message.
917
918 * src/gxvalid/gxvmort1.c
919 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
920 message.
921
922 2007-01-31 Werner Lemberg <wl@gnu.org>
923
924
925 * Version 2.3.1 released.
926 =========================
927
928
929 Tag sources with `VER-2-3-1-FINAL'.
930
931 * builds/win32/visualc/freetype.dsp,
932 builds/win32/visualc/freetype.vcproj: s/230/231/.
933 * builds/win32/visualc/index.html: s/221/231/.
934
935 * vms_make.com: Add `ftgasp'.
936
937 2007-01-30 David Turner <david@freetype.org>
938
939 Tag sources with VER-2-3-1 to prepare release.
940
941 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
942
943 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
944 s/2.3.0/2.3.1/.
945
946 * builds/unix/configure.raw (version_info): Set to 9:12:3.
947
948
949 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
950 (af_loader_load_g): Disable the warper (i.e., the light hinting
951 improvements) to make a 2.3.1 bugfix release before introducing a
952 new feature. This should give us more time to tune and improve the
953 warper for the next release.
954
955 * docs/CHANGES: Update accordingly.
956
957 2007-01-25 David Turner <david@freetype.org>
958
959 For light auto-hinting, improve glyph advance widths and resurrect
960 normal/full hinting to its normal quality.
961
962 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
963 and `xmax_delta'.
964 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
965 and `xmax_delta'.
966
967 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
968 preprocessor conditional with if-clause, handling both light and
969 normal mode.
970
971 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
972 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
973
974 2007-01-25 Werner Lemberg <wl@gnu.org>
975
976 * docs/release: Updated -- Savannah uses a new uploading scheme.
977
978 2007-01-25 David Turner <david@freetype.org>
979
980 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
981
982 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
983 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
984 functions.
985
986 * docs/CHANGES: Document light auto-hinting improvement.
987
988 2007-01-25 Werner Lemberg <wl@gnu.org>
989
990 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
991 correctly in a sanity check. Since this function is only used to
992 load local and global functions, any charstring that called the last
993 local/global function would fail otherwise. This fixes Savannah bug
994 #18867.
995
996 * docs/CHANGES: Document it.
997
998 2007-01-23 David Turner <david@freetype.org>
999
1000 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1001 prevented compilation when disabling both the unpatented and the
1002 bytecode interpreter in the TrueType font driver.
1003
1004
1005 Fix and enable the warper to improve `light' hinting mode. This is
1006 not necessarily a final version, but it seems to work well.
1007
1008 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1009 Disable code.
1010 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1011 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1012
1013 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1014 (af_warper_compute_line_best): Fix array size of `scores'.
1015 (af_warper_compute): Better handling of border cases.
1016 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1017 and `X2'.
1018
1019 2007-01-21 Werner Lemberg <wl@gnu.org>
1020
1021 * ChangeLog: Split off older entries into...
1022 * ChangeLog.22: This new file.
1023
1024 2007-01-21 Werner Lemberg <wl@gnu.org>
1025
1026 * docs/CHANGES: Document SHZ fix.
1027
1028 2007-01-21 George Williams <gww@silcom.com>
1029
1030 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1031 points.
1032
1033 2007-01-21 Werner Lemberg <wl@gnu.org>
1034
1035 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1036 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1037
1038 2007-01-17 Werner Lemberg <wl@gnu.org>
1039
1040
1041 * Version 2.3.0 released.
1042 =========================
1043
1044
1045 Tag sources with `VER-2-3-0-FINAL'.
1046
1047 2007-01-17 Werner Lemberg <wl@gnu.org>
1048
1049 * docs/release: Updated.
1050
1051 2007-01-16 David Turner <david@freetype.org>
1052
1053 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1054 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1055 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1056 warnings.
1057
1058 2007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1059
1060 * builds/amiga/makefile, builds/amiga/makefile.os4,
1061 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1062
1063 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1064
1065 2007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1066
1067 Fix various compiler warnings.
1068
1069 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1070 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1071 s/index/strike_index/.
1072 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1073
1074 * src/gxvalid/gxvmorx5.c
1075 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1076
1077 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1078 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1079 uninitialized variables.
1080
1081 2007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1082
1083 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1084
1085 2007-01-13 Werner Lemberg <wl@gnu.org>
1086
1087 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1088 versions up to 0x3FF without complaining.
1089
1090 2007-01-13 Derek Clegg <dclegg@apple.com>
1091
1092 Add FT_Get_PS_Font_Info interface to CFF driver.
1093
1094 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1095 (CFF_FontRec): Add `font_info' field.
1096
1097 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1098 (cff_font_done): Free font->font_info if necessary.
1099
1100 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1101 (cff_service_ps_info): Register cff_ps_get_font_info.
1102
1103 2007-01-13 Werner Lemberg <wl@gnu.org>
1104
1105 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1106 with C++ compiler.
1107
1108 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1109 af_glyph_hints_dump_edges): Ditto.
1110
1111 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1112 `modules.cfg').
1113
1114 * src/sfnt/ttsbit0.h: Remove.
1115
1116 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1117
1118 2007-01-12 David Turner <david@freetype.org>
1119
1120 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1121 bug in the bitmap emboldener if the pitch of the source bitmap is
1122 much larger than its width.
1123
1124 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1125 compilation warning.
1126
1127 2007-01-12 Werner Lemberg <wl@gnu.org>
1128
1129 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1130 `automake' CVS module from sources.redhat.com.
1131
1132 2007-01-11 Werner Lemberg <wl@gnu.org>
1133
1134 * src/type1/t1load.c (is_space): Removed.
1135 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1136 (parse_charstrings): Use IS_PS_TOKEN.
1137
1138
1139 * autogen.sh: Avoid bash specific syntax.
1140
1141 2007-01-11 David Turner <david@freetype.org>
1142
1143 * docs/CHANGES: Small update.
1144
1145 * builds/unix/configure.raw (version_info): Set to 9:11:3.
1146
1147 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1148 crash with some Mac OS X .dfont files. Submitted by Masatake
1149 Yamato.
1150
1151 * autogen.sh: Small fix to get it working on Mac OS X properly:
1152 The issue is that GNU libtool is called `glibtool' on this platform,
1153 and we must call `glibtoolize', since `libtoolize' doesn't exist.
1154
1155 2007-01-10 David Turner <david@freetype.org>
1156
1157 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1158 VER-2-3-0.
1159
1160 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1161 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1162 version number to 2.3.0.
1163
1164 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1165 (FREETYPE_PATCH): Set to 0.
1166
1167 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
1168 include/freetype/ftlcdfil.h: Update reference documentation with
1169 GASP support and LCD filtering sections.
1170
1171 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1172 which created an endless loop with some malformed font files.
1173
1174 2007-01-10 Derek Clegg <dclegg@apple.com>
1175
1176 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1177 values.
1178
1179 2007-01-08 David Turner <david@freetype.org>
1180
1181 * docs/CHANGES: Updated.
1182
1183 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1184 a new API `FT_Get_Gasp' to return entries of the `gasp' table
1185 corresponding to a given character pixel size.
1186
1187 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1188 `gasp' table, in order to avoid potential problems with later
1189 versions.
1190
1191 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1192 <freetype/ftgasp.h>.
1193
1194 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1195 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1196 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1197 default build.
1198
1199 2007-01-07 Werner Lemberg <wl@gnu.org>
1200
1201 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1202 Type 11 fonts.
1203 Scan for `/sfnts' token.
1204
1205 2007-01-07 Werner Lemberg <wl@gnu.org>
1206
1207 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
1208
1209 2007-01-06 Werner Lemberg <wl@gnu.org>
1210
1211 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1212 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1213
1214 2007-01-04 David Turner <david@freetype.org>
1215
1216 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1217 correctly. This fixes Savannah bug #17876.
1218
1219
1220 Do not allocate interpreter-specific tables in memory if we are not
1221 going to load glyphs with the bytecode interpreter anyway.
1222
1223 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1224 only if glyph is hinted.
1225 Updated.
1226 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1227 and `cvs_ready'.
1228 Add `tt_size_ready_bytecode' declaration.
1229 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1230 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1231 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1232 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1233 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
1234
1235
1236 Don't extract the metrics table from the SFNT font file. Instead,
1237 reparse it on each glyph load. The runtime difference is not
1238 noticeable, and it can save a lot of heap memory when memory-mapped
1239 files are not used.
1240
1241 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1242 `horz_metrics_offset' and `vert_metrics_ofset'.
1243 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1244 Updated.
1245
1246
1247 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1248
1249
1250 Do not load the CFF index offsets into memory, since this wastes a
1251 *lot* of heap memory with large Asian CFF fonts. There is no
1252 significant performance loss.
1253
1254 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1255 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1256 `data_size'.
1257 (CFF_CharsetRec): Add field `num_glyphs'.
1258
1259 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1260 cff_charset_cid_to_gindex): New functions.
1261 (cff_new_index): Renamed to...
1262 (cff_index_init): This. Update all callers.
1263 Updated -- some code has been moved to `cff_index_load_offsets'.
1264 (cff_done_index): Renamed to...
1265 (cff_index_done): This. Update all callers.
1266 (cff_index_get_pointers, cff_index_access_element): Updated to use
1267 stream offsets.
1268 (cff_charset_compute_cids): Set `num_glyphs' field.
1269 (cff_encoding_load): Updated.
1270
1271 * src/cff/cffgload.c (cff_slot_load): Updated.
1272
1273 2007-01-04 David Turner <david@freetype.org>
1274
1275 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1276 autogen.sh and pointer to README.CVS.
1277
1278 * README.CVS: Add common problem description and solution
1279 when running autogen.sh.
1280
1281 * docs/INSTALL: Add reference to MacOS X.
1282
1283 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
1284
1285 * docs/TODO: Remove obsolete items.
1286
1287 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1288 (TWorker): This.
1289 Remove `count_table' and `memory'.
1290 Make `grays' a pointer.
1291 (TRaster): New structure.
1292 (count_table): New static array.
1293 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1294 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1295 ft_black_set_mode, ft_black_render): Updated.
1296 (ft_black_init): Don't initialize `count_table'.
1297 (ft_black_reset): Use the render pool. This saves about 6KB of
1298 heap space for each FT_Library instance.
1299
1300 * src/smooth/ftgrays.c (TRaster): Replaced with...
1301 (TWorker): This.
1302 Remove `memory'.
1303 (TRaster): New structure.
1304
1305 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1306 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1307 gray_render_span, gray_raster_render): Updated.
1308 (gray_raster_reset): Use the render pool. This saves about 6KB of
1309 heap space for each FT_Library instance.
1310
1311 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1312 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
1313 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1314 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1315 the optimization is no longer experimental.
1316
1317 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1318 Remove a typo that results in no hinting and a memory leak with some
1319 large Asian CFF fonts.
1320
1321 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
1322 which happens when FT_Done_Library is called with still opened
1323 CFF_Faces in it. We need to close all faces before destroying the
1324 modules, or else some bad things (memory leaks) may happen.
1325
1326 2007-01-02 Werner Lemberg <wl@gnu.org>
1327
1328 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1329 Remove compiler warning.
1330
1331 2007-01-02 David Turner <david@freetype.org>
1332
1333 * src/sfnt/sfobjs.c: Add documentation comment.
1334
1335 2006-12-31 Masatake YAMATO <jet@gyve.org>
1336
1337 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1338 function.
1339 Check uniqueness of the gid pairs.
1340 (gxv_kern_subtable_fmt0_validate): Move some code to
1341 `gxv_kern_subtable_fmt0_pairs_validate'.
1342
1343 2006-12-22 David Turner <david@freetype.org>
1344
1345 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1346 warnings.
1347
1348 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1349 to avoid deprecation warnings with Visual C++ 8.
1350
1351 2006-12-16 Anders Kaseorg <anders@kaseorg.com>
1352
1353 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1354 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1355
1356 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1357
1358 * include/freetype/internal/services/svotval.h: Add `volatile' to
1359 sync with the modification by Jens Claudius on 2006-08-22; cf.
1360 http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
1361
1362 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1363
1364 * src/base/ftmac.c: Specialized for Mac OS X only.
1365 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1366 * builds/unix/configure.raw: Ditto. When explicit switches for
1367 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1368 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1369
1370 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1371
1372 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1373 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1374 instead of src/base/ftmac.c
1375 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1376 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1377 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1378 that cannot be built at present.
1379
1380 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1381
1382 * src/base/ftobjs.c: Improvement of resource fork handler for
1383 POSIX, cf.
1384 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
1385 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1386 format or .dfont, to simulate the face index number counted by ftmac.c.
1387 (IsMacResource): Return the number of scalable faces correctly.
1388
1389 2006-12-10 Werner Lemberg <wl@gnu.org>
1390
1391 * builds/toplevel.mk (version): Protect against `distclean' target.
1392
1393 2006-12-09 Werner Lemberg <wl@gnu.org>
1394
1395 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1396 or `type'.
1397
1398 * builds/freetype.mk (version): Extracted from freetype.h, using
1399 GNU make's built-in string functions.
1400 (refdoc): Use $(version) instead of static version number.
1401
1402 2006-12-08 Werner Lemberg <wl@gnu.org>
1403
1404 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1405
1406 2006-12-08 Vladimir Volovich <vvv@vsu.ru>
1407
1408 * src/tools/apinames (State): Remove final comma in structure -- xlc
1409 v5 under AIX 4.3 doesn't like this.
1410
1411 2006-12-07 David Turner <david@freetype.org>
1412
1413 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1414 to the spacing of auto-fitted glyphs. This only impacts rare
1415 cases (e.g., Arial Bold at rather small character sizes).
1416
1417 2006-12-03 Werner Lemberg <wl@gnu.org>
1418
1419 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1420
1421 2006-12-01 Werner Lemberg <wl@gnu.org>
1422
1423 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1424 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1425 (tt_name_entry_ascii_from_ucs4): Removed.
1426
1427
1428 * include/freetype/ftxf86.h: Fix and extend comment so that it
1429 appears in the documentation.
1430
1431 * include/freetype/ftchapters.h: Add `font_format' section.
1432
1433
1434 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1435 to TOC in index page.
1436
1437 2006-11-28 David Turner <david@freetype.org>
1438
1439 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1440 trying to render into a zero-width/height bitmap, not an error code.
1441
1442 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1443
1444 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1445 ones instead.
1446
1447 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1448 variable.
1449
1450 2006-11-26 Pierre Hanser <hanser@club-internet.fr>
1451
1452 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1453
1454 2006-11-25 David Turner <david@freetype.org>
1455
1456 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1457 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1458 Add stubs to link the `ftgrid' test program when debugging is
1459 disabled in the auto-hinter.
1460
1461 2006-11-23 David Turner <david@freetype.org>
1462
1463 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
1464 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1465
1466 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1467 Emit more sensible information.
1468
1469 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1470
1471 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1472 rounding of blue values.
1473 (af_latin_hints_compute_segments): Hint segment heights.
1474 (af_latin_hints_link_segments): Reduce `len_score' value.
1475 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1476 value and use `height' member for comparisons.
1477 (af_latin_hint_edges): Extend logging message.
1478 Improve handling of remaining edges.
1479
1480 2006-11-22 Werner Lemberg <wl@gnu.org>
1481
1482 Fix Savannah bug #15553.
1483
1484 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1485 program after a change from mono to grayscaling (and vice versa).
1486 Use correct constant for comparison to get `exec->grayscale'.
1487
1488 2006-11-18 Werner Lemberg <wl@gnu.org>
1489
1490 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
1491 test for a valid glyph index must be deferred to the font drivers.
1492 This patch fixes Savannah bug #18301.
1493
1494 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1495 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1496 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1497 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1498 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1499 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1500 (FNT_Load_Glyph): Check validity of `glyph_index'.
1501
1502 2006-11-13 David Turner <david@freetype.org>
1503
1504 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1505 `enhancements' are still too buggy for general use.
1506
1507 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1508 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1509 when building the library to change the default LCD filter to be
1510 used. This is only useful for experimentation.
1511
1512 * include/freetype/ftlcdfil.h: Update documentation.
1513
1514 2006-11-10 David Turner <david@freetype.org>
1515
1516 * src/smooth/ftsmooth.c: API change for the LCD
1517 filter. The FT_LcdFilter value is an enumeration describing which
1518 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1519 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1520 algorithm which produces strong color fringes for everything
1521 except very-well hinted text).
1522
1523 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1524 second parameter to an enum type.
1525
1526 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1527 (_ft_lcd_filter): Rename to...
1528 (_ft_lcd_filter_fir): This.
1529 Update parameters.
1530 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1531 (FT_Library_Set_LcdFilter): Update parameters.
1532 Handle new filter modes.
1533
1534 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1535 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1536 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1537 callback and update other fields.
1538
1539 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1540 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1541 Other minor improvements.
1542
1543 * src/autofit/aflatin.c: Various tiny improvements that drastically
1544 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1545 (af_latin_hints_compute_edges): Fix typo.
1546 (af_latin_compute_stem_width): Take better care of diagonal stems.
1547
1548 2006-11-09 David Turner <david@freetype.org>
1549
1550 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1551 typo which created a variable-used-before-initialized bug.
1552
1553 2006-11-07 Zhe Su <james.su@gmail.com>
1554
1555 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1556 also.
1557
1558 2006-11-03 Werner Lemberg <wl@gnu.org>
1559
1560 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1561
1562 2006-11-02 David Turner <david@freetype.org>
1563
1564 Add a few tweaks to better handle serif fonts.
1565 Add more debugging messages.
1566
1567 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1568 segments that are less than 1.5 pixels high. This gets rid of
1569 *many* corner cases with serifs.
1570 (af_latin_align_linked_edge): Add logging message.
1571 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1572 Add logging messages.
1573 Handle AF_EDGE_FLAG flag specially.
1574
1575 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1576 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1577
1578 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1579 Update external declarations.
1580 (af_corner_orientation, af_corner_is_flat): Replaced by...
1581
1582 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1583 ft_corner_is_flat): These declarations.
1584
1585 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1586 Comment out. Replaced by...
1587
1588 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1589 These functions. Update all callers.
1590 (FT_Add64) [!FT_LONG64]: Simplify.
1591
1592 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1593 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1594 production of garbage by missing lots of segments.
1595
1596 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1597
1598 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1599 [AF_DEBUG]: Set _af_debug_hints.
1600
1601
1602 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1603 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1604 and ft_corner_orientation.
1605
1606
1607 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
1608
1609 2006-10-24 Werner Lemberg <wl@gnu.org>
1610
1611 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1612
1613 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1614 as argument.
1615
1616 2006-10-23 Zhe Su <zsu@novell.com>
1617
1618 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1619 better deal with broken Asian fonts with strange glyphs, having
1620 self-intersections and other peculiarities. The used algorithm is
1621 based on the nonzero winding rule.
1622
1623 2006-10-23 David Turner <david@freetype.org>
1624
1625 Speed up the CFF font loader. With some large CFF fonts,
1626 FT_Open_Face is now more than three times faster.
1627
1628 * src/cff/cffload.c (cff_get_offset): Removed.
1629 (cff_new_index): Inline functionality of `cff_get_offset'.
1630 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1631 (cff_charset_done): Call `cff_charset_free_cids'.
1632 (cff_charset_load): Call `cff_charset_compute_cids'.
1633 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1634
1635 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1636 with FT_NEXT_XXX.
1637
1638
1639 Speed up the Postscript hinter, with more than 100% speed increase
1640 on my machine.
1641
1642 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1643 psh_corner_orientation): New functions.
1644 (psh_glyph_compute_inflections): Merge loops for efficiency.
1645 Use `psh_corner_orientation'.
1646 (psh_glyph_init): Use `psh_corner_is_flat'.
1647 (psh_hint_table_find_strong_point): Renamed to...
1648 (psh_hint_table_find_strong_points): This.
1649 Rewrite, adding argument to handle all points at once.
1650 Update all callers.
1651 (PSH_MAX_STRONG_INTERNAL): New macro.
1652 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
1653
1654 2006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1655
1656 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
1657 `error' with FT_Err_Ok.
1658
1659 2006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1660
1661 * docs/INSTALL.CROSS: New document file for cross-building.
1662
1663 * builds/unix/configure.raw: Preliminary cross-building support.
1664 Find native C compiler and pass it by CC_BUILD, and
1665 find suffix for native executable and pass it by EXEEXT_BUILD.
1666 Also suffix for target executable is passed by EXEEXT.
1667
1668 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1669 build `apinames' which runs on building system. They are set by
1670 CC_BUILD and EXEEXT_BUILD.
1671
1672 * builds/exports.mk (APINAMES_EXE): Change the extension for
1673 apinames from the suffix for target (E) to that for building host
1674 (E_BUILD).
1675
1676 2006-10-12 Werner Lemberg <wl@gnu.org>
1677
1678 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1679 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1680 which reference those files.
1681
1682 2006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1683
1684 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1685 embedded in freetype2.pc and freetype-config. Use it to record
1686 Carbon dependency of MacOSX.
1687
1688 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1689
1690 * builds/unix/freetype-config.in: Ditto.
1691
1692 2006-10-11 Werner Lemberg <wl@gnu.org>
1693
1694 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1695 development.
1696
1697 2006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1698
1699 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1700 argument to ft_setjmp.
1701
1702 * include/freetype/internal/ftvalid.h: Add comment that
1703 ft_validator_run must not be used.
1704
1705 2006-10-01 Werner Lemberg <wl@gnu.org>
1706
1707 * src/base/ftbase.c: Undo change from 2006-09-30.
1708
1709 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1710
1711 2006-09-30 David Turner <david@freetype.org>
1712
1713 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1714 s/unpatented_hinting/ignore_unpatented_hinter/.
1715 Update all callers.
1716
1717 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1718 auto-hinting shall be used or not.
1719
1720 * src/truetype/ttobjs.c (tt_face_init): Ditto.
1721
1722 2006-09-30 Werner Lemberg <wl@gnu.org>
1723
1724 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1725 in use).
1726
1727 * src/base/ftbase.c: Include `ftlcdfil.c'.
1728
1729 2006-09-29 Werner Lemberg <wl@gnu.org>
1730
1731 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1732 overlapping segments. Bug reported by Stefan Koch.
1733
1734 2006-09-28 David Turner <david@freetype.org>
1735
1736 Fix a bug in the automatic unpatented hinting support which prevents
1737 normal bytecode hinting to work properly.
1738
1739 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1740 s/force_autohint/unpatented_hinting/. Update all callers.
1741
1742 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1743
1744 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
1745
1746 2006-09-27 David Turner <david@freetype.org>
1747
1748 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
1749
1750
1751 Add a new API to support color filtering of subpixel glyph bitmaps.
1752 In a default build, the function `FT_Library_SetLcdFilter' returns
1753 `FT_Err_Unimplemented_Feature'; you need to #define
1754 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1755 real implementation.
1756
1757 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
1758
1759 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1760 typedef.
1761 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1762 `lcd_filter_weights' and `lcd_filter'.
1763
1764 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1765 `hmul' and `vmul'.
1766
1767 Handle subpixel rendering.
1768 Simplify function.
1769 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1770 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1771
1772 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1773 pointing to <freetype/ftlcdfil.h>.
1774
1775 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1776 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1777
1778 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
1779
1780 2006-09-26 David Bustin
1781
1782 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1783 correctly. Reported as Savannah bug #17843.
1784
1785 2006-09-26 David Turner <david@freetype.org>
1786
1787 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1788 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1789 horizontal and vertical hinting for the purpose of debugging the
1790 auto-fitter.
1791
1792 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1793 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
1794
1795 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1796
1797 * include/freetype/config/ftoption.h, devel/ftoption.h
1798 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1799 we want to compile LCD-optimized rendering code (à la ClearType) or
1800 not. The macro *must* be disabled in default builds of the library
1801 for patent reasons.
1802
1803 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1804 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1805 isn't defined at compile time. This only changes the content of the
1806 rendered glyph to match the one of normal gray-level rendering,
1807 hence clients should not need to be modified.
1808
1809 * docs/CHANGES: Updated.
1810
1811 2006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1812
1813 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1814 LWFN fails and both are available.
1815
1816 2006-09-11 David Turner <david@freetype.org>
1817
1818 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1819 report their English names through an Apple Roman
1820 (platform,encoding) pair, with language_id != English.
1821
1822 If the font uses another name entry with language_id == English, it
1823 will be selected correctly, though.
1824
1825 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1826 selection for `mingli.ttf'.
1827
1828 2006-09-05 Werner Lemberg <wl@gnu.org>
1829
1830 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
1831 values which have the upper two bytes set to 0xFF instead of 0x00
1832 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1833 `HAN NOM B.ttf').
1834
1835 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1836
1837 2006-09-05 David Turner <david@freetype.org>
1838
1839 Minor source cleanups and optimizations.
1840
1841 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1842 (TRaster): Remove `count_ex' and `count_ey'.
1843 (gray_find_cell): Remove 2nd and 3rd argument.
1844 (gray_alloc_cell): Merged with `gray_find_cell'.
1845 (gray_record_cell): Simplify.
1846 (gray_set_cell): Rewrite.
1847 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1848 (gray_render_span): Don't use FT_MEM_SET for small values.
1849 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1850 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1851 bitmap scanline.
1852 (gray_convert_glyph): Fix speed-up.
1853
1854 2006-09-04 David Turner <david@freetype.org>
1855
1856 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1857 64bit processors.
1858
1859 2006-09-03 Werner Lemberg <wl@gnu.org>
1860
1861 * devel/ftoption.h: Synchronize with
1862 include/freetype/config/ftoption.h.
1863
1864 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1865 variable declaration.
1866 (gray_convert_glyph): Fix compiler warnings.
1867
1868 2006-09-01 David Turner <david@freetype.org>
1869
1870 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1871 to recognize a few fonts that require the automatic unpatented
1872 loader.
1873
1874 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1875 rasterizer. The speed improvement is between 15% and 25%, depending
1876 on the font data.
1877
1878 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1879 (TCell): Redefine.
1880 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1881 (gray_init_cells): Updated.
1882 (gray_find_cell, gray_alloc_cell): New functions.
1883 (gray_record_cell): Rewritten to use `gray_find_cell' and
1884 `gray_alloc_cell'.
1885 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1886 QSORT_THRESHOLD):
1887 Removed.
1888 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1889 gray_dump_cells): Removed.
1890 (gray_sweep): Rewritten.
1891 (gray_convert_glyph): Rewrite code which used one of the sorting
1892 functions.
1893 (gray_raster_render): Updated.
1894
1895 2006-08-29 Dr. Werner Fink <werner@suse.de>
1896
1897 * configure: Make it possible to handle configure options which
1898 have strings containing spaces.
1899
1900 2006-08-27 David Turner <david@freetype.org>
1901
1902 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1903 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1904 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1905
1906 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1907 src/truetype/truetype.c, src/truetype/ttdriver.c,
1908 src/truetype/ttgload.c, src/truetype/ttgload.h,
1909 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1910 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1911 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1912
1913 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1914 member `force_autohint'.
1915
1916 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1917
1918 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1919 against a list of font names which need the bytecode interpreter.
1920
1921 2006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1922
1923 Fix miscellaneous compiler warnings.
1924
1925 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1926 `*/' to avoid `/* in comment' compiler warning.
1927
1928 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1929 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1930 64-bit platforms void* is larger than FT_UInt32.
1931
1932 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1933 volatileness of argument to ft_longjmp. Spotted by Werner
1934 `Putzfrau' Lemberg.
1935
1936 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1937 variable `lineno'.
1938
1939 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1940 variable `error' as volatile.
1941
1942 2006-08-27 Werner Lemberg <wl@gnu.org>
1943
1944 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1945 Reported by Jens.
1946
1947 2006-08-22 Jens Claudius <jens.claudius@yahoo.com>
1948
1949 Fix for previous commit, which caused many compiler warnings/errors
1950 about addresses of volatile objects passed as function arguments as
1951 non-volatile pointers.
1952
1953 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1954 typedef a pointer to a volatile object.
1955
1956 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1957 argument `table' a pointer to a volatile object.
1958
1959 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1960 argument `table' a pointer to a volatile object.
1961
1962 2006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1963
1964 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1965 variable `_sfnt' as volatile since it must keep its value across
1966 a call to ft_setjmp.
1967 (gxv_validate): Same for local variables `memory' and `valid'.
1968 (classic_kern_validate): Same for local variables `memory',
1969 `ckern', and `valid'.
1970
1971 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1972 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1973 `jstf', and 'valid'.
1974
1975 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1976 local variable `cmap'.
1977
1978 2006-08-16 David Turner <david@freetype.org>
1979
1980 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1981 warnings.
1982
1983 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1984 buggy by design. Always return -1.
1985
1986
1987 Improvements to native TrueType hinting. This is a first try,
1988 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1989
1990 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1991 `extra_points2'.
1992
1993 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1994 `orus'.
1995
1996 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1997 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1998 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1999 handle `extra_points2'.
2000
2001 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2002 Remove compiler warning.
2003 (cur_to_arg): Remove macro.
2004 (TT_Hint_Glyph): Updated.
2005 (TT_Process_Simple_Glyph): Handle `orus'.
2006
2007 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2008 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2009 (LOC_Ins_IUP): Renamed to...
2010 (IUP_WorkerRec): This.
2011 Add `orus' member.
2012 (Shift): Renamed to...
2013 (_iup_worker_shift): This.
2014 Updated.
2015 (Interp): Renamed to...
2016 (_iup_worker_interpolate): This.
2017 Updated to handle `orus'.
2018 (Ins_IUP): Updated.
2019
2020 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2021 Handle `orus'.
2022
2023 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2024
2025 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
2026 build ftvalid in ft2demos. This has been inadvertedly changed
2027 2006-08-13.
2028
2029 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2030
2031 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2032 Jens:
2033 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
2034
2035 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2036 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
2037
2038 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2039
2040 2006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2041
2042 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2043 T1_TOKEN_TYPE_KEY.
2044 (T1_FieldRec): Add `dict'.
2045 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2046 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2047 keyword is expected as an additional argument.
2048
2049 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2050 invocations of T1_FIELD_XXX.
2051
2052 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2053
2054 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
2055 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2056 not T1_TOKEN_TYPE_ANY.
2057 (ps_parser_load_field): Make sure a token that should be a string or
2058 name is really a string or name.
2059 Avoid memory leak if a keyword has been already encountered and its
2060 value is overwritten.
2061 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2062 T1_FIELD_XXX.
2063 (parse_dict): Ignore keywords that occur in the wrong dictionary
2064 (e.g., in `Private' instead of `FontDict').
2065
2066 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2067 T1_FIELD_XXX.
2068
2069 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2070 invocations of T1_FIELD_XXX.
2071
2072 2006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2073
2074 Move creation of field `buildchar' of T1_DecoderRec out of
2075 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2076 of it.
2077
2078 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2079 and `T1_Compute_Max_Advance'.
2080
2081 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2082 Remove field `face', add `len_buildchar'.
2083
2084 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2085 field `buildchar'.
2086
2087 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2088 finisher for T1_Decoder.
2089 (cid_slot_load_glyph): Do not ignore failure when initializing the
2090 T1_Decoder.
2091
2092 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2093 Updated.
2094 (t1_decoder_init): Remove initialization of fields `buildchar' and
2095 `len_buildchar'.
2096 (t1_decoder_done): Remove deallocation of field `buildchar'.
2097
2098 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2099 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2100 T1_Decoder.
2101 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2102 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2103 case of error.
2104
2105 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2106 `buildchar' of T1_FaceRec.
2107
2108 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2109 `buildchar' of T1_FaceRec.
2110
2111 2006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2112
2113 * freetype2/include/freetype/internal/psaux.h: New macros
2114 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2115 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2116 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2117 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2118 (T1_DecoderRec): New fields `buildchar' and `face'.
2119 (IS_PS_TOKEN): New macro.
2120
2121 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2122 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2123
2124 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2125 `default_design_vector' and `num_default_design_vector'.
2126
2127 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2128 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2129 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2130
2131 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2132 `token' argument to be NULL if we want only to count the number of
2133 tokens.
2134 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2135 want to skip the array.
2136 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2137 want to skip the array.
2138
2139 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2140 support for (partially commented out) othersubrs 19-25, 27, and 28.
2141 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2142 (t1_decoder_done): Release new field `buildchar'.
2143
2144 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2145 functions.
2146 (t1_keywords): Register them.
2147 (t1_allocate_blend): Updated.
2148 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2149 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2150 (parse_dict): Remove `keyword_flags' argument.
2151 Use new macro IS_PS_TOKEN.
2152 Changed function so that later PostScript definitions override
2153 earlier ones.
2154 (t1_init_loader): Initialize new field `keywords_encountered'.
2155 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2156 `len_buildchar'.
2157 Remove `keywords_flags'.
2158
2159 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2160 `keywords_encountered'.
2161 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2162
2163 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2164 New entries for parsing /NDV, /CDV, and /DesignVector.
2165
2166 2006-07-07 Werner Lemberg <wl@gnu.org>
2167
2168 Add many checks to protect against malformed PCF files.
2169
2170 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2171 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2172
2173 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2174 data and check that tables don't overlap (using a simple
2175 bubblesort).
2176 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2177 New macros which give the size of data structures in the data
2178 stream.
2179 (pcf_get_properties): Use rough estimates to get array size limits.
2180 Assign `face->nprops' and `face->properties' earlier so that a call
2181 to PCF_Face_Done can do the clean-up in case of error.
2182 Protect against invalid string offsets.
2183 (pcf_get_metrics): Clean up code.
2184 Adjust tracing message levels.
2185 Use rough estimate to get array size limit.
2186 (pcf_get_bitmaps): Clean up code.
2187 Adjust tracing message levels.
2188 Use rough estimates to get offset limits.
2189 (pcf_get_encodings): Adjust tracing message level.
2190 (pcf_get_accel): Clean up code.
2191
2192 2006-06-26 Werner Lemberg <wl@gnu.org>
2193
2194 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2195 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2196
2197 2006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2198
2199 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2200 (t1_decoder_parse_charstrings): Operator with
2201 opcode 15 pops its two arguments.
2202 Handle the case where the pops of an othersubr may be part of a
2203 subroutine.
2204 Handle unknown othersubrs gracefully: count their operands and let
2205 the following pop operators push the operands as the results onto
2206 the Type1 stack.
2207 Improve handling of setcurrentpoint opcode.
2208
2209 2006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2210
2211 The Type 1 parser now skips over top-level procedures as required
2212 for a `Simplified Parser'. This makes the parser more robust as it
2213 doesn't poke around in PostScript code. Additionally, it makes the
2214 FontDirectory hackery in src/type1/t1load.c unnecessary.
2215
2216 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2217 (skip_literal_string): Add FT_Error as return value.
2218 Handle escapes better.
2219 (skip_string): Add FT_Error as return value.
2220 Don't set `parser->error' but return error code directly.
2221 (skip_procedure): New function.
2222 (ps_parser_skip_PS_token): Handle procedures.
2223 Update code.
2224 (ps_parser_to_token): Update code.
2225 (ps_parser_load_field_table): Handle bbox entries also.
2226
2227 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2228 Add commented-out code for synthetic fonts.
2229
2230 2006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2231
2232 Fix two hinting bugs as reported in
2233 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2234
2235 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2236 `first_point' member.
2237
2238 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2239 `first_point'.
2240 (TT_Process_Composite_Glyph): Always untouch points.
2241
2242 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2243 `first_point' and `last_point' in case of composite glyphs.
2244 (Ins_IUP): Fix computation of `end_point'.
2245
2246 2006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2247
2248 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2249 Mac. The original patch was written by David Sachitano and Lawrence
2250 Coopet, and modified by Sean McBride for MPW compatibility. Only
2251 required data are converted; unused data are left in big endian.
2252
2253 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2254 Mac OS X platforms.
2255 (OS_INLINE): Undefine before definition.
2256 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2257 FontAssociation table in FOND resource.
2258 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2259 and fontSize at each entry of FontAssociation table in FOND
2260 resource.
2261 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2262 ffStylOff of FamilyRecord header of FOND resource, the header,
2263 fontSize, fontID at each entry of FontAssociation table, and
2264 StyleMapping table.
2265 (count_faces): Call `HUnlock' after all FOND utilization.
2266
2267 2006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2268
2269 Public API of TrueTypeGX, OpenType, and classic kern table validator
2270 should return `FT_Err_Unimplemented_Feature' if validation service
2271 is unavailable (disabled in `modules.cfg'). It is originally
2272 suggested by David Turner, cf.
2273 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2274
2275 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2276 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2277 unavailable.
2278 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2279 classic kern table validation service is unavailable.
2280
2281 * src/base/ftotval.c (FT_OpenType_Validate): Return
2282 FT_Err_Unimplemented_Feature if OpenType validation service is
2283 unavailable.
2284
2285 2006-06-08 Werner Lemberg <wl@gnu.org>
2286
2287 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2288 errors.
2289
2290 2006-06-07 David Turner <david@freetype.org>
2291
2292 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2293 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2294 file doesn't have kerning pairs. This fixes Savannah bug #16768.
2295
2296 2006-06-06 David Turner <david@freetype.org>
2297
2298 Fix memory leak described in Savannah bug #16759.
2299
2300 We change `ps_unicodes_init' so that it also takes a
2301 `free_glyph_name' callback to release the glyph names returned by
2302 `get_glyph_name'
2303
2304 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2305 Renamed to ...
2306 (PS_GetGlyphNameFunc): This.
2307 (PS_FreeGlyphNameFunc): New typedef.
2308 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2309
2310 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2311 argument.
2312 (cff_sid_free_glyph_name): New function.
2313 (cff_cmap_unicode_init): Updated.
2314
2315 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2316
2317 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2318 PS_FreeGlyphNameFunc and use it.
2319
2320
2321 2006-06-04 David Turner <david@freetype.org>
2322
2323 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2324 `item_size == 0' as well -- though this sounds weird, it can
2325 theoretically happen. This fixes Savannah bug #16669.
2326
2327 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2328 of `face->num_glyphs' which missed the last glyph, due to
2329 the offset-by-1 computation, since the PFR format doesn't
2330 guarantee that glyph index 0 corresponds to the `missing
2331 glyph. This fixes Savannah bug #16668.
2332
2333 2006-05-25 Werner Lemberg <wl@gnu.org>
2334
2335 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2336 `-no-undefined'. Reported by Christian Biesinger.
2337
2338 2006-05-19 Brian Weed <bw@imaginengine.com>
2339
2340 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2341 have debug information, and debug libraries use `C7 compatible'
2342 debug info.
2343
2344 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2345
2346 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
2347 resource fork handler. This fixes Savannah bug #16631.
2348
2349 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2350 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
2351
2352 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
2353 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
2354
2355 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2356
2357 * build/unix/configure.raw: Add a fallback to disable Carbon
2358 dependency, if configured with no options on Mac OS X.
2359
2360 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2361
2362 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
2363 its content cannot be parsed as supported font. This fixes
2364 the second part of Savannah bug #16590.
2365
2366 2006-05-18 Werner Lemberg <wl@gnu.org>
2367
2368 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2369 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2370
2371 2006-05-17 David Turner <david@freetype.org>
2372
2373 This is a major patch used to drastically improve the performance of
2374 loading glyphs. This both speeds up loading the glyph vectors
2375 themselves and the auto-fitter module.
2376
2377 We now use inline assembler code with GCC to implement `FT_MulFix',
2378 which is probably the most important function related to the
2379 engine's performance.
2380
2381 The resulting speed-up is about 25%.
2382
2383
2384 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2385 `cursor' and `limit'.
2386
2387 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2388 New functions.
2389 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2390 [TEST]: Remove.
2391
2392 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2393 code.
2394
2395 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2396 `FT_ZERO'
2397 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2398 (af_glyph_hints_reload: Rewrite recognition of weak points.
2399
2400 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2401 constant values out of the loops.
2402
2403 * src/autofit/aftypes.h: Updated.
2404
2405 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2406
2407 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2408 product to get orientation.
2409
2410 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2411 (FT_Stream_OpenGzip): Use it to handle small files directly in
2412 memory.
2413
2414 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2415 Improve performance.
2416
2417 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2418 `limit'.
2419
2420 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2421 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2422 exceedingly large values of number of contours. Speed up by
2423 reducing the number of loops.
2424
2425 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2426
2427
2428 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2429 used to detect rogue clients from 4 to 16. This is to prevent some
2430 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2431 comes from the Japanese Adobe Reader Asian Font pack.
2432
2433 2007-05-17 Werner Lemberg <wl@gnu.org>
2434
2435 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
2436 fixes the first part of Savannah bug #16590.
2437
2438 2006-05-16 Werner Lemberg <wl@gnu.org>
2439
2440 * docs/PROBLEMS: Updated icl issues.
2441
2442 ----------------------------------------------------------------------------
2443
2444 Copyright 2006, 2007 by
2445 David Turner, Robert Wilhelm, and Werner Lemberg.
2446
2447 This file is part of the FreeType project, and may only be used, modified,
2448 and distributed under the terms of the FreeType project license,
2449 LICENSE.TXT. By continuing to use, modify, or distribute this file you
2450 indicate that you have read the license and understand and accept it
2451 fully.
2452
2453
2454 Local Variables:
2455 version-control: never
2456 coding: utf-8
2457 End: