blob: 8ce35681f942c2ae58c6d956c3d7246945237301 [file] [log] [blame]
Werner Lembergf48aec72007-06-18 07:07:55 +000012006-06-18 Werner Lemberg <wl@gnu.org>
2
3 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
4 logic.
5 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
6 correctly.
7 (ps_parser_load_field_table): Use `fields->array_max' instead of
8 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
9
Werner Lemberg95104a42007-06-18 07:33:10 +000010 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
11 2007-06-06.
12
Werner Lemberge12ed562007-06-17 05:31:23 +0000132006-06-17 Werner Lemberg <wl@gnu.org>
14
15 * src/tools/ftrandom.c (font_size): New global variable.
16 (TestFace): Use it.
17 (main): Handle new option `--size' to set `font_size'.
18 (Usage): Updated.
19
Werner Lembergbe183eb2007-06-17 11:27:17 +000020 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
21 invalid font.
22 (FNT_Load_Glyph): Protect against invalid bitmap width.
23
David Turner6c2ab092007-06-16 16:40:37 +0000242006-06-16 David Turner <david@freetype.org>
25
Werner Lemberge12ed562007-06-17 05:31:23 +000026 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
27 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +000028
Werner Lemberge12ed562007-06-17 05:31:23 +000029 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
30 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +000031
Werner Lemberge12ed562007-06-17 05:31:23 +000032 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
33 and `zp2'.
34 (Ins_IP): Check argument ranges to reject bogus operations properly.
35 (IUP_WorkerRec): Add `max_points' member.
36 (_iup_worker_interpolate): Check argument ranges.
37 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +000038
Werner Lembergab1604b2007-06-16 07:59:39 +0000392006-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
40
41 * src/winfonts/winfnt.h: Add necessary structures for PE resource
42 parsing.
43 (WinPE32_HeaderRec): New structure.
44 (WinPE32_SectionRec): New structure.
45 (WinPE_RsrcDirRec): New structure.
46 (WinPE_RsrcDirEntryRec): New structure.
47 (WinPE_RsrcDataEntryRec): New structure.
48 (FNT_FontRec): Remove unused `size_shift' field.
49
50 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
51 loading bitmap .fon files in PE format.
52
Werner Lemberg08a645d2007-06-15 14:05:20 +0000532006-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
54
55 * builds/win32/ftdebug.c: Unify debug level handling with other
56 platforms.
57
Werner Lemberg367f3012007-06-14 06:56:52 +0000582006-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
59
60 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
61 console as well as to the debugger.
62
Werner Lemberg46dde492007-06-14 03:59:02 +0000632006-06-14 Werner Lemberg <wl@gnu.org>
64
65 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
66 cover all ranges which could possibly be handled by the aflatin
67 module (since the default fallback for unknown ranges is now the
68 afcjk module). It might be necessary to fine-tune this further by
69 splitting off modules for Greek, Cyrillic, or other blocks.
70
David Turnerb7920172007-06-11 05:37:35 +0000712007-06-11 David Turner <david@freetype.org>
72
Werner Lemberg49e18b82007-06-11 21:15:09 +000073 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
74 incorrect segment linking computation. This was the root cause of
75 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +000076
77
Werner Lemberg49e18b82007-06-11 21:15:09 +000078 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
79 to improve the Latin auto-hinter. Note that the new code is
80 disabled by default since it is not stabilized yet.
81
82 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
83 (disabled currently).
84
85 * src/autofit/afhints.c: Remove dead code.
86 (af_axis_hints_new_edge): Add argument to handle segment directions.
87 (af_edge_flags_to_string): New function.
88 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
89 option flags.
90 (af_glyph_hints_reload): Add argument to handle inflections.
91 Simplify.
92 (af_direction_compute): Fine tuning.
93 (af_glyph_hints_align_edge_points): Fix logic.
94 (af_glyph_hints_align_strong_points): Do linear search for small
95 edge counts.
96 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
97 (af_iup_shift): Handle zero `delta'.
98
99 * src/autofit/afhints.h: Updated.
100 (AF_SORT_SEGMENTS): New macro (disabled).
101 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
102
103 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
104 argument to pass option flags for handling scripts.
105 * src/autofit/afglobal.h: Updated.
106
107 * src/autofit/afcjk.c: Updated.
108 * src/autofit/aflatin.c: Updated.
109 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
110
111 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
112 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
113 Don't set `edge->dir'
114 (af_latin_hint_edges): Add more logging.
115
116 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000117
Werner Lembergf6c120f2007-06-11 04:55:58 +00001182007-06-11 Werner Lemberg <wl@gnu.org>
119
Werner Lembergcf7b7642007-06-11 04:58:01 +0000120 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000121
David Turner84c6f882007-06-10 20:51:04 +00001222007-06-10 David Turner <david@freetype.org>
123
Werner Lembergf6c120f2007-06-11 04:55:58 +0000124 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
125 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000126
Werner Lembergf6c120f2007-06-11 04:55:58 +0000127 * include/freetype/config/ftoption.h: Clarify documentation
128 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000129
Werner Lembergf6c120f2007-06-11 04:55:58 +0000130
131 Add new `FT_Face_CheckTrueTypePatents' API.
132
133 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
134 declaration.
135
136 * include/freetype/internal/services/svttglyf.h,
137 src/base/ftpatent.c: New files.
138
139 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
140 New macro.
141
142 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
143 `ttpload.h'.
144 (tt_service_truetype_glyf): New service structure.
145 (tt_services): Register it.
146
147 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
148 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000149
Werner Lemberg33db39e2007-06-08 06:30:29 +00001502007-06-08 Werner Lemberg <wl@gnu.org>
151
David Turner84c6f882007-06-10 20:51:04 +0000152 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000153 Fonts without a cmap must be handled correctly by FreeType (anything
154 else would be a bug).
155
156
157 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
158 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
159
Werner Lemberg88ab6382007-06-07 05:01:56 +00001602007-06-07 Werner Lemberg <wl@gnu.org>
161
162 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
163 tt_sbit_decoder_load_image): Protect against integer overflows.
164
165
166 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
167 for `x_control' and `y_control'.
168
Werner Lemberg2a2dca62007-06-06 04:39:37 +00001692007-06-06 Werner Lemberg <wl@gnu.org>
170
171 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
172
Werner Lemberga8d65492007-06-06 04:47:49 +0000173
174 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
175 FreeType error.
176
Werner Lemberg470210b2007-06-06 10:05:49 +0000177
178 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
179 `font_count'.
180
181
182 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
183
184
185 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
186 `FT_Error'.
187 Check `fd_index'.
188 (cff_slot_load): Updated.
189 * src/cff/cffgload.h: Updated.
190
Werner Lemberg6c054752007-06-05 05:27:54 +00001912007-06-05 Werner Lemberg <wl@gnu.org>
192
193 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
194 (pfr_glyph_load_simple): Convert assertion into normal FreeType
195 error.
196 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000197 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
198 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000199
200 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
201
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000202
Werner Lemberg470210b2007-06-06 10:05:49 +0000203 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000204
Werner Lemberge5c14d92007-06-05 20:50:37 +0000205
206 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
207 in case of parsing error.
208 (ps_parser_load_field): Updated.
209
210 * src/type1/t1load.c (parse_font_matrix): Updated.
211
Werner Lembergad18b362007-06-04 07:04:05 +00002122007-06-04 Werner Lemberg <wl@gnu.org>
213
214 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
215
216 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
217
Werner Lemberg3d507fe2007-06-03 16:54:55 +00002182007-06-03 Werner Lemberg <wl@gnu.org>
219
Werner Lemberg99a320b2007-06-03 19:21:26 +0000220 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
221 George Williams (with some modifications).
222
2232007-06-03 Werner Lemberg <wl@gnu.org>
224
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000225 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
226 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
227 face == NULL. Suggested by Graham Asher.
228
Werner Lembergce280a22007-06-03 05:58:30 +00002292007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
230
231 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
232
Werner Lemberg5b591e42007-06-01 22:16:43 +00002332007-06-02 Werner Lemberg <wl@gnu.org>
234
235 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
236 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
237
238 * src/bdf/bdflib.c (bdf_load_font): Use them.
239
240 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
241
Werner Lembergb9933f42007-06-01 21:27:12 +00002422007-06-01 Werner Lemberg <wl@gnu.org>
243
244 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
245 (FTC_CMapCache_Lookup): Remove unused code.
246
Werner Lembergc793d902007-06-01 20:51:11 +00002472007-06-01 Sean McBride <sean@rogue-research.com>
248
249 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
250 unused.
251
Werner Lembergbebc7b12007-06-01 06:32:30 +00002522007-06-01 Werner Lemberg <wl@gnu.org>
253
254 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
255 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000256 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000257
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000258 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
259 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
260
Werner Lembergba03af62007-05-30 13:57:02 +00002612007-05-30 Werner Lemberg <wl@gnu.org>
262
263 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
264 against too small binary data strings.
265
266 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
267
David Turnerf0cd69c2007-05-28 15:42:09 +00002682007-05-28 David Turner <david@freetype.org>
269
Werner Lemberg99e0c182007-05-29 07:00:23 +0000270 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
271 transformation. This significantly reduces the loading time of CFF
272 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000273
Werner Lemberg99e0c182007-05-29 07:00:23 +0000274 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000275
Werner Lemberg99e0c182007-05-29 07:00:23 +0000276 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
277 hinting script to CJK, since it works well with more scripts than
278 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
279 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000280
Werner Lemberg1c8980e2007-05-25 07:11:12 +00002812007-05-25 Werner Lemberg <wl@gnu.org>
282
283 * docs/CHANGES: Updated.
284
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00002852007-05-24 Werner Lemberg <wl@gnu.org>
286
287 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
288 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
289
2902007-05-24 Graham Asher <graham.asher@btinternet.com>
291
292 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
293 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
294
David Turner0d0365e2007-05-22 09:53:44 +00002952007-05-22 David Turner <david@freetype.org>
296
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000297 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
298 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000299
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000300
301 Avoid heap blowup with very large .Z font files. This fixes
302 Savannah bug #19910.
303
304 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
305 `in_limit', `pad', `pad_bits', and `in_buff' members.
306 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
307 `buf_total' members.
308
309 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
310 only one argument.
311 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000312
3132007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000314
315 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
316 (ps_dimension_set_mask_bits): Remove `const'.
317
David Turner0d0365e2007-05-22 09:53:44 +00003182007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000319
320 * src/sfnt/ttmtx.c (tt_face_get_metrics)
321 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
322
Werner Lembergb826fa72007-05-19 07:18:48 +00003232007-05-19 Derek Clegg <dclegg@apple.com>
324
325 Savannah patch #5929.
326
327 * include/freetype/tttables.h, src/base/ftobjcs.c
328 (FT_Get_CMap_Format): New function.
329
330 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
331 `format' member.
332 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
333 cmap_info->format.
334
Werner Lemberg6f99c882007-05-19 07:01:49 +00003352007-05-19 Werner Lemberg <wl@gnu.org>
336
337 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
338 before handling subglyphs so that it can be reinitialized each time.
339 This fixes Savannah bug #19859.
340
Werner Lemberg95bc9d32007-05-16 15:19:42 +00003412007-05-16 Werner Lemberg <wl@gnu.org>
342
343 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
344 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
345 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
346 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
347 tt_face_get_metrics): Fix type-punning issues.
348
David Turner0a24bd22007-05-15 10:54:10 +00003492007-05-15 David Turner <david@freetype.org>
350
351 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000352 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
353 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000354 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000355 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000356
Werner Lemberg607dec72007-05-15 06:49:37 +00003572007-05-15 Graham Asher <graham.asher@btinternet.com>
358
359 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
360 variable.
361 * src/autofit/afloader.c (af_loader_load_g): Ditto.
362
363 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
364 (open_face_from_buffer): Initialize `stream'.
365 (FT_Request_Metrics): Remove unused variable.
366 Remove redundant `break' statements.
367 (FT_Get_Track_Kerning): Remove unused variable.
368
369 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
370 afm_parse_kern_data): Remove redundant
371 `break' statements.
372 (afm_parser_parse): Ditto.
373 Don't use uninitialized variables.
374
375 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
376 Use `|' operator instead of `^' to set it.
377 Update all users.
378
379 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
380 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
381
382 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
383 comparison.
384 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
385 (TT_Load_Glyph): Remove unused variable.
386
Werner Lemberg8d463a52007-05-13 16:01:55 +00003872007-05-13 Derek Clegg <dclegg@apple.com>
388
389 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
390 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
391
David Turner711cf842007-05-11 14:36:24 +00003922007-05-11 David Turner <david@freetype.org>
393
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000394 * src/cache/ftbasic.c, include/freetype/ftcache.h
395 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
396 functions that allow us to look up glyphs using an FTC_Scaler object
397 to specify the size, making it possible to use fractional pixel
398 sizes.
399
400 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
401 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000402
Werner Lemberg94be20e2007-05-09 20:02:55 +00004032007-05-09 Graham Asher <graham.asher@btinternet.com>
404
405 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
406 (af_latin_metrics_scale_dim): Fix compiler warnings.
407
Werner Lemberg41271032007-05-06 04:51:48 +00004082007-05-06 Werner Lemberg <wl@gnu.org>
409
410 * builds/win32/visualce/freetype.sln: Removed, as requested by
411 Vincent.
412
Werner Lembergdf49e692007-05-04 06:30:05 +00004132007-05-04 Vincent RICHOMME <richom.v@free.fr>
414
415 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
416 PC targets.
417
418 * docs/CHANGES: Document them.
419
4202007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000421
422 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
423 mmap (which might happen on some RTOS). From Savannah patch #5909.
424
Werner Lemberg106eaf12007-05-03 07:07:47 +00004252007-05-03 Werner Lemberg <wl@gnu.org>
426
427 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
428 * include/freetype/freetype.h (FT_Set_Char_Size): Update
429 documentation.
430
Werner Lemberg1b5267d2007-04-28 21:06:15 +00004312007-04-28 Victor Stinner <victor.stinner@inl.fr>
432
433 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
434 `cmap'.
435
Werner Lembergcc712a22007-04-27 17:16:50 +00004362007-04-27 Werner Lemberg <wl@gnu.org>
437
438 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
439 number of points in contours. Problem reported by Victor Stinner
440 <victor.stinner@haypocalc.com>.
441 (TT_Process_Simple_Glyph): Synchronize variable types.
442
Werner Lemberg45bb18f2007-04-26 06:26:35 +00004432007-04-26 Werner Lemberg <wl@gnu.org>
444
445 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
446 zero in case of error. This fixes Savannah bug #19689.
447
David Turnera8b45e62007-05-11 14:10:30 +00004482007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
449
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000450 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
451 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000452
Werner Lembergfcc1f472007-04-10 11:51:50 +00004532007-04-10 Martin Horak <horakm@centrum.cz>
454
455 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
456 Ignore `hhea' table. This fixes Savannah bug #19261.
457
Werner Lemberg14bf82e2007-04-10 04:09:49 +00004582007-04-09 Werner Lemberg <wl@gnu.org>
459
460 * Version 2.3.4 released.
461 =========================
462
463
464 Tag sources with `VER-2-3-4'.
465
466 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
467 version number to 2.3.4.
468
469 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
470 builds/win32/visualc/freetype.dsp,
471 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
472
473 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
474
475 * builds/unix/configure.raw (version_info): Set to 9:15:3.
476
Werner Lembergf4a52a62007-04-09 08:40:11 +00004772007-04-09 Martin Horak <horakm@centrum.cz>
478
479 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
480 memory stream to avoid a crash with the incremental memory
481 interface (Savannah bug #19260).
482
David Turner1dcb4442007-04-06 08:19:04 +00004832007-04-06 David Turner <david@freetype.org>
484
Werner Lembergc81cf612007-04-06 09:28:23 +0000485 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
486 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000487
Werner Lemberg9f83e052007-04-05 02:28:23 +00004882007-04-04 Werner Lemberg <wl@gnu.org>
489
490 * Version 2.3.3 released.
491 =========================
492
493
494 Tag sources with `VER-2-3-3'.
495
496 * docs/CHANGES: Mention CVE-2007-1351.
497
David Turner7338ec22007-04-03 14:30:34 +00004982007-04-03 David Turner <david@freetype.org>
499
500 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000501 if one of the resolution values is 0, treat it as if it were the
502 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000503
David Turnere6472c12007-04-02 13:13:54 +00005042007-04-02 David Turner <david@freetype.org>
505
Werner Lemberg94f12272007-04-03 07:19:53 +0000506 Add special code to detect `extra-light' fonts and do not snap their
507 stem widths too much to avoid bizarre hinting effects.
508
509 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
510 `extra_light' members.
511
512 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
513 them.
514 (af_latin_metrics_scale_dim): Set `extra_light'.
515 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000516
David Turner3f539692007-03-28 14:53:40 +00005172007-03-28 David Turner <david@freetype.org>
518
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000519 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000520 padding.
521
Werner Lemberga08b2172007-03-28 07:17:17 +00005222007-03-28 Werner Lemberg <wl@gnu.org>
523
524 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
525 gracefully.
526 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000527 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000528 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
529 number of code points in Unicode.
530
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000531 * builds/win32/visualc/index.html,
532 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000533 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000534 s/232/233/.
535
536 * docs/CHANGES: Mention ftdiff.
537
David Turner3b242d32007-03-26 12:03:04 +00005382007-03-26 David Turner <david@freetype.org>
539
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000540 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
541 corresponding code.
542 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000543
Werner Lemberga08b2172007-03-28 07:17:17 +0000544 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000545 computations in order to ignore single-point contours. These are
546 never rasterized and correspond in certain fonts to mark-attach
547 points that are very far from the glyph's real outline, ruining the
548 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000549
Werner Lemberga08b2172007-03-28 07:17:17 +0000550 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000551 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000552 Otherwise code that uses them will most certainly ruin the fixed
553 advance property.
David Turner23553d62007-03-26 13:37:17 +0000554
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000555 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
556 documentation and bump version number to 2.3.3.
557
558 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
559
560 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000561
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00005622007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
563
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000564 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
565 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000566 * builds/vms/ftconfig.h: Ditto.
567 * include/freetype/config/ftconfig.h: Ditto.
568
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00005692007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
570
Werner Lemberg14ffe092007-03-22 06:12:43 +0000571 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
572 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000573 proposed by Sean McBride:
574 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
575
5762007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
577
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000578 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
579 setjmp, proposed by Sean McBride:
580 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
581
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00005822007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
583
Werner Lembergc9f6c662007-03-21 13:30:14 +0000584 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
585 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
586 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000587
David Turner74c34eb2007-03-18 07:19:31 +00005882007-03-18 David Turner <david@freetype.org>
589
Werner Lembergc9f6c662007-03-21 13:30:14 +0000590 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
591 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000592
Werner Lembergc9f6c662007-03-21 13:30:14 +0000593 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000594
David Turner89020d92007-03-17 17:48:57 +00005952007-03-17 David Turner <david@freetype.org>
596
Werner Lembergc9f6c662007-03-21 13:30:14 +0000597 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
598 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000599
Werner Lemberg25d592a2007-03-09 07:59:35 +00006002007-03-09 Werner Lemberg <wl@gnu.org>
601
602 * Version 2.3.2 released.
603 =========================
604
605
606 Tag sources with `VER-2-3-2'.
607
608 * builds/win32/visualc/index.html,
609 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000610 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000611 s/231/232/.
612
David Turner3a51afa2007-03-08 10:50:38 +00006132007-03-08 David Turner <david@freetype.org>
614
Werner Lemberg25d592a2007-03-09 07:59:35 +0000615 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000616
Werner Lemberg25d592a2007-03-09 07:59:35 +0000617 * builds/unix/configure.raw (version_info): Set to 9:13:3.
618
619 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
620
621 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000622
Werner Lemberg1e259de2007-03-08 15:39:21 +0000623 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
624 function to work properly, over-writing user-provided buffers in
625 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000626
David Turner121cad52007-03-08 16:43:50 +0000627
Werner Lemberg3d92f082007-03-06 11:59:24 +00006282007-03-05 Werner Lemberg <wl@gnu.org>
629
630 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
631 macro for `strstr'.
632
633 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
634 `trick_names', as suggested by Ivan Nincic.
635
David Turner085bc6e2007-03-05 17:40:03 +00006362007-03-05 David Turner <david@freetype.org>
637
Werner Lembergd112cf02007-03-06 12:06:56 +0000638 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
639 case FT_Init_FreeType fails for some reason. Problem reported by
640 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000641
Werner Lembergd112cf02007-03-06 12:06:56 +0000642 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
643 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
644 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
645 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000646
Werner Lembergd112cf02007-03-06 12:06:56 +0000647 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
648 signed values, not unsigned ones. Problem reported by Johannes
649 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000650
David Turner601aefe2007-02-21 16:47:49 +00006512007-02-21 David Turner <david@freetype.org>
652
Werner Lembergde5e6862007-02-25 21:06:43 +0000653 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
654 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000655
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00006562007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
657
658 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
659 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
660 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
661
Werner Lemberga0915172007-02-16 08:12:50 +00006622007-02-16 Werner Lemberg <wl@gnu.org>
663
664 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
665 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
666
David Turner2c4500e2007-02-14 15:08:47 +00006672007-02-14 David Turner <david@freetype.org>
668
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000669 It seems that the following changes fix most of the known
670 interpreter problems with my fonts, but more testing is needed,
671 though.
672
673 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
674 (TT_MulFix14): Rewrite.
675 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
676 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000677
Werner Lembergc6a14082007-02-12 22:08:15 +00006782007-02-12 Werner Lemberg <wl@gnu.org>
679
680 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
681 warnings.
682
683 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
684 (bdf_interpret_style): Ditto.
685
David Turnerc0f9c4a2007-02-12 14:55:03 +00006862007-02-12 David Turner <david@freetype.org>
687
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000688 Simplify projection and dual-projection code interface.
689
Werner Lemberg406d25f2007-02-12 22:01:18 +0000690 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
691 FT_Vector' as argument type.
692 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
693 Updated.
694 (CUR_fast_project, CUR_fast_dualproj): New macros.
695 (Project, Dual_Project, Project_x, Project_y): Updated.
696 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
697 macros.
698
699
700 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
701 adjustments for the non-light auto-hinted modes. Gets rid of
702 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000703
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000704 * src/autofit/aflatin.c (af_latin_hints_link_segments,
705 af_latin_hints_compute_edges): Slight optimization of the segment
706 linker and better handling of serif segments to get rid of broken
707 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000708
David Turnerc0f9c4a2007-02-12 14:55:03 +0000709
Werner Lemberg442bfb82007-02-12 21:44:10 +0000710 Introduce new string functions and the corresponding macros to get
711 rid of various uses of strcpy and other `evil' functions, as well as
712 to simplify a few things.
713
714 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
715 ft_mem_strcpyn): New declarations.
716 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
717 macros.
718 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
719 functions.
720
721 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
722 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
723 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
724 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
725 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
726 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
727 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
728 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000729
Werner Lemberg406d25f2007-02-12 22:01:18 +0000730 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
731
Werner Lemberg582067d2007-02-11 15:03:05 +00007322007-02-11 Werner Lemberg <wl@gnu.org>
733
734 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
735 non-spacing glyphs.
736
Werner Lemberg8f474532007-02-07 08:31:01 +00007372007-02-07 Tom Parker <palfrey@tevp.net>
738
739 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
740 pointer.
741
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007422007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
743
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000744 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
745 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000746 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000747 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
748 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
749 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
750 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000751
752 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
753 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000754 * builds/mac/ftmac.c: Ditto.
755
7562007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
757
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000758 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000759 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000760 #include <ftmac.c>.
761
7622007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
763
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000764 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
765 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
766 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
767 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
768 FT_GetFilePath_From_Mac_ATS_Name.
769 * builds/mac/ftmac.c: Ditto.
770
7712007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
772
Werner Lembergdcbb7082007-02-08 08:54:09 +0000773 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000774 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
775 for passing to FT_New_Face_From_FSSpec.
776
7772007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
778
Werner Lembergdcbb7082007-02-08 08:54:09 +0000779 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000780 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000781
782 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
783 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000784 * builds/mac/ftmac.c (OS_INLINE): Ditto.
785
Werner Lemberg313d7772007-02-01 08:10:45 +00007862007-02-01 Werner Lemberg <wl@gnu.org>
787
788 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
789 Explain why applications shouldn't use it. Found by Alexei.
790
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00007912007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000792
793 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
794 message.
795
796 * src/gxvalid/gxvmort1.c
797 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
798 message.
799
Werner Lemberg53935932007-01-31 08:53:02 +00008002007-01-31 Werner Lemberg <wl@gnu.org>
801
802
803 * Version 2.3.1 released.
804 =========================
805
806
807 Tag sources with `VER-2-3-1-FINAL'.
808
809 * builds/win32/visualc/freetype.dsp,
810 builds/win32/visualc/freetype.vcproj: s/230/231/.
811 * builds/win32/visualc/index.html: s/221/231/.
812
813 * vms_make.com: Add `ftgasp'.
814
David Turnera7ee6082007-01-30 10:33:53 +00008152007-01-30 David Turner <david@freetype.org>
816
Werner Lemberg53935932007-01-31 08:53:02 +0000817 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000818
Werner Lemberg53935932007-01-31 08:53:02 +0000819 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000820
Werner Lemberg25d592a2007-03-09 07:59:35 +0000821 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000822 s/2.3.0/2.3.1/.
823
824 * builds/unix/configure.raw (version_info): Set to 9:12:3.
825
826
827 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
828 (af_loader_load_g): Disable the warper (i.e., the light hinting
829 improvements) to make a 2.3.1 bugfix release before introducing a
830 new feature. This should give us more time to tune and improve the
831 warper for the next release.
832
833 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000834
David Turnerd91eebd2007-01-26 15:05:41 +00008352007-01-25 David Turner <david@freetype.org>
836
Werner Lembergbf241762007-01-26 16:08:49 +0000837 For light auto-hinting, improve glyph advance widths and resurrect
838 normal/full hinting to its normal quality.
839
840 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
841 and `xmax_delta'.
842 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
843 and `xmax_delta'.
844
845 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
846 preprocessor conditional with if-clause, handling both light and
847 normal mode.
848
849 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
850 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000851
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00008522007-01-25 Werner Lemberg <wl@gnu.org>
853
854 * docs/release: Updated -- Savannah uses a new uploading scheme.
855
David Turnera42567b2007-01-25 12:23:37 +00008562007-01-25 David Turner <david@freetype.org>
857
Werner Lembergd7855662007-01-25 13:53:56 +0000858 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000859
Werner Lembergd7855662007-01-25 13:53:56 +0000860 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
861 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
862 functions.
David Turnera42567b2007-01-25 12:23:37 +0000863
Werner Lembergd7855662007-01-25 13:53:56 +0000864 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000865
Werner Lembergb1be9e82007-01-25 11:50:00 +00008662007-01-25 Werner Lemberg <wl@gnu.org>
867
868 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000869 correctly in a sanity check. Since this function is only used to
870 load local and global functions, any charstring that called the last
871 local/global function would fail otherwise. This fixes Savannah bug
872 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000873
874 * docs/CHANGES: Document it.
875
David Turnerb6de8d12007-01-23 15:51:50 +00008762007-01-23 David Turner <david@freetype.org>
877
Werner Lembergb1be9e82007-01-25 11:50:00 +0000878 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
879 prevented compilation when disabling both the unpatented and the
880 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000881
Werner Lembergb1be9e82007-01-25 11:50:00 +0000882
883 Fix and enable the warper to improve `light' hinting mode. This is
884 not necessarily a final version, but it seems to work well.
885
886 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
887 Disable code.
888 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
889 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
890
891 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
892 (af_warper_compute_line_best): Fix array size of `scores'.
893 (af_warper_compute): Better handling of border cases.
894 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
895 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000896
Werner Lemberg011d1112007-01-21 09:36:00 +00008972007-01-21 Werner Lemberg <wl@gnu.org>
898
Werner Lemberg42b63b22007-01-21 21:01:33 +0000899 * ChangeLog: Split off older entries into...
900 * ChangeLog.22: This new file.
901
9022007-01-21 Werner Lemberg <wl@gnu.org>
903
Werner Lemberg555258f2007-01-21 09:46:37 +0000904 * docs/CHANGES: Document SHZ fix.
905
9062007-01-21 George Williams <gww@silcom.com>
907
908 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
909 points.
910
9112007-01-21 Werner Lemberg <wl@gnu.org>
912
Werner Lemberg011d1112007-01-21 09:36:00 +0000913 * src/sfnt/ttmtx.c (tt_face_get_metrics)
914 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
915
Werner Lemberg87a5a432007-01-17 12:44:39 +00009162007-01-17 Werner Lemberg <wl@gnu.org>
917
Werner Lembergb8003292007-01-17 12:56:25 +0000918
919 * Version 2.3.0 released.
920 =========================
921
922
923 Tag sources with `VER-2-3-0-FINAL'.
924
9252007-01-17 Werner Lemberg <wl@gnu.org>
926
Werner Lemberg87a5a432007-01-17 12:44:39 +0000927 * docs/release: Updated.
928
David Turner22122722007-01-16 20:06:44 +00009292007-01-16 David Turner <david@freetype.org>
930
Werner Lemberg87a5a432007-01-17 12:44:39 +0000931 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
932 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
933 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
934 warnings.
David Turner22122722007-01-16 20:06:44 +0000935
Werner Lemberg267e1d72007-01-15 07:48:09 +00009362007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
937
938 * builds/amiga/makefile, builds/amiga/makefile.os4,
939 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
940
941 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
942
Werner Lemberg8c4120d2007-01-15 06:42:40 +00009432007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
944
945 Fix various compiler warnings.
946
947 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
948 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
949 s/index/strike_index/.
950 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
951
952 * src/gxvalid/gxvmorx5.c
953 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
954
955 * src/truetype/ttinterp.c (Compute_Point_Displacement),
956 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
957 uninitialized variables.
958
Werner Lemberg6164a9d2007-01-13 23:01:36 +00009592007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
960
961 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
962
Werner Lemberg281c1482007-01-13 22:50:51 +00009632007-01-13 Werner Lemberg <wl@gnu.org>
964
965 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
966 versions up to 0x3FF without complaining.
967
Werner Lembergac250b22007-01-13 14:01:36 +00009682007-01-13 Derek Clegg <dclegg@apple.com>
969
970 Add FT_Get_PS_Font_Info interface to CFF driver.
971
972 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
973 (CFF_FontRec): Add `font_info' field.
974
975 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
976 (cff_font_done): Free font->font_info if necessary.
977
978 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
979 (cff_service_ps_info): Register cff_ps_get_font_info.
980
Werner Lemberg23df31a2007-01-13 08:45:00 +00009812007-01-13 Werner Lemberg <wl@gnu.org>
982
983 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
984 with C++ compiler.
985
986 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
987 af_glyph_hints_dump_edges): Ditto.
988
989 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
990 `modules.cfg').
991
992 * src/sfnt/ttsbit0.h: Remove.
993
994 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
995
Werner Lemberg27cf9de2007-01-13 07:34:23 +00009962007-01-12 David Turner <david@freetype.org>
997
998 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
999 bug in the bitmap emboldener if the pitch of the source bitmap is
1000 much larger than its width.
1001
1002 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1003 compilation warning.
1004
Werner Lemberg6d96d312007-01-12 10:30:19 +000010052007-01-12 Werner Lemberg <wl@gnu.org>
1006
1007 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1008 `automake' CVS module from sources.redhat.com.
1009
Werner Lemberg17432b52007-01-12 09:28:44 +000010102007-01-11 Werner Lemberg <wl@gnu.org>
1011
1012 * src/type1/t1load.c (is_space): Removed.
1013 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1014 (parse_charstrings): Use IS_PS_TOKEN.
1015
1016
1017 * autogen.sh: Avoid bash specific syntax.
1018
David Turner038ace22007-01-11 15:00:59 +000010192007-01-11 David Turner <david@freetype.org>
1020
Werner Lemberg17432b52007-01-12 09:28:44 +00001021 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001022
Werner Lemberg17432b52007-01-12 09:28:44 +00001023 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001024
Werner Lemberg17432b52007-01-12 09:28:44 +00001025 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1026 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001027 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001028
Werner Lemberg17432b52007-01-12 09:28:44 +00001029 * autogen.sh: Small fix to get it working on Mac OS X properly:
1030 The issue is that GNU libtool is called `glibtool' on this platform,
1031 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001032
David Turner2628ea92007-01-10 13:15:56 +000010332007-01-10 David Turner <david@freetype.org>
1034
Werner Lemberg17432b52007-01-12 09:28:44 +00001035 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1036 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001037
Werner Lemberg17432b52007-01-12 09:28:44 +00001038 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1039 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1040 version number to 2.3.0.
1041
1042 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1043 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001044
1045 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001046 include/freetype/ftlcdfil.h: Update reference documentation with
1047 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001048
Werner Lemberg17432b52007-01-12 09:28:44 +00001049 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1050 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001051
Werner Lembergbf02d392007-01-10 07:07:37 +000010522007-01-10 Derek Clegg <dclegg@apple.com>
1053
1054 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1055 values.
1056
David Turnerf48b60e2007-01-08 15:15:32 +000010572007-01-08 David Turner <david@freetype.org>
1058
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001059 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001060
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001061 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1062 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001063 corresponding to a given character pixel size.
1064
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001065 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1066 `gasp' table, in order to avoid potential problems with later
1067 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001068
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001069 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1070 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001071
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001072 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1073 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1074 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1075 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001076
Werner Lemberge6b6f372007-01-07 00:06:47 +000010772007-01-07 Werner Lemberg <wl@gnu.org>
1078
Werner Lembergb8004d22007-01-07 09:13:38 +00001079 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1080 Type 11 fonts.
1081 Scan for `/sfnts' token.
1082
10832007-01-07 Werner Lemberg <wl@gnu.org>
1084
1085 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001086
Werner Lembergbe5f7972007-01-06 07:51:48 +000010872007-01-06 Werner Lemberg <wl@gnu.org>
1088
1089 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1090 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1091
David Turnera8cf42b2007-01-04 16:46:46 +000010922007-01-04 David Turner <david@freetype.org>
1093
Werner Lembergf6294392007-01-06 07:47:45 +00001094 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1095 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001096
Werner Lembergf6294392007-01-06 07:47:45 +00001097
1098 Do not allocate interpreter-specific tables in memory if we are not
1099 going to load glyphs with the bytecode interpreter anyway.
1100
1101 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1102 only if glyph is hinted.
1103 Updated.
1104 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1105 and `cvs_ready'.
1106 Add `tt_size_ready_bytecode' declaration.
1107 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1108 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1109 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1110 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1111 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001112
David Turner91a34022007-01-05 14:47:08 +00001113
Werner Lembergf6294392007-01-06 07:47:45 +00001114 Don't extract the metrics table from the SFNT font file. Instead,
1115 reparse it on each glyph load. The runtime difference is not
1116 noticeable, and it can save a lot of heap memory when memory-mapped
1117 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001118
Werner Lembergf6294392007-01-06 07:47:45 +00001119 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1120 `horz_metrics_offset' and `vert_metrics_ofset'.
1121 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1122 Updated.
1123
1124
1125 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1126
1127
1128 Do not load the CFF index offsets into memory, since this wastes a
1129 *lot* of heap memory with large Asian CFF fonts. There is no
1130 significant performance loss.
1131
1132 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1133 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1134 `data_size'.
1135 (CFF_CharsetRec): Add field `num_glyphs'.
1136
1137 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1138 cff_charset_cid_to_gindex): New functions.
1139 (cff_new_index): Renamed to...
1140 (cff_index_init): This. Update all callers.
1141 Updated -- some code has been moved to `cff_index_load_offsets'.
1142 (cff_done_index): Renamed to...
1143 (cff_index_done): This. Update all callers.
1144 (cff_index_get_pointers, cff_index_access_element): Updated to use
1145 stream offsets.
1146 (cff_charset_compute_cids): Set `num_glyphs' field.
1147 (cff_encoding_load): Updated.
1148
1149 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001150
11512007-01-04 David Turner <david@freetype.org>
1152
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001153 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1154 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001155
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001156 * README.CVS: Add common problem description and solution
1157 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001158
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001159 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001160
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001161 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001162
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001163 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001164
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001165 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1166 (TWorker): This.
1167 Remove `count_table' and `memory'.
1168 Make `grays' a pointer.
1169 (TRaster): New structure.
1170 (count_table): New static array.
1171 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1172 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1173 ft_black_set_mode, ft_black_render): Updated.
1174 (ft_black_init): Don't initialize `count_table'.
1175 (ft_black_reset): Use the render pool. This saves about 6KB of
1176 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001177
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001178 * src/smooth/ftgrays.c (TRaster): Replaced with...
1179 (TWorker): This.
1180 Remove `memory'.
1181 (TRaster): New structure.
1182
1183 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1184 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1185 gray_render_span, gray_raster_render): Updated.
1186 (gray_raster_reset): Use the render pool. This saves about 6KB of
1187 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001188
David Turner8a6c44e2007-01-04 17:03:11 +00001189 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1190 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001191 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1192 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1193 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001194
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001195 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1196 Remove a typo that results in no hinting and a memory leak with some
1197 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001198
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001199 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001200 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001201 CFF_Faces in it. We need to close all faces before destroying the
1202 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001203
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000012042007-01-02 Werner Lemberg <wl@gnu.org>
1205
1206 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1207 Remove compiler warning.
1208
David Turner9207e002007-01-02 16:58:13 +000012092007-01-02 David Turner <david@freetype.org>
1210
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001211 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001212
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000012132006-12-31 Masatake YAMATO <jet@gyve.org>
1214
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001215 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1216 function.
1217 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001218 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001219 `gxv_kern_subtable_fmt0_pairs_validate'.
1220
David Turner115b4422006-12-22 11:37:05 +000012212006-12-22 David Turner <david@freetype.org>
1222
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001223 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1224 warnings.
David Turner115b4422006-12-22 11:37:05 +00001225
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001226 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1227 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001228
Werner Lemberg4755bf72006-12-16 08:58:44 +000012292006-12-16 Anders Kaseorg <anders@kaseorg.com>
1230
1231 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1232 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1233
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000012342006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1235
Werner Lemberg9b774e22007-01-16 06:11:27 +00001236 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001237 sync with the modification by Jens Claudius on 2006-08-22; cf.
1238 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 +00001239
12402006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1241
1242 * src/base/ftmac.c: Specialized for Mac OS X only.
1243 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1244 * builds/unix/configure.raw: Ditto. When explicit switches for
1245 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1246 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1247
12482006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1249
1250 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1251 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1252 instead of src/base/ftmac.c
1253 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1254 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1255 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1256 that cannot be built at present.
1257
12582006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1259
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001260 * src/base/ftobjs.c: Improvement of resource fork handler for
1261 POSIX, cf.
1262 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001263 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1264 format or .dfont, to simulate the face index number counted by ftmac.c.
1265 (IsMacResource): Return the number of scalable faces correctly.
1266
Werner Lembergec5b4502006-12-10 07:51:38 +000012672006-12-10 Werner Lemberg <wl@gnu.org>
1268
1269 * builds/toplevel.mk (version): Protect against `distclean' target.
1270
Werner Lembergb26b3142006-12-09 20:01:43 +000012712006-12-09 Werner Lemberg <wl@gnu.org>
1272
1273 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1274 or `type'.
1275
1276 * builds/freetype.mk (version): Extracted from freetype.h, using
1277 GNU make's built-in string functions.
1278 (refdoc): Use $(version) instead of static version number.
1279
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000012802006-12-08 Werner Lemberg <wl@gnu.org>
1281
1282 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1283
Werner Lemberg15c29502006-12-09 07:29:54 +000012842006-12-08 Vladimir Volovich <vvv@vsu.ru>
1285
1286 * src/tools/apinames (State): Remove final comma in structure -- xlc
1287 v5 under AIX 4.3 doesn't like this.
1288
David Turnerdbf3b432006-12-07 21:18:09 +000012892006-12-07 David Turner <david@freetype.org>
1290
Werner Lemberg256a3512006-12-08 06:49:33 +00001291 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1292 to the spacing of auto-fitted glyphs. This only impacts rare
1293 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001294
Werner Lemberg11171312006-12-03 09:43:40 +000012952006-12-03 Werner Lemberg <wl@gnu.org>
1296
1297 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1298
Werner Lemberg960ba592006-12-01 08:20:47 +000012992006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001300
Werner Lemberg960ba592006-12-01 08:20:47 +00001301 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1302 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1303 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001304
David Turner80658e52006-11-28 08:09:20 +00001305
Werner Lemberg960ba592006-12-01 08:20:47 +00001306 * include/freetype/ftxf86.h: Fix and extend comment so that it
1307 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001308
Werner Lemberg960ba592006-12-01 08:20:47 +00001309 * include/freetype/ftchapters.h: Add `font_format' section.
1310
1311
1312 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1313 to TOC in index page.
1314
13152006-11-28 David Turner <david@freetype.org>
1316
1317 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1318 trying to render into a zero-width/height bitmap, not an error code.
1319
1320 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1321
1322 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1323 ones instead.
1324
1325 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1326 variable.
David Turner80658e52006-11-28 08:09:20 +00001327
Werner Lemberg8636c292006-11-26 22:28:13 +000013282006-11-26 Pierre Hanser <hanser@club-internet.fr>
1329
1330 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1331
Werner Lemberg960ba592006-12-01 08:20:47 +000013322006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001333
Werner Lemberg960ba592006-12-01 08:20:47 +00001334 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1335 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1336 Add stubs to link the `ftgrid' test program when debugging is
1337 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001338
Werner Lemberg960ba592006-12-01 08:20:47 +000013392006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001340
1341 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001342 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1343
1344 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1345 Emit more sensible information.
1346
1347 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1348
1349 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1350 rounding of blue values.
1351 (af_latin_hints_compute_segments): Hint segment heights.
1352 (af_latin_hints_link_segments): Reduce `len_score' value.
1353 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1354 value and use `height' member for comparisons.
1355 (af_latin_hint_edges): Extend logging message.
1356 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001357
Werner Lemberg91959bf2006-11-22 10:36:55 +000013582006-11-22 Werner Lemberg <wl@gnu.org>
1359
1360 Fix Savannah bug #15553.
1361
1362 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1363 program after a change from mono to grayscaling (and vice versa).
1364 Use correct constant for comparison to get `exec->grayscale'.
1365
Werner Lemberg913a3652006-11-19 09:19:17 +000013662006-11-18 Werner Lemberg <wl@gnu.org>
1367
1368 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001369 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001370 This patch fixes Savannah bug #18301.
1371
1372 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1373 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1374 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1375 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1376 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1377 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1378 (FNT_Load_Glyph): Check validity of `glyph_index'.
1379
David Turner7bab6ae2006-11-13 11:25:06 +000013802006-11-13 David Turner <david@freetype.org>
1381
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001382 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1383 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001384
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001385 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1386 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1387 when building the library to change the default LCD filter to be
1388 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001389
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001390 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001391
David Turner8765c712006-11-10 16:49:42 +000013922006-11-10 David Turner <david@freetype.org>
1393
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001394 * src/smooth/ftsmooth.c: API change for the LCD
1395 filter. The FT_LcdFilter value is an enumeration describing which
1396 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1397 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1398 algorithm which produces strong color fringes for everything
1399 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001400
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001401 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1402 second parameter to an enum type.
1403
1404 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1405 (_ft_lcd_filter): Rename to...
1406 (_ft_lcd_filter_fir): This.
1407 Update parameters.
1408 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1409 (FT_Library_Set_LcdFilter): Update parameters.
1410 Handle new filter modes.
1411
1412 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1413 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1414 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1415 callback and update other fields.
1416
1417 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1418 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1419 Other minor improvements.
1420
1421 * src/autofit/aflatin.c: Various tiny improvements that drastically
1422 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1423 (af_latin_hints_compute_edges): Fix typo.
1424 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001425
David Turner4e9cc3c2006-11-09 16:31:52 +000014262006-11-09 David Turner <david@freetype.org>
1427
Werner Lemberg49c77a82006-11-09 21:51:57 +00001428 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1429 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001430
Werner Lemberg5e430892006-11-07 09:35:03 +000014312006-11-07 Zhe Su <james.su@gmail.com>
1432
1433 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1434 also.
1435
Werner Lemberg111b5ae2006-11-03 09:40:12 +000014362006-11-03 Werner Lemberg <wl@gnu.org>
1437
1438 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1439
David Turner40604742006-11-02 16:37:35 +000014402006-11-02 David Turner <david@freetype.org>
1441
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001442 Add a few tweaks to better handle serif fonts.
1443 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001444
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001445 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1446 segments that are less than 1.5 pixels high. This gets rid of
1447 *many* corner cases with serifs.
1448 (af_latin_align_linked_edge): Add logging message.
1449 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1450 Add logging messages.
1451 Handle AF_EDGE_FLAG flag specially.
1452
1453 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1454 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1455
1456 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1457 Update external declarations.
1458 (af_corner_orientation, af_corner_is_flat): Replaced by...
1459
1460 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1461 ft_corner_is_flat): These declarations.
1462
1463 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1464 Comment out. Replaced by...
1465
1466 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1467 These functions. Update all callers.
1468 (FT_Add64) [!FT_LONG64]: Simplify.
1469
1470 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1471 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1472 production of garbage by missing lots of segments.
1473
1474 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1475
1476 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1477 [AF_DEBUG]: Set _af_debug_hints.
1478
1479
1480 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1481 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1482 and ft_corner_orientation.
1483
1484
1485 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001486
Werner Lemberge88c5262006-10-24 05:46:26 +000014872006-10-24 Werner Lemberg <wl@gnu.org>
1488
1489 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1490
1491 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1492 as argument.
1493
David Turnera1861392006-10-23 16:00:59 +000014942006-10-23 Zhe Su <zsu@novell.com>
1495
Werner Lemberg715e96e2006-10-24 05:28:45 +00001496 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1497 better deal with broken Asian fonts with strange glyphs, having
1498 self-intersections and other peculiarities. The used algorithm is
1499 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001500
David Turnere140f142006-10-23 08:56:57 +000015012006-10-23 David Turner <david@freetype.org>
1502
Werner Lemberg715e96e2006-10-24 05:28:45 +00001503 Speed up the CFF font loader. With some large CFF fonts,
1504 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001505
Werner Lemberg715e96e2006-10-24 05:28:45 +00001506 * src/cff/cffload.c (cff_get_offset): Removed.
1507 (cff_new_index): Inline functionality of `cff_get_offset'.
1508 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1509 (cff_charset_done): Call `cff_charset_free_cids'.
1510 (cff_charset_load): Call `cff_charset_compute_cids'.
1511 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1512
1513 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1514 with FT_NEXT_XXX.
1515
1516
1517 Speed up the Postscript hinter, with more than 100% speed increase
1518 on my machine.
1519
1520 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1521 psh_corner_orientation): New functions.
1522 (psh_glyph_compute_inflections): Merge loops for efficiency.
1523 Use `psh_corner_orientation'.
1524 (psh_glyph_init): Use `psh_corner_is_flat'.
1525 (psh_hint_table_find_strong_point): Renamed to...
1526 (psh_hint_table_find_strong_points): This.
1527 Rewrite, adding argument to handle all points at once.
1528 Update all callers.
1529 (PSH_MAX_STRONG_INTERNAL): New macro.
1530 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001531
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000015322006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1533
1534 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001535 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001536
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000015372006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1538
1539 * docs/INSTALL.CROSS: New document file for cross-building.
1540
1541 * builds/unix/configure.raw: Preliminary cross-building support.
1542 Find native C compiler and pass it by CC_BUILD, and
1543 find suffix for native executable and pass it by EXEEXT_BUILD.
1544 Also suffix for target executable is passed by EXEEXT.
1545
Werner Lembergb9e6d692006-10-15 08:58:40 +00001546 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1547 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001548 CC_BUILD and EXEEXT_BUILD.
1549
Werner Lembergb9e6d692006-10-15 08:58:40 +00001550 * builds/exports.mk (APINAMES_EXE): Change the extension for
1551 apinames from the suffix for target (E) to that for building host
1552 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001553
Werner Lemberg82a07e92006-10-12 06:20:44 +000015542006-10-12 Werner Lemberg <wl@gnu.org>
1555
1556 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1557 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1558 which reference those files.
1559
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000015602006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1561
Werner Lembergb9e6d692006-10-15 08:58:40 +00001562 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1563 embedded in freetype2.pc and freetype-config. Use it to record
1564 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001565
1566 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1567
1568 * builds/unix/freetype-config.in: Ditto.
1569
Werner Lemberg28e17d92006-10-11 17:27:47 +000015702006-10-11 Werner Lemberg <wl@gnu.org>
1571
1572 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1573 development.
1574
Jens Claudius336d2292006-10-03 08:53:37 +000015752006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1576
1577 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1578 argument to ft_setjmp.
1579
1580 * include/freetype/internal/ftvalid.h: Add comment that
1581 ft_validator_run must not be used.
1582
Werner Lemberg2863cfa2006-10-01 17:04:00 +000015832006-10-01 Werner Lemberg <wl@gnu.org>
1584
1585 * src/base/ftbase.c: Undo change from 2006-09-30.
1586
1587 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1588
15892006-09-30 David Turner <david@freetype.org>
1590
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001591 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1592 s/unpatented_hinting/ignore_unpatented_hinter/.
1593 Update all callers.
1594
1595 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1596 auto-hinting shall be used or not.
1597
1598 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001599
Werner Lemberg2863cfa2006-10-01 17:04:00 +000016002006-09-30 Werner Lemberg <wl@gnu.org>
1601
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001602 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1603 in use).
1604
1605 * src/base/ftbase.c: Include `ftlcdfil.c'.
1606
Werner Lemberg9b15ea32006-09-29 18:22:11 +000016072006-09-29 Werner Lemberg <wl@gnu.org>
1608
1609 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1610 overlapping segments. Bug reported by Stefan Koch.
1611
David Turnerad830712006-09-27 16:20:59 +000016122006-09-28 David Turner <david@freetype.org>
1613
Werner Lemberg2c002e12006-09-29 21:31:53 +00001614 Fix a bug in the automatic unpatented hinting support which prevents
1615 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001616
Werner Lemberg2c002e12006-09-29 21:31:53 +00001617 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1618 s/force_autohint/unpatented_hinting/. Update all callers.
1619
1620 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1621
1622 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001623
David Turner8a317cf2006-09-27 07:52:48 +000016242006-09-27 David Turner <david@freetype.org>
1625
Werner Lemberg2c002e12006-09-29 21:31:53 +00001626 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001627
David Turner8a317cf2006-09-27 07:52:48 +00001628
David Turnere140f142006-10-23 08:56:57 +00001629 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001630 In a default build, the function `FT_Library_SetLcdFilter' returns
1631 `FT_Err_Unimplemented_Feature'; you need to #define
1632 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1633 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001634
Werner Lemberg2c002e12006-09-29 21:31:53 +00001635 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001636
Werner Lemberg2c002e12006-09-29 21:31:53 +00001637 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1638 typedef.
1639 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1640 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001641
Werner Lemberg2c002e12006-09-29 21:31:53 +00001642 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1643 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001644
Werner Lemberg2c002e12006-09-29 21:31:53 +00001645 Handle subpixel rendering.
1646 Simplify function.
1647 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1648 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1649
1650 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1651 pointing to <freetype/ftlcdfil.h>.
1652
1653 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1654 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1655
1656 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001657
Werner Lemberge20df4a2006-09-27 06:29:21 +000016582006-09-26 David Bustin
1659
1660 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1661 correctly. Reported as Savannah bug #17843.
1662
David Turner6f8c6222006-09-26 15:42:44 +000016632006-09-26 David Turner <david@freetype.org>
1664
Werner Lemberg110246c2006-09-26 21:55:44 +00001665 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1666 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1667 horizontal and vertical hinting for the purpose of debugging the
1668 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001669
Werner Lemberg110246c2006-09-26 21:55:44 +00001670 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1671 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001672
Werner Lemberg110246c2006-09-26 21:55:44 +00001673 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1674
1675 * include/freetype/config/ftoption.h, devel/ftoption.h
1676 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1677 we want to compile LCD-optimized rendering code (à la ClearType) or
1678 not. The macro *must* be disabled in default builds of the library
1679 for patent reasons.
1680
1681 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1682 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1683 isn't defined at compile time. This only changes the content of the
1684 rendered glyph to match the one of normal gray-level rendering,
1685 hence clients should not need to be modified.
1686
1687 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001688
Werner Lemberg745ff2c2006-09-19 05:48:02 +000016892006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1690
1691 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1692 LWFN fails and both are available.
1693
David Turnerf3050052006-09-11 12:00:32 +000016942006-09-11 David Turner <david@freetype.org>
1695
Werner Lembergf9644552006-09-12 13:48:10 +00001696 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1697 report their English names through an Apple Roman
1698 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001699
Werner Lembergf9644552006-09-12 13:48:10 +00001700 If the font uses another name entry with language_id == English, it
1701 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001702
Werner Lembergf9644552006-09-12 13:48:10 +00001703 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1704 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001705
Werner Lemberg36d2eab2006-09-05 19:24:34 +000017062006-09-05 Werner Lemberg <wl@gnu.org>
1707
1708 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001709 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001710 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1711 `HAN NOM B.ttf').
1712
1713 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1714
David Turner772e55d2006-09-05 09:45:15 +000017152006-09-05 David Turner <david@freetype.org>
1716
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001717 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001718
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001719 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1720 (TRaster): Remove `count_ex' and `count_ey'.
1721 (gray_find_cell): Remove 2nd and 3rd argument.
1722 (gray_alloc_cell): Merged with `gray_find_cell'.
1723 (gray_record_cell): Simplify.
1724 (gray_set_cell): Rewrite.
1725 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1726 (gray_render_span): Don't use FT_MEM_SET for small values.
1727 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1728 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1729 bitmap scanline.
1730 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001731
David Turneraa557a92006-09-04 16:42:44 +000017322006-09-04 David Turner <david@freetype.org>
1733
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001734 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1735 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001736
Werner Lemberg2d8629b2006-09-03 06:18:45 +000017372006-09-03 Werner Lemberg <wl@gnu.org>
1738
1739 * devel/ftoption.h: Synchronize with
1740 include/freetype/config/ftoption.h.
1741
1742 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1743 variable declaration.
1744 (gray_convert_glyph): Fix compiler warnings.
1745
David Turner6d79f212006-09-01 14:09:35 +000017462006-09-01 David Turner <david@freetype.org>
1747
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001748 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1749 to recognize a few fonts that require the automatic unpatented
1750 loader.
David Turnerbd502952006-09-01 19:05:24 +00001751
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001752 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1753 rasterizer. The speed improvement is between 15% and 25%, depending
1754 on the font data.
1755
1756 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1757 (TCell): Redefine.
1758 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1759 (gray_init_cells): Updated.
1760 (gray_find_cell, gray_alloc_cell): New functions.
1761 (gray_record_cell): Rewritten to use `gray_find_cell' and
1762 `gray_alloc_cell'.
1763 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1764 QSORT_THRESHOLD):
1765 Removed.
1766 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1767 gray_dump_cells): Removed.
1768 (gray_sweep): Rewritten.
1769 (gray_convert_glyph): Rewrite code which used one of the sorting
1770 functions.
1771 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001772
Werner Lembergd898aed2006-08-29 09:50:34 +000017732006-08-29 Dr. Werner Fink <werner@suse.de>
1774
1775 * configure: Make it possible to handle configure options which
1776 have strings containing spaces.
1777
17782006-08-27 David Turner <david@freetype.org>
1779
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001780 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1781 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1782 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1783
1784 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1785 src/truetype/truetype.c, src/truetype/ttdriver.c,
1786 src/truetype/ttgload.c, src/truetype/ttgload.h,
1787 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1788 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1789 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1790
1791 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1792 member `force_autohint'.
1793
1794 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1795
1796 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1797 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001798
Jens Claudiusa787f452006-08-27 11:26:18 +000017992006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1800
1801 Fix miscellaneous compiler warnings.
1802
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001803 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1804 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001805
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001806 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1807 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1808 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001809
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001810 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1811 volatileness of argument to ft_longjmp. Spotted by Werner
1812 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001813
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001814 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1815 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001816
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001817 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1818 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001819
Werner Lembergc4c35b72006-08-27 08:03:46 +000018202006-08-27 Werner Lemberg <wl@gnu.org>
1821
1822 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1823 Reported by Jens.
1824
Jens Claudius088e44e2006-08-22 14:24:30 +000018252006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001826
Jens Claudius088e44e2006-08-22 14:24:30 +00001827 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001828 about addresses of volatile objects passed as function arguments as
1829 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001830
Werner Lembergc4c35b72006-08-27 08:03:46 +00001831 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1832 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001833
1834 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1835 argument `table' a pointer to a volatile object.
1836
1837 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1838 argument `table' a pointer to a volatile object.
1839
Jens Claudius2652bd52006-08-18 17:20:37 +000018402006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1841
1842 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1843 variable `_sfnt' as volatile since it must keep its value across
1844 a call to ft_setjmp.
1845 (gxv_validate): Same for local variables `memory' and `valid'.
1846 (classic_kern_validate): Same for local variables `memory',
1847 `ckern', and `valid'.
1848
1849 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1850 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1851 `jstf', and 'valid'.
1852
1853 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1854 local variable `cmap'.
1855
David Turner9fbfc6a2006-08-16 09:11:31 +000018562006-08-16 David Turner <david@freetype.org>
1857
Werner Lemberg12342992006-08-19 11:18:09 +00001858 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1859 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001860
Werner Lemberg12342992006-08-19 11:18:09 +00001861 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1862 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001863
David Turner33f5f242006-08-16 16:50:55 +00001864
Werner Lemberg12342992006-08-19 11:18:09 +00001865 Improvements to native TrueType hinting. This is a first try,
1866 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1867
1868 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1869 `extra_points2'.
1870
1871 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1872 `orus'.
1873
1874 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1875 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1876 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1877 handle `extra_points2'.
1878
1879 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1880 Remove compiler warning.
1881 (cur_to_arg): Remove macro.
1882 (TT_Hint_Glyph): Updated.
1883 (TT_Process_Simple_Glyph): Handle `orus'.
1884
1885 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1886 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1887 (LOC_Ins_IUP): Renamed to...
1888 (IUP_WorkerRec): This.
1889 Add `orus' member.
1890 (Shift): Renamed to...
1891 (_iup_worker_shift): This.
1892 Updated.
1893 (Interp): Renamed to...
1894 (_iup_worker_interpolate): This.
1895 Updated to handle `orus'.
1896 (Ins_IUP): Updated.
1897
1898 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1899 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001900
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000019012006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1902
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001903 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001904 build ftvalid in ft2demos. This has been inadvertedly changed
1905 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001906
19072006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1908
Werner Lemberg12342992006-08-19 11:18:09 +00001909 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1910 Jens:
1911 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001912
Werner Lemberg12342992006-08-19 11:18:09 +00001913 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1914 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001915
1916 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1917
Jens Claudius9950adc2006-08-13 12:14:36 +000019182006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1919
Werner Lemberg12342992006-08-19 11:18:09 +00001920 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1921 T1_TOKEN_TYPE_KEY.
1922 (T1_FieldRec): Add `dict'.
1923 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1924 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1925 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001926
Werner Lemberg12342992006-08-19 11:18:09 +00001927 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1928 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001929
1930 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1931
1932 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001933 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1934 not T1_TOKEN_TYPE_ANY.
1935 (ps_parser_load_field): Make sure a token that should be a string or
1936 name is really a string or name.
1937 Avoid memory leak if a keyword has been already encountered and its
1938 value is overwritten.
1939 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1940 T1_FIELD_XXX.
1941 (parse_dict): Ignore keywords that occur in the wrong dictionary
1942 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001943
Werner Lemberg12342992006-08-19 11:18:09 +00001944 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1945 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001946
Werner Lemberg12342992006-08-19 11:18:09 +00001947 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1948 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001949
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000019502006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1951
1952 Move creation of field `buildchar' of T1_DecoderRec out of
1953 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1954 of it.
1955
1956 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1957 and `T1_Compute_Max_Advance'.
1958
1959 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1960 Remove field `face', add `len_buildchar'.
1961
1962 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1963 field `buildchar'.
1964
1965 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1966 finisher for T1_Decoder.
1967 (cid_slot_load_glyph): Do not ignore failure when initializing the
1968 T1_Decoder.
1969
1970 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1971 Updated.
1972 (t1_decoder_init): Remove initialization of fields `buildchar' and
1973 `len_buildchar'.
1974 (t1_decoder_done): Remove deallocation of field `buildchar'.
1975
1976 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1977 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1978 T1_Decoder.
1979 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1980 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1981 case of error.
1982
1983 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1984 `buildchar' of T1_FaceRec.
1985
1986 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1987 `buildchar' of T1_FaceRec.
1988
Werner Lemberg1a380e02006-07-14 18:28:08 +000019892006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1990
1991 * freetype2/include/freetype/internal/psaux.h: New macros
1992 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1993 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1994 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1995 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1996 (T1_DecoderRec): New fields `buildchar' and `face'.
1997 (IS_PS_TOKEN): New macro.
1998
1999 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2000 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2001
2002 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2003 `default_design_vector' and `num_default_design_vector'.
2004
2005 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2006 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2007 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2008
2009 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2010 `token' argument to be NULL if we want only to count the number of
2011 tokens.
2012 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2013 want to skip the array.
2014 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2015 want to skip the array.
2016
2017 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2018 support for (partially commented out) othersubrs 19-25, 27, and 28.
2019 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2020 (t1_decoder_done): Release new field `buildchar'.
2021
2022 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2023 functions.
2024 (t1_keywords): Register them.
2025 (t1_allocate_blend): Updated.
2026 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2027 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2028 (parse_dict): Remove `keyword_flags' argument.
2029 Use new macro IS_PS_TOKEN.
2030 Changed function so that later PostScript definitions override
2031 earlier ones.
2032 (t1_init_loader): Initialize new field `keywords_encountered'.
2033 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2034 `len_buildchar'.
2035 Remove `keywords_flags'.
2036
2037 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2038 `keywords_encountered'.
2039 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2040
2041 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2042 New entries for parsing /NDV, /CDV, and /DesignVector.
2043
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000020442006-07-07 Werner Lemberg <wl@gnu.org>
2045
2046 Add many checks to protect against malformed PCF files.
2047
2048 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2049 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2050
2051 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2052 data and check that tables don't overlap (using a simple
2053 bubblesort).
2054 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2055 New macros which give the size of data structures in the data
2056 stream.
2057 (pcf_get_properties): Use rough estimates to get array size limits.
2058 Assign `face->nprops' and `face->properties' earlier so that a call
2059 to PCF_Face_Done can do the clean-up in case of error.
2060 Protect against invalid string offsets.
2061 (pcf_get_metrics): Clean up code.
2062 Adjust tracing message levels.
2063 Use rough estimate to get array size limit.
2064 (pcf_get_bitmaps): Clean up code.
2065 Adjust tracing message levels.
2066 Use rough estimates to get offset limits.
2067 (pcf_get_encodings): Adjust tracing message level.
2068 (pcf_get_accel): Clean up code.
2069
Werner Lemberg8eb05252006-06-27 06:20:01 +000020702006-06-26 Werner Lemberg <wl@gnu.org>
2071
2072 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2073 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2074
Werner Lemberg24703f82006-06-26 19:12:51 +000020752006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2076
2077 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2078 (t1_decoder_parse_charstrings): Operator with
2079 opcode 15 pops its two arguments.
2080 Handle the case where the pops of an othersubr may be part of a
2081 subroutine.
2082 Handle unknown othersubrs gracefully: count their operands and let
2083 the following pop operators push the operands as the results onto
2084 the Type1 stack.
2085 Improve handling of setcurrentpoint opcode.
2086
Werner Lembergc011f4c2006-06-26 09:40:00 +000020872006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2088
2089 The Type 1 parser now skips over top-level procedures as required
2090 for a `Simplified Parser'. This makes the parser more robust as it
2091 doesn't poke around in PostScript code. Additionally, it makes the
2092 FontDirectory hackery in src/type1/t1load.c unnecessary.
2093
2094 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2095 (skip_literal_string): Add FT_Error as return value.
2096 Handle escapes better.
2097 (skip_string): Add FT_Error as return value.
2098 Don't set `parser->error' but return error code directly.
2099 (skip_procedure): New function.
2100 (ps_parser_skip_PS_token): Handle procedures.
2101 Update code.
2102 (ps_parser_to_token): Update code.
2103 (ps_parser_load_field_table): Handle bbox entries also.
2104
2105 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2106 Add commented-out code for synthetic fonts.
2107
Werner Lemberga2da05c2006-06-25 06:27:27 +000021082006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2109
2110 Fix two hinting bugs as reported in
2111 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2112
2113 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2114 `first_point' member.
2115
2116 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2117 `first_point'.
2118 (TT_Process_Composite_Glyph): Always untouch points.
2119
2120 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2121 `first_point' and `last_point' in case of composite glyphs.
2122 (Ins_IUP): Fix computation of `end_point'.
2123
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000021242006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2125
Werner Lembergef3d2c22006-06-25 06:07:14 +00002126 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2127 Mac. The original patch was written by David Sachitano and Lawrence
2128 Coopet, and modified by Sean McBride for MPW compatibility. Only
2129 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002130
Werner Lembergef3d2c22006-06-25 06:07:14 +00002131 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2132 Mac OS X platforms.
2133 (OS_INLINE): Undefine before definition.
2134 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2135 FontAssociation table in FOND resource.
2136 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2137 and fontSize at each entry of FontAssociation table in FOND
2138 resource.
2139 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2140 ffStylOff of FamilyRecord header of FOND resource, the header,
2141 fontSize, fontID at each entry of FontAssociation table, and
2142 StyleMapping table.
2143 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002144
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000021452006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2146
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002147 Public API of TrueTypeGX, OpenType, and classic kern table validator
2148 should return `FT_Err_Unimplemented_Feature' if validation service
2149 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002150 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002151 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2152
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002153 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2154 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2155 unavailable.
2156 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2157 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002158
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002159 * src/base/ftotval.c (FT_OpenType_Validate): Return
2160 FT_Err_Unimplemented_Feature if OpenType validation service is
2161 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002162
Werner Lembergb10e45a2006-06-08 07:32:56 +000021632006-06-08 Werner Lemberg <wl@gnu.org>
2164
2165 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2166 errors.
2167
David Turner5f1f7502006-06-07 05:11:50 +000021682006-06-07 David Turner <david@freetype.org>
2169
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002170 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2171 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2172 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002173
David Turner457b4a82006-06-06 08:14:14 +000021742006-06-06 David Turner <david@freetype.org>
2175
Werner Lemberg4836f952006-06-06 12:54:08 +00002176 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002177
Werner Lemberg4836f952006-06-06 12:54:08 +00002178 We change `ps_unicodes_init' so that it also takes a
2179 `free_glyph_name' callback to release the glyph names returned by
2180 `get_glyph_name'
2181
2182 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2183 Renamed to ...
2184 (PS_GetGlyphNameFunc): This.
2185 (PS_FreeGlyphNameFunc): New typedef.
2186 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2187
2188 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2189 argument.
2190 (cff_sid_free_glyph_name): New function.
2191 (cff_cmap_unicode_init): Updated.
2192
2193 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2194
2195 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2196 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002197
2198
David Turner09717352006-06-04 14:33:08 +000021992006-06-04 David Turner <david@freetype.org>
2200
Werner Lembergd724f202006-06-04 15:17:41 +00002201 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2202 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002203 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002204
Werner Lembergd724f202006-06-04 15:17:41 +00002205 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2206 of `face->num_glyphs' which missed the last glyph, due to
2207 the offset-by-1 computation, since the PFR format doesn't
2208 guarantee that glyph index 0 corresponds to the `missing
2209 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002210
Werner Lemberg33779662006-05-26 06:30:05 +000022112006-05-25 Werner Lemberg <wl@gnu.org>
2212
2213 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2214 `-no-undefined'. Reported by Christian Biesinger.
2215
Werner Lemberg24773d62006-05-20 08:53:13 +000022162006-05-19 Brian Weed <bw@imaginengine.com>
2217
2218 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2219 have debug information, and debug libraries use `C7 compatible'
2220 debug info.
2221
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000022222006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2223
Werner Lemberga6523a62006-05-20 08:47:01 +00002224 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002225 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002226
Werner Lemberga6523a62006-05-20 08:47:01 +00002227 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2228 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002229
2230 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002231 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002232
22332006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2234
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002235 * build/unix/configure.raw: Add a fallback to disable Carbon
2236 dependency, if configured with no options on Mac OS X.
2237
22382006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2239
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002240 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002241 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002242 the second part of Savannah bug #16590.
2243
Werner Lemberg545c4e52006-05-17 22:55:04 +000022442006-05-18 Werner Lemberg <wl@gnu.org>
2245
2246 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2247 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2248
David Turnerdc3ff312006-05-17 12:59:35 +000022492006-05-17 David Turner <david@freetype.org>
2250
Werner Lemberg545c4e52006-05-17 22:55:04 +00002251 This is a major patch used to drastically improve the performance of
2252 loading glyphs. This both speeds up loading the glyph vectors
2253 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002254
Werner Lemberg545c4e52006-05-17 22:55:04 +00002255 We now use inline assembler code with GCC to implement `FT_MulFix',
2256 which is probably the most important function related to the
2257 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002258
Werner Lemberg545c4e52006-05-17 22:55:04 +00002259 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002260
2261
Werner Lemberg545c4e52006-05-17 22:55:04 +00002262 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2263 `cursor' and `limit'.
2264
2265 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2266 New functions.
2267 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2268 [TEST]: Remove.
2269
2270 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2271 code.
2272
2273 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2274 `FT_ZERO'
2275 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2276 (af_glyph_hints_reload: Rewrite recognition of weak points.
2277
2278 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2279 constant values out of the loops.
2280
2281 * src/autofit/aftypes.h: Updated.
2282
2283 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2284
2285 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2286 product to get orientation.
2287
2288 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2289 (FT_Stream_OpenGzip): Use it to handle small files directly in
2290 memory.
2291
2292 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2293 Improve performance.
2294
2295 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2296 `limit'.
2297
2298 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2299 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2300 exceedingly large values of number of contours. Speed up by
2301 reducing the number of loops.
2302
2303 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2304
2305
2306 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2307 used to detect rogue clients from 4 to 16. This is to prevent some
2308 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2309 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002310
Werner Lembergde2d90a2006-05-17 08:54:30 +000023112007-05-17 Werner Lemberg <wl@gnu.org>
2312
2313 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002314 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002315
23162006-05-16 Werner Lemberg <wl@gnu.org>
2317
2318 * docs/PROBLEMS: Updated icl issues.
2319
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002320----------------------------------------------------------------------------
2321
Werner Lemberg42b63b22007-01-21 21:01:33 +00002322Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002323David Turner, Robert Wilhelm, and Werner Lemberg.
2324
2325This file is part of the FreeType project, and may only be used, modified,
2326and distributed under the terms of the FreeType project license,
2327LICENSE.TXT. By continuing to use, modify, or distribute this file you
2328indicate that you have read the license and understand and accept it
2329fully.
2330
2331
2332Local Variables:
2333version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002334coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002335End: