blob: 61e3968ecd4a12f7050525d669aadb7483f102d9 [file] [log] [blame]
David Turner6c2ab092007-06-16 16:40:37 +000012006-06-16 David Turner <david@freetype.org>
2
3 * src/smooth/ftgrays.c (gray_hline): prevent integer overflows
4 when rendering *very* large outlines
5
David Turner815911a2007-06-16 17:07:20 +00006 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): check the well-formedness
7 of the contours array when loading a glyph
8
9 * src/truetype/ttinterp.c (Ins_IP): check argument ranges to reject
10 bogus operations properly
11
David Turner6c2ab092007-06-16 16:40:37 +000012
Werner Lembergab1604b2007-06-16 07:59:39 +0000132006-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
14
15 * src/winfonts/winfnt.h: Add necessary structures for PE resource
16 parsing.
17 (WinPE32_HeaderRec): New structure.
18 (WinPE32_SectionRec): New structure.
19 (WinPE_RsrcDirRec): New structure.
20 (WinPE_RsrcDirEntryRec): New structure.
21 (WinPE_RsrcDataEntryRec): New structure.
22 (FNT_FontRec): Remove unused `size_shift' field.
23
24 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
25 loading bitmap .fon files in PE format.
26
Werner Lemberg08a645d2007-06-15 14:05:20 +0000272006-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
28
29 * builds/win32/ftdebug.c: Unify debug level handling with other
30 platforms.
31
Werner Lemberg367f3012007-06-14 06:56:52 +0000322006-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
33
34 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
35 console as well as to the debugger.
36
Werner Lemberg46dde492007-06-14 03:59:02 +0000372006-06-14 Werner Lemberg <wl@gnu.org>
38
39 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
40 cover all ranges which could possibly be handled by the aflatin
41 module (since the default fallback for unknown ranges is now the
42 afcjk module). It might be necessary to fine-tune this further by
43 splitting off modules for Greek, Cyrillic, or other blocks.
44
David Turnerb7920172007-06-11 05:37:35 +0000452007-06-11 David Turner <david@freetype.org>
46
Werner Lemberg49e18b82007-06-11 21:15:09 +000047 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
48 incorrect segment linking computation. This was the root cause of
49 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +000050
51
Werner Lemberg49e18b82007-06-11 21:15:09 +000052 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
53 to improve the Latin auto-hinter. Note that the new code is
54 disabled by default since it is not stabilized yet.
55
56 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
57 (disabled currently).
58
59 * src/autofit/afhints.c: Remove dead code.
60 (af_axis_hints_new_edge): Add argument to handle segment directions.
61 (af_edge_flags_to_string): New function.
62 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
63 option flags.
64 (af_glyph_hints_reload): Add argument to handle inflections.
65 Simplify.
66 (af_direction_compute): Fine tuning.
67 (af_glyph_hints_align_edge_points): Fix logic.
68 (af_glyph_hints_align_strong_points): Do linear search for small
69 edge counts.
70 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
71 (af_iup_shift): Handle zero `delta'.
72
73 * src/autofit/afhints.h: Updated.
74 (AF_SORT_SEGMENTS): New macro (disabled).
75 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
76
77 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
78 argument to pass option flags for handling scripts.
79 * src/autofit/afglobal.h: Updated.
80
81 * src/autofit/afcjk.c: Updated.
82 * src/autofit/aflatin.c: Updated.
83 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
84
85 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
86 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
87 Don't set `edge->dir'
88 (af_latin_hint_edges): Add more logging.
89
90 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +000091
Werner Lembergf6c120f2007-06-11 04:55:58 +0000922007-06-11 Werner Lemberg <wl@gnu.org>
93
Werner Lembergcf7b7642007-06-11 04:58:01 +000094 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +000095
David Turner84c6f882007-06-10 20:51:04 +0000962007-06-10 David Turner <david@freetype.org>
97
Werner Lembergf6c120f2007-06-11 04:55:58 +000098 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
99 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000100
Werner Lembergf6c120f2007-06-11 04:55:58 +0000101 * include/freetype/config/ftoption.h: Clarify documentation
102 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000103
Werner Lembergf6c120f2007-06-11 04:55:58 +0000104
105 Add new `FT_Face_CheckTrueTypePatents' API.
106
107 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
108 declaration.
109
110 * include/freetype/internal/services/svttglyf.h,
111 src/base/ftpatent.c: New files.
112
113 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
114 New macro.
115
116 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
117 `ttpload.h'.
118 (tt_service_truetype_glyf): New service structure.
119 (tt_services): Register it.
120
121 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
122 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000123
Werner Lemberg33db39e2007-06-08 06:30:29 +00001242007-06-08 Werner Lemberg <wl@gnu.org>
125
David Turner84c6f882007-06-10 20:51:04 +0000126 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000127 Fonts without a cmap must be handled correctly by FreeType (anything
128 else would be a bug).
129
130
131 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
132 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
133
Werner Lemberg88ab6382007-06-07 05:01:56 +00001342007-06-07 Werner Lemberg <wl@gnu.org>
135
136 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
137 tt_sbit_decoder_load_image): Protect against integer overflows.
138
139
140 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
141 for `x_control' and `y_control'.
142
Werner Lemberg2a2dca62007-06-06 04:39:37 +00001432007-06-06 Werner Lemberg <wl@gnu.org>
144
145 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
146
Werner Lemberga8d65492007-06-06 04:47:49 +0000147
148 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
149 FreeType error.
150
Werner Lemberg470210b2007-06-06 10:05:49 +0000151
152 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
153 `font_count'.
154
155
156 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
157
158
159 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
160 `FT_Error'.
161 Check `fd_index'.
162 (cff_slot_load): Updated.
163 * src/cff/cffgload.h: Updated.
164
Werner Lemberg6c054752007-06-05 05:27:54 +00001652007-06-05 Werner Lemberg <wl@gnu.org>
166
167 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
168 (pfr_glyph_load_simple): Convert assertion into normal FreeType
169 error.
170 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000171 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
172 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000173
174 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
175
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000176
Werner Lemberg470210b2007-06-06 10:05:49 +0000177 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000178
Werner Lemberge5c14d92007-06-05 20:50:37 +0000179
180 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
181 in case of parsing error.
182 (ps_parser_load_field): Updated.
183
184 * src/type1/t1load.c (parse_font_matrix): Updated.
185
Werner Lembergad18b362007-06-04 07:04:05 +00001862007-06-04 Werner Lemberg <wl@gnu.org>
187
188 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
189
190 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
191
Werner Lemberg3d507fe2007-06-03 16:54:55 +00001922007-06-03 Werner Lemberg <wl@gnu.org>
193
Werner Lemberg99a320b2007-06-03 19:21:26 +0000194 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
195 George Williams (with some modifications).
196
1972007-06-03 Werner Lemberg <wl@gnu.org>
198
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000199 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
200 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
201 face == NULL. Suggested by Graham Asher.
202
Werner Lembergce280a22007-06-03 05:58:30 +00002032007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
204
205 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
206
Werner Lemberg5b591e42007-06-01 22:16:43 +00002072007-06-02 Werner Lemberg <wl@gnu.org>
208
209 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
210 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
211
212 * src/bdf/bdflib.c (bdf_load_font): Use them.
213
214 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
215
Werner Lembergb9933f42007-06-01 21:27:12 +00002162007-06-01 Werner Lemberg <wl@gnu.org>
217
218 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
219 (FTC_CMapCache_Lookup): Remove unused code.
220
Werner Lembergc793d902007-06-01 20:51:11 +00002212007-06-01 Sean McBride <sean@rogue-research.com>
222
223 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
224 unused.
225
Werner Lembergbebc7b12007-06-01 06:32:30 +00002262007-06-01 Werner Lemberg <wl@gnu.org>
227
228 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
229 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000230 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000231
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000232 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
233 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
234
Werner Lembergba03af62007-05-30 13:57:02 +00002352007-05-30 Werner Lemberg <wl@gnu.org>
236
237 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
238 against too small binary data strings.
239
240 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
241
David Turnerf0cd69c2007-05-28 15:42:09 +00002422007-05-28 David Turner <david@freetype.org>
243
Werner Lemberg99e0c182007-05-29 07:00:23 +0000244 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
245 transformation. This significantly reduces the loading time of CFF
246 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000247
Werner Lemberg99e0c182007-05-29 07:00:23 +0000248 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000249
Werner Lemberg99e0c182007-05-29 07:00:23 +0000250 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
251 hinting script to CJK, since it works well with more scripts than
252 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
253 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000254
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002552007-05-25 Werner Lemberg <wl@gnu.org>
256
257 * docs/CHANGES: Updated.
258
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00002592007-05-24 Werner Lemberg <wl@gnu.org>
260
261 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
262 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
263
2642007-05-24 Graham Asher <graham.asher@btinternet.com>
265
266 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
267 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
268
David Turner0d0365e2007-05-22 09:53:44 +00002692007-05-22 David Turner <david@freetype.org>
270
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000271 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
272 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000273
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000274
275 Avoid heap blowup with very large .Z font files. This fixes
276 Savannah bug #19910.
277
278 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
279 `in_limit', `pad', `pad_bits', and `in_buff' members.
280 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
281 `buf_total' members.
282
283 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
284 only one argument.
285 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000286
2872007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000288
289 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
290 (ps_dimension_set_mask_bits): Remove `const'.
291
David Turner0d0365e2007-05-22 09:53:44 +00002922007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000293
294 * src/sfnt/ttmtx.c (tt_face_get_metrics)
295 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
296
Werner Lembergb826fa72007-05-19 07:18:48 +00002972007-05-19 Derek Clegg <dclegg@apple.com>
298
299 Savannah patch #5929.
300
301 * include/freetype/tttables.h, src/base/ftobjcs.c
302 (FT_Get_CMap_Format): New function.
303
304 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
305 `format' member.
306 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
307 cmap_info->format.
308
Werner Lemberg6f99c882007-05-19 07:01:49 +00003092007-05-19 Werner Lemberg <wl@gnu.org>
310
311 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
312 before handling subglyphs so that it can be reinitialized each time.
313 This fixes Savannah bug #19859.
314
Werner Lemberg95bc9d32007-05-16 15:19:42 +00003152007-05-16 Werner Lemberg <wl@gnu.org>
316
317 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
318 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
319 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
320 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
321 tt_face_get_metrics): Fix type-punning issues.
322
David Turner0a24bd22007-05-15 10:54:10 +00003232007-05-15 David Turner <david@freetype.org>
324
325 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000326 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
327 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000328 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000329 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000330
Werner Lemberg607dec72007-05-15 06:49:37 +00003312007-05-15 Graham Asher <graham.asher@btinternet.com>
332
333 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
334 variable.
335 * src/autofit/afloader.c (af_loader_load_g): Ditto.
336
337 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
338 (open_face_from_buffer): Initialize `stream'.
339 (FT_Request_Metrics): Remove unused variable.
340 Remove redundant `break' statements.
341 (FT_Get_Track_Kerning): Remove unused variable.
342
343 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
344 afm_parse_kern_data): Remove redundant
345 `break' statements.
346 (afm_parser_parse): Ditto.
347 Don't use uninitialized variables.
348
349 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
350 Use `|' operator instead of `^' to set it.
351 Update all users.
352
353 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
354 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
355
356 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
357 comparison.
358 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
359 (TT_Load_Glyph): Remove unused variable.
360
Werner Lemberg8d463a52007-05-13 16:01:55 +00003612007-05-13 Derek Clegg <dclegg@apple.com>
362
363 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
364 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
365
David Turner711cf842007-05-11 14:36:24 +00003662007-05-11 David Turner <david@freetype.org>
367
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000368 * src/cache/ftbasic.c, include/freetype/ftcache.h
369 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
370 functions that allow us to look up glyphs using an FTC_Scaler object
371 to specify the size, making it possible to use fractional pixel
372 sizes.
373
374 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
375 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000376
Werner Lemberg94be20e2007-05-09 20:02:55 +00003772007-05-09 Graham Asher <graham.asher@btinternet.com>
378
379 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
380 (af_latin_metrics_scale_dim): Fix compiler warnings.
381
Werner Lemberg41271032007-05-06 04:51:48 +00003822007-05-06 Werner Lemberg <wl@gnu.org>
383
384 * builds/win32/visualce/freetype.sln: Removed, as requested by
385 Vincent.
386
Werner Lembergdf49e692007-05-04 06:30:05 +00003872007-05-04 Vincent RICHOMME <richom.v@free.fr>
388
389 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
390 PC targets.
391
392 * docs/CHANGES: Document them.
393
3942007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000395
396 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
397 mmap (which might happen on some RTOS). From Savannah patch #5909.
398
Werner Lemberg106eaf12007-05-03 07:07:47 +00003992007-05-03 Werner Lemberg <wl@gnu.org>
400
401 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
402 * include/freetype/freetype.h (FT_Set_Char_Size): Update
403 documentation.
404
Werner Lemberg1b5267d2007-04-28 21:06:15 +00004052007-04-28 Victor Stinner <victor.stinner@inl.fr>
406
407 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
408 `cmap'.
409
Werner Lembergcc712a22007-04-27 17:16:50 +00004102007-04-27 Werner Lemberg <wl@gnu.org>
411
412 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
413 number of points in contours. Problem reported by Victor Stinner
414 <victor.stinner@haypocalc.com>.
415 (TT_Process_Simple_Glyph): Synchronize variable types.
416
Werner Lemberg45bb18f2007-04-26 06:26:35 +00004172007-04-26 Werner Lemberg <wl@gnu.org>
418
419 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
420 zero in case of error. This fixes Savannah bug #19689.
421
David Turnera8b45e62007-05-11 14:10:30 +00004222007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
423
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000424 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
425 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000426
Werner Lembergfcc1f472007-04-10 11:51:50 +00004272007-04-10 Martin Horak <horakm@centrum.cz>
428
429 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
430 Ignore `hhea' table. This fixes Savannah bug #19261.
431
Werner Lemberg14bf82e2007-04-10 04:09:49 +00004322007-04-09 Werner Lemberg <wl@gnu.org>
433
434 * Version 2.3.4 released.
435 =========================
436
437
438 Tag sources with `VER-2-3-4'.
439
440 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
441 version number to 2.3.4.
442
443 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
444 builds/win32/visualc/freetype.dsp,
445 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
446
447 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
448
449 * builds/unix/configure.raw (version_info): Set to 9:15:3.
450
Werner Lembergf4a52a62007-04-09 08:40:11 +00004512007-04-09 Martin Horak <horakm@centrum.cz>
452
453 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
454 memory stream to avoid a crash with the incremental memory
455 interface (Savannah bug #19260).
456
David Turner1dcb4442007-04-06 08:19:04 +00004572007-04-06 David Turner <david@freetype.org>
458
Werner Lembergc81cf612007-04-06 09:28:23 +0000459 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
460 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000461
Werner Lemberg9f83e052007-04-05 02:28:23 +00004622007-04-04 Werner Lemberg <wl@gnu.org>
463
464 * Version 2.3.3 released.
465 =========================
466
467
468 Tag sources with `VER-2-3-3'.
469
470 * docs/CHANGES: Mention CVE-2007-1351.
471
David Turner7338ec22007-04-03 14:30:34 +00004722007-04-03 David Turner <david@freetype.org>
473
474 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000475 if one of the resolution values is 0, treat it as if it were the
476 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000477
David Turnere6472c12007-04-02 13:13:54 +00004782007-04-02 David Turner <david@freetype.org>
479
Werner Lemberg94f12272007-04-03 07:19:53 +0000480 Add special code to detect `extra-light' fonts and do not snap their
481 stem widths too much to avoid bizarre hinting effects.
482
483 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
484 `extra_light' members.
485
486 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
487 them.
488 (af_latin_metrics_scale_dim): Set `extra_light'.
489 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000490
David Turner3f539692007-03-28 14:53:40 +00004912007-03-28 David Turner <david@freetype.org>
492
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000493 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000494 padding.
495
Werner Lemberga08b2172007-03-28 07:17:17 +00004962007-03-28 Werner Lemberg <wl@gnu.org>
497
498 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
499 gracefully.
500 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000501 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000502 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
503 number of code points in Unicode.
504
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000505 * builds/win32/visualc/index.html,
506 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000507 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000508 s/232/233/.
509
510 * docs/CHANGES: Mention ftdiff.
511
David Turner3b242d32007-03-26 12:03:04 +00005122007-03-26 David Turner <david@freetype.org>
513
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000514 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
515 corresponding code.
516 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000517
Werner Lemberga08b2172007-03-28 07:17:17 +0000518 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000519 computations in order to ignore single-point contours. These are
520 never rasterized and correspond in certain fonts to mark-attach
521 points that are very far from the glyph's real outline, ruining the
522 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000523
Werner Lemberga08b2172007-03-28 07:17:17 +0000524 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000525 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000526 Otherwise code that uses them will most certainly ruin the fixed
527 advance property.
David Turner23553d62007-03-26 13:37:17 +0000528
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000529 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
530 documentation and bump version number to 2.3.3.
531
532 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
533
534 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000535
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00005362007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
537
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000538 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
539 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000540 * builds/vms/ftconfig.h: Ditto.
541 * include/freetype/config/ftconfig.h: Ditto.
542
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00005432007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
544
Werner Lemberg14ffe092007-03-22 06:12:43 +0000545 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
546 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000547 proposed by Sean McBride:
548 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
549
5502007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
551
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000552 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
553 setjmp, proposed by Sean McBride:
554 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
555
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00005562007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
557
Werner Lembergc9f6c662007-03-21 13:30:14 +0000558 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
559 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
560 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000561
David Turner74c34eb2007-03-18 07:19:31 +00005622007-03-18 David Turner <david@freetype.org>
563
Werner Lembergc9f6c662007-03-21 13:30:14 +0000564 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
565 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000566
Werner Lembergc9f6c662007-03-21 13:30:14 +0000567 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000568
David Turner89020d92007-03-17 17:48:57 +00005692007-03-17 David Turner <david@freetype.org>
570
Werner Lembergc9f6c662007-03-21 13:30:14 +0000571 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
572 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000573
Werner Lemberg25d592a2007-03-09 07:59:35 +00005742007-03-09 Werner Lemberg <wl@gnu.org>
575
576 * Version 2.3.2 released.
577 =========================
578
579
580 Tag sources with `VER-2-3-2'.
581
582 * builds/win32/visualc/index.html,
583 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000584 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000585 s/231/232/.
586
David Turner3a51afa2007-03-08 10:50:38 +00005872007-03-08 David Turner <david@freetype.org>
588
Werner Lemberg25d592a2007-03-09 07:59:35 +0000589 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000590
Werner Lemberg25d592a2007-03-09 07:59:35 +0000591 * builds/unix/configure.raw (version_info): Set to 9:13:3.
592
593 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
594
595 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000596
Werner Lemberg1e259de2007-03-08 15:39:21 +0000597 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
598 function to work properly, over-writing user-provided buffers in
599 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000600
David Turner121cad52007-03-08 16:43:50 +0000601
Werner Lemberg3d92f082007-03-06 11:59:24 +00006022007-03-05 Werner Lemberg <wl@gnu.org>
603
604 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
605 macro for `strstr'.
606
607 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
608 `trick_names', as suggested by Ivan Nincic.
609
David Turner085bc6e2007-03-05 17:40:03 +00006102007-03-05 David Turner <david@freetype.org>
611
Werner Lembergd112cf02007-03-06 12:06:56 +0000612 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
613 case FT_Init_FreeType fails for some reason. Problem reported by
614 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000615
Werner Lembergd112cf02007-03-06 12:06:56 +0000616 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
617 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
618 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
619 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000620
Werner Lembergd112cf02007-03-06 12:06:56 +0000621 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
622 signed values, not unsigned ones. Problem reported by Johannes
623 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000624
David Turner601aefe2007-02-21 16:47:49 +00006252007-02-21 David Turner <david@freetype.org>
626
Werner Lembergde5e6862007-02-25 21:06:43 +0000627 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
628 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000629
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00006302007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
631
632 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
633 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
634 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
635
Werner Lemberga0915172007-02-16 08:12:50 +00006362007-02-16 Werner Lemberg <wl@gnu.org>
637
638 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
639 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
640
David Turner2c4500e2007-02-14 15:08:47 +00006412007-02-14 David Turner <david@freetype.org>
642
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000643 It seems that the following changes fix most of the known
644 interpreter problems with my fonts, but more testing is needed,
645 though.
646
647 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
648 (TT_MulFix14): Rewrite.
649 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
650 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000651
Werner Lembergc6a14082007-02-12 22:08:15 +00006522007-02-12 Werner Lemberg <wl@gnu.org>
653
654 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
655 warnings.
656
657 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
658 (bdf_interpret_style): Ditto.
659
David Turnerc0f9c4a2007-02-12 14:55:03 +00006602007-02-12 David Turner <david@freetype.org>
661
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000662 Simplify projection and dual-projection code interface.
663
Werner Lemberg406d25f2007-02-12 22:01:18 +0000664 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
665 FT_Vector' as argument type.
666 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
667 Updated.
668 (CUR_fast_project, CUR_fast_dualproj): New macros.
669 (Project, Dual_Project, Project_x, Project_y): Updated.
670 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
671 macros.
672
673
674 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
675 adjustments for the non-light auto-hinted modes. Gets rid of
676 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000677
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000678 * src/autofit/aflatin.c (af_latin_hints_link_segments,
679 af_latin_hints_compute_edges): Slight optimization of the segment
680 linker and better handling of serif segments to get rid of broken
681 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000682
David Turnerc0f9c4a2007-02-12 14:55:03 +0000683
Werner Lemberg442bfb82007-02-12 21:44:10 +0000684 Introduce new string functions and the corresponding macros to get
685 rid of various uses of strcpy and other `evil' functions, as well as
686 to simplify a few things.
687
688 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
689 ft_mem_strcpyn): New declarations.
690 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
691 macros.
692 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
693 functions.
694
695 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
696 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
697 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
698 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
699 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
700 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
701 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
702 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000703
Werner Lemberg406d25f2007-02-12 22:01:18 +0000704 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
705
Werner Lemberg582067d2007-02-11 15:03:05 +00007062007-02-11 Werner Lemberg <wl@gnu.org>
707
708 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
709 non-spacing glyphs.
710
Werner Lemberg8f474532007-02-07 08:31:01 +00007112007-02-07 Tom Parker <palfrey@tevp.net>
712
713 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
714 pointer.
715
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
717
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000718 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
719 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000720 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000721 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
722 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
723 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
724 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000725
726 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
727 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000728 * builds/mac/ftmac.c: Ditto.
729
7302007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
731
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000732 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000733 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000734 #include <ftmac.c>.
735
7362007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
737
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000738 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
739 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
740 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
741 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
742 FT_GetFilePath_From_Mac_ATS_Name.
743 * builds/mac/ftmac.c: Ditto.
744
7452007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
746
Werner Lembergdcbb7082007-02-08 08:54:09 +0000747 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000748 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
749 for passing to FT_New_Face_From_FSSpec.
750
7512007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
752
Werner Lembergdcbb7082007-02-08 08:54:09 +0000753 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000754 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000755
756 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
757 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000758 * builds/mac/ftmac.c (OS_INLINE): Ditto.
759
Werner Lemberg313d7772007-02-01 08:10:45 +00007602007-02-01 Werner Lemberg <wl@gnu.org>
761
762 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
763 Explain why applications shouldn't use it. Found by Alexei.
764
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007652007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000766
767 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
768 message.
769
770 * src/gxvalid/gxvmort1.c
771 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
772 message.
773
Werner Lemberg53935932007-01-31 08:53:02 +00007742007-01-31 Werner Lemberg <wl@gnu.org>
775
776
777 * Version 2.3.1 released.
778 =========================
779
780
781 Tag sources with `VER-2-3-1-FINAL'.
782
783 * builds/win32/visualc/freetype.dsp,
784 builds/win32/visualc/freetype.vcproj: s/230/231/.
785 * builds/win32/visualc/index.html: s/221/231/.
786
787 * vms_make.com: Add `ftgasp'.
788
David Turnera7ee6082007-01-30 10:33:53 +00007892007-01-30 David Turner <david@freetype.org>
790
Werner Lemberg53935932007-01-31 08:53:02 +0000791 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000792
Werner Lemberg53935932007-01-31 08:53:02 +0000793 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000794
Werner Lemberg25d592a2007-03-09 07:59:35 +0000795 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000796 s/2.3.0/2.3.1/.
797
798 * builds/unix/configure.raw (version_info): Set to 9:12:3.
799
800
801 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
802 (af_loader_load_g): Disable the warper (i.e., the light hinting
803 improvements) to make a 2.3.1 bugfix release before introducing a
804 new feature. This should give us more time to tune and improve the
805 warper for the next release.
806
807 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000808
David Turnerd91eebd2007-01-26 15:05:41 +00008092007-01-25 David Turner <david@freetype.org>
810
Werner Lembergbf241762007-01-26 16:08:49 +0000811 For light auto-hinting, improve glyph advance widths and resurrect
812 normal/full hinting to its normal quality.
813
814 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
815 and `xmax_delta'.
816 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
817 and `xmax_delta'.
818
819 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
820 preprocessor conditional with if-clause, handling both light and
821 normal mode.
822
823 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
824 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000825
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00008262007-01-25 Werner Lemberg <wl@gnu.org>
827
828 * docs/release: Updated -- Savannah uses a new uploading scheme.
829
David Turnera42567b2007-01-25 12:23:37 +00008302007-01-25 David Turner <david@freetype.org>
831
Werner Lembergd7855662007-01-25 13:53:56 +0000832 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000833
Werner Lembergd7855662007-01-25 13:53:56 +0000834 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
835 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
836 functions.
David Turnera42567b2007-01-25 12:23:37 +0000837
Werner Lembergd7855662007-01-25 13:53:56 +0000838 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000839
Werner Lembergb1be9e82007-01-25 11:50:00 +00008402007-01-25 Werner Lemberg <wl@gnu.org>
841
842 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000843 correctly in a sanity check. Since this function is only used to
844 load local and global functions, any charstring that called the last
845 local/global function would fail otherwise. This fixes Savannah bug
846 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000847
848 * docs/CHANGES: Document it.
849
David Turnerb6de8d12007-01-23 15:51:50 +00008502007-01-23 David Turner <david@freetype.org>
851
Werner Lembergb1be9e82007-01-25 11:50:00 +0000852 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
853 prevented compilation when disabling both the unpatented and the
854 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000855
Werner Lembergb1be9e82007-01-25 11:50:00 +0000856
857 Fix and enable the warper to improve `light' hinting mode. This is
858 not necessarily a final version, but it seems to work well.
859
860 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
861 Disable code.
862 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
863 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
864
865 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
866 (af_warper_compute_line_best): Fix array size of `scores'.
867 (af_warper_compute): Better handling of border cases.
868 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
869 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000870
Werner Lemberg011d1112007-01-21 09:36:00 +00008712007-01-21 Werner Lemberg <wl@gnu.org>
872
Werner Lemberg42b63b22007-01-21 21:01:33 +0000873 * ChangeLog: Split off older entries into...
874 * ChangeLog.22: This new file.
875
8762007-01-21 Werner Lemberg <wl@gnu.org>
877
Werner Lemberg555258f2007-01-21 09:46:37 +0000878 * docs/CHANGES: Document SHZ fix.
879
8802007-01-21 George Williams <gww@silcom.com>
881
882 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
883 points.
884
8852007-01-21 Werner Lemberg <wl@gnu.org>
886
Werner Lemberg011d1112007-01-21 09:36:00 +0000887 * src/sfnt/ttmtx.c (tt_face_get_metrics)
888 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
889
Werner Lemberg87a5a432007-01-17 12:44:39 +00008902007-01-17 Werner Lemberg <wl@gnu.org>
891
Werner Lembergb8003292007-01-17 12:56:25 +0000892
893 * Version 2.3.0 released.
894 =========================
895
896
897 Tag sources with `VER-2-3-0-FINAL'.
898
8992007-01-17 Werner Lemberg <wl@gnu.org>
900
Werner Lemberg87a5a432007-01-17 12:44:39 +0000901 * docs/release: Updated.
902
David Turner22122722007-01-16 20:06:44 +00009032007-01-16 David Turner <david@freetype.org>
904
Werner Lemberg87a5a432007-01-17 12:44:39 +0000905 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
906 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
907 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
908 warnings.
David Turner22122722007-01-16 20:06:44 +0000909
Werner Lemberg267e1d72007-01-15 07:48:09 +00009102007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
911
912 * builds/amiga/makefile, builds/amiga/makefile.os4,
913 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
914
915 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
916
Werner Lemberg8c4120d2007-01-15 06:42:40 +00009172007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
918
919 Fix various compiler warnings.
920
921 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
922 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
923 s/index/strike_index/.
924 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
925
926 * src/gxvalid/gxvmorx5.c
927 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
928
929 * src/truetype/ttinterp.c (Compute_Point_Displacement),
930 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
931 uninitialized variables.
932
Werner Lemberg6164a9d2007-01-13 23:01:36 +00009332007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
934
935 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
936
Werner Lemberg281c1482007-01-13 22:50:51 +00009372007-01-13 Werner Lemberg <wl@gnu.org>
938
939 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
940 versions up to 0x3FF without complaining.
941
Werner Lembergac250b22007-01-13 14:01:36 +00009422007-01-13 Derek Clegg <dclegg@apple.com>
943
944 Add FT_Get_PS_Font_Info interface to CFF driver.
945
946 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
947 (CFF_FontRec): Add `font_info' field.
948
949 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
950 (cff_font_done): Free font->font_info if necessary.
951
952 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
953 (cff_service_ps_info): Register cff_ps_get_font_info.
954
Werner Lemberg23df31a2007-01-13 08:45:00 +00009552007-01-13 Werner Lemberg <wl@gnu.org>
956
957 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
958 with C++ compiler.
959
960 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
961 af_glyph_hints_dump_edges): Ditto.
962
963 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
964 `modules.cfg').
965
966 * src/sfnt/ttsbit0.h: Remove.
967
968 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
969
Werner Lemberg27cf9de2007-01-13 07:34:23 +00009702007-01-12 David Turner <david@freetype.org>
971
972 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
973 bug in the bitmap emboldener if the pitch of the source bitmap is
974 much larger than its width.
975
976 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
977 compilation warning.
978
Werner Lemberg6d96d312007-01-12 10:30:19 +00009792007-01-12 Werner Lemberg <wl@gnu.org>
980
981 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
982 `automake' CVS module from sources.redhat.com.
983
Werner Lemberg17432b52007-01-12 09:28:44 +00009842007-01-11 Werner Lemberg <wl@gnu.org>
985
986 * src/type1/t1load.c (is_space): Removed.
987 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
988 (parse_charstrings): Use IS_PS_TOKEN.
989
990
991 * autogen.sh: Avoid bash specific syntax.
992
David Turner038ace22007-01-11 15:00:59 +00009932007-01-11 David Turner <david@freetype.org>
994
Werner Lemberg17432b52007-01-12 09:28:44 +0000995 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000996
Werner Lemberg17432b52007-01-12 09:28:44 +0000997 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000998
Werner Lemberg17432b52007-01-12 09:28:44 +0000999 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1000 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001001 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001002
Werner Lemberg17432b52007-01-12 09:28:44 +00001003 * autogen.sh: Small fix to get it working on Mac OS X properly:
1004 The issue is that GNU libtool is called `glibtool' on this platform,
1005 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001006
David Turner2628ea92007-01-10 13:15:56 +000010072007-01-10 David Turner <david@freetype.org>
1008
Werner Lemberg17432b52007-01-12 09:28:44 +00001009 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1010 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001011
Werner Lemberg17432b52007-01-12 09:28:44 +00001012 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1013 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1014 version number to 2.3.0.
1015
1016 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1017 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001018
1019 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001020 include/freetype/ftlcdfil.h: Update reference documentation with
1021 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001022
Werner Lemberg17432b52007-01-12 09:28:44 +00001023 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1024 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001025
Werner Lembergbf02d392007-01-10 07:07:37 +000010262007-01-10 Derek Clegg <dclegg@apple.com>
1027
1028 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1029 values.
1030
David Turnerf48b60e2007-01-08 15:15:32 +000010312007-01-08 David Turner <david@freetype.org>
1032
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001033 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001034
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001035 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1036 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001037 corresponding to a given character pixel size.
1038
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001039 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1040 `gasp' table, in order to avoid potential problems with later
1041 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001042
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001043 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1044 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001045
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001046 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1047 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1048 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1049 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001050
Werner Lemberge6b6f372007-01-07 00:06:47 +000010512007-01-07 Werner Lemberg <wl@gnu.org>
1052
Werner Lembergb8004d22007-01-07 09:13:38 +00001053 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1054 Type 11 fonts.
1055 Scan for `/sfnts' token.
1056
10572007-01-07 Werner Lemberg <wl@gnu.org>
1058
1059 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001060
Werner Lembergbe5f7972007-01-06 07:51:48 +000010612007-01-06 Werner Lemberg <wl@gnu.org>
1062
1063 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1064 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1065
David Turnera8cf42b2007-01-04 16:46:46 +000010662007-01-04 David Turner <david@freetype.org>
1067
Werner Lembergf6294392007-01-06 07:47:45 +00001068 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1069 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001070
Werner Lembergf6294392007-01-06 07:47:45 +00001071
1072 Do not allocate interpreter-specific tables in memory if we are not
1073 going to load glyphs with the bytecode interpreter anyway.
1074
1075 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1076 only if glyph is hinted.
1077 Updated.
1078 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1079 and `cvs_ready'.
1080 Add `tt_size_ready_bytecode' declaration.
1081 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1082 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1083 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1084 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1085 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001086
David Turner91a34022007-01-05 14:47:08 +00001087
Werner Lembergf6294392007-01-06 07:47:45 +00001088 Don't extract the metrics table from the SFNT font file. Instead,
1089 reparse it on each glyph load. The runtime difference is not
1090 noticeable, and it can save a lot of heap memory when memory-mapped
1091 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001092
Werner Lembergf6294392007-01-06 07:47:45 +00001093 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1094 `horz_metrics_offset' and `vert_metrics_ofset'.
1095 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1096 Updated.
1097
1098
1099 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1100
1101
1102 Do not load the CFF index offsets into memory, since this wastes a
1103 *lot* of heap memory with large Asian CFF fonts. There is no
1104 significant performance loss.
1105
1106 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1107 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1108 `data_size'.
1109 (CFF_CharsetRec): Add field `num_glyphs'.
1110
1111 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1112 cff_charset_cid_to_gindex): New functions.
1113 (cff_new_index): Renamed to...
1114 (cff_index_init): This. Update all callers.
1115 Updated -- some code has been moved to `cff_index_load_offsets'.
1116 (cff_done_index): Renamed to...
1117 (cff_index_done): This. Update all callers.
1118 (cff_index_get_pointers, cff_index_access_element): Updated to use
1119 stream offsets.
1120 (cff_charset_compute_cids): Set `num_glyphs' field.
1121 (cff_encoding_load): Updated.
1122
1123 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001124
11252007-01-04 David Turner <david@freetype.org>
1126
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001127 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1128 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001129
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001130 * README.CVS: Add common problem description and solution
1131 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001132
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001133 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001134
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001135 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001136
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001137 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001138
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001139 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1140 (TWorker): This.
1141 Remove `count_table' and `memory'.
1142 Make `grays' a pointer.
1143 (TRaster): New structure.
1144 (count_table): New static array.
1145 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1146 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1147 ft_black_set_mode, ft_black_render): Updated.
1148 (ft_black_init): Don't initialize `count_table'.
1149 (ft_black_reset): Use the render pool. This saves about 6KB of
1150 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001151
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001152 * src/smooth/ftgrays.c (TRaster): Replaced with...
1153 (TWorker): This.
1154 Remove `memory'.
1155 (TRaster): New structure.
1156
1157 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1158 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1159 gray_render_span, gray_raster_render): Updated.
1160 (gray_raster_reset): Use the render pool. This saves about 6KB of
1161 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001162
David Turner8a6c44e2007-01-04 17:03:11 +00001163 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1164 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001165 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1166 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1167 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001168
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001169 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1170 Remove a typo that results in no hinting and a memory leak with some
1171 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001172
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001173 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001174 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001175 CFF_Faces in it. We need to close all faces before destroying the
1176 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001177
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000011782007-01-02 Werner Lemberg <wl@gnu.org>
1179
1180 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1181 Remove compiler warning.
1182
David Turner9207e002007-01-02 16:58:13 +000011832007-01-02 David Turner <david@freetype.org>
1184
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001185 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001186
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000011872006-12-31 Masatake YAMATO <jet@gyve.org>
1188
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001189 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1190 function.
1191 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001192 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001193 `gxv_kern_subtable_fmt0_pairs_validate'.
1194
David Turner115b4422006-12-22 11:37:05 +000011952006-12-22 David Turner <david@freetype.org>
1196
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001197 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1198 warnings.
David Turner115b4422006-12-22 11:37:05 +00001199
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001200 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1201 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001202
Werner Lemberg4755bf72006-12-16 08:58:44 +000012032006-12-16 Anders Kaseorg <anders@kaseorg.com>
1204
1205 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1206 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1207
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000012082006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1209
Werner Lemberg9b774e22007-01-16 06:11:27 +00001210 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001211 sync with the modification by Jens Claudius on 2006-08-22; cf.
1212 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 +00001213
12142006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1215
1216 * src/base/ftmac.c: Specialized for Mac OS X only.
1217 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1218 * builds/unix/configure.raw: Ditto. When explicit switches for
1219 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1220 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1221
12222006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1223
1224 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1225 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1226 instead of src/base/ftmac.c
1227 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1228 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1229 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1230 that cannot be built at present.
1231
12322006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1233
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001234 * src/base/ftobjs.c: Improvement of resource fork handler for
1235 POSIX, cf.
1236 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001237 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1238 format or .dfont, to simulate the face index number counted by ftmac.c.
1239 (IsMacResource): Return the number of scalable faces correctly.
1240
Werner Lembergec5b4502006-12-10 07:51:38 +000012412006-12-10 Werner Lemberg <wl@gnu.org>
1242
1243 * builds/toplevel.mk (version): Protect against `distclean' target.
1244
Werner Lembergb26b3142006-12-09 20:01:43 +000012452006-12-09 Werner Lemberg <wl@gnu.org>
1246
1247 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1248 or `type'.
1249
1250 * builds/freetype.mk (version): Extracted from freetype.h, using
1251 GNU make's built-in string functions.
1252 (refdoc): Use $(version) instead of static version number.
1253
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000012542006-12-08 Werner Lemberg <wl@gnu.org>
1255
1256 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1257
Werner Lemberg15c29502006-12-09 07:29:54 +000012582006-12-08 Vladimir Volovich <vvv@vsu.ru>
1259
1260 * src/tools/apinames (State): Remove final comma in structure -- xlc
1261 v5 under AIX 4.3 doesn't like this.
1262
David Turnerdbf3b432006-12-07 21:18:09 +000012632006-12-07 David Turner <david@freetype.org>
1264
Werner Lemberg256a3512006-12-08 06:49:33 +00001265 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1266 to the spacing of auto-fitted glyphs. This only impacts rare
1267 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001268
Werner Lemberg11171312006-12-03 09:43:40 +000012692006-12-03 Werner Lemberg <wl@gnu.org>
1270
1271 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1272
Werner Lemberg960ba592006-12-01 08:20:47 +000012732006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001274
Werner Lemberg960ba592006-12-01 08:20:47 +00001275 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1276 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1277 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001278
David Turner80658e52006-11-28 08:09:20 +00001279
Werner Lemberg960ba592006-12-01 08:20:47 +00001280 * include/freetype/ftxf86.h: Fix and extend comment so that it
1281 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001282
Werner Lemberg960ba592006-12-01 08:20:47 +00001283 * include/freetype/ftchapters.h: Add `font_format' section.
1284
1285
1286 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1287 to TOC in index page.
1288
12892006-11-28 David Turner <david@freetype.org>
1290
1291 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1292 trying to render into a zero-width/height bitmap, not an error code.
1293
1294 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1295
1296 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1297 ones instead.
1298
1299 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1300 variable.
David Turner80658e52006-11-28 08:09:20 +00001301
Werner Lemberg8636c292006-11-26 22:28:13 +000013022006-11-26 Pierre Hanser <hanser@club-internet.fr>
1303
1304 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1305
Werner Lemberg960ba592006-12-01 08:20:47 +000013062006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001307
Werner Lemberg960ba592006-12-01 08:20:47 +00001308 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1309 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1310 Add stubs to link the `ftgrid' test program when debugging is
1311 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001312
Werner Lemberg960ba592006-12-01 08:20:47 +000013132006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001314
1315 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001316 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1317
1318 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1319 Emit more sensible information.
1320
1321 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1322
1323 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1324 rounding of blue values.
1325 (af_latin_hints_compute_segments): Hint segment heights.
1326 (af_latin_hints_link_segments): Reduce `len_score' value.
1327 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1328 value and use `height' member for comparisons.
1329 (af_latin_hint_edges): Extend logging message.
1330 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001331
Werner Lemberg91959bf2006-11-22 10:36:55 +000013322006-11-22 Werner Lemberg <wl@gnu.org>
1333
1334 Fix Savannah bug #15553.
1335
1336 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1337 program after a change from mono to grayscaling (and vice versa).
1338 Use correct constant for comparison to get `exec->grayscale'.
1339
Werner Lemberg913a3652006-11-19 09:19:17 +000013402006-11-18 Werner Lemberg <wl@gnu.org>
1341
1342 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001343 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001344 This patch fixes Savannah bug #18301.
1345
1346 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1347 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1348 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1349 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1350 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1351 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1352 (FNT_Load_Glyph): Check validity of `glyph_index'.
1353
David Turner7bab6ae2006-11-13 11:25:06 +000013542006-11-13 David Turner <david@freetype.org>
1355
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001356 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1357 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001358
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001359 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1360 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1361 when building the library to change the default LCD filter to be
1362 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001363
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001364 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001365
David Turner8765c712006-11-10 16:49:42 +000013662006-11-10 David Turner <david@freetype.org>
1367
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001368 * src/smooth/ftsmooth.c: API change for the LCD
1369 filter. The FT_LcdFilter value is an enumeration describing which
1370 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1371 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1372 algorithm which produces strong color fringes for everything
1373 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001374
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001375 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1376 second parameter to an enum type.
1377
1378 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1379 (_ft_lcd_filter): Rename to...
1380 (_ft_lcd_filter_fir): This.
1381 Update parameters.
1382 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1383 (FT_Library_Set_LcdFilter): Update parameters.
1384 Handle new filter modes.
1385
1386 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1387 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1388 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1389 callback and update other fields.
1390
1391 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1392 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1393 Other minor improvements.
1394
1395 * src/autofit/aflatin.c: Various tiny improvements that drastically
1396 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1397 (af_latin_hints_compute_edges): Fix typo.
1398 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001399
David Turner4e9cc3c2006-11-09 16:31:52 +000014002006-11-09 David Turner <david@freetype.org>
1401
Werner Lemberg49c77a82006-11-09 21:51:57 +00001402 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1403 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001404
Werner Lemberg5e430892006-11-07 09:35:03 +000014052006-11-07 Zhe Su <james.su@gmail.com>
1406
1407 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1408 also.
1409
Werner Lemberg111b5ae2006-11-03 09:40:12 +000014102006-11-03 Werner Lemberg <wl@gnu.org>
1411
1412 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1413
David Turner40604742006-11-02 16:37:35 +000014142006-11-02 David Turner <david@freetype.org>
1415
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001416 Add a few tweaks to better handle serif fonts.
1417 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001418
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001419 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1420 segments that are less than 1.5 pixels high. This gets rid of
1421 *many* corner cases with serifs.
1422 (af_latin_align_linked_edge): Add logging message.
1423 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1424 Add logging messages.
1425 Handle AF_EDGE_FLAG flag specially.
1426
1427 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1428 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1429
1430 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1431 Update external declarations.
1432 (af_corner_orientation, af_corner_is_flat): Replaced by...
1433
1434 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1435 ft_corner_is_flat): These declarations.
1436
1437 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1438 Comment out. Replaced by...
1439
1440 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1441 These functions. Update all callers.
1442 (FT_Add64) [!FT_LONG64]: Simplify.
1443
1444 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1445 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1446 production of garbage by missing lots of segments.
1447
1448 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1449
1450 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1451 [AF_DEBUG]: Set _af_debug_hints.
1452
1453
1454 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1455 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1456 and ft_corner_orientation.
1457
1458
1459 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001460
Werner Lemberge88c5262006-10-24 05:46:26 +000014612006-10-24 Werner Lemberg <wl@gnu.org>
1462
1463 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1464
1465 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1466 as argument.
1467
David Turnera1861392006-10-23 16:00:59 +000014682006-10-23 Zhe Su <zsu@novell.com>
1469
Werner Lemberg715e96e2006-10-24 05:28:45 +00001470 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1471 better deal with broken Asian fonts with strange glyphs, having
1472 self-intersections and other peculiarities. The used algorithm is
1473 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001474
David Turnere140f142006-10-23 08:56:57 +000014752006-10-23 David Turner <david@freetype.org>
1476
Werner Lemberg715e96e2006-10-24 05:28:45 +00001477 Speed up the CFF font loader. With some large CFF fonts,
1478 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001479
Werner Lemberg715e96e2006-10-24 05:28:45 +00001480 * src/cff/cffload.c (cff_get_offset): Removed.
1481 (cff_new_index): Inline functionality of `cff_get_offset'.
1482 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1483 (cff_charset_done): Call `cff_charset_free_cids'.
1484 (cff_charset_load): Call `cff_charset_compute_cids'.
1485 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1486
1487 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1488 with FT_NEXT_XXX.
1489
1490
1491 Speed up the Postscript hinter, with more than 100% speed increase
1492 on my machine.
1493
1494 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1495 psh_corner_orientation): New functions.
1496 (psh_glyph_compute_inflections): Merge loops for efficiency.
1497 Use `psh_corner_orientation'.
1498 (psh_glyph_init): Use `psh_corner_is_flat'.
1499 (psh_hint_table_find_strong_point): Renamed to...
1500 (psh_hint_table_find_strong_points): This.
1501 Rewrite, adding argument to handle all points at once.
1502 Update all callers.
1503 (PSH_MAX_STRONG_INTERNAL): New macro.
1504 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001505
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000015062006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1507
1508 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001509 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001510
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000015112006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1512
1513 * docs/INSTALL.CROSS: New document file for cross-building.
1514
1515 * builds/unix/configure.raw: Preliminary cross-building support.
1516 Find native C compiler and pass it by CC_BUILD, and
1517 find suffix for native executable and pass it by EXEEXT_BUILD.
1518 Also suffix for target executable is passed by EXEEXT.
1519
Werner Lembergb9e6d692006-10-15 08:58:40 +00001520 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1521 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001522 CC_BUILD and EXEEXT_BUILD.
1523
Werner Lembergb9e6d692006-10-15 08:58:40 +00001524 * builds/exports.mk (APINAMES_EXE): Change the extension for
1525 apinames from the suffix for target (E) to that for building host
1526 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001527
Werner Lemberg82a07e92006-10-12 06:20:44 +000015282006-10-12 Werner Lemberg <wl@gnu.org>
1529
1530 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1531 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1532 which reference those files.
1533
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000015342006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1535
Werner Lembergb9e6d692006-10-15 08:58:40 +00001536 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1537 embedded in freetype2.pc and freetype-config. Use it to record
1538 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001539
1540 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1541
1542 * builds/unix/freetype-config.in: Ditto.
1543
Werner Lemberg28e17d92006-10-11 17:27:47 +000015442006-10-11 Werner Lemberg <wl@gnu.org>
1545
1546 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1547 development.
1548
Jens Claudius336d2292006-10-03 08:53:37 +000015492006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1550
1551 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1552 argument to ft_setjmp.
1553
1554 * include/freetype/internal/ftvalid.h: Add comment that
1555 ft_validator_run must not be used.
1556
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015572006-10-01 Werner Lemberg <wl@gnu.org>
1558
1559 * src/base/ftbase.c: Undo change from 2006-09-30.
1560
1561 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1562
15632006-09-30 David Turner <david@freetype.org>
1564
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001565 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1566 s/unpatented_hinting/ignore_unpatented_hinter/.
1567 Update all callers.
1568
1569 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1570 auto-hinting shall be used or not.
1571
1572 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001573
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015742006-09-30 Werner Lemberg <wl@gnu.org>
1575
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001576 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1577 in use).
1578
1579 * src/base/ftbase.c: Include `ftlcdfil.c'.
1580
Werner Lemberg9b15ea32006-09-29 18:22:11 +000015812006-09-29 Werner Lemberg <wl@gnu.org>
1582
1583 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1584 overlapping segments. Bug reported by Stefan Koch.
1585
David Turnerad830712006-09-27 16:20:59 +000015862006-09-28 David Turner <david@freetype.org>
1587
Werner Lemberg2c002e12006-09-29 21:31:53 +00001588 Fix a bug in the automatic unpatented hinting support which prevents
1589 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001590
Werner Lemberg2c002e12006-09-29 21:31:53 +00001591 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1592 s/force_autohint/unpatented_hinting/. Update all callers.
1593
1594 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1595
1596 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001597
David Turner8a317cf2006-09-27 07:52:48 +000015982006-09-27 David Turner <david@freetype.org>
1599
Werner Lemberg2c002e12006-09-29 21:31:53 +00001600 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001601
David Turner8a317cf2006-09-27 07:52:48 +00001602
David Turnere140f142006-10-23 08:56:57 +00001603 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001604 In a default build, the function `FT_Library_SetLcdFilter' returns
1605 `FT_Err_Unimplemented_Feature'; you need to #define
1606 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1607 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001608
Werner Lemberg2c002e12006-09-29 21:31:53 +00001609 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001610
Werner Lemberg2c002e12006-09-29 21:31:53 +00001611 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1612 typedef.
1613 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1614 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001615
Werner Lemberg2c002e12006-09-29 21:31:53 +00001616 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1617 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001618
Werner Lemberg2c002e12006-09-29 21:31:53 +00001619 Handle subpixel rendering.
1620 Simplify function.
1621 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1622 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1623
1624 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1625 pointing to <freetype/ftlcdfil.h>.
1626
1627 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1628 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1629
1630 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001631
Werner Lemberge20df4a2006-09-27 06:29:21 +000016322006-09-26 David Bustin
1633
1634 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1635 correctly. Reported as Savannah bug #17843.
1636
David Turner6f8c6222006-09-26 15:42:44 +000016372006-09-26 David Turner <david@freetype.org>
1638
Werner Lemberg110246c2006-09-26 21:55:44 +00001639 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1640 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1641 horizontal and vertical hinting for the purpose of debugging the
1642 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001643
Werner Lemberg110246c2006-09-26 21:55:44 +00001644 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1645 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001646
Werner Lemberg110246c2006-09-26 21:55:44 +00001647 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1648
1649 * include/freetype/config/ftoption.h, devel/ftoption.h
1650 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1651 we want to compile LCD-optimized rendering code (à la ClearType) or
1652 not. The macro *must* be disabled in default builds of the library
1653 for patent reasons.
1654
1655 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1656 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1657 isn't defined at compile time. This only changes the content of the
1658 rendered glyph to match the one of normal gray-level rendering,
1659 hence clients should not need to be modified.
1660
1661 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001662
Werner Lemberg745ff2c2006-09-19 05:48:02 +000016632006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1664
1665 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1666 LWFN fails and both are available.
1667
David Turnerf3050052006-09-11 12:00:32 +000016682006-09-11 David Turner <david@freetype.org>
1669
Werner Lembergf9644552006-09-12 13:48:10 +00001670 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1671 report their English names through an Apple Roman
1672 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001673
Werner Lembergf9644552006-09-12 13:48:10 +00001674 If the font uses another name entry with language_id == English, it
1675 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001676
Werner Lembergf9644552006-09-12 13:48:10 +00001677 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1678 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001679
Werner Lemberg36d2eab2006-09-05 19:24:34 +000016802006-09-05 Werner Lemberg <wl@gnu.org>
1681
1682 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001683 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001684 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1685 `HAN NOM B.ttf').
1686
1687 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1688
David Turner772e55d2006-09-05 09:45:15 +000016892006-09-05 David Turner <david@freetype.org>
1690
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001691 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001692
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001693 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1694 (TRaster): Remove `count_ex' and `count_ey'.
1695 (gray_find_cell): Remove 2nd and 3rd argument.
1696 (gray_alloc_cell): Merged with `gray_find_cell'.
1697 (gray_record_cell): Simplify.
1698 (gray_set_cell): Rewrite.
1699 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1700 (gray_render_span): Don't use FT_MEM_SET for small values.
1701 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1702 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1703 bitmap scanline.
1704 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001705
David Turneraa557a92006-09-04 16:42:44 +000017062006-09-04 David Turner <david@freetype.org>
1707
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001708 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1709 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001710
Werner Lemberg2d8629b2006-09-03 06:18:45 +000017112006-09-03 Werner Lemberg <wl@gnu.org>
1712
1713 * devel/ftoption.h: Synchronize with
1714 include/freetype/config/ftoption.h.
1715
1716 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1717 variable declaration.
1718 (gray_convert_glyph): Fix compiler warnings.
1719
David Turner6d79f212006-09-01 14:09:35 +000017202006-09-01 David Turner <david@freetype.org>
1721
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001722 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1723 to recognize a few fonts that require the automatic unpatented
1724 loader.
David Turnerbd502952006-09-01 19:05:24 +00001725
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001726 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1727 rasterizer. The speed improvement is between 15% and 25%, depending
1728 on the font data.
1729
1730 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1731 (TCell): Redefine.
1732 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1733 (gray_init_cells): Updated.
1734 (gray_find_cell, gray_alloc_cell): New functions.
1735 (gray_record_cell): Rewritten to use `gray_find_cell' and
1736 `gray_alloc_cell'.
1737 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1738 QSORT_THRESHOLD):
1739 Removed.
1740 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1741 gray_dump_cells): Removed.
1742 (gray_sweep): Rewritten.
1743 (gray_convert_glyph): Rewrite code which used one of the sorting
1744 functions.
1745 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001746
Werner Lembergd898aed2006-08-29 09:50:34 +000017472006-08-29 Dr. Werner Fink <werner@suse.de>
1748
1749 * configure: Make it possible to handle configure options which
1750 have strings containing spaces.
1751
17522006-08-27 David Turner <david@freetype.org>
1753
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001754 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1755 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1756 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1757
1758 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1759 src/truetype/truetype.c, src/truetype/ttdriver.c,
1760 src/truetype/ttgload.c, src/truetype/ttgload.h,
1761 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1762 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1763 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1764
1765 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1766 member `force_autohint'.
1767
1768 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1769
1770 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1771 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001772
Jens Claudiusa787f452006-08-27 11:26:18 +000017732006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1774
1775 Fix miscellaneous compiler warnings.
1776
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001777 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1778 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001779
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001780 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1781 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1782 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001783
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001784 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1785 volatileness of argument to ft_longjmp. Spotted by Werner
1786 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001787
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001788 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1789 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001790
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001791 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1792 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001793
Werner Lembergc4c35b72006-08-27 08:03:46 +000017942006-08-27 Werner Lemberg <wl@gnu.org>
1795
1796 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1797 Reported by Jens.
1798
Jens Claudius088e44e2006-08-22 14:24:30 +000017992006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001800
Jens Claudius088e44e2006-08-22 14:24:30 +00001801 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001802 about addresses of volatile objects passed as function arguments as
1803 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001804
Werner Lembergc4c35b72006-08-27 08:03:46 +00001805 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1806 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001807
1808 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1809 argument `table' a pointer to a volatile object.
1810
1811 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1812 argument `table' a pointer to a volatile object.
1813
Jens Claudius2652bd52006-08-18 17:20:37 +000018142006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1815
1816 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1817 variable `_sfnt' as volatile since it must keep its value across
1818 a call to ft_setjmp.
1819 (gxv_validate): Same for local variables `memory' and `valid'.
1820 (classic_kern_validate): Same for local variables `memory',
1821 `ckern', and `valid'.
1822
1823 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1824 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1825 `jstf', and 'valid'.
1826
1827 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1828 local variable `cmap'.
1829
David Turner9fbfc6a2006-08-16 09:11:31 +000018302006-08-16 David Turner <david@freetype.org>
1831
Werner Lemberg12342992006-08-19 11:18:09 +00001832 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1833 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001834
Werner Lemberg12342992006-08-19 11:18:09 +00001835 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1836 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001837
David Turner33f5f242006-08-16 16:50:55 +00001838
Werner Lemberg12342992006-08-19 11:18:09 +00001839 Improvements to native TrueType hinting. This is a first try,
1840 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1841
1842 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1843 `extra_points2'.
1844
1845 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1846 `orus'.
1847
1848 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1849 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1850 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1851 handle `extra_points2'.
1852
1853 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1854 Remove compiler warning.
1855 (cur_to_arg): Remove macro.
1856 (TT_Hint_Glyph): Updated.
1857 (TT_Process_Simple_Glyph): Handle `orus'.
1858
1859 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1860 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1861 (LOC_Ins_IUP): Renamed to...
1862 (IUP_WorkerRec): This.
1863 Add `orus' member.
1864 (Shift): Renamed to...
1865 (_iup_worker_shift): This.
1866 Updated.
1867 (Interp): Renamed to...
1868 (_iup_worker_interpolate): This.
1869 Updated to handle `orus'.
1870 (Ins_IUP): Updated.
1871
1872 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1873 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001874
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000018752006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1876
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001877 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001878 build ftvalid in ft2demos. This has been inadvertedly changed
1879 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001880
18812006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1882
Werner Lemberg12342992006-08-19 11:18:09 +00001883 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1884 Jens:
1885 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001886
Werner Lemberg12342992006-08-19 11:18:09 +00001887 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1888 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001889
1890 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1891
Jens Claudius9950adc2006-08-13 12:14:36 +000018922006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1893
Werner Lemberg12342992006-08-19 11:18:09 +00001894 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1895 T1_TOKEN_TYPE_KEY.
1896 (T1_FieldRec): Add `dict'.
1897 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1898 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1899 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001900
Werner Lemberg12342992006-08-19 11:18:09 +00001901 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1902 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001903
1904 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1905
1906 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001907 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1908 not T1_TOKEN_TYPE_ANY.
1909 (ps_parser_load_field): Make sure a token that should be a string or
1910 name is really a string or name.
1911 Avoid memory leak if a keyword has been already encountered and its
1912 value is overwritten.
1913 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1914 T1_FIELD_XXX.
1915 (parse_dict): Ignore keywords that occur in the wrong dictionary
1916 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001917
Werner Lemberg12342992006-08-19 11:18:09 +00001918 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1919 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001920
Werner Lemberg12342992006-08-19 11:18:09 +00001921 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1922 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001923
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000019242006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1925
1926 Move creation of field `buildchar' of T1_DecoderRec out of
1927 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1928 of it.
1929
1930 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1931 and `T1_Compute_Max_Advance'.
1932
1933 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1934 Remove field `face', add `len_buildchar'.
1935
1936 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1937 field `buildchar'.
1938
1939 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1940 finisher for T1_Decoder.
1941 (cid_slot_load_glyph): Do not ignore failure when initializing the
1942 T1_Decoder.
1943
1944 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1945 Updated.
1946 (t1_decoder_init): Remove initialization of fields `buildchar' and
1947 `len_buildchar'.
1948 (t1_decoder_done): Remove deallocation of field `buildchar'.
1949
1950 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1951 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1952 T1_Decoder.
1953 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1954 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1955 case of error.
1956
1957 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1958 `buildchar' of T1_FaceRec.
1959
1960 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1961 `buildchar' of T1_FaceRec.
1962
Werner Lemberg1a380e02006-07-14 18:28:08 +000019632006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1964
1965 * freetype2/include/freetype/internal/psaux.h: New macros
1966 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1967 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1968 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1969 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1970 (T1_DecoderRec): New fields `buildchar' and `face'.
1971 (IS_PS_TOKEN): New macro.
1972
1973 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1974 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1975
1976 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1977 `default_design_vector' and `num_default_design_vector'.
1978
1979 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1980 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1981 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1982
1983 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1984 `token' argument to be NULL if we want only to count the number of
1985 tokens.
1986 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1987 want to skip the array.
1988 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1989 want to skip the array.
1990
1991 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1992 support for (partially commented out) othersubrs 19-25, 27, and 28.
1993 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1994 (t1_decoder_done): Release new field `buildchar'.
1995
1996 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1997 functions.
1998 (t1_keywords): Register them.
1999 (t1_allocate_blend): Updated.
2000 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2001 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2002 (parse_dict): Remove `keyword_flags' argument.
2003 Use new macro IS_PS_TOKEN.
2004 Changed function so that later PostScript definitions override
2005 earlier ones.
2006 (t1_init_loader): Initialize new field `keywords_encountered'.
2007 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2008 `len_buildchar'.
2009 Remove `keywords_flags'.
2010
2011 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2012 `keywords_encountered'.
2013 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2014
2015 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2016 New entries for parsing /NDV, /CDV, and /DesignVector.
2017
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000020182006-07-07 Werner Lemberg <wl@gnu.org>
2019
2020 Add many checks to protect against malformed PCF files.
2021
2022 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2023 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2024
2025 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2026 data and check that tables don't overlap (using a simple
2027 bubblesort).
2028 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2029 New macros which give the size of data structures in the data
2030 stream.
2031 (pcf_get_properties): Use rough estimates to get array size limits.
2032 Assign `face->nprops' and `face->properties' earlier so that a call
2033 to PCF_Face_Done can do the clean-up in case of error.
2034 Protect against invalid string offsets.
2035 (pcf_get_metrics): Clean up code.
2036 Adjust tracing message levels.
2037 Use rough estimate to get array size limit.
2038 (pcf_get_bitmaps): Clean up code.
2039 Adjust tracing message levels.
2040 Use rough estimates to get offset limits.
2041 (pcf_get_encodings): Adjust tracing message level.
2042 (pcf_get_accel): Clean up code.
2043
Werner Lemberg8eb05252006-06-27 06:20:01 +000020442006-06-26 Werner Lemberg <wl@gnu.org>
2045
2046 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2047 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2048
Werner Lemberg24703f82006-06-26 19:12:51 +000020492006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2050
2051 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2052 (t1_decoder_parse_charstrings): Operator with
2053 opcode 15 pops its two arguments.
2054 Handle the case where the pops of an othersubr may be part of a
2055 subroutine.
2056 Handle unknown othersubrs gracefully: count their operands and let
2057 the following pop operators push the operands as the results onto
2058 the Type1 stack.
2059 Improve handling of setcurrentpoint opcode.
2060
Werner Lembergc011f4c2006-06-26 09:40:00 +000020612006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2062
2063 The Type 1 parser now skips over top-level procedures as required
2064 for a `Simplified Parser'. This makes the parser more robust as it
2065 doesn't poke around in PostScript code. Additionally, it makes the
2066 FontDirectory hackery in src/type1/t1load.c unnecessary.
2067
2068 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2069 (skip_literal_string): Add FT_Error as return value.
2070 Handle escapes better.
2071 (skip_string): Add FT_Error as return value.
2072 Don't set `parser->error' but return error code directly.
2073 (skip_procedure): New function.
2074 (ps_parser_skip_PS_token): Handle procedures.
2075 Update code.
2076 (ps_parser_to_token): Update code.
2077 (ps_parser_load_field_table): Handle bbox entries also.
2078
2079 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2080 Add commented-out code for synthetic fonts.
2081
Werner Lemberga2da05c2006-06-25 06:27:27 +000020822006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2083
2084 Fix two hinting bugs as reported in
2085 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2086
2087 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2088 `first_point' member.
2089
2090 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2091 `first_point'.
2092 (TT_Process_Composite_Glyph): Always untouch points.
2093
2094 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2095 `first_point' and `last_point' in case of composite glyphs.
2096 (Ins_IUP): Fix computation of `end_point'.
2097
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000020982006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2099
Werner Lembergef3d2c22006-06-25 06:07:14 +00002100 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2101 Mac. The original patch was written by David Sachitano and Lawrence
2102 Coopet, and modified by Sean McBride for MPW compatibility. Only
2103 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002104
Werner Lembergef3d2c22006-06-25 06:07:14 +00002105 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2106 Mac OS X platforms.
2107 (OS_INLINE): Undefine before definition.
2108 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2109 FontAssociation table in FOND resource.
2110 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2111 and fontSize at each entry of FontAssociation table in FOND
2112 resource.
2113 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2114 ffStylOff of FamilyRecord header of FOND resource, the header,
2115 fontSize, fontID at each entry of FontAssociation table, and
2116 StyleMapping table.
2117 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002118
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000021192006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2120
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002121 Public API of TrueTypeGX, OpenType, and classic kern table validator
2122 should return `FT_Err_Unimplemented_Feature' if validation service
2123 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002124 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002125 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2126
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002127 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2128 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2129 unavailable.
2130 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2131 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002132
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002133 * src/base/ftotval.c (FT_OpenType_Validate): Return
2134 FT_Err_Unimplemented_Feature if OpenType validation service is
2135 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002136
Werner Lembergb10e45a2006-06-08 07:32:56 +000021372006-06-08 Werner Lemberg <wl@gnu.org>
2138
2139 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2140 errors.
2141
David Turner5f1f7502006-06-07 05:11:50 +000021422006-06-07 David Turner <david@freetype.org>
2143
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002144 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2145 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2146 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002147
David Turner457b4a82006-06-06 08:14:14 +000021482006-06-06 David Turner <david@freetype.org>
2149
Werner Lemberg4836f952006-06-06 12:54:08 +00002150 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002151
Werner Lemberg4836f952006-06-06 12:54:08 +00002152 We change `ps_unicodes_init' so that it also takes a
2153 `free_glyph_name' callback to release the glyph names returned by
2154 `get_glyph_name'
2155
2156 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2157 Renamed to ...
2158 (PS_GetGlyphNameFunc): This.
2159 (PS_FreeGlyphNameFunc): New typedef.
2160 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2161
2162 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2163 argument.
2164 (cff_sid_free_glyph_name): New function.
2165 (cff_cmap_unicode_init): Updated.
2166
2167 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2168
2169 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2170 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002171
2172
David Turner09717352006-06-04 14:33:08 +000021732006-06-04 David Turner <david@freetype.org>
2174
Werner Lembergd724f202006-06-04 15:17:41 +00002175 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2176 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002177 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002178
Werner Lembergd724f202006-06-04 15:17:41 +00002179 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2180 of `face->num_glyphs' which missed the last glyph, due to
2181 the offset-by-1 computation, since the PFR format doesn't
2182 guarantee that glyph index 0 corresponds to the `missing
2183 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002184
Werner Lemberg33779662006-05-26 06:30:05 +000021852006-05-25 Werner Lemberg <wl@gnu.org>
2186
2187 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2188 `-no-undefined'. Reported by Christian Biesinger.
2189
Werner Lemberg24773d62006-05-20 08:53:13 +000021902006-05-19 Brian Weed <bw@imaginengine.com>
2191
2192 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2193 have debug information, and debug libraries use `C7 compatible'
2194 debug info.
2195
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000021962006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2197
Werner Lemberga6523a62006-05-20 08:47:01 +00002198 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002199 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002200
Werner Lemberga6523a62006-05-20 08:47:01 +00002201 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2202 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002203
2204 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002205 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002206
22072006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2208
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002209 * build/unix/configure.raw: Add a fallback to disable Carbon
2210 dependency, if configured with no options on Mac OS X.
2211
22122006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2213
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002214 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002215 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002216 the second part of Savannah bug #16590.
2217
Werner Lemberg545c4e52006-05-17 22:55:04 +000022182006-05-18 Werner Lemberg <wl@gnu.org>
2219
2220 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2221 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2222
David Turnerdc3ff312006-05-17 12:59:35 +000022232006-05-17 David Turner <david@freetype.org>
2224
Werner Lemberg545c4e52006-05-17 22:55:04 +00002225 This is a major patch used to drastically improve the performance of
2226 loading glyphs. This both speeds up loading the glyph vectors
2227 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002228
Werner Lemberg545c4e52006-05-17 22:55:04 +00002229 We now use inline assembler code with GCC to implement `FT_MulFix',
2230 which is probably the most important function related to the
2231 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002232
Werner Lemberg545c4e52006-05-17 22:55:04 +00002233 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002234
2235
Werner Lemberg545c4e52006-05-17 22:55:04 +00002236 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2237 `cursor' and `limit'.
2238
2239 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2240 New functions.
2241 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2242 [TEST]: Remove.
2243
2244 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2245 code.
2246
2247 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2248 `FT_ZERO'
2249 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2250 (af_glyph_hints_reload: Rewrite recognition of weak points.
2251
2252 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2253 constant values out of the loops.
2254
2255 * src/autofit/aftypes.h: Updated.
2256
2257 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2258
2259 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2260 product to get orientation.
2261
2262 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2263 (FT_Stream_OpenGzip): Use it to handle small files directly in
2264 memory.
2265
2266 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2267 Improve performance.
2268
2269 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2270 `limit'.
2271
2272 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2273 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2274 exceedingly large values of number of contours. Speed up by
2275 reducing the number of loops.
2276
2277 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2278
2279
2280 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2281 used to detect rogue clients from 4 to 16. This is to prevent some
2282 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2283 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002284
Werner Lembergde2d90a2006-05-17 08:54:30 +000022852007-05-17 Werner Lemberg <wl@gnu.org>
2286
2287 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002288 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002289
22902006-05-16 Werner Lemberg <wl@gnu.org>
2291
2292 * docs/PROBLEMS: Updated icl issues.
2293
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002294----------------------------------------------------------------------------
2295
Werner Lemberg42b63b22007-01-21 21:01:33 +00002296Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002297David Turner, Robert Wilhelm, and Werner Lemberg.
2298
2299This file is part of the FreeType project, and may only be used, modified,
2300and distributed under the terms of the FreeType project license,
2301LICENSE.TXT. By continuing to use, modify, or distribute this file you
2302indicate that you have read the license and understand and accept it
2303fully.
2304
2305
2306Local Variables:
2307version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002308coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002309End: