blob: b5b2fdc78788ef0abc2cb1d5848c3e114582dcfd [file] [log] [blame]
Werner Lembergab1604b2007-06-16 07:59:39 +000012006-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
2
3 * src/winfonts/winfnt.h: Add necessary structures for PE resource
4 parsing.
5 (WinPE32_HeaderRec): New structure.
6 (WinPE32_SectionRec): New structure.
7 (WinPE_RsrcDirRec): New structure.
8 (WinPE_RsrcDirEntryRec): New structure.
9 (WinPE_RsrcDataEntryRec): New structure.
10 (FNT_FontRec): Remove unused `size_shift' field.
11
12 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
13 loading bitmap .fon files in PE format.
14
Werner Lemberg08a645d2007-06-15 14:05:20 +0000152006-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
16
17 * builds/win32/ftdebug.c: Unify debug level handling with other
18 platforms.
19
Werner Lemberg367f3012007-06-14 06:56:52 +0000202006-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
21
22 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
23 console as well as to the debugger.
24
Werner Lemberg46dde492007-06-14 03:59:02 +0000252006-06-14 Werner Lemberg <wl@gnu.org>
26
27 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
28 cover all ranges which could possibly be handled by the aflatin
29 module (since the default fallback for unknown ranges is now the
30 afcjk module). It might be necessary to fine-tune this further by
31 splitting off modules for Greek, Cyrillic, or other blocks.
32
David Turnerb7920172007-06-11 05:37:35 +0000332007-06-11 David Turner <david@freetype.org>
34
Werner Lemberg49e18b82007-06-11 21:15:09 +000035 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
36 incorrect segment linking computation. This was the root cause of
37 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +000038
39
Werner Lemberg49e18b82007-06-11 21:15:09 +000040 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
41 to improve the Latin auto-hinter. Note that the new code is
42 disabled by default since it is not stabilized yet.
43
44 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
45 (disabled currently).
46
47 * src/autofit/afhints.c: Remove dead code.
48 (af_axis_hints_new_edge): Add argument to handle segment directions.
49 (af_edge_flags_to_string): New function.
50 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
51 option flags.
52 (af_glyph_hints_reload): Add argument to handle inflections.
53 Simplify.
54 (af_direction_compute): Fine tuning.
55 (af_glyph_hints_align_edge_points): Fix logic.
56 (af_glyph_hints_align_strong_points): Do linear search for small
57 edge counts.
58 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
59 (af_iup_shift): Handle zero `delta'.
60
61 * src/autofit/afhints.h: Updated.
62 (AF_SORT_SEGMENTS): New macro (disabled).
63 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
64
65 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
66 argument to pass option flags for handling scripts.
67 * src/autofit/afglobal.h: Updated.
68
69 * src/autofit/afcjk.c: Updated.
70 * src/autofit/aflatin.c: Updated.
71 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
72
73 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
74 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
75 Don't set `edge->dir'
76 (af_latin_hint_edges): Add more logging.
77
78 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +000079
Werner Lembergf6c120f2007-06-11 04:55:58 +0000802007-06-11 Werner Lemberg <wl@gnu.org>
81
Werner Lembergcf7b7642007-06-11 04:58:01 +000082 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +000083
David Turner84c6f882007-06-10 20:51:04 +0000842007-06-10 David Turner <david@freetype.org>
85
Werner Lembergf6c120f2007-06-11 04:55:58 +000086 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
87 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +000088
Werner Lembergf6c120f2007-06-11 04:55:58 +000089 * include/freetype/config/ftoption.h: Clarify documentation
90 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +000091
Werner Lembergf6c120f2007-06-11 04:55:58 +000092
93 Add new `FT_Face_CheckTrueTypePatents' API.
94
95 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
96 declaration.
97
98 * include/freetype/internal/services/svttglyf.h,
99 src/base/ftpatent.c: New files.
100
101 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
102 New macro.
103
104 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
105 `ttpload.h'.
106 (tt_service_truetype_glyf): New service structure.
107 (tt_services): Register it.
108
109 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
110 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000111
Werner Lemberg33db39e2007-06-08 06:30:29 +00001122007-06-08 Werner Lemberg <wl@gnu.org>
113
David Turner84c6f882007-06-10 20:51:04 +0000114 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000115 Fonts without a cmap must be handled correctly by FreeType (anything
116 else would be a bug).
117
118
119 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
120 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
121
Werner Lemberg88ab6382007-06-07 05:01:56 +00001222007-06-07 Werner Lemberg <wl@gnu.org>
123
124 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
125 tt_sbit_decoder_load_image): Protect against integer overflows.
126
127
128 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
129 for `x_control' and `y_control'.
130
Werner Lemberg2a2dca62007-06-06 04:39:37 +00001312007-06-06 Werner Lemberg <wl@gnu.org>
132
133 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
134
Werner Lemberga8d65492007-06-06 04:47:49 +0000135
136 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
137 FreeType error.
138
Werner Lemberg470210b2007-06-06 10:05:49 +0000139
140 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
141 `font_count'.
142
143
144 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
145
146
147 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
148 `FT_Error'.
149 Check `fd_index'.
150 (cff_slot_load): Updated.
151 * src/cff/cffgload.h: Updated.
152
Werner Lemberg6c054752007-06-05 05:27:54 +00001532007-06-05 Werner Lemberg <wl@gnu.org>
154
155 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
156 (pfr_glyph_load_simple): Convert assertion into normal FreeType
157 error.
158 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000159 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
160 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000161
162 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
163
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000164
Werner Lemberg470210b2007-06-06 10:05:49 +0000165 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000166
Werner Lemberge5c14d92007-06-05 20:50:37 +0000167
168 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
169 in case of parsing error.
170 (ps_parser_load_field): Updated.
171
172 * src/type1/t1load.c (parse_font_matrix): Updated.
173
Werner Lembergad18b362007-06-04 07:04:05 +00001742007-06-04 Werner Lemberg <wl@gnu.org>
175
176 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
177
178 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
179
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001802007-06-03 Werner Lemberg <wl@gnu.org>
181
Werner Lemberg99a320b2007-06-03 19:21:26 +0000182 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
183 George Williams (with some modifications).
184
1852007-06-03 Werner Lemberg <wl@gnu.org>
186
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000187 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
188 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
189 face == NULL. Suggested by Graham Asher.
190
Werner Lembergce280a22007-06-03 05:58:30 +00001912007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
192
193 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
194
Werner Lemberg5b591e42007-06-01 22:16:43 +00001952007-06-02 Werner Lemberg <wl@gnu.org>
196
197 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
198 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
199
200 * src/bdf/bdflib.c (bdf_load_font): Use them.
201
202 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
203
Werner Lembergb9933f42007-06-01 21:27:12 +00002042007-06-01 Werner Lemberg <wl@gnu.org>
205
206 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
207 (FTC_CMapCache_Lookup): Remove unused code.
208
Werner Lembergc793d902007-06-01 20:51:11 +00002092007-06-01 Sean McBride <sean@rogue-research.com>
210
211 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
212 unused.
213
Werner Lembergbebc7b12007-06-01 06:32:30 +00002142007-06-01 Werner Lemberg <wl@gnu.org>
215
216 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
217 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000218 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000219
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000220 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
221 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
222
Werner Lembergba03af62007-05-30 13:57:02 +00002232007-05-30 Werner Lemberg <wl@gnu.org>
224
225 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
226 against too small binary data strings.
227
228 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
229
David Turnerf0cd69c2007-05-28 15:42:09 +00002302007-05-28 David Turner <david@freetype.org>
231
Werner Lemberg99e0c182007-05-29 07:00:23 +0000232 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
233 transformation. This significantly reduces the loading time of CFF
234 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000235
Werner Lemberg99e0c182007-05-29 07:00:23 +0000236 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000237
Werner Lemberg99e0c182007-05-29 07:00:23 +0000238 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
239 hinting script to CJK, since it works well with more scripts than
240 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
241 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000242
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002432007-05-25 Werner Lemberg <wl@gnu.org>
244
245 * docs/CHANGES: Updated.
246
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00002472007-05-24 Werner Lemberg <wl@gnu.org>
248
249 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
250 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
251
2522007-05-24 Graham Asher <graham.asher@btinternet.com>
253
254 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
255 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
256
David Turner0d0365e2007-05-22 09:53:44 +00002572007-05-22 David Turner <david@freetype.org>
258
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000259 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
260 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000261
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000262
263 Avoid heap blowup with very large .Z font files. This fixes
264 Savannah bug #19910.
265
266 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
267 `in_limit', `pad', `pad_bits', and `in_buff' members.
268 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
269 `buf_total' members.
270
271 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
272 only one argument.
273 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000274
2752007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000276
277 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
278 (ps_dimension_set_mask_bits): Remove `const'.
279
David Turner0d0365e2007-05-22 09:53:44 +00002802007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000281
282 * src/sfnt/ttmtx.c (tt_face_get_metrics)
283 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
284
Werner Lembergb826fa72007-05-19 07:18:48 +00002852007-05-19 Derek Clegg <dclegg@apple.com>
286
287 Savannah patch #5929.
288
289 * include/freetype/tttables.h, src/base/ftobjcs.c
290 (FT_Get_CMap_Format): New function.
291
292 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
293 `format' member.
294 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
295 cmap_info->format.
296
Werner Lemberg6f99c882007-05-19 07:01:49 +00002972007-05-19 Werner Lemberg <wl@gnu.org>
298
299 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
300 before handling subglyphs so that it can be reinitialized each time.
301 This fixes Savannah bug #19859.
302
Werner Lemberg95bc9d32007-05-16 15:19:42 +00003032007-05-16 Werner Lemberg <wl@gnu.org>
304
305 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
306 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
307 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
308 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
309 tt_face_get_metrics): Fix type-punning issues.
310
David Turner0a24bd22007-05-15 10:54:10 +00003112007-05-15 David Turner <david@freetype.org>
312
313 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000314 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
315 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000316 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000317 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000318
Werner Lemberg607dec72007-05-15 06:49:37 +00003192007-05-15 Graham Asher <graham.asher@btinternet.com>
320
321 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
322 variable.
323 * src/autofit/afloader.c (af_loader_load_g): Ditto.
324
325 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
326 (open_face_from_buffer): Initialize `stream'.
327 (FT_Request_Metrics): Remove unused variable.
328 Remove redundant `break' statements.
329 (FT_Get_Track_Kerning): Remove unused variable.
330
331 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
332 afm_parse_kern_data): Remove redundant
333 `break' statements.
334 (afm_parser_parse): Ditto.
335 Don't use uninitialized variables.
336
337 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
338 Use `|' operator instead of `^' to set it.
339 Update all users.
340
341 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
342 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
343
344 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
345 comparison.
346 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
347 (TT_Load_Glyph): Remove unused variable.
348
Werner Lemberg8d463a52007-05-13 16:01:55 +00003492007-05-13 Derek Clegg <dclegg@apple.com>
350
351 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
352 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
353
David Turner711cf842007-05-11 14:36:24 +00003542007-05-11 David Turner <david@freetype.org>
355
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000356 * src/cache/ftbasic.c, include/freetype/ftcache.h
357 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
358 functions that allow us to look up glyphs using an FTC_Scaler object
359 to specify the size, making it possible to use fractional pixel
360 sizes.
361
362 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
363 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000364
Werner Lemberg94be20e2007-05-09 20:02:55 +00003652007-05-09 Graham Asher <graham.asher@btinternet.com>
366
367 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
368 (af_latin_metrics_scale_dim): Fix compiler warnings.
369
Werner Lemberg41271032007-05-06 04:51:48 +00003702007-05-06 Werner Lemberg <wl@gnu.org>
371
372 * builds/win32/visualce/freetype.sln: Removed, as requested by
373 Vincent.
374
Werner Lembergdf49e692007-05-04 06:30:05 +00003752007-05-04 Vincent RICHOMME <richom.v@free.fr>
376
377 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
378 PC targets.
379
380 * docs/CHANGES: Document them.
381
3822007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000383
384 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
385 mmap (which might happen on some RTOS). From Savannah patch #5909.
386
Werner Lemberg106eaf12007-05-03 07:07:47 +00003872007-05-03 Werner Lemberg <wl@gnu.org>
388
389 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
390 * include/freetype/freetype.h (FT_Set_Char_Size): Update
391 documentation.
392
Werner Lemberg1b5267d2007-04-28 21:06:15 +00003932007-04-28 Victor Stinner <victor.stinner@inl.fr>
394
395 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
396 `cmap'.
397
Werner Lembergcc712a22007-04-27 17:16:50 +00003982007-04-27 Werner Lemberg <wl@gnu.org>
399
400 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
401 number of points in contours. Problem reported by Victor Stinner
402 <victor.stinner@haypocalc.com>.
403 (TT_Process_Simple_Glyph): Synchronize variable types.
404
Werner Lemberg45bb18f2007-04-26 06:26:35 +00004052007-04-26 Werner Lemberg <wl@gnu.org>
406
407 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
408 zero in case of error. This fixes Savannah bug #19689.
409
David Turnera8b45e62007-05-11 14:10:30 +00004102007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
411
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000412 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
413 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000414
Werner Lembergfcc1f472007-04-10 11:51:50 +00004152007-04-10 Martin Horak <horakm@centrum.cz>
416
417 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
418 Ignore `hhea' table. This fixes Savannah bug #19261.
419
Werner Lemberg14bf82e2007-04-10 04:09:49 +00004202007-04-09 Werner Lemberg <wl@gnu.org>
421
422 * Version 2.3.4 released.
423 =========================
424
425
426 Tag sources with `VER-2-3-4'.
427
428 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
429 version number to 2.3.4.
430
431 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
432 builds/win32/visualc/freetype.dsp,
433 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
434
435 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
436
437 * builds/unix/configure.raw (version_info): Set to 9:15:3.
438
Werner Lembergf4a52a62007-04-09 08:40:11 +00004392007-04-09 Martin Horak <horakm@centrum.cz>
440
441 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
442 memory stream to avoid a crash with the incremental memory
443 interface (Savannah bug #19260).
444
David Turner1dcb4442007-04-06 08:19:04 +00004452007-04-06 David Turner <david@freetype.org>
446
Werner Lembergc81cf612007-04-06 09:28:23 +0000447 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
448 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000449
Werner Lemberg9f83e052007-04-05 02:28:23 +00004502007-04-04 Werner Lemberg <wl@gnu.org>
451
452 * Version 2.3.3 released.
453 =========================
454
455
456 Tag sources with `VER-2-3-3'.
457
458 * docs/CHANGES: Mention CVE-2007-1351.
459
David Turner7338ec22007-04-03 14:30:34 +00004602007-04-03 David Turner <david@freetype.org>
461
462 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000463 if one of the resolution values is 0, treat it as if it were the
464 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000465
David Turnere6472c12007-04-02 13:13:54 +00004662007-04-02 David Turner <david@freetype.org>
467
Werner Lemberg94f12272007-04-03 07:19:53 +0000468 Add special code to detect `extra-light' fonts and do not snap their
469 stem widths too much to avoid bizarre hinting effects.
470
471 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
472 `extra_light' members.
473
474 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
475 them.
476 (af_latin_metrics_scale_dim): Set `extra_light'.
477 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000478
David Turner3f539692007-03-28 14:53:40 +00004792007-03-28 David Turner <david@freetype.org>
480
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000481 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000482 padding.
483
Werner Lemberga08b2172007-03-28 07:17:17 +00004842007-03-28 Werner Lemberg <wl@gnu.org>
485
486 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
487 gracefully.
488 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000489 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000490 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
491 number of code points in Unicode.
492
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000493 * builds/win32/visualc/index.html,
494 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000495 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000496 s/232/233/.
497
498 * docs/CHANGES: Mention ftdiff.
499
David Turner3b242d32007-03-26 12:03:04 +00005002007-03-26 David Turner <david@freetype.org>
501
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000502 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
503 corresponding code.
504 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000505
Werner Lemberga08b2172007-03-28 07:17:17 +0000506 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000507 computations in order to ignore single-point contours. These are
508 never rasterized and correspond in certain fonts to mark-attach
509 points that are very far from the glyph's real outline, ruining the
510 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000511
Werner Lemberga08b2172007-03-28 07:17:17 +0000512 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000513 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000514 Otherwise code that uses them will most certainly ruin the fixed
515 advance property.
David Turner23553d62007-03-26 13:37:17 +0000516
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000517 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
518 documentation and bump version number to 2.3.3.
519
520 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
521
522 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000523
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00005242007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
525
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000526 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
527 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000528 * builds/vms/ftconfig.h: Ditto.
529 * include/freetype/config/ftconfig.h: Ditto.
530
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00005312007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
532
Werner Lemberg14ffe092007-03-22 06:12:43 +0000533 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
534 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000535 proposed by Sean McBride:
536 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
537
5382007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
539
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000540 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
541 setjmp, proposed by Sean McBride:
542 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
543
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00005442007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
545
Werner Lembergc9f6c662007-03-21 13:30:14 +0000546 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
547 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
548 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000549
David Turner74c34eb2007-03-18 07:19:31 +00005502007-03-18 David Turner <david@freetype.org>
551
Werner Lembergc9f6c662007-03-21 13:30:14 +0000552 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
553 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000554
Werner Lembergc9f6c662007-03-21 13:30:14 +0000555 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000556
David Turner89020d92007-03-17 17:48:57 +00005572007-03-17 David Turner <david@freetype.org>
558
Werner Lembergc9f6c662007-03-21 13:30:14 +0000559 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
560 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000561
Werner Lemberg25d592a2007-03-09 07:59:35 +00005622007-03-09 Werner Lemberg <wl@gnu.org>
563
564 * Version 2.3.2 released.
565 =========================
566
567
568 Tag sources with `VER-2-3-2'.
569
570 * builds/win32/visualc/index.html,
571 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000572 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000573 s/231/232/.
574
David Turner3a51afa2007-03-08 10:50:38 +00005752007-03-08 David Turner <david@freetype.org>
576
Werner Lemberg25d592a2007-03-09 07:59:35 +0000577 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000578
Werner Lemberg25d592a2007-03-09 07:59:35 +0000579 * builds/unix/configure.raw (version_info): Set to 9:13:3.
580
581 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
582
583 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000584
Werner Lemberg1e259de2007-03-08 15:39:21 +0000585 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
586 function to work properly, over-writing user-provided buffers in
587 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000588
David Turner121cad52007-03-08 16:43:50 +0000589
Werner Lemberg3d92f082007-03-06 11:59:24 +00005902007-03-05 Werner Lemberg <wl@gnu.org>
591
592 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
593 macro for `strstr'.
594
595 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
596 `trick_names', as suggested by Ivan Nincic.
597
David Turner085bc6e2007-03-05 17:40:03 +00005982007-03-05 David Turner <david@freetype.org>
599
Werner Lembergd112cf02007-03-06 12:06:56 +0000600 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
601 case FT_Init_FreeType fails for some reason. Problem reported by
602 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000603
Werner Lembergd112cf02007-03-06 12:06:56 +0000604 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
605 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
606 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
607 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000608
Werner Lembergd112cf02007-03-06 12:06:56 +0000609 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
610 signed values, not unsigned ones. Problem reported by Johannes
611 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000612
David Turner601aefe2007-02-21 16:47:49 +00006132007-02-21 David Turner <david@freetype.org>
614
Werner Lembergde5e6862007-02-25 21:06:43 +0000615 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
616 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000617
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00006182007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
619
620 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
621 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
622 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
623
Werner Lemberga0915172007-02-16 08:12:50 +00006242007-02-16 Werner Lemberg <wl@gnu.org>
625
626 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
627 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
628
David Turner2c4500e2007-02-14 15:08:47 +00006292007-02-14 David Turner <david@freetype.org>
630
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000631 It seems that the following changes fix most of the known
632 interpreter problems with my fonts, but more testing is needed,
633 though.
634
635 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
636 (TT_MulFix14): Rewrite.
637 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
638 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000639
Werner Lembergc6a14082007-02-12 22:08:15 +00006402007-02-12 Werner Lemberg <wl@gnu.org>
641
642 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
643 warnings.
644
645 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
646 (bdf_interpret_style): Ditto.
647
David Turnerc0f9c4a2007-02-12 14:55:03 +00006482007-02-12 David Turner <david@freetype.org>
649
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000650 Simplify projection and dual-projection code interface.
651
Werner Lemberg406d25f2007-02-12 22:01:18 +0000652 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
653 FT_Vector' as argument type.
654 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
655 Updated.
656 (CUR_fast_project, CUR_fast_dualproj): New macros.
657 (Project, Dual_Project, Project_x, Project_y): Updated.
658 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
659 macros.
660
661
662 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
663 adjustments for the non-light auto-hinted modes. Gets rid of
664 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000665
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000666 * src/autofit/aflatin.c (af_latin_hints_link_segments,
667 af_latin_hints_compute_edges): Slight optimization of the segment
668 linker and better handling of serif segments to get rid of broken
669 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000670
David Turnerc0f9c4a2007-02-12 14:55:03 +0000671
Werner Lemberg442bfb82007-02-12 21:44:10 +0000672 Introduce new string functions and the corresponding macros to get
673 rid of various uses of strcpy and other `evil' functions, as well as
674 to simplify a few things.
675
676 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
677 ft_mem_strcpyn): New declarations.
678 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
679 macros.
680 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
681 functions.
682
683 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
684 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
685 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
686 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
687 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
688 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
689 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
690 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000691
Werner Lemberg406d25f2007-02-12 22:01:18 +0000692 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
693
Werner Lemberg582067d2007-02-11 15:03:05 +00006942007-02-11 Werner Lemberg <wl@gnu.org>
695
696 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
697 non-spacing glyphs.
698
Werner Lemberg8f474532007-02-07 08:31:01 +00006992007-02-07 Tom Parker <palfrey@tevp.net>
700
701 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
702 pointer.
703
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007042007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
705
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000706 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
707 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000708 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000709 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
710 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
711 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
712 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000713
714 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
715 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000716 * builds/mac/ftmac.c: Ditto.
717
7182007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
719
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000720 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000721 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000722 #include <ftmac.c>.
723
7242007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
725
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000726 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
727 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
728 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
729 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
730 FT_GetFilePath_From_Mac_ATS_Name.
731 * builds/mac/ftmac.c: Ditto.
732
7332007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
734
Werner Lembergdcbb7082007-02-08 08:54:09 +0000735 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000736 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
737 for passing to FT_New_Face_From_FSSpec.
738
7392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
740
Werner Lembergdcbb7082007-02-08 08:54:09 +0000741 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000742 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000743
744 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
745 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000746 * builds/mac/ftmac.c (OS_INLINE): Ditto.
747
Werner Lemberg313d7772007-02-01 08:10:45 +00007482007-02-01 Werner Lemberg <wl@gnu.org>
749
750 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
751 Explain why applications shouldn't use it. Found by Alexei.
752
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007532007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000754
755 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
756 message.
757
758 * src/gxvalid/gxvmort1.c
759 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
760 message.
761
Werner Lemberg53935932007-01-31 08:53:02 +00007622007-01-31 Werner Lemberg <wl@gnu.org>
763
764
765 * Version 2.3.1 released.
766 =========================
767
768
769 Tag sources with `VER-2-3-1-FINAL'.
770
771 * builds/win32/visualc/freetype.dsp,
772 builds/win32/visualc/freetype.vcproj: s/230/231/.
773 * builds/win32/visualc/index.html: s/221/231/.
774
775 * vms_make.com: Add `ftgasp'.
776
David Turnera7ee6082007-01-30 10:33:53 +00007772007-01-30 David Turner <david@freetype.org>
778
Werner Lemberg53935932007-01-31 08:53:02 +0000779 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000780
Werner Lemberg53935932007-01-31 08:53:02 +0000781 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000782
Werner Lemberg25d592a2007-03-09 07:59:35 +0000783 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000784 s/2.3.0/2.3.1/.
785
786 * builds/unix/configure.raw (version_info): Set to 9:12:3.
787
788
789 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
790 (af_loader_load_g): Disable the warper (i.e., the light hinting
791 improvements) to make a 2.3.1 bugfix release before introducing a
792 new feature. This should give us more time to tune and improve the
793 warper for the next release.
794
795 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000796
David Turnerd91eebd2007-01-26 15:05:41 +00007972007-01-25 David Turner <david@freetype.org>
798
Werner Lembergbf241762007-01-26 16:08:49 +0000799 For light auto-hinting, improve glyph advance widths and resurrect
800 normal/full hinting to its normal quality.
801
802 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
803 and `xmax_delta'.
804 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
805 and `xmax_delta'.
806
807 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
808 preprocessor conditional with if-clause, handling both light and
809 normal mode.
810
811 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
812 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000813
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00008142007-01-25 Werner Lemberg <wl@gnu.org>
815
816 * docs/release: Updated -- Savannah uses a new uploading scheme.
817
David Turnera42567b2007-01-25 12:23:37 +00008182007-01-25 David Turner <david@freetype.org>
819
Werner Lembergd7855662007-01-25 13:53:56 +0000820 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000821
Werner Lembergd7855662007-01-25 13:53:56 +0000822 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
823 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
824 functions.
David Turnera42567b2007-01-25 12:23:37 +0000825
Werner Lembergd7855662007-01-25 13:53:56 +0000826 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000827
Werner Lembergb1be9e82007-01-25 11:50:00 +00008282007-01-25 Werner Lemberg <wl@gnu.org>
829
830 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000831 correctly in a sanity check. Since this function is only used to
832 load local and global functions, any charstring that called the last
833 local/global function would fail otherwise. This fixes Savannah bug
834 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000835
836 * docs/CHANGES: Document it.
837
David Turnerb6de8d12007-01-23 15:51:50 +00008382007-01-23 David Turner <david@freetype.org>
839
Werner Lembergb1be9e82007-01-25 11:50:00 +0000840 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
841 prevented compilation when disabling both the unpatented and the
842 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000843
Werner Lembergb1be9e82007-01-25 11:50:00 +0000844
845 Fix and enable the warper to improve `light' hinting mode. This is
846 not necessarily a final version, but it seems to work well.
847
848 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
849 Disable code.
850 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
851 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
852
853 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
854 (af_warper_compute_line_best): Fix array size of `scores'.
855 (af_warper_compute): Better handling of border cases.
856 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
857 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000858
Werner Lemberg011d1112007-01-21 09:36:00 +00008592007-01-21 Werner Lemberg <wl@gnu.org>
860
Werner Lemberg42b63b22007-01-21 21:01:33 +0000861 * ChangeLog: Split off older entries into...
862 * ChangeLog.22: This new file.
863
8642007-01-21 Werner Lemberg <wl@gnu.org>
865
Werner Lemberg555258f2007-01-21 09:46:37 +0000866 * docs/CHANGES: Document SHZ fix.
867
8682007-01-21 George Williams <gww@silcom.com>
869
870 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
871 points.
872
8732007-01-21 Werner Lemberg <wl@gnu.org>
874
Werner Lemberg011d1112007-01-21 09:36:00 +0000875 * src/sfnt/ttmtx.c (tt_face_get_metrics)
876 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
877
Werner Lemberg87a5a432007-01-17 12:44:39 +00008782007-01-17 Werner Lemberg <wl@gnu.org>
879
Werner Lembergb8003292007-01-17 12:56:25 +0000880
881 * Version 2.3.0 released.
882 =========================
883
884
885 Tag sources with `VER-2-3-0-FINAL'.
886
8872007-01-17 Werner Lemberg <wl@gnu.org>
888
Werner Lemberg87a5a432007-01-17 12:44:39 +0000889 * docs/release: Updated.
890
David Turner22122722007-01-16 20:06:44 +00008912007-01-16 David Turner <david@freetype.org>
892
Werner Lemberg87a5a432007-01-17 12:44:39 +0000893 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
894 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
895 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
896 warnings.
David Turner22122722007-01-16 20:06:44 +0000897
Werner Lemberg267e1d72007-01-15 07:48:09 +00008982007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
899
900 * builds/amiga/makefile, builds/amiga/makefile.os4,
901 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
902
903 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
904
Werner Lemberg8c4120d2007-01-15 06:42:40 +00009052007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
906
907 Fix various compiler warnings.
908
909 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
910 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
911 s/index/strike_index/.
912 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
913
914 * src/gxvalid/gxvmorx5.c
915 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
916
917 * src/truetype/ttinterp.c (Compute_Point_Displacement),
918 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
919 uninitialized variables.
920
Werner Lemberg6164a9d2007-01-13 23:01:36 +00009212007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
922
923 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
924
Werner Lemberg281c1482007-01-13 22:50:51 +00009252007-01-13 Werner Lemberg <wl@gnu.org>
926
927 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
928 versions up to 0x3FF without complaining.
929
Werner Lembergac250b22007-01-13 14:01:36 +00009302007-01-13 Derek Clegg <dclegg@apple.com>
931
932 Add FT_Get_PS_Font_Info interface to CFF driver.
933
934 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
935 (CFF_FontRec): Add `font_info' field.
936
937 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
938 (cff_font_done): Free font->font_info if necessary.
939
940 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
941 (cff_service_ps_info): Register cff_ps_get_font_info.
942
Werner Lemberg23df31a2007-01-13 08:45:00 +00009432007-01-13 Werner Lemberg <wl@gnu.org>
944
945 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
946 with C++ compiler.
947
948 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
949 af_glyph_hints_dump_edges): Ditto.
950
951 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
952 `modules.cfg').
953
954 * src/sfnt/ttsbit0.h: Remove.
955
956 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
957
Werner Lemberg27cf9de2007-01-13 07:34:23 +00009582007-01-12 David Turner <david@freetype.org>
959
960 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
961 bug in the bitmap emboldener if the pitch of the source bitmap is
962 much larger than its width.
963
964 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
965 compilation warning.
966
Werner Lemberg6d96d312007-01-12 10:30:19 +00009672007-01-12 Werner Lemberg <wl@gnu.org>
968
969 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
970 `automake' CVS module from sources.redhat.com.
971
Werner Lemberg17432b52007-01-12 09:28:44 +00009722007-01-11 Werner Lemberg <wl@gnu.org>
973
974 * src/type1/t1load.c (is_space): Removed.
975 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
976 (parse_charstrings): Use IS_PS_TOKEN.
977
978
979 * autogen.sh: Avoid bash specific syntax.
980
David Turner038ace22007-01-11 15:00:59 +00009812007-01-11 David Turner <david@freetype.org>
982
Werner Lemberg17432b52007-01-12 09:28:44 +0000983 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000984
Werner Lemberg17432b52007-01-12 09:28:44 +0000985 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000986
Werner Lemberg17432b52007-01-12 09:28:44 +0000987 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
988 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000989 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000990
Werner Lemberg17432b52007-01-12 09:28:44 +0000991 * autogen.sh: Small fix to get it working on Mac OS X properly:
992 The issue is that GNU libtool is called `glibtool' on this platform,
993 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000994
David Turner2628ea92007-01-10 13:15:56 +00009952007-01-10 David Turner <david@freetype.org>
996
Werner Lemberg17432b52007-01-12 09:28:44 +0000997 * all-sources: Tag all sources with VER-2-3-0-RC1 and
998 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000999
Werner Lemberg17432b52007-01-12 09:28:44 +00001000 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1001 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1002 version number to 2.3.0.
1003
1004 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1005 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001006
1007 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001008 include/freetype/ftlcdfil.h: Update reference documentation with
1009 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001010
Werner Lemberg17432b52007-01-12 09:28:44 +00001011 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1012 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001013
Werner Lembergbf02d392007-01-10 07:07:37 +000010142007-01-10 Derek Clegg <dclegg@apple.com>
1015
1016 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1017 values.
1018
David Turnerf48b60e2007-01-08 15:15:32 +000010192007-01-08 David Turner <david@freetype.org>
1020
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001021 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001022
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001023 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1024 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001025 corresponding to a given character pixel size.
1026
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001027 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1028 `gasp' table, in order to avoid potential problems with later
1029 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001030
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001031 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1032 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001033
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001034 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1035 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1036 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1037 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001038
Werner Lemberge6b6f372007-01-07 00:06:47 +000010392007-01-07 Werner Lemberg <wl@gnu.org>
1040
Werner Lembergb8004d22007-01-07 09:13:38 +00001041 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1042 Type 11 fonts.
1043 Scan for `/sfnts' token.
1044
10452007-01-07 Werner Lemberg <wl@gnu.org>
1046
1047 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001048
Werner Lembergbe5f7972007-01-06 07:51:48 +000010492007-01-06 Werner Lemberg <wl@gnu.org>
1050
1051 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1052 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1053
David Turnera8cf42b2007-01-04 16:46:46 +000010542007-01-04 David Turner <david@freetype.org>
1055
Werner Lembergf6294392007-01-06 07:47:45 +00001056 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1057 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001058
Werner Lembergf6294392007-01-06 07:47:45 +00001059
1060 Do not allocate interpreter-specific tables in memory if we are not
1061 going to load glyphs with the bytecode interpreter anyway.
1062
1063 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1064 only if glyph is hinted.
1065 Updated.
1066 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1067 and `cvs_ready'.
1068 Add `tt_size_ready_bytecode' declaration.
1069 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1070 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1071 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1072 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1073 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001074
David Turner91a34022007-01-05 14:47:08 +00001075
Werner Lembergf6294392007-01-06 07:47:45 +00001076 Don't extract the metrics table from the SFNT font file. Instead,
1077 reparse it on each glyph load. The runtime difference is not
1078 noticeable, and it can save a lot of heap memory when memory-mapped
1079 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001080
Werner Lembergf6294392007-01-06 07:47:45 +00001081 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1082 `horz_metrics_offset' and `vert_metrics_ofset'.
1083 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1084 Updated.
1085
1086
1087 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1088
1089
1090 Do not load the CFF index offsets into memory, since this wastes a
1091 *lot* of heap memory with large Asian CFF fonts. There is no
1092 significant performance loss.
1093
1094 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1095 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1096 `data_size'.
1097 (CFF_CharsetRec): Add field `num_glyphs'.
1098
1099 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1100 cff_charset_cid_to_gindex): New functions.
1101 (cff_new_index): Renamed to...
1102 (cff_index_init): This. Update all callers.
1103 Updated -- some code has been moved to `cff_index_load_offsets'.
1104 (cff_done_index): Renamed to...
1105 (cff_index_done): This. Update all callers.
1106 (cff_index_get_pointers, cff_index_access_element): Updated to use
1107 stream offsets.
1108 (cff_charset_compute_cids): Set `num_glyphs' field.
1109 (cff_encoding_load): Updated.
1110
1111 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001112
11132007-01-04 David Turner <david@freetype.org>
1114
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001115 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1116 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001117
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001118 * README.CVS: Add common problem description and solution
1119 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001120
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001121 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001122
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001123 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001124
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001125 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001126
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001127 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1128 (TWorker): This.
1129 Remove `count_table' and `memory'.
1130 Make `grays' a pointer.
1131 (TRaster): New structure.
1132 (count_table): New static array.
1133 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1134 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1135 ft_black_set_mode, ft_black_render): Updated.
1136 (ft_black_init): Don't initialize `count_table'.
1137 (ft_black_reset): Use the render pool. This saves about 6KB of
1138 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001139
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001140 * src/smooth/ftgrays.c (TRaster): Replaced with...
1141 (TWorker): This.
1142 Remove `memory'.
1143 (TRaster): New structure.
1144
1145 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1146 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1147 gray_render_span, gray_raster_render): Updated.
1148 (gray_raster_reset): Use the render pool. This saves about 6KB of
1149 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001150
David Turner8a6c44e2007-01-04 17:03:11 +00001151 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1152 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001153 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1154 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1155 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001156
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001157 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1158 Remove a typo that results in no hinting and a memory leak with some
1159 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001160
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001161 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001162 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001163 CFF_Faces in it. We need to close all faces before destroying the
1164 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001165
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000011662007-01-02 Werner Lemberg <wl@gnu.org>
1167
1168 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1169 Remove compiler warning.
1170
David Turner9207e002007-01-02 16:58:13 +000011712007-01-02 David Turner <david@freetype.org>
1172
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001173 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001174
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011752006-12-31 Masatake YAMATO <jet@gyve.org>
1176
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001177 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1178 function.
1179 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001180 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001181 `gxv_kern_subtable_fmt0_pairs_validate'.
1182
David Turner115b4422006-12-22 11:37:05 +000011832006-12-22 David Turner <david@freetype.org>
1184
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001185 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1186 warnings.
David Turner115b4422006-12-22 11:37:05 +00001187
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001188 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1189 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001190
Werner Lemberg4755bf72006-12-16 08:58:44 +000011912006-12-16 Anders Kaseorg <anders@kaseorg.com>
1192
1193 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1194 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1195
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000011962006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1197
Werner Lemberg9b774e22007-01-16 06:11:27 +00001198 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001199 sync with the modification by Jens Claudius on 2006-08-22; cf.
1200 http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
Suzuki, Toshiya (鈴木俊哉)1d5b6a62006-12-15 15:44:56 +00001201
12022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1203
1204 * src/base/ftmac.c: Specialized for Mac OS X only.
1205 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1206 * builds/unix/configure.raw: Ditto. When explicit switches for
1207 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1208 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1209
12102006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1211
1212 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1213 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1214 instead of src/base/ftmac.c
1215 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1216 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1217 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1218 that cannot be built at present.
1219
12202006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1221
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001222 * src/base/ftobjs.c: Improvement of resource fork handler for
1223 POSIX, cf.
1224 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001225 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1226 format or .dfont, to simulate the face index number counted by ftmac.c.
1227 (IsMacResource): Return the number of scalable faces correctly.
1228
Werner Lembergec5b4502006-12-10 07:51:38 +000012292006-12-10 Werner Lemberg <wl@gnu.org>
1230
1231 * builds/toplevel.mk (version): Protect against `distclean' target.
1232
Werner Lembergb26b3142006-12-09 20:01:43 +000012332006-12-09 Werner Lemberg <wl@gnu.org>
1234
1235 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1236 or `type'.
1237
1238 * builds/freetype.mk (version): Extracted from freetype.h, using
1239 GNU make's built-in string functions.
1240 (refdoc): Use $(version) instead of static version number.
1241
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000012422006-12-08 Werner Lemberg <wl@gnu.org>
1243
1244 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1245
Werner Lemberg15c29502006-12-09 07:29:54 +000012462006-12-08 Vladimir Volovich <vvv@vsu.ru>
1247
1248 * src/tools/apinames (State): Remove final comma in structure -- xlc
1249 v5 under AIX 4.3 doesn't like this.
1250
David Turnerdbf3b432006-12-07 21:18:09 +000012512006-12-07 David Turner <david@freetype.org>
1252
Werner Lemberg256a3512006-12-08 06:49:33 +00001253 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1254 to the spacing of auto-fitted glyphs. This only impacts rare
1255 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001256
Werner Lemberg11171312006-12-03 09:43:40 +000012572006-12-03 Werner Lemberg <wl@gnu.org>
1258
1259 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1260
Werner Lemberg960ba592006-12-01 08:20:47 +000012612006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001262
Werner Lemberg960ba592006-12-01 08:20:47 +00001263 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1264 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1265 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001266
David Turner80658e52006-11-28 08:09:20 +00001267
Werner Lemberg960ba592006-12-01 08:20:47 +00001268 * include/freetype/ftxf86.h: Fix and extend comment so that it
1269 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001270
Werner Lemberg960ba592006-12-01 08:20:47 +00001271 * include/freetype/ftchapters.h: Add `font_format' section.
1272
1273
1274 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1275 to TOC in index page.
1276
12772006-11-28 David Turner <david@freetype.org>
1278
1279 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1280 trying to render into a zero-width/height bitmap, not an error code.
1281
1282 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1283
1284 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1285 ones instead.
1286
1287 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1288 variable.
David Turner80658e52006-11-28 08:09:20 +00001289
Werner Lemberg8636c292006-11-26 22:28:13 +000012902006-11-26 Pierre Hanser <hanser@club-internet.fr>
1291
1292 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1293
Werner Lemberg960ba592006-12-01 08:20:47 +000012942006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001295
Werner Lemberg960ba592006-12-01 08:20:47 +00001296 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1297 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1298 Add stubs to link the `ftgrid' test program when debugging is
1299 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001300
Werner Lemberg960ba592006-12-01 08:20:47 +000013012006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001302
1303 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001304 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1305
1306 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1307 Emit more sensible information.
1308
1309 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1310
1311 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1312 rounding of blue values.
1313 (af_latin_hints_compute_segments): Hint segment heights.
1314 (af_latin_hints_link_segments): Reduce `len_score' value.
1315 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1316 value and use `height' member for comparisons.
1317 (af_latin_hint_edges): Extend logging message.
1318 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001319
Werner Lemberg91959bf2006-11-22 10:36:55 +000013202006-11-22 Werner Lemberg <wl@gnu.org>
1321
1322 Fix Savannah bug #15553.
1323
1324 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1325 program after a change from mono to grayscaling (and vice versa).
1326 Use correct constant for comparison to get `exec->grayscale'.
1327
Werner Lemberg913a3652006-11-19 09:19:17 +000013282006-11-18 Werner Lemberg <wl@gnu.org>
1329
1330 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001331 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001332 This patch fixes Savannah bug #18301.
1333
1334 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1335 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1336 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1337 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1338 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1339 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1340 (FNT_Load_Glyph): Check validity of `glyph_index'.
1341
David Turner7bab6ae2006-11-13 11:25:06 +000013422006-11-13 David Turner <david@freetype.org>
1343
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001344 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1345 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001346
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001347 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1348 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1349 when building the library to change the default LCD filter to be
1350 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001351
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001352 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001353
David Turner8765c712006-11-10 16:49:42 +000013542006-11-10 David Turner <david@freetype.org>
1355
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001356 * src/smooth/ftsmooth.c: API change for the LCD
1357 filter. The FT_LcdFilter value is an enumeration describing which
1358 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1359 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1360 algorithm which produces strong color fringes for everything
1361 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001362
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001363 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1364 second parameter to an enum type.
1365
1366 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1367 (_ft_lcd_filter): Rename to...
1368 (_ft_lcd_filter_fir): This.
1369 Update parameters.
1370 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1371 (FT_Library_Set_LcdFilter): Update parameters.
1372 Handle new filter modes.
1373
1374 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1375 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1376 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1377 callback and update other fields.
1378
1379 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1380 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1381 Other minor improvements.
1382
1383 * src/autofit/aflatin.c: Various tiny improvements that drastically
1384 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1385 (af_latin_hints_compute_edges): Fix typo.
1386 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001387
David Turner4e9cc3c2006-11-09 16:31:52 +000013882006-11-09 David Turner <david@freetype.org>
1389
Werner Lemberg49c77a82006-11-09 21:51:57 +00001390 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1391 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001392
Werner Lemberg5e430892006-11-07 09:35:03 +000013932006-11-07 Zhe Su <james.su@gmail.com>
1394
1395 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1396 also.
1397
Werner Lemberg111b5ae2006-11-03 09:40:12 +000013982006-11-03 Werner Lemberg <wl@gnu.org>
1399
1400 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1401
David Turner40604742006-11-02 16:37:35 +000014022006-11-02 David Turner <david@freetype.org>
1403
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001404 Add a few tweaks to better handle serif fonts.
1405 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001406
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001407 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1408 segments that are less than 1.5 pixels high. This gets rid of
1409 *many* corner cases with serifs.
1410 (af_latin_align_linked_edge): Add logging message.
1411 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1412 Add logging messages.
1413 Handle AF_EDGE_FLAG flag specially.
1414
1415 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1416 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1417
1418 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1419 Update external declarations.
1420 (af_corner_orientation, af_corner_is_flat): Replaced by...
1421
1422 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1423 ft_corner_is_flat): These declarations.
1424
1425 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1426 Comment out. Replaced by...
1427
1428 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1429 These functions. Update all callers.
1430 (FT_Add64) [!FT_LONG64]: Simplify.
1431
1432 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1433 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1434 production of garbage by missing lots of segments.
1435
1436 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1437
1438 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1439 [AF_DEBUG]: Set _af_debug_hints.
1440
1441
1442 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1443 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1444 and ft_corner_orientation.
1445
1446
1447 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001448
Werner Lemberge88c5262006-10-24 05:46:26 +000014492006-10-24 Werner Lemberg <wl@gnu.org>
1450
1451 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1452
1453 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1454 as argument.
1455
David Turnera1861392006-10-23 16:00:59 +000014562006-10-23 Zhe Su <zsu@novell.com>
1457
Werner Lemberg715e96e2006-10-24 05:28:45 +00001458 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1459 better deal with broken Asian fonts with strange glyphs, having
1460 self-intersections and other peculiarities. The used algorithm is
1461 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001462
David Turnere140f142006-10-23 08:56:57 +000014632006-10-23 David Turner <david@freetype.org>
1464
Werner Lemberg715e96e2006-10-24 05:28:45 +00001465 Speed up the CFF font loader. With some large CFF fonts,
1466 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001467
Werner Lemberg715e96e2006-10-24 05:28:45 +00001468 * src/cff/cffload.c (cff_get_offset): Removed.
1469 (cff_new_index): Inline functionality of `cff_get_offset'.
1470 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1471 (cff_charset_done): Call `cff_charset_free_cids'.
1472 (cff_charset_load): Call `cff_charset_compute_cids'.
1473 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1474
1475 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1476 with FT_NEXT_XXX.
1477
1478
1479 Speed up the Postscript hinter, with more than 100% speed increase
1480 on my machine.
1481
1482 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1483 psh_corner_orientation): New functions.
1484 (psh_glyph_compute_inflections): Merge loops for efficiency.
1485 Use `psh_corner_orientation'.
1486 (psh_glyph_init): Use `psh_corner_is_flat'.
1487 (psh_hint_table_find_strong_point): Renamed to...
1488 (psh_hint_table_find_strong_points): This.
1489 Rewrite, adding argument to handle all points at once.
1490 Update all callers.
1491 (PSH_MAX_STRONG_INTERNAL): New macro.
1492 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001493
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000014942006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1495
1496 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001497 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001498
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000014992006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1500
1501 * docs/INSTALL.CROSS: New document file for cross-building.
1502
1503 * builds/unix/configure.raw: Preliminary cross-building support.
1504 Find native C compiler and pass it by CC_BUILD, and
1505 find suffix for native executable and pass it by EXEEXT_BUILD.
1506 Also suffix for target executable is passed by EXEEXT.
1507
Werner Lembergb9e6d692006-10-15 08:58:40 +00001508 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1509 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001510 CC_BUILD and EXEEXT_BUILD.
1511
Werner Lembergb9e6d692006-10-15 08:58:40 +00001512 * builds/exports.mk (APINAMES_EXE): Change the extension for
1513 apinames from the suffix for target (E) to that for building host
1514 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001515
Werner Lemberg82a07e92006-10-12 06:20:44 +000015162006-10-12 Werner Lemberg <wl@gnu.org>
1517
1518 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1519 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1520 which reference those files.
1521
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000015222006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1523
Werner Lembergb9e6d692006-10-15 08:58:40 +00001524 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1525 embedded in freetype2.pc and freetype-config. Use it to record
1526 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001527
1528 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1529
1530 * builds/unix/freetype-config.in: Ditto.
1531
Werner Lemberg28e17d92006-10-11 17:27:47 +000015322006-10-11 Werner Lemberg <wl@gnu.org>
1533
1534 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1535 development.
1536
Jens Claudius336d2292006-10-03 08:53:37 +000015372006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1538
1539 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1540 argument to ft_setjmp.
1541
1542 * include/freetype/internal/ftvalid.h: Add comment that
1543 ft_validator_run must not be used.
1544
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015452006-10-01 Werner Lemberg <wl@gnu.org>
1546
1547 * src/base/ftbase.c: Undo change from 2006-09-30.
1548
1549 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1550
15512006-09-30 David Turner <david@freetype.org>
1552
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001553 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1554 s/unpatented_hinting/ignore_unpatented_hinter/.
1555 Update all callers.
1556
1557 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1558 auto-hinting shall be used or not.
1559
1560 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001561
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015622006-09-30 Werner Lemberg <wl@gnu.org>
1563
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001564 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1565 in use).
1566
1567 * src/base/ftbase.c: Include `ftlcdfil.c'.
1568
Werner Lemberg9b15ea32006-09-29 18:22:11 +000015692006-09-29 Werner Lemberg <wl@gnu.org>
1570
1571 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1572 overlapping segments. Bug reported by Stefan Koch.
1573
David Turnerad830712006-09-27 16:20:59 +000015742006-09-28 David Turner <david@freetype.org>
1575
Werner Lemberg2c002e12006-09-29 21:31:53 +00001576 Fix a bug in the automatic unpatented hinting support which prevents
1577 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001578
Werner Lemberg2c002e12006-09-29 21:31:53 +00001579 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1580 s/force_autohint/unpatented_hinting/. Update all callers.
1581
1582 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1583
1584 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001585
David Turner8a317cf2006-09-27 07:52:48 +000015862006-09-27 David Turner <david@freetype.org>
1587
Werner Lemberg2c002e12006-09-29 21:31:53 +00001588 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001589
David Turner8a317cf2006-09-27 07:52:48 +00001590
David Turnere140f142006-10-23 08:56:57 +00001591 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001592 In a default build, the function `FT_Library_SetLcdFilter' returns
1593 `FT_Err_Unimplemented_Feature'; you need to #define
1594 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1595 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001596
Werner Lemberg2c002e12006-09-29 21:31:53 +00001597 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001598
Werner Lemberg2c002e12006-09-29 21:31:53 +00001599 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1600 typedef.
1601 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1602 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001603
Werner Lemberg2c002e12006-09-29 21:31:53 +00001604 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1605 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001606
Werner Lemberg2c002e12006-09-29 21:31:53 +00001607 Handle subpixel rendering.
1608 Simplify function.
1609 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1610 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1611
1612 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1613 pointing to <freetype/ftlcdfil.h>.
1614
1615 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1616 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1617
1618 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001619
Werner Lemberge20df4a2006-09-27 06:29:21 +000016202006-09-26 David Bustin
1621
1622 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1623 correctly. Reported as Savannah bug #17843.
1624
David Turner6f8c6222006-09-26 15:42:44 +000016252006-09-26 David Turner <david@freetype.org>
1626
Werner Lemberg110246c2006-09-26 21:55:44 +00001627 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1628 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1629 horizontal and vertical hinting for the purpose of debugging the
1630 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001631
Werner Lemberg110246c2006-09-26 21:55:44 +00001632 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1633 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001634
Werner Lemberg110246c2006-09-26 21:55:44 +00001635 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1636
1637 * include/freetype/config/ftoption.h, devel/ftoption.h
1638 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1639 we want to compile LCD-optimized rendering code (à la ClearType) or
1640 not. The macro *must* be disabled in default builds of the library
1641 for patent reasons.
1642
1643 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1644 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1645 isn't defined at compile time. This only changes the content of the
1646 rendered glyph to match the one of normal gray-level rendering,
1647 hence clients should not need to be modified.
1648
1649 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001650
Werner Lemberg745ff2c2006-09-19 05:48:02 +000016512006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1652
1653 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1654 LWFN fails and both are available.
1655
David Turnerf3050052006-09-11 12:00:32 +000016562006-09-11 David Turner <david@freetype.org>
1657
Werner Lembergf9644552006-09-12 13:48:10 +00001658 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1659 report their English names through an Apple Roman
1660 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001661
Werner Lembergf9644552006-09-12 13:48:10 +00001662 If the font uses another name entry with language_id == English, it
1663 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001664
Werner Lembergf9644552006-09-12 13:48:10 +00001665 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1666 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001667
Werner Lemberg36d2eab2006-09-05 19:24:34 +000016682006-09-05 Werner Lemberg <wl@gnu.org>
1669
1670 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001671 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001672 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1673 `HAN NOM B.ttf').
1674
1675 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1676
David Turner772e55d2006-09-05 09:45:15 +000016772006-09-05 David Turner <david@freetype.org>
1678
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001679 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001680
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001681 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1682 (TRaster): Remove `count_ex' and `count_ey'.
1683 (gray_find_cell): Remove 2nd and 3rd argument.
1684 (gray_alloc_cell): Merged with `gray_find_cell'.
1685 (gray_record_cell): Simplify.
1686 (gray_set_cell): Rewrite.
1687 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1688 (gray_render_span): Don't use FT_MEM_SET for small values.
1689 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1690 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1691 bitmap scanline.
1692 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001693
David Turneraa557a92006-09-04 16:42:44 +000016942006-09-04 David Turner <david@freetype.org>
1695
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001696 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1697 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001698
Werner Lemberg2d8629b2006-09-03 06:18:45 +000016992006-09-03 Werner Lemberg <wl@gnu.org>
1700
1701 * devel/ftoption.h: Synchronize with
1702 include/freetype/config/ftoption.h.
1703
1704 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1705 variable declaration.
1706 (gray_convert_glyph): Fix compiler warnings.
1707
David Turner6d79f212006-09-01 14:09:35 +000017082006-09-01 David Turner <david@freetype.org>
1709
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001710 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1711 to recognize a few fonts that require the automatic unpatented
1712 loader.
David Turnerbd502952006-09-01 19:05:24 +00001713
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001714 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1715 rasterizer. The speed improvement is between 15% and 25%, depending
1716 on the font data.
1717
1718 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1719 (TCell): Redefine.
1720 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1721 (gray_init_cells): Updated.
1722 (gray_find_cell, gray_alloc_cell): New functions.
1723 (gray_record_cell): Rewritten to use `gray_find_cell' and
1724 `gray_alloc_cell'.
1725 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1726 QSORT_THRESHOLD):
1727 Removed.
1728 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1729 gray_dump_cells): Removed.
1730 (gray_sweep): Rewritten.
1731 (gray_convert_glyph): Rewrite code which used one of the sorting
1732 functions.
1733 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001734
Werner Lembergd898aed2006-08-29 09:50:34 +000017352006-08-29 Dr. Werner Fink <werner@suse.de>
1736
1737 * configure: Make it possible to handle configure options which
1738 have strings containing spaces.
1739
17402006-08-27 David Turner <david@freetype.org>
1741
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001742 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1743 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1744 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1745
1746 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1747 src/truetype/truetype.c, src/truetype/ttdriver.c,
1748 src/truetype/ttgload.c, src/truetype/ttgload.h,
1749 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1750 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1751 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1752
1753 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1754 member `force_autohint'.
1755
1756 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1757
1758 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1759 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001760
Jens Claudiusa787f452006-08-27 11:26:18 +000017612006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1762
1763 Fix miscellaneous compiler warnings.
1764
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001765 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1766 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001767
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001768 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1769 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1770 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001771
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001772 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1773 volatileness of argument to ft_longjmp. Spotted by Werner
1774 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001775
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001776 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1777 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001778
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001779 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1780 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001781
Werner Lembergc4c35b72006-08-27 08:03:46 +000017822006-08-27 Werner Lemberg <wl@gnu.org>
1783
1784 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1785 Reported by Jens.
1786
Jens Claudius088e44e2006-08-22 14:24:30 +000017872006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001788
Jens Claudius088e44e2006-08-22 14:24:30 +00001789 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001790 about addresses of volatile objects passed as function arguments as
1791 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001792
Werner Lembergc4c35b72006-08-27 08:03:46 +00001793 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1794 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001795
1796 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1797 argument `table' a pointer to a volatile object.
1798
1799 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1800 argument `table' a pointer to a volatile object.
1801
Jens Claudius2652bd52006-08-18 17:20:37 +000018022006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1803
1804 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1805 variable `_sfnt' as volatile since it must keep its value across
1806 a call to ft_setjmp.
1807 (gxv_validate): Same for local variables `memory' and `valid'.
1808 (classic_kern_validate): Same for local variables `memory',
1809 `ckern', and `valid'.
1810
1811 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1812 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1813 `jstf', and 'valid'.
1814
1815 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1816 local variable `cmap'.
1817
David Turner9fbfc6a2006-08-16 09:11:31 +000018182006-08-16 David Turner <david@freetype.org>
1819
Werner Lemberg12342992006-08-19 11:18:09 +00001820 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1821 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001822
Werner Lemberg12342992006-08-19 11:18:09 +00001823 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1824 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001825
David Turner33f5f242006-08-16 16:50:55 +00001826
Werner Lemberg12342992006-08-19 11:18:09 +00001827 Improvements to native TrueType hinting. This is a first try,
1828 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1829
1830 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1831 `extra_points2'.
1832
1833 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1834 `orus'.
1835
1836 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1837 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1838 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1839 handle `extra_points2'.
1840
1841 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1842 Remove compiler warning.
1843 (cur_to_arg): Remove macro.
1844 (TT_Hint_Glyph): Updated.
1845 (TT_Process_Simple_Glyph): Handle `orus'.
1846
1847 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1848 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1849 (LOC_Ins_IUP): Renamed to...
1850 (IUP_WorkerRec): This.
1851 Add `orus' member.
1852 (Shift): Renamed to...
1853 (_iup_worker_shift): This.
1854 Updated.
1855 (Interp): Renamed to...
1856 (_iup_worker_interpolate): This.
1857 Updated to handle `orus'.
1858 (Ins_IUP): Updated.
1859
1860 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1861 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001862
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000018632006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1864
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001865 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001866 build ftvalid in ft2demos. This has been inadvertedly changed
1867 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001868
18692006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1870
Werner Lemberg12342992006-08-19 11:18:09 +00001871 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1872 Jens:
1873 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001874
Werner Lemberg12342992006-08-19 11:18:09 +00001875 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1876 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001877
1878 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1879
Jens Claudius9950adc2006-08-13 12:14:36 +000018802006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1881
Werner Lemberg12342992006-08-19 11:18:09 +00001882 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1883 T1_TOKEN_TYPE_KEY.
1884 (T1_FieldRec): Add `dict'.
1885 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1886 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1887 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001888
Werner Lemberg12342992006-08-19 11:18:09 +00001889 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1890 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001891
1892 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1893
1894 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001895 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1896 not T1_TOKEN_TYPE_ANY.
1897 (ps_parser_load_field): Make sure a token that should be a string or
1898 name is really a string or name.
1899 Avoid memory leak if a keyword has been already encountered and its
1900 value is overwritten.
1901 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1902 T1_FIELD_XXX.
1903 (parse_dict): Ignore keywords that occur in the wrong dictionary
1904 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001905
Werner Lemberg12342992006-08-19 11:18:09 +00001906 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1907 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001908
Werner Lemberg12342992006-08-19 11:18:09 +00001909 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1910 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001911
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000019122006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1913
1914 Move creation of field `buildchar' of T1_DecoderRec out of
1915 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1916 of it.
1917
1918 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1919 and `T1_Compute_Max_Advance'.
1920
1921 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1922 Remove field `face', add `len_buildchar'.
1923
1924 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1925 field `buildchar'.
1926
1927 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1928 finisher for T1_Decoder.
1929 (cid_slot_load_glyph): Do not ignore failure when initializing the
1930 T1_Decoder.
1931
1932 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1933 Updated.
1934 (t1_decoder_init): Remove initialization of fields `buildchar' and
1935 `len_buildchar'.
1936 (t1_decoder_done): Remove deallocation of field `buildchar'.
1937
1938 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1939 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1940 T1_Decoder.
1941 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1942 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1943 case of error.
1944
1945 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1946 `buildchar' of T1_FaceRec.
1947
1948 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1949 `buildchar' of T1_FaceRec.
1950
Werner Lemberg1a380e02006-07-14 18:28:08 +000019512006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1952
1953 * freetype2/include/freetype/internal/psaux.h: New macros
1954 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1955 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1956 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1957 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1958 (T1_DecoderRec): New fields `buildchar' and `face'.
1959 (IS_PS_TOKEN): New macro.
1960
1961 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1962 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1963
1964 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1965 `default_design_vector' and `num_default_design_vector'.
1966
1967 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1968 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1969 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1970
1971 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1972 `token' argument to be NULL if we want only to count the number of
1973 tokens.
1974 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1975 want to skip the array.
1976 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1977 want to skip the array.
1978
1979 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1980 support for (partially commented out) othersubrs 19-25, 27, and 28.
1981 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1982 (t1_decoder_done): Release new field `buildchar'.
1983
1984 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1985 functions.
1986 (t1_keywords): Register them.
1987 (t1_allocate_blend): Updated.
1988 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1989 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1990 (parse_dict): Remove `keyword_flags' argument.
1991 Use new macro IS_PS_TOKEN.
1992 Changed function so that later PostScript definitions override
1993 earlier ones.
1994 (t1_init_loader): Initialize new field `keywords_encountered'.
1995 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1996 `len_buildchar'.
1997 Remove `keywords_flags'.
1998
1999 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2000 `keywords_encountered'.
2001 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2002
2003 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2004 New entries for parsing /NDV, /CDV, and /DesignVector.
2005
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000020062006-07-07 Werner Lemberg <wl@gnu.org>
2007
2008 Add many checks to protect against malformed PCF files.
2009
2010 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2011 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2012
2013 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2014 data and check that tables don't overlap (using a simple
2015 bubblesort).
2016 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2017 New macros which give the size of data structures in the data
2018 stream.
2019 (pcf_get_properties): Use rough estimates to get array size limits.
2020 Assign `face->nprops' and `face->properties' earlier so that a call
2021 to PCF_Face_Done can do the clean-up in case of error.
2022 Protect against invalid string offsets.
2023 (pcf_get_metrics): Clean up code.
2024 Adjust tracing message levels.
2025 Use rough estimate to get array size limit.
2026 (pcf_get_bitmaps): Clean up code.
2027 Adjust tracing message levels.
2028 Use rough estimates to get offset limits.
2029 (pcf_get_encodings): Adjust tracing message level.
2030 (pcf_get_accel): Clean up code.
2031
Werner Lemberg8eb05252006-06-27 06:20:01 +000020322006-06-26 Werner Lemberg <wl@gnu.org>
2033
2034 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2035 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2036
Werner Lemberg24703f82006-06-26 19:12:51 +000020372006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2038
2039 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2040 (t1_decoder_parse_charstrings): Operator with
2041 opcode 15 pops its two arguments.
2042 Handle the case where the pops of an othersubr may be part of a
2043 subroutine.
2044 Handle unknown othersubrs gracefully: count their operands and let
2045 the following pop operators push the operands as the results onto
2046 the Type1 stack.
2047 Improve handling of setcurrentpoint opcode.
2048
Werner Lembergc011f4c2006-06-26 09:40:00 +000020492006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2050
2051 The Type 1 parser now skips over top-level procedures as required
2052 for a `Simplified Parser'. This makes the parser more robust as it
2053 doesn't poke around in PostScript code. Additionally, it makes the
2054 FontDirectory hackery in src/type1/t1load.c unnecessary.
2055
2056 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2057 (skip_literal_string): Add FT_Error as return value.
2058 Handle escapes better.
2059 (skip_string): Add FT_Error as return value.
2060 Don't set `parser->error' but return error code directly.
2061 (skip_procedure): New function.
2062 (ps_parser_skip_PS_token): Handle procedures.
2063 Update code.
2064 (ps_parser_to_token): Update code.
2065 (ps_parser_load_field_table): Handle bbox entries also.
2066
2067 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2068 Add commented-out code for synthetic fonts.
2069
Werner Lemberga2da05c2006-06-25 06:27:27 +000020702006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2071
2072 Fix two hinting bugs as reported in
2073 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2074
2075 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2076 `first_point' member.
2077
2078 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2079 `first_point'.
2080 (TT_Process_Composite_Glyph): Always untouch points.
2081
2082 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2083 `first_point' and `last_point' in case of composite glyphs.
2084 (Ins_IUP): Fix computation of `end_point'.
2085
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020862006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2087
Werner Lembergef3d2c22006-06-25 06:07:14 +00002088 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2089 Mac. The original patch was written by David Sachitano and Lawrence
2090 Coopet, and modified by Sean McBride for MPW compatibility. Only
2091 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002092
Werner Lembergef3d2c22006-06-25 06:07:14 +00002093 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2094 Mac OS X platforms.
2095 (OS_INLINE): Undefine before definition.
2096 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2097 FontAssociation table in FOND resource.
2098 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2099 and fontSize at each entry of FontAssociation table in FOND
2100 resource.
2101 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2102 ffStylOff of FamilyRecord header of FOND resource, the header,
2103 fontSize, fontID at each entry of FontAssociation table, and
2104 StyleMapping table.
2105 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002106
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000021072006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2108
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002109 Public API of TrueTypeGX, OpenType, and classic kern table validator
2110 should return `FT_Err_Unimplemented_Feature' if validation service
2111 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002112 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002113 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2114
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002115 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2116 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2117 unavailable.
2118 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2119 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002120
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002121 * src/base/ftotval.c (FT_OpenType_Validate): Return
2122 FT_Err_Unimplemented_Feature if OpenType validation service is
2123 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002124
Werner Lembergb10e45a2006-06-08 07:32:56 +000021252006-06-08 Werner Lemberg <wl@gnu.org>
2126
2127 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2128 errors.
2129
David Turner5f1f7502006-06-07 05:11:50 +000021302006-06-07 David Turner <david@freetype.org>
2131
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002132 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2133 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2134 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002135
David Turner457b4a82006-06-06 08:14:14 +000021362006-06-06 David Turner <david@freetype.org>
2137
Werner Lemberg4836f952006-06-06 12:54:08 +00002138 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002139
Werner Lemberg4836f952006-06-06 12:54:08 +00002140 We change `ps_unicodes_init' so that it also takes a
2141 `free_glyph_name' callback to release the glyph names returned by
2142 `get_glyph_name'
2143
2144 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2145 Renamed to ...
2146 (PS_GetGlyphNameFunc): This.
2147 (PS_FreeGlyphNameFunc): New typedef.
2148 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2149
2150 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2151 argument.
2152 (cff_sid_free_glyph_name): New function.
2153 (cff_cmap_unicode_init): Updated.
2154
2155 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2156
2157 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2158 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002159
2160
David Turner09717352006-06-04 14:33:08 +000021612006-06-04 David Turner <david@freetype.org>
2162
Werner Lembergd724f202006-06-04 15:17:41 +00002163 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2164 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002165 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002166
Werner Lembergd724f202006-06-04 15:17:41 +00002167 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2168 of `face->num_glyphs' which missed the last glyph, due to
2169 the offset-by-1 computation, since the PFR format doesn't
2170 guarantee that glyph index 0 corresponds to the `missing
2171 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002172
Werner Lemberg33779662006-05-26 06:30:05 +000021732006-05-25 Werner Lemberg <wl@gnu.org>
2174
2175 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2176 `-no-undefined'. Reported by Christian Biesinger.
2177
Werner Lemberg24773d62006-05-20 08:53:13 +000021782006-05-19 Brian Weed <bw@imaginengine.com>
2179
2180 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2181 have debug information, and debug libraries use `C7 compatible'
2182 debug info.
2183
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021842006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2185
Werner Lemberga6523a62006-05-20 08:47:01 +00002186 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002187 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002188
Werner Lemberga6523a62006-05-20 08:47:01 +00002189 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2190 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002191
2192 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002193 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002194
21952006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2196
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002197 * build/unix/configure.raw: Add a fallback to disable Carbon
2198 dependency, if configured with no options on Mac OS X.
2199
22002006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2201
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002202 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002203 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002204 the second part of Savannah bug #16590.
2205
Werner Lemberg545c4e52006-05-17 22:55:04 +000022062006-05-18 Werner Lemberg <wl@gnu.org>
2207
2208 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2209 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2210
David Turnerdc3ff312006-05-17 12:59:35 +000022112006-05-17 David Turner <david@freetype.org>
2212
Werner Lemberg545c4e52006-05-17 22:55:04 +00002213 This is a major patch used to drastically improve the performance of
2214 loading glyphs. This both speeds up loading the glyph vectors
2215 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002216
Werner Lemberg545c4e52006-05-17 22:55:04 +00002217 We now use inline assembler code with GCC to implement `FT_MulFix',
2218 which is probably the most important function related to the
2219 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002220
Werner Lemberg545c4e52006-05-17 22:55:04 +00002221 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002222
2223
Werner Lemberg545c4e52006-05-17 22:55:04 +00002224 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2225 `cursor' and `limit'.
2226
2227 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2228 New functions.
2229 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2230 [TEST]: Remove.
2231
2232 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2233 code.
2234
2235 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2236 `FT_ZERO'
2237 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2238 (af_glyph_hints_reload: Rewrite recognition of weak points.
2239
2240 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2241 constant values out of the loops.
2242
2243 * src/autofit/aftypes.h: Updated.
2244
2245 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2246
2247 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2248 product to get orientation.
2249
2250 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2251 (FT_Stream_OpenGzip): Use it to handle small files directly in
2252 memory.
2253
2254 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2255 Improve performance.
2256
2257 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2258 `limit'.
2259
2260 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2261 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2262 exceedingly large values of number of contours. Speed up by
2263 reducing the number of loops.
2264
2265 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2266
2267
2268 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2269 used to detect rogue clients from 4 to 16. This is to prevent some
2270 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2271 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002272
Werner Lembergde2d90a2006-05-17 08:54:30 +000022732007-05-17 Werner Lemberg <wl@gnu.org>
2274
2275 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002276 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002277
22782006-05-16 Werner Lemberg <wl@gnu.org>
2279
2280 * docs/PROBLEMS: Updated icl issues.
2281
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002282----------------------------------------------------------------------------
2283
Werner Lemberg42b63b22007-01-21 21:01:33 +00002284Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002285David Turner, Robert Wilhelm, and Werner Lemberg.
2286
2287This file is part of the FreeType project, and may only be used, modified,
2288and distributed under the terms of the FreeType project license,
2289LICENSE.TXT. By continuing to use, modify, or distribute this file you
2290indicate that you have read the license and understand and accept it
2291fully.
2292
2293
2294Local Variables:
2295version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002296coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002297End: