blob: e4af514d7b6c52a84822018faa2a4c74bc353eff [file] [log] [blame]
Werner Lembergb003b3e2007-07-08 07:13:12 +000012007-07-07 Werner Lemberg <wl@gnu.org>
2
3 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
4 `target'. Reported by Sean McBride.
5
Werner Lemberg1e1b6df2007-07-07 07:30:40 +000062007-07-06 Werner Lemberg <wl@gnu.org>
7
8 * src/pfr/pfrcmap.c: Include pfrerror.h.
9
10 * src/autofit/afindic.c: Add some external declarations to pacify
11 `make multi' compilation.
12
13 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
14
15 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
16 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
17 src/autofit/aflatin.c (af_latin_hints_compute_edges),
18 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
19 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
20 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
21
22 * docs/release: Mention test compilation targets.
23
Werner Lemberg986ea4b2007-07-04 04:53:15 +0000242007-07-04 Werner Lemberg <wl@gnu.org>
25
26 * docs/PROBLEMS: Mention that some PS based fonts can't be
27 handled correctly by FreeType.
28
Werner Lemberg3033f432007-07-04 14:12:19 +000029 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
30 recursion depth of 1. This was the maximum value in TrueType 1.0,
31 and some older fonts don't set this field correctly.
32
33 * src/gxvalid/gxvmort1.c
34 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
35
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000362007-07-03 Werner Lemberg <wl@gnu.org>
37
38 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
39 `round' to pacify compiler.
40
412007-07-02 Werner Lemberg <wl@gnu.org>
42
43
44 * Version 2.3.5 released.
45 =========================
46
47
48 Tag sources with `VER-2-3-5'.
49
50 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
51 version number to 2.3.5.
52
53 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
54 builds/win32/visualc/freetype.dsp,
55 builds/win32/visualc/freetype.vcproj,
56 builds/win32/visualce/index.html,
57 builds/win32/visualce/freetype.dsp,
58 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
59
60 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
61
62 * builds/unix/configure.raw (version_info): Set to 9:16:3.
63
David Turner0ba89912007-07-01 09:34:04 +0000642007-07-01 David Turner <david@freetype.org>
65
Werner Lemberge3be90b2007-07-02 14:58:58 +000066 * include/freetype/freetype.h, src/base/ftpatent.c
67 (FT_Face_SetUnpatentedHinting): New function to dynamically change
68 the setting after a face is created.
David Turner481b25f2007-07-01 09:51:15 +000069
Werner Lemberge3be90b2007-07-02 14:58:58 +000070 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
71 that created distortions in the bytecode interpreter results.
David Turner0ba89912007-07-01 09:34:04 +000072
David Turner74cc0e92007-06-30 22:54:12 +0000732007-06-30 David Turner <david@freetype.org>
74
Werner Lemberge3be90b2007-07-02 14:58:58 +000075 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
76 initialization.
David Turner74cc0e92007-06-30 22:54:12 +000077
Werner Lemberge3be90b2007-07-02 14:58:58 +000078 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
79 infinite loop in the case of degenerate fonts.
David Turner74cc0e92007-06-30 22:54:12 +000080
Werner Lemberg7723dc32007-06-26 04:44:35 +0000812007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
82
83 Add autofit module for Indic scripts. This currently just reuses
84 the CJK-specific functions.
85
86 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
87 macro.
88 * devel/ftoption.h: Synchronize with
89 include/freetype/config/ftoption.h.
90
91 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
92
93 * src/autofit/afglobal.c, src/autofit/aftypes.h,
94 src/autofit/autofit.c: Updated.
95
96 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
97 (AUTOF_DRV_SRC): Updated.
98
David Turner8f626b02007-06-22 22:22:38 +0000992007-06-23 David Turner <david@freetype.org>
100
Werner Lemberg7854c4a2007-06-23 07:16:20 +0000101 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
102 2007-06-16 that prevented the TrueType module from loading most
103 glyphs.
David Turner8f626b02007-06-22 22:22:38 +0000104
Werner Lemberg5b4d4352007-06-20 07:07:55 +00001052007-06-20 Werner Lemberg <wl@gnu.org>
106
107 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
108 change.
109
Werner Lemberg9fe58152007-06-19 07:57:30 +00001102007-06-19 Werner Lemberg <wl@gnu.org>
111
112 * src/type1/t1load.c (parse_encoding): Handle one more error.
113
Werner Lemberg5a829392007-06-19 04:53:30 +00001142007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
115
116 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
117 FNT_Err_Invalid_File_Format if file format was recognized but
118 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
119 Add verbose debug logs to make it easier to debug failing load
120 attempts.
121 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
122 so return an error if requested face index is > 0.
123 Do not do further attempt to load fonts if a previous attempt has
124 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
125 file format has been recognized but no fonts found in the file.
126
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001272007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
128
129 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
130 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
131 the compiler warnings against unused arguments.
132 (FT_ATSFontGetFileReference): Ditto.
133 (FT_GetFile_From_Mac_ATS_Name): Ditto.
134 (FT_New_Face_From_FSSpec): Ditto.
135 (lookup_lwfn_by_fond): Fix wrong comment.
136 Replace `const StringPtr' by more appropriate type
137 `ConstStr255Param'.
138 FSRefMakePathPath always returns UTF8 POSIX pathname in
139 Mach-O, thus HFS pathname support is dropped.
140 (count_faces): Remove HLock and HUnlock which is not
141 required on Mac OS X anymore.
142 (FT_New_Face_From_SFNT): Ditto.
143 (FT_New_Face_From_FOND): Ditto.
144 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
145 except of HFS pathname support and HLock/HUnlock.
146 They are required on classic CFM environment.
147
1482007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf48aec72007-06-18 07:07:55 +0000149
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000150 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
151 assertion.
152 (ps_parser_to_bytes): Fix error message.
153
Werner Lembergbb2510d2007-06-18 17:07:49 +0000154 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000155 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
156 Don't allow mixed binary and hex strings.
Werner Lembergc67fb6f2007-06-20 06:08:13 +0000157 Handle string_size == 0 and string_buf == 0.
Werner Lembergbb2510d2007-06-18 17:07:49 +0000158 (t42_parse_encoding): Handle one more error.
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000159
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001602007-06-18 Werner Lemberg <wl@gnu.org>
Werner Lembergf9fa1c82007-06-18 17:00:05 +0000161
Werner Lembergf48aec72007-06-18 07:07:55 +0000162 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
163 logic.
164 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
165 correctly.
166 (ps_parser_load_field_table): Use `fields->array_max' instead of
167 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
168
Werner Lemberg95104a42007-06-18 07:33:10 +0000169 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
170 2007-06-06.
171
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001722007-06-17 Werner Lemberg <wl@gnu.org>
Werner Lemberge12ed562007-06-17 05:31:23 +0000173
174 * src/tools/ftrandom.c (font_size): New global variable.
175 (TestFace): Use it.
176 (main): Handle new option `--size' to set `font_size'.
177 (Usage): Updated.
178
Werner Lembergbe183eb2007-06-17 11:27:17 +0000179 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
180 invalid font.
181 (FNT_Load_Glyph): Protect against invalid bitmap width.
182
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001832007-06-16 David Turner <david@freetype.org>
David Turner6c2ab092007-06-16 16:40:37 +0000184
Werner Lemberge12ed562007-06-17 05:31:23 +0000185 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
186 Prevent integer overflows when rendering very large outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000187
Werner Lemberge12ed562007-06-17 05:31:23 +0000188 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
189 well-formedness of the contours array when loading a glyph.
David Turner815911a2007-06-16 17:07:20 +0000190
Werner Lemberge12ed562007-06-17 05:31:23 +0000191 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
192 and `zp2'.
193 (Ins_IP): Check argument ranges to reject bogus operations properly.
194 (IUP_WorkerRec): Add `max_points' member.
195 (_iup_worker_interpolate): Check argument ranges.
196 (Ins_IUP): Ignore empty outlines.
David Turner6c2ab092007-06-16 16:40:37 +0000197
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00001982007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lembergab1604b2007-06-16 07:59:39 +0000199
200 * src/winfonts/winfnt.h: Add necessary structures for PE resource
201 parsing.
202 (WinPE32_HeaderRec): New structure.
203 (WinPE32_SectionRec): New structure.
204 (WinPE_RsrcDirRec): New structure.
205 (WinPE_RsrcDirEntryRec): New structure.
206 (WinPE_RsrcDataEntryRec): New structure.
207 (FNT_FontRec): Remove unused `size_shift' field.
208
209 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
210 loading bitmap .fon files in PE format.
211
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002122007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg08a645d2007-06-15 14:05:20 +0000213
214 * builds/win32/ftdebug.c: Unify debug level handling with other
215 platforms.
216
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002172007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
Werner Lemberg367f3012007-06-14 06:56:52 +0000218
219 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
220 console as well as to the debugger.
221
Suzuki, Toshiya (鈴木俊哉)78935012007-06-19 03:27:05 +00002222007-06-14 Werner Lemberg <wl@gnu.org>
Werner Lemberg46dde492007-06-14 03:59:02 +0000223
224 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
225 cover all ranges which could possibly be handled by the aflatin
226 module (since the default fallback for unknown ranges is now the
227 afcjk module). It might be necessary to fine-tune this further by
228 splitting off modules for Greek, Cyrillic, or other blocks.
229
David Turnerb7920172007-06-11 05:37:35 +00002302007-06-11 David Turner <david@freetype.org>
231
Werner Lemberg49e18b82007-06-11 21:15:09 +0000232 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
233 incorrect segment linking computation. This was the root cause of
234 Savannah bug #19565.
David Turnerb38c15d2007-06-11 19:36:48 +0000235
236
Werner Lemberg49e18b82007-06-11 21:15:09 +0000237 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
238 to improve the Latin auto-hinter. Note that the new code is
239 disabled by default since it is not stabilized yet.
240
241 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
242 (disabled currently).
243
244 * src/autofit/afhints.c: Remove dead code.
245 (af_axis_hints_new_edge): Add argument to handle segment directions.
246 (af_edge_flags_to_string): New function.
247 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
248 option flags.
249 (af_glyph_hints_reload): Add argument to handle inflections.
250 Simplify.
251 (af_direction_compute): Fine tuning.
252 (af_glyph_hints_align_edge_points): Fix logic.
253 (af_glyph_hints_align_strong_points): Do linear search for small
254 edge counts.
255 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
256 (af_iup_shift): Handle zero `delta'.
257
258 * src/autofit/afhints.h: Updated.
259 (AF_SORT_SEGMENTS): New macro (disabled).
260 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
261
262 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
263 argument to pass option flags for handling scripts.
264 * src/autofit/afglobal.h: Updated.
265
266 * src/autofit/afcjk.c: Updated.
267 * src/autofit/aflatin.c: Updated.
268 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
269
270 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
271 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
272 Don't set `edge->dir'
273 (af_latin_hint_edges): Add more logging.
274
275 * src/autofit/afloader.c: Updated.
David Turnerb7920172007-06-11 05:37:35 +0000276
Werner Lembergf6c120f2007-06-11 04:55:58 +00002772007-06-11 Werner Lemberg <wl@gnu.org>
278
Werner Lembergcf7b7642007-06-11 04:58:01 +0000279 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
Werner Lembergf6c120f2007-06-11 04:55:58 +0000280
David Turner84c6f882007-06-10 20:51:04 +00002812007-06-10 David Turner <david@freetype.org>
282
Werner Lembergf6c120f2007-06-11 04:55:58 +0000283 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
284 the TrueType glyph loader.
David Turner5f5e5442007-06-11 00:18:00 +0000285
Werner Lembergf6c120f2007-06-11 04:55:58 +0000286 * include/freetype/config/ftoption.h: Clarify documentation
287 regarding unpatented hinting.
David Turner84c6f882007-06-10 20:51:04 +0000288
Werner Lembergf6c120f2007-06-11 04:55:58 +0000289
290 Add new `FT_Face_CheckTrueTypePatents' API.
291
292 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
293 declaration.
294
295 * include/freetype/internal/services/svttglyf.h,
296 src/base/ftpatent.c: New files.
297
298 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
299 New macro.
300
301 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
302 `ttpload.h'.
303 (tt_service_truetype_glyf): New service structure.
304 (tt_services): Register it.
305
306 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
307 `ftpatent.c'.
David Turner84c6f882007-06-10 20:51:04 +0000308
Werner Lemberg33db39e2007-06-08 06:30:29 +00003092007-06-08 Werner Lemberg <wl@gnu.org>
310
David Turner84c6f882007-06-10 20:51:04 +0000311 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
Werner Lemberg33db39e2007-06-08 06:30:29 +0000312 Fonts without a cmap must be handled correctly by FreeType (anything
313 else would be a bug).
314
315
316 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
317 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
318
Werner Lemberg88ab6382007-06-07 05:01:56 +00003192007-06-07 Werner Lemberg <wl@gnu.org>
320
321 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
322 tt_sbit_decoder_load_image): Protect against integer overflows.
323
324
325 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
326 for `x_control' and `y_control'.
327
Werner Lemberg2a2dca62007-06-06 04:39:37 +00003282007-06-06 Werner Lemberg <wl@gnu.org>
329
330 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
331
Werner Lemberga8d65492007-06-06 04:47:49 +0000332
333 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
334 FreeType error.
335
Werner Lemberg470210b2007-06-06 10:05:49 +0000336
337 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
338 `font_count'.
339
340
341 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
342
343
344 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
345 `FT_Error'.
346 Check `fd_index'.
347 (cff_slot_load): Updated.
348 * src/cff/cffgload.h: Updated.
349
Werner Lemberg6c054752007-06-05 05:27:54 +00003502007-06-05 Werner Lemberg <wl@gnu.org>
351
352 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
353 (pfr_glyph_load_simple): Convert assertion into normal FreeType
354 error.
355 Check `idx'.
Werner Lemberg9a0332c2007-06-05 05:50:01 +0000356 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
357 Convert assertion into normal FreeType error.
Werner Lemberg6c054752007-06-05 05:27:54 +0000358
359 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
360
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000361
Werner Lemberg470210b2007-06-06 10:05:49 +0000362 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
Werner Lembergf4bc3f42007-06-05 07:32:15 +0000363
Werner Lemberge5c14d92007-06-05 20:50:37 +0000364
365 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
366 in case of parsing error.
367 (ps_parser_load_field): Updated.
368
369 * src/type1/t1load.c (parse_font_matrix): Updated.
370
Werner Lembergad18b362007-06-04 07:04:05 +00003712007-06-04 Werner Lemberg <wl@gnu.org>
372
373 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
374
375 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
376
Werner Lemberg3d507fe2007-06-03 16:54:55 +00003772007-06-03 Werner Lemberg <wl@gnu.org>
378
Werner Lemberg99a320b2007-06-03 19:21:26 +0000379 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
380 George Williams (with some modifications).
381
3822007-06-03 Werner Lemberg <wl@gnu.org>
383
Werner Lemberg3d507fe2007-06-03 16:54:55 +0000384 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
385 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
386 face == NULL. Suggested by Graham Asher.
387
Werner Lembergce280a22007-06-03 05:58:30 +00003882007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
389
390 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
391
Werner Lemberg5b591e42007-06-01 22:16:43 +00003922007-06-02 Werner Lemberg <wl@gnu.org>
393
394 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
395 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
396
397 * src/bdf/bdflib.c (bdf_load_font): Use them.
398
399 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
400
Werner Lembergb9933f42007-06-01 21:27:12 +00004012007-06-01 Werner Lemberg <wl@gnu.org>
402
403 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
404 (FTC_CMapCache_Lookup): Remove unused code.
405
Werner Lembergc793d902007-06-01 20:51:11 +00004062007-06-01 Sean McBride <sean@rogue-research.com>
407
408 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
409 unused.
410
Werner Lembergbebc7b12007-06-01 06:32:30 +00004112007-06-01 Werner Lemberg <wl@gnu.org>
412
413 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
414 pass for `StartData' if an error has occurred.
Werner Lemberg4d2815d2007-06-01 07:49:31 +0000415 Exit properly if no `StartData' has been seen at all.
Werner Lembergbebc7b12007-06-01 06:32:30 +0000416
Werner Lembergcb37b3b2007-06-01 06:49:03 +0000417 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
418 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
419
Werner Lembergba03af62007-05-30 13:57:02 +00004202007-05-30 Werner Lemberg <wl@gnu.org>
421
422 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
423 against too small binary data strings.
424
425 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
426
David Turnerf0cd69c2007-05-28 15:42:09 +00004272007-05-28 David Turner <david@freetype.org>
428
Werner Lemberg99e0c182007-05-29 07:00:23 +0000429 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
430 transformation. This significantly reduces the loading time of CFF
431 glyphs.
David Turner552a9562007-05-28 15:45:35 +0000432
Werner Lemberg99e0c182007-05-29 07:00:23 +0000433 * docs/CHANGES: Updated.
David Turner0291a5c2007-05-28 15:49:08 +0000434
Werner Lemberg99e0c182007-05-29 07:00:23 +0000435 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
436 hinting script to CJK, since it works well with more scripts than
437 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
438 this out!
David Turnerf0cd69c2007-05-28 15:42:09 +0000439
Werner Lemberg1c8980e2007-05-25 07:11:12 +00004402007-05-25 Werner Lemberg <wl@gnu.org>
441
442 * docs/CHANGES: Updated.
443
Werner Lemberg6ff2ff52007-05-24 19:39:14 +00004442007-05-24 Werner Lemberg <wl@gnu.org>
445
446 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
447 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
448
4492007-05-24 Graham Asher <graham.asher@btinternet.com>
450
451 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
452 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
453
David Turner0d0365e2007-05-22 09:53:44 +00004542007-05-22 David Turner <david@freetype.org>
455
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000456 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
457 avoid crashes in case the bytecode interpreter is not used.
David Turner78906862007-05-22 14:08:09 +0000458
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000459
460 Avoid heap blowup with very large .Z font files. This fixes
461 Savannah bug #19910.
462
463 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
464 `in_limit', `pad', `pad_bits', and `in_buff' members.
465 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
466 `buf_total' members.
467
468 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
469 only one argument.
470 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
David Turner0d0365e2007-05-22 09:53:44 +0000471
4722007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
Werner Lemberg9df3c222007-05-20 18:07:52 +0000473
474 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
475 (ps_dimension_set_mask_bits): Remove `const'.
476
David Turner0d0365e2007-05-22 09:53:44 +00004772007-05-19 Werner Lemberg <wl@gnu.org>
Werner Lemberg0f2b7bd2007-05-19 15:15:47 +0000478
479 * src/sfnt/ttmtx.c (tt_face_get_metrics)
480 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
481
Werner Lembergb826fa72007-05-19 07:18:48 +00004822007-05-19 Derek Clegg <dclegg@apple.com>
483
484 Savannah patch #5929.
485
486 * include/freetype/tttables.h, src/base/ftobjcs.c
487 (FT_Get_CMap_Format): New function.
488
489 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
490 `format' member.
491 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
492 cmap_info->format.
493
Werner Lemberg6f99c882007-05-19 07:01:49 +00004942007-05-19 Werner Lemberg <wl@gnu.org>
495
496 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
497 before handling subglyphs so that it can be reinitialized each time.
498 This fixes Savannah bug #19859.
499
Werner Lemberg95bc9d32007-05-16 15:19:42 +00005002007-05-16 Werner Lemberg <wl@gnu.org>
501
502 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
503 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
504 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
505 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
506 tt_face_get_metrics): Fix type-punning issues.
507
David Turner0a24bd22007-05-15 10:54:10 +00005082007-05-15 David Turner <david@freetype.org>
509
510 * include/freetype/config/ftstdlib.h,
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000511 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
512 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
David Turner0a24bd22007-05-15 10:54:10 +0000513 instead on relying on the locale-dependent functions provided by
Werner Lemberg6ae7ff02007-05-15 11:55:37 +0000514 <ctypes.h>.
David Turner0a24bd22007-05-15 10:54:10 +0000515
Werner Lemberg607dec72007-05-15 06:49:37 +00005162007-05-15 Graham Asher <graham.asher@btinternet.com>
517
518 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
519 variable.
520 * src/autofit/afloader.c (af_loader_load_g): Ditto.
521
522 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
523 (open_face_from_buffer): Initialize `stream'.
524 (FT_Request_Metrics): Remove unused variable.
525 Remove redundant `break' statements.
526 (FT_Get_Track_Kerning): Remove unused variable.
527
528 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
529 afm_parse_kern_data): Remove redundant
530 `break' statements.
531 (afm_parser_parse): Ditto.
532 Don't use uninitialized variables.
533
534 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
535 Use `|' operator instead of `^' to set it.
536 Update all users.
537
538 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
539 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
540
541 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
542 comparison.
543 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
544 (TT_Load_Glyph): Remove unused variable.
545
Werner Lemberg8d463a52007-05-13 16:01:55 +00005462007-05-13 Derek Clegg <dclegg@apple.com>
547
548 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
549 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
550
David Turner711cf842007-05-11 14:36:24 +00005512007-05-11 David Turner <david@freetype.org>
552
Werner Lemberg56ceaa42007-05-14 18:53:58 +0000553 * src/cache/ftbasic.c, include/freetype/ftcache.h
554 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
555 functions that allow us to look up glyphs using an FTC_Scaler object
556 to specify the size, making it possible to use fractional pixel
557 sizes.
558
559 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
560 `size->cvt_ready'. Reported by Boris Letocha.
David Turner711cf842007-05-11 14:36:24 +0000561
Werner Lemberg94be20e2007-05-09 20:02:55 +00005622007-05-09 Graham Asher <graham.asher@btinternet.com>
563
564 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
565 (af_latin_metrics_scale_dim): Fix compiler warnings.
566
Werner Lemberg41271032007-05-06 04:51:48 +00005672007-05-06 Werner Lemberg <wl@gnu.org>
568
569 * builds/win32/visualce/freetype.sln: Removed, as requested by
570 Vincent.
571
Werner Lembergdf49e692007-05-04 06:30:05 +00005722007-05-04 Vincent RICHOMME <richom.v@free.fr>
573
574 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
575 PC targets.
576
577 * docs/CHANGES: Document them.
578
5792007-05-04 <harry@kdevelop.org>
Werner Lemberg5077e832007-05-04 06:13:46 +0000580
581 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
582 mmap (which might happen on some RTOS). From Savannah patch #5909.
583
Werner Lemberg106eaf12007-05-03 07:07:47 +00005842007-05-03 Werner Lemberg <wl@gnu.org>
585
586 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
587 * include/freetype/freetype.h (FT_Set_Char_Size): Update
588 documentation.
589
Werner Lemberg1b5267d2007-04-28 21:06:15 +00005902007-04-28 Victor Stinner <victor.stinner@inl.fr>
591
592 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
593 `cmap'.
594
Werner Lembergcc712a22007-04-27 17:16:50 +00005952007-04-27 Werner Lemberg <wl@gnu.org>
596
597 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
598 number of points in contours. Problem reported by Victor Stinner
599 <victor.stinner@haypocalc.com>.
600 (TT_Process_Simple_Glyph): Synchronize variable types.
601
Werner Lemberg45bb18f2007-04-26 06:26:35 +00006022007-04-26 Werner Lemberg <wl@gnu.org>
603
604 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
605 zero in case of error. This fixes Savannah bug #19689.
606
David Turnera8b45e62007-05-11 14:10:30 +00006072007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
608
Werner Lemberg1c8980e2007-05-25 07:11:12 +0000609 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
610 in the TrueType bytecode loader.
David Turnera8b45e62007-05-11 14:10:30 +0000611
Werner Lembergfcc1f472007-04-10 11:51:50 +00006122007-04-10 Martin Horak <horakm@centrum.cz>
613
614 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
615 Ignore `hhea' table. This fixes Savannah bug #19261.
616
Werner Lemberg14bf82e2007-04-10 04:09:49 +00006172007-04-09 Werner Lemberg <wl@gnu.org>
618
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000619
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000620 * Version 2.3.4 released.
621 =========================
622
623
624 Tag sources with `VER-2-3-4'.
625
626 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
627 version number to 2.3.4.
628
629 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
630 builds/win32/visualc/freetype.dsp,
631 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
632
633 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
634
635 * builds/unix/configure.raw (version_info): Set to 9:15:3.
636
Werner Lembergf4a52a62007-04-09 08:40:11 +00006372007-04-09 Martin Horak <horakm@centrum.cz>
638
639 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
640 memory stream to avoid a crash with the incremental memory
641 interface (Savannah bug #19260).
642
David Turner1dcb4442007-04-06 08:19:04 +00006432007-04-06 David Turner <david@freetype.org>
644
Werner Lembergc81cf612007-04-06 09:28:23 +0000645 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
646 (Savannah bug #19536).
David Turner1dcb4442007-04-06 08:19:04 +0000647
Werner Lemberg9f83e052007-04-05 02:28:23 +00006482007-04-04 Werner Lemberg <wl@gnu.org>
649
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000650
Werner Lemberg9f83e052007-04-05 02:28:23 +0000651 * Version 2.3.3 released.
652 =========================
653
654
655 Tag sources with `VER-2-3-3'.
656
657 * docs/CHANGES: Mention CVE-2007-1351.
658
David Turner7338ec22007-04-03 14:30:34 +00006592007-04-03 David Turner <david@freetype.org>
660
661 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
Werner Lemberg74781972007-04-03 19:39:28 +0000662 if one of the resolution values is 0, treat it as if it were the
663 same as the other value.
David Turner7338ec22007-04-03 14:30:34 +0000664
David Turnere6472c12007-04-02 13:13:54 +00006652007-04-02 David Turner <david@freetype.org>
666
Werner Lemberg94f12272007-04-03 07:19:53 +0000667 Add special code to detect `extra-light' fonts and do not snap their
668 stem widths too much to avoid bizarre hinting effects.
669
670 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
671 `extra_light' members.
672
673 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
674 them.
675 (af_latin_metrics_scale_dim): Set `extra_light'.
676 (af_latin_compute_stem_width): Use `extra_light'.
David Turnere6472c12007-04-02 13:13:54 +0000677
David Turner3f539692007-03-28 14:53:40 +00006782007-03-28 David Turner <david@freetype.org>
679
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000680 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
David Turner3f539692007-03-28 14:53:40 +0000681 padding.
682
Werner Lemberga08b2172007-03-28 07:17:17 +00006832007-03-28 Werner Lemberg <wl@gnu.org>
684
685 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
686 gracefully.
687 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
Werner Lemberg9f83e052007-04-05 02:28:23 +0000688 issue an error for longer names. This fixes CVE-2007-1351.
Werner Lemberga08b2172007-03-28 07:17:17 +0000689 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
690 number of code points in Unicode.
691
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000692 * builds/win32/visualc/index.html,
693 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000694 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000695 s/232/233/.
696
697 * docs/CHANGES: Mention ftdiff.
698
David Turner3b242d32007-03-26 12:03:04 +00006992007-03-26 David Turner <david@freetype.org>
700
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000701 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
702 corresponding code.
703 (Ins_MD): Last regression fix.
David Turner3b242d32007-03-26 12:03:04 +0000704
Werner Lemberga08b2172007-03-28 07:17:17 +0000705 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000706 computations in order to ignore single-point contours. These are
707 never rasterized and correspond in certain fonts to mark-attach
708 points that are very far from the glyph's real outline, ruining the
709 computation.
David Turnerf58caa02007-03-26 12:39:25 +0000710
Werner Lemberga08b2172007-03-28 07:17:17 +0000711 * src/autofit/afloader.c (af_loader_load_g): In the case of
David Turner84c6f882007-06-10 20:51:04 +0000712 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
Werner Lemberga08b2172007-03-28 07:17:17 +0000713 Otherwise code that uses them will most certainly ruin the fixed
714 advance property.
David Turner23553d62007-03-26 13:37:17 +0000715
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000716 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
717 documentation and bump version number to 2.3.3.
718
719 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
720
721 * builds/unix/configure.raw (version_info): Set to 9:14:3.
David Turner23553d62007-03-26 13:37:17 +0000722
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +00007232007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
724
Werner Lemberg644b1ad2007-03-28 21:17:11 +0000725 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
726 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000727 * builds/vms/ftconfig.h: Ditto.
728 * include/freetype/config/ftconfig.h: Ditto.
729
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +00007302007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
731
Werner Lemberg14ffe092007-03-22 06:12:43 +0000732 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
733 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +0000734 proposed by Sean McBride:
735 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
736
7372007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
738
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000739 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
740 setjmp, proposed by Sean McBride:
741 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
742
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00007432007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
744
Werner Lembergc9f6c662007-03-21 13:30:14 +0000745 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
746 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
747 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000748
David Turner74c34eb2007-03-18 07:19:31 +00007492007-03-18 David Turner <david@freetype.org>
750
Werner Lembergc9f6c662007-03-21 13:30:14 +0000751 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
752 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +0000753
Werner Lembergc9f6c662007-03-21 13:30:14 +0000754 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +0000755
David Turner89020d92007-03-17 17:48:57 +00007562007-03-17 David Turner <david@freetype.org>
757
Werner Lembergc9f6c662007-03-21 13:30:14 +0000758 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
759 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +0000760
Werner Lemberg25d592a2007-03-09 07:59:35 +00007612007-03-09 Werner Lemberg <wl@gnu.org>
762
Werner Lemberg3b0e5002007-07-03 04:48:19 +0000763
Werner Lemberg25d592a2007-03-09 07:59:35 +0000764 * Version 2.3.2 released.
765 =========================
766
767
768 Tag sources with `VER-2-3-2'.
769
770 * builds/win32/visualc/index.html,
771 builds/win32/visualc/freetype.dsp,
Werner Lemberg14bf82e2007-04-10 04:09:49 +0000772 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
Werner Lemberg25d592a2007-03-09 07:59:35 +0000773 s/231/232/.
774
David Turner3a51afa2007-03-08 10:50:38 +00007752007-03-08 David Turner <david@freetype.org>
776
Werner Lemberg25d592a2007-03-09 07:59:35 +0000777 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +0000778
Werner Lemberg25d592a2007-03-09 07:59:35 +0000779 * builds/unix/configure.raw (version_info): Set to 9:13:3.
780
781 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
782
783 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +0000784
Werner Lemberg1e259de2007-03-08 15:39:21 +0000785 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
786 function to work properly, over-writing user-provided buffers in
787 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +0000788
David Turner121cad52007-03-08 16:43:50 +0000789
Werner Lemberg3d92f082007-03-06 11:59:24 +00007902007-03-05 Werner Lemberg <wl@gnu.org>
791
792 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
793 macro for `strstr'.
794
795 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
796 `trick_names', as suggested by Ivan Nincic.
797
David Turner085bc6e2007-03-05 17:40:03 +00007982007-03-05 David Turner <david@freetype.org>
799
Werner Lembergd112cf02007-03-06 12:06:56 +0000800 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
801 case FT_Init_FreeType fails for some reason. Problem reported by
802 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +0000803
Werner Lembergd112cf02007-03-06 12:06:56 +0000804 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
805 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
806 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
807 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +0000808
Werner Lembergd112cf02007-03-06 12:06:56 +0000809 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
810 signed values, not unsigned ones. Problem reported by Johannes
811 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +0000812
David Turner601aefe2007-02-21 16:47:49 +00008132007-02-21 David Turner <david@freetype.org>
814
Werner Lembergde5e6862007-02-25 21:06:43 +0000815 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
816 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000817
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00008182007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
819
820 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
821 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
822 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
823
Werner Lemberga0915172007-02-16 08:12:50 +00008242007-02-16 Werner Lemberg <wl@gnu.org>
825
826 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
827 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
828
David Turner2c4500e2007-02-14 15:08:47 +00008292007-02-14 David Turner <david@freetype.org>
830
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000831 It seems that the following changes fix most of the known
832 interpreter problems with my fonts, but more testing is needed,
833 though.
834
835 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
836 (TT_MulFix14): Rewrite.
837 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
838 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000839
Werner Lembergc6a14082007-02-12 22:08:15 +00008402007-02-12 Werner Lemberg <wl@gnu.org>
841
842 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
843 warnings.
844
845 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
846 (bdf_interpret_style): Ditto.
847
David Turnerc0f9c4a2007-02-12 14:55:03 +00008482007-02-12 David Turner <david@freetype.org>
849
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000850 Simplify projection and dual-projection code interface.
851
Werner Lemberg406d25f2007-02-12 22:01:18 +0000852 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
853 FT_Vector' as argument type.
854 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
855 Updated.
856 (CUR_fast_project, CUR_fast_dualproj): New macros.
857 (Project, Dual_Project, Project_x, Project_y): Updated.
858 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
859 macros.
860
861
862 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
863 adjustments for the non-light auto-hinted modes. Gets rid of
864 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000865
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000866 * src/autofit/aflatin.c (af_latin_hints_link_segments,
867 af_latin_hints_compute_edges): Slight optimization of the segment
868 linker and better handling of serif segments to get rid of broken
869 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000870
David Turnerc0f9c4a2007-02-12 14:55:03 +0000871
Werner Lemberg442bfb82007-02-12 21:44:10 +0000872 Introduce new string functions and the corresponding macros to get
873 rid of various uses of strcpy and other `evil' functions, as well as
874 to simplify a few things.
875
876 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
877 ft_mem_strcpyn): New declarations.
878 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
879 macros.
880 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
881 functions.
882
883 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
884 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
885 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
886 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
887 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
888 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
889 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
890 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000891
Werner Lemberg406d25f2007-02-12 22:01:18 +0000892 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
893
Werner Lemberg582067d2007-02-11 15:03:05 +00008942007-02-11 Werner Lemberg <wl@gnu.org>
895
896 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
897 non-spacing glyphs.
898
Werner Lemberg8f474532007-02-07 08:31:01 +00008992007-02-07 Tom Parker <palfrey@tevp.net>
900
901 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
902 pointer.
903
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009042007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
905
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000906 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
907 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000908 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000909 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
910 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
911 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
912 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000913
914 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
915 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000916 * builds/mac/ftmac.c: Ditto.
917
9182007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
919
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000920 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000921 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000922 #include <ftmac.c>.
923
9242007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
925
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000926 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
927 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
928 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
929 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
930 FT_GetFilePath_From_Mac_ATS_Name.
931 * builds/mac/ftmac.c: Ditto.
932
9332007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
934
Werner Lembergdcbb7082007-02-08 08:54:09 +0000935 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000936 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
937 for passing to FT_New_Face_From_FSSpec.
938
9392007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
940
Werner Lembergdcbb7082007-02-08 08:54:09 +0000941 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000942 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000943
944 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
945 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000946 * builds/mac/ftmac.c (OS_INLINE): Ditto.
947
Werner Lemberg313d7772007-02-01 08:10:45 +00009482007-02-01 Werner Lemberg <wl@gnu.org>
949
950 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
951 Explain why applications shouldn't use it. Found by Alexei.
952
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00009532007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000954
955 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
956 message.
957
958 * src/gxvalid/gxvmort1.c
959 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
960 message.
961
Werner Lemberg53935932007-01-31 08:53:02 +00009622007-01-31 Werner Lemberg <wl@gnu.org>
963
964
965 * Version 2.3.1 released.
966 =========================
967
968
969 Tag sources with `VER-2-3-1-FINAL'.
970
971 * builds/win32/visualc/freetype.dsp,
972 builds/win32/visualc/freetype.vcproj: s/230/231/.
973 * builds/win32/visualc/index.html: s/221/231/.
974
975 * vms_make.com: Add `ftgasp'.
976
David Turnera7ee6082007-01-30 10:33:53 +00009772007-01-30 David Turner <david@freetype.org>
978
Werner Lemberg53935932007-01-31 08:53:02 +0000979 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000980
Werner Lemberg53935932007-01-31 08:53:02 +0000981 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000982
Werner Lemberg25d592a2007-03-09 07:59:35 +0000983 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000984 s/2.3.0/2.3.1/.
985
986 * builds/unix/configure.raw (version_info): Set to 9:12:3.
987
988
989 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
990 (af_loader_load_g): Disable the warper (i.e., the light hinting
991 improvements) to make a 2.3.1 bugfix release before introducing a
992 new feature. This should give us more time to tune and improve the
993 warper for the next release.
994
995 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000996
David Turnerd91eebd2007-01-26 15:05:41 +00009972007-01-25 David Turner <david@freetype.org>
998
Werner Lembergbf241762007-01-26 16:08:49 +0000999 For light auto-hinting, improve glyph advance widths and resurrect
1000 normal/full hinting to its normal quality.
1001
1002 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
1003 and `xmax_delta'.
1004 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
1005 and `xmax_delta'.
1006
1007 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
1008 preprocessor conditional with if-clause, handling both light and
1009 normal mode.
1010
1011 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
1012 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +00001013
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +000010142007-01-25 Werner Lemberg <wl@gnu.org>
1015
1016 * docs/release: Updated -- Savannah uses a new uploading scheme.
1017
David Turnera42567b2007-01-25 12:23:37 +000010182007-01-25 David Turner <david@freetype.org>
1019
Werner Lembergd7855662007-01-25 13:53:56 +00001020 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +00001021
Werner Lembergd7855662007-01-25 13:53:56 +00001022 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1023 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
1024 functions.
David Turnera42567b2007-01-25 12:23:37 +00001025
Werner Lembergd7855662007-01-25 13:53:56 +00001026 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +00001027
Werner Lembergb1be9e82007-01-25 11:50:00 +000010282007-01-25 Werner Lemberg <wl@gnu.org>
1029
1030 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +00001031 correctly in a sanity check. Since this function is only used to
1032 load local and global functions, any charstring that called the last
1033 local/global function would fail otherwise. This fixes Savannah bug
1034 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +00001035
1036 * docs/CHANGES: Document it.
1037
David Turnerb6de8d12007-01-23 15:51:50 +000010382007-01-23 David Turner <david@freetype.org>
1039
Werner Lembergb1be9e82007-01-25 11:50:00 +00001040 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1041 prevented compilation when disabling both the unpatented and the
1042 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +00001043
Werner Lembergb1be9e82007-01-25 11:50:00 +00001044
1045 Fix and enable the warper to improve `light' hinting mode. This is
1046 not necessarily a final version, but it seems to work well.
1047
1048 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1049 Disable code.
1050 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1051 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1052
1053 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1054 (af_warper_compute_line_best): Fix array size of `scores'.
1055 (af_warper_compute): Better handling of border cases.
1056 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1057 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +00001058
Werner Lemberg011d1112007-01-21 09:36:00 +000010592007-01-21 Werner Lemberg <wl@gnu.org>
1060
Werner Lemberg42b63b22007-01-21 21:01:33 +00001061 * ChangeLog: Split off older entries into...
1062 * ChangeLog.22: This new file.
1063
10642007-01-21 Werner Lemberg <wl@gnu.org>
1065
Werner Lemberg555258f2007-01-21 09:46:37 +00001066 * docs/CHANGES: Document SHZ fix.
1067
10682007-01-21 George Williams <gww@silcom.com>
1069
1070 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1071 points.
1072
10732007-01-21 Werner Lemberg <wl@gnu.org>
1074
Werner Lemberg011d1112007-01-21 09:36:00 +00001075 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1076 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1077
Werner Lemberg87a5a432007-01-17 12:44:39 +000010782007-01-17 Werner Lemberg <wl@gnu.org>
1079
Werner Lembergb8003292007-01-17 12:56:25 +00001080
1081 * Version 2.3.0 released.
1082 =========================
1083
1084
1085 Tag sources with `VER-2-3-0-FINAL'.
1086
10872007-01-17 Werner Lemberg <wl@gnu.org>
1088
Werner Lemberg87a5a432007-01-17 12:44:39 +00001089 * docs/release: Updated.
1090
David Turner22122722007-01-16 20:06:44 +000010912007-01-16 David Turner <david@freetype.org>
1092
Werner Lemberg87a5a432007-01-17 12:44:39 +00001093 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1094 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1095 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1096 warnings.
David Turner22122722007-01-16 20:06:44 +00001097
Werner Lemberg267e1d72007-01-15 07:48:09 +000010982007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1099
1100 * builds/amiga/makefile, builds/amiga/makefile.os4,
1101 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1102
1103 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1104
Werner Lemberg8c4120d2007-01-15 06:42:40 +000011052007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1106
1107 Fix various compiler warnings.
1108
1109 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1110 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1111 s/index/strike_index/.
1112 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1113
1114 * src/gxvalid/gxvmorx5.c
1115 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1116
1117 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1118 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1119 uninitialized variables.
1120
Werner Lemberg6164a9d2007-01-13 23:01:36 +000011212007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1122
1123 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1124
Werner Lemberg281c1482007-01-13 22:50:51 +000011252007-01-13 Werner Lemberg <wl@gnu.org>
1126
1127 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1128 versions up to 0x3FF without complaining.
1129
Werner Lembergac250b22007-01-13 14:01:36 +000011302007-01-13 Derek Clegg <dclegg@apple.com>
1131
1132 Add FT_Get_PS_Font_Info interface to CFF driver.
1133
1134 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1135 (CFF_FontRec): Add `font_info' field.
1136
1137 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1138 (cff_font_done): Free font->font_info if necessary.
1139
1140 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1141 (cff_service_ps_info): Register cff_ps_get_font_info.
1142
Werner Lemberg23df31a2007-01-13 08:45:00 +000011432007-01-13 Werner Lemberg <wl@gnu.org>
1144
1145 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1146 with C++ compiler.
1147
1148 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1149 af_glyph_hints_dump_edges): Ditto.
1150
1151 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1152 `modules.cfg').
1153
1154 * src/sfnt/ttsbit0.h: Remove.
1155
1156 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1157
Werner Lemberg27cf9de2007-01-13 07:34:23 +000011582007-01-12 David Turner <david@freetype.org>
1159
1160 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1161 bug in the bitmap emboldener if the pitch of the source bitmap is
1162 much larger than its width.
1163
1164 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1165 compilation warning.
1166
Werner Lemberg6d96d312007-01-12 10:30:19 +000011672007-01-12 Werner Lemberg <wl@gnu.org>
1168
1169 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1170 `automake' CVS module from sources.redhat.com.
1171
Werner Lemberg17432b52007-01-12 09:28:44 +000011722007-01-11 Werner Lemberg <wl@gnu.org>
1173
1174 * src/type1/t1load.c (is_space): Removed.
1175 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1176 (parse_charstrings): Use IS_PS_TOKEN.
1177
1178
1179 * autogen.sh: Avoid bash specific syntax.
1180
David Turner038ace22007-01-11 15:00:59 +000011812007-01-11 David Turner <david@freetype.org>
1182
Werner Lemberg17432b52007-01-12 09:28:44 +00001183 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +00001184
Werner Lemberg17432b52007-01-12 09:28:44 +00001185 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +00001186
Werner Lemberg17432b52007-01-12 09:28:44 +00001187 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1188 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +00001189 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +00001190
Werner Lemberg17432b52007-01-12 09:28:44 +00001191 * autogen.sh: Small fix to get it working on Mac OS X properly:
1192 The issue is that GNU libtool is called `glibtool' on this platform,
1193 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +00001194
David Turner2628ea92007-01-10 13:15:56 +000011952007-01-10 David Turner <david@freetype.org>
1196
Werner Lemberg17432b52007-01-12 09:28:44 +00001197 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1198 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +00001199
Werner Lemberg17432b52007-01-12 09:28:44 +00001200 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1201 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1202 version number to 2.3.0.
1203
1204 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1205 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +00001206
1207 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +00001208 include/freetype/ftlcdfil.h: Update reference documentation with
1209 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +00001210
Werner Lemberg17432b52007-01-12 09:28:44 +00001211 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1212 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +00001213
Werner Lembergbf02d392007-01-10 07:07:37 +000012142007-01-10 Derek Clegg <dclegg@apple.com>
1215
1216 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1217 values.
1218
David Turnerf48b60e2007-01-08 15:15:32 +000012192007-01-08 David Turner <david@freetype.org>
1220
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001221 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +00001222
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001223 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1224 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +00001225 corresponding to a given character pixel size.
1226
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001227 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1228 `gasp' table, in order to avoid potential problems with later
1229 versions.
David Turnerf48b60e2007-01-08 15:15:32 +00001230
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001231 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1232 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +00001233
Werner Lembergcc7f12a2007-01-09 10:37:36 +00001234 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1235 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1236 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1237 default build.
David Turnerf48b60e2007-01-08 15:15:32 +00001238
Werner Lemberge6b6f372007-01-07 00:06:47 +000012392007-01-07 Werner Lemberg <wl@gnu.org>
1240
Werner Lembergb8004d22007-01-07 09:13:38 +00001241 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1242 Type 11 fonts.
1243 Scan for `/sfnts' token.
1244
12452007-01-07 Werner Lemberg <wl@gnu.org>
1246
1247 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +00001248
Werner Lembergbe5f7972007-01-06 07:51:48 +000012492007-01-06 Werner Lemberg <wl@gnu.org>
1250
1251 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1252 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1253
David Turnera8cf42b2007-01-04 16:46:46 +000012542007-01-04 David Turner <david@freetype.org>
1255
Werner Lembergf6294392007-01-06 07:47:45 +00001256 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1257 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +00001258
Werner Lembergf6294392007-01-06 07:47:45 +00001259
1260 Do not allocate interpreter-specific tables in memory if we are not
1261 going to load glyphs with the bytecode interpreter anyway.
1262
1263 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1264 only if glyph is hinted.
1265 Updated.
1266 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1267 and `cvs_ready'.
1268 Add `tt_size_ready_bytecode' declaration.
1269 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1270 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1271 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1272 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1273 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001274
David Turner91a34022007-01-05 14:47:08 +00001275
Werner Lembergf6294392007-01-06 07:47:45 +00001276 Don't extract the metrics table from the SFNT font file. Instead,
1277 reparse it on each glyph load. The runtime difference is not
1278 noticeable, and it can save a lot of heap memory when memory-mapped
1279 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +00001280
Werner Lembergf6294392007-01-06 07:47:45 +00001281 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1282 `horz_metrics_offset' and `vert_metrics_ofset'.
1283 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1284 Updated.
1285
1286
1287 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1288
1289
1290 Do not load the CFF index offsets into memory, since this wastes a
1291 *lot* of heap memory with large Asian CFF fonts. There is no
1292 significant performance loss.
1293
1294 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1295 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1296 `data_size'.
1297 (CFF_CharsetRec): Add field `num_glyphs'.
1298
1299 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1300 cff_charset_cid_to_gindex): New functions.
1301 (cff_new_index): Renamed to...
1302 (cff_index_init): This. Update all callers.
1303 Updated -- some code has been moved to `cff_index_load_offsets'.
1304 (cff_done_index): Renamed to...
1305 (cff_index_done): This. Update all callers.
1306 (cff_index_get_pointers, cff_index_access_element): Updated to use
1307 stream offsets.
1308 (cff_charset_compute_cids): Set `num_glyphs' field.
1309 (cff_encoding_load): Updated.
1310
1311 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +00001312
13132007-01-04 David Turner <david@freetype.org>
1314
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001315 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1316 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +00001317
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001318 * README.CVS: Add common problem description and solution
1319 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +00001320
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001321 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +00001322
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001323 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +00001324
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001325 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +00001326
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001327 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1328 (TWorker): This.
1329 Remove `count_table' and `memory'.
1330 Make `grays' a pointer.
1331 (TRaster): New structure.
1332 (count_table): New static array.
1333 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1334 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1335 ft_black_set_mode, ft_black_render): Updated.
1336 (ft_black_init): Don't initialize `count_table'.
1337 (ft_black_reset): Use the render pool. This saves about 6KB of
1338 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +00001339
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001340 * src/smooth/ftgrays.c (TRaster): Replaced with...
1341 (TWorker): This.
1342 Remove `memory'.
1343 (TRaster): New structure.
1344
1345 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1346 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1347 gray_render_span, gray_raster_render): Updated.
1348 (gray_raster_reset): Use the render pool. This saves about 6KB of
1349 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +00001350
David Turner8a6c44e2007-01-04 17:03:11 +00001351 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1352 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001353 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1354 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1355 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +00001356
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001357 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1358 Remove a typo that results in no hinting and a memory leak with some
1359 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +00001360
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001361 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +00001362 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +00001363 CFF_Faces in it. We need to close all faces before destroying the
1364 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +00001365
Werner Lemberg6b87e6f2007-01-02 19:20:08 +000013662007-01-02 Werner Lemberg <wl@gnu.org>
1367
1368 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1369 Remove compiler warning.
1370
David Turner9207e002007-01-02 16:58:13 +000013712007-01-02 David Turner <david@freetype.org>
1372
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001373 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +00001374
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +000013752006-12-31 Masatake YAMATO <jet@gyve.org>
1376
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001377 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1378 function.
1379 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +00001380 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00001381 `gxv_kern_subtable_fmt0_pairs_validate'.
1382
David Turner115b4422006-12-22 11:37:05 +000013832006-12-22 David Turner <david@freetype.org>
1384
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001385 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1386 warnings.
David Turner115b4422006-12-22 11:37:05 +00001387
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00001388 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1389 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +00001390
Werner Lemberg4755bf72006-12-16 08:58:44 +000013912006-12-16 Anders Kaseorg <anders@kaseorg.com>
1392
1393 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1394 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1395
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +000013962006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1397
Werner Lemberg9b774e22007-01-16 06:11:27 +00001398 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001399 sync with the modification by Jens Claudius on 2006-08-22; cf.
1400 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 +00001401
14022006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1403
1404 * src/base/ftmac.c: Specialized for Mac OS X only.
1405 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1406 * builds/unix/configure.raw: Ditto. When explicit switches for
1407 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1408 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1409
14102006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1411
1412 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1413 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1414 instead of src/base/ftmac.c
1415 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1416 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1417 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1418 that cannot be built at present.
1419
14202006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1421
Werner Lemberg0fd08bd2006-12-16 02:57:46 +00001422 * src/base/ftobjs.c: Improvement of resource fork handler for
1423 POSIX, cf.
1424 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00001425 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1426 format or .dfont, to simulate the face index number counted by ftmac.c.
1427 (IsMacResource): Return the number of scalable faces correctly.
1428
Werner Lembergec5b4502006-12-10 07:51:38 +000014292006-12-10 Werner Lemberg <wl@gnu.org>
1430
1431 * builds/toplevel.mk (version): Protect against `distclean' target.
1432
Werner Lembergb26b3142006-12-09 20:01:43 +000014332006-12-09 Werner Lemberg <wl@gnu.org>
1434
1435 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1436 or `type'.
1437
1438 * builds/freetype.mk (version): Extracted from freetype.h, using
1439 GNU make's built-in string functions.
1440 (refdoc): Use $(version) instead of static version number.
1441
Werner Lemberg4e1d6c02006-12-09 08:20:37 +000014422006-12-08 Werner Lemberg <wl@gnu.org>
1443
1444 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1445
Werner Lemberg15c29502006-12-09 07:29:54 +000014462006-12-08 Vladimir Volovich <vvv@vsu.ru>
1447
1448 * src/tools/apinames (State): Remove final comma in structure -- xlc
1449 v5 under AIX 4.3 doesn't like this.
1450
David Turnerdbf3b432006-12-07 21:18:09 +000014512006-12-07 David Turner <david@freetype.org>
1452
Werner Lemberg256a3512006-12-08 06:49:33 +00001453 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1454 to the spacing of auto-fitted glyphs. This only impacts rare
1455 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +00001456
Werner Lemberg11171312006-12-03 09:43:40 +000014572006-12-03 Werner Lemberg <wl@gnu.org>
1458
1459 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1460
Werner Lemberg960ba592006-12-01 08:20:47 +000014612006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +00001462
Werner Lemberg960ba592006-12-01 08:20:47 +00001463 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1464 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1465 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +00001466
David Turner80658e52006-11-28 08:09:20 +00001467
Werner Lemberg960ba592006-12-01 08:20:47 +00001468 * include/freetype/ftxf86.h: Fix and extend comment so that it
1469 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +00001470
Werner Lemberg960ba592006-12-01 08:20:47 +00001471 * include/freetype/ftchapters.h: Add `font_format' section.
1472
1473
1474 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1475 to TOC in index page.
1476
14772006-11-28 David Turner <david@freetype.org>
1478
1479 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1480 trying to render into a zero-width/height bitmap, not an error code.
1481
1482 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1483
1484 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1485 ones instead.
1486
1487 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1488 variable.
David Turner80658e52006-11-28 08:09:20 +00001489
Werner Lemberg8636c292006-11-26 22:28:13 +000014902006-11-26 Pierre Hanser <hanser@club-internet.fr>
1491
1492 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1493
Werner Lemberg960ba592006-12-01 08:20:47 +000014942006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +00001495
Werner Lemberg960ba592006-12-01 08:20:47 +00001496 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1497 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1498 Add stubs to link the `ftgrid' test program when debugging is
1499 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +00001500
Werner Lemberg960ba592006-12-01 08:20:47 +000015012006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +00001502
1503 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +00001504 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1505
1506 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1507 Emit more sensible information.
1508
1509 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1510
1511 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1512 rounding of blue values.
1513 (af_latin_hints_compute_segments): Hint segment heights.
1514 (af_latin_hints_link_segments): Reduce `len_score' value.
1515 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1516 value and use `height' member for comparisons.
1517 (af_latin_hint_edges): Extend logging message.
1518 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +00001519
Werner Lemberg91959bf2006-11-22 10:36:55 +000015202006-11-22 Werner Lemberg <wl@gnu.org>
1521
1522 Fix Savannah bug #15553.
1523
1524 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1525 program after a change from mono to grayscaling (and vice versa).
1526 Use correct constant for comparison to get `exec->grayscale'.
1527
Werner Lemberg913a3652006-11-19 09:19:17 +000015282006-11-18 Werner Lemberg <wl@gnu.org>
1529
1530 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +00001531 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +00001532 This patch fixes Savannah bug #18301.
1533
1534 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1535 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1536 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1537 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1538 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1539 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1540 (FNT_Load_Glyph): Check validity of `glyph_index'.
1541
David Turner7bab6ae2006-11-13 11:25:06 +000015422006-11-13 David Turner <david@freetype.org>
1543
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001544 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1545 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +00001546
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001547 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1548 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1549 when building the library to change the default LCD filter to be
1550 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +00001551
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001552 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +00001553
David Turner8765c712006-11-10 16:49:42 +000015542006-11-10 David Turner <david@freetype.org>
1555
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001556 * src/smooth/ftsmooth.c: API change for the LCD
1557 filter. The FT_LcdFilter value is an enumeration describing which
1558 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1559 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1560 algorithm which produces strong color fringes for everything
1561 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +00001562
Werner Lemberg0d0d78d2006-11-14 10:37:10 +00001563 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1564 second parameter to an enum type.
1565
1566 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1567 (_ft_lcd_filter): Rename to...
1568 (_ft_lcd_filter_fir): This.
1569 Update parameters.
1570 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1571 (FT_Library_Set_LcdFilter): Update parameters.
1572 Handle new filter modes.
1573
1574 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1575 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1576 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1577 callback and update other fields.
1578
1579 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1580 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1581 Other minor improvements.
1582
1583 * src/autofit/aflatin.c: Various tiny improvements that drastically
1584 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1585 (af_latin_hints_compute_edges): Fix typo.
1586 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +00001587
David Turner4e9cc3c2006-11-09 16:31:52 +000015882006-11-09 David Turner <david@freetype.org>
1589
Werner Lemberg49c77a82006-11-09 21:51:57 +00001590 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1591 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +00001592
Werner Lemberg5e430892006-11-07 09:35:03 +000015932006-11-07 Zhe Su <james.su@gmail.com>
1594
1595 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1596 also.
1597
Werner Lemberg111b5ae2006-11-03 09:40:12 +000015982006-11-03 Werner Lemberg <wl@gnu.org>
1599
1600 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1601
David Turner40604742006-11-02 16:37:35 +000016022006-11-02 David Turner <david@freetype.org>
1603
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001604 Add a few tweaks to better handle serif fonts.
1605 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +00001606
Werner Lemberg111b5ae2006-11-03 09:40:12 +00001607 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1608 segments that are less than 1.5 pixels high. This gets rid of
1609 *many* corner cases with serifs.
1610 (af_latin_align_linked_edge): Add logging message.
1611 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1612 Add logging messages.
1613 Handle AF_EDGE_FLAG flag specially.
1614
1615 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1616 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1617
1618 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1619 Update external declarations.
1620 (af_corner_orientation, af_corner_is_flat): Replaced by...
1621
1622 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1623 ft_corner_is_flat): These declarations.
1624
1625 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1626 Comment out. Replaced by...
1627
1628 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1629 These functions. Update all callers.
1630 (FT_Add64) [!FT_LONG64]: Simplify.
1631
1632 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1633 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1634 production of garbage by missing lots of segments.
1635
1636 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1637
1638 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1639 [AF_DEBUG]: Set _af_debug_hints.
1640
1641
1642 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1643 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1644 and ft_corner_orientation.
1645
1646
1647 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +00001648
Werner Lemberge88c5262006-10-24 05:46:26 +000016492006-10-24 Werner Lemberg <wl@gnu.org>
1650
1651 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1652
1653 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1654 as argument.
1655
David Turnera1861392006-10-23 16:00:59 +000016562006-10-23 Zhe Su <zsu@novell.com>
1657
Werner Lemberg715e96e2006-10-24 05:28:45 +00001658 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1659 better deal with broken Asian fonts with strange glyphs, having
1660 self-intersections and other peculiarities. The used algorithm is
1661 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +00001662
David Turnere140f142006-10-23 08:56:57 +000016632006-10-23 David Turner <david@freetype.org>
1664
Werner Lemberg715e96e2006-10-24 05:28:45 +00001665 Speed up the CFF font loader. With some large CFF fonts,
1666 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +00001667
Werner Lemberg715e96e2006-10-24 05:28:45 +00001668 * src/cff/cffload.c (cff_get_offset): Removed.
1669 (cff_new_index): Inline functionality of `cff_get_offset'.
1670 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1671 (cff_charset_done): Call `cff_charset_free_cids'.
1672 (cff_charset_load): Call `cff_charset_compute_cids'.
1673 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1674
1675 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1676 with FT_NEXT_XXX.
1677
1678
1679 Speed up the Postscript hinter, with more than 100% speed increase
1680 on my machine.
1681
1682 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1683 psh_corner_orientation): New functions.
1684 (psh_glyph_compute_inflections): Merge loops for efficiency.
1685 Use `psh_corner_orientation'.
1686 (psh_glyph_init): Use `psh_corner_is_flat'.
1687 (psh_hint_table_find_strong_point): Renamed to...
1688 (psh_hint_table_find_strong_points): This.
1689 Rewrite, adding argument to handle all points at once.
1690 Update all callers.
1691 (PSH_MAX_STRONG_INTERNAL): New macro.
1692 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +00001693
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +000016942006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1695
1696 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +00001697 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00001698
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +000016992006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1700
1701 * docs/INSTALL.CROSS: New document file for cross-building.
1702
1703 * builds/unix/configure.raw: Preliminary cross-building support.
1704 Find native C compiler and pass it by CC_BUILD, and
1705 find suffix for native executable and pass it by EXEEXT_BUILD.
1706 Also suffix for target executable is passed by EXEEXT.
1707
Werner Lembergb9e6d692006-10-15 08:58:40 +00001708 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1709 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001710 CC_BUILD and EXEEXT_BUILD.
1711
Werner Lembergb9e6d692006-10-15 08:58:40 +00001712 * builds/exports.mk (APINAMES_EXE): Change the extension for
1713 apinames from the suffix for target (E) to that for building host
1714 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001715
Werner Lemberg82a07e92006-10-12 06:20:44 +000017162006-10-12 Werner Lemberg <wl@gnu.org>
1717
1718 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1719 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1720 which reference those files.
1721
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000017222006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1723
Werner Lembergb9e6d692006-10-15 08:58:40 +00001724 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1725 embedded in freetype2.pc and freetype-config. Use it to record
1726 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001727
1728 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1729
1730 * builds/unix/freetype-config.in: Ditto.
1731
Werner Lemberg28e17d92006-10-11 17:27:47 +000017322006-10-11 Werner Lemberg <wl@gnu.org>
1733
1734 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1735 development.
1736
Jens Claudius336d2292006-10-03 08:53:37 +000017372006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1738
1739 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1740 argument to ft_setjmp.
1741
1742 * include/freetype/internal/ftvalid.h: Add comment that
1743 ft_validator_run must not be used.
1744
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017452006-10-01 Werner Lemberg <wl@gnu.org>
1746
1747 * src/base/ftbase.c: Undo change from 2006-09-30.
1748
1749 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1750
17512006-09-30 David Turner <david@freetype.org>
1752
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001753 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1754 s/unpatented_hinting/ignore_unpatented_hinter/.
1755 Update all callers.
1756
1757 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1758 auto-hinting shall be used or not.
1759
1760 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001761
Werner Lemberg2863cfa2006-10-01 17:04:00 +000017622006-09-30 Werner Lemberg <wl@gnu.org>
1763
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001764 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1765 in use).
1766
1767 * src/base/ftbase.c: Include `ftlcdfil.c'.
1768
Werner Lemberg9b15ea32006-09-29 18:22:11 +000017692006-09-29 Werner Lemberg <wl@gnu.org>
1770
1771 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1772 overlapping segments. Bug reported by Stefan Koch.
1773
David Turnerad830712006-09-27 16:20:59 +000017742006-09-28 David Turner <david@freetype.org>
1775
Werner Lemberg2c002e12006-09-29 21:31:53 +00001776 Fix a bug in the automatic unpatented hinting support which prevents
1777 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001778
Werner Lemberg2c002e12006-09-29 21:31:53 +00001779 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1780 s/force_autohint/unpatented_hinting/. Update all callers.
1781
1782 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1783
1784 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001785
David Turner8a317cf2006-09-27 07:52:48 +000017862006-09-27 David Turner <david@freetype.org>
1787
Werner Lemberg2c002e12006-09-29 21:31:53 +00001788 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001789
David Turner8a317cf2006-09-27 07:52:48 +00001790
David Turnere140f142006-10-23 08:56:57 +00001791 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001792 In a default build, the function `FT_Library_SetLcdFilter' returns
1793 `FT_Err_Unimplemented_Feature'; you need to #define
1794 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1795 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001796
Werner Lemberg2c002e12006-09-29 21:31:53 +00001797 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001798
Werner Lemberg2c002e12006-09-29 21:31:53 +00001799 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1800 typedef.
1801 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1802 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001803
Werner Lemberg2c002e12006-09-29 21:31:53 +00001804 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1805 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001806
Werner Lemberg2c002e12006-09-29 21:31:53 +00001807 Handle subpixel rendering.
1808 Simplify function.
1809 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1810 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1811
1812 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1813 pointing to <freetype/ftlcdfil.h>.
1814
1815 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1816 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1817
1818 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001819
Werner Lemberge20df4a2006-09-27 06:29:21 +000018202006-09-26 David Bustin
1821
1822 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1823 correctly. Reported as Savannah bug #17843.
1824
David Turner6f8c6222006-09-26 15:42:44 +000018252006-09-26 David Turner <david@freetype.org>
1826
Werner Lemberg110246c2006-09-26 21:55:44 +00001827 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1828 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1829 horizontal and vertical hinting for the purpose of debugging the
1830 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001831
Werner Lemberg110246c2006-09-26 21:55:44 +00001832 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1833 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001834
Werner Lemberg110246c2006-09-26 21:55:44 +00001835 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1836
1837 * include/freetype/config/ftoption.h, devel/ftoption.h
1838 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1839 we want to compile LCD-optimized rendering code (à la ClearType) or
1840 not. The macro *must* be disabled in default builds of the library
1841 for patent reasons.
1842
1843 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1844 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1845 isn't defined at compile time. This only changes the content of the
1846 rendered glyph to match the one of normal gray-level rendering,
1847 hence clients should not need to be modified.
1848
1849 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001850
Werner Lemberg745ff2c2006-09-19 05:48:02 +000018512006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1852
1853 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1854 LWFN fails and both are available.
1855
David Turnerf3050052006-09-11 12:00:32 +000018562006-09-11 David Turner <david@freetype.org>
1857
Werner Lembergf9644552006-09-12 13:48:10 +00001858 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1859 report their English names through an Apple Roman
1860 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001861
Werner Lembergf9644552006-09-12 13:48:10 +00001862 If the font uses another name entry with language_id == English, it
1863 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001864
Werner Lembergf9644552006-09-12 13:48:10 +00001865 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1866 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001867
Werner Lemberg36d2eab2006-09-05 19:24:34 +000018682006-09-05 Werner Lemberg <wl@gnu.org>
1869
1870 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001871 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001872 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1873 `HAN NOM B.ttf').
1874
1875 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1876
David Turner772e55d2006-09-05 09:45:15 +000018772006-09-05 David Turner <david@freetype.org>
1878
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001879 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001880
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001881 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1882 (TRaster): Remove `count_ex' and `count_ey'.
1883 (gray_find_cell): Remove 2nd and 3rd argument.
1884 (gray_alloc_cell): Merged with `gray_find_cell'.
1885 (gray_record_cell): Simplify.
1886 (gray_set_cell): Rewrite.
1887 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1888 (gray_render_span): Don't use FT_MEM_SET for small values.
1889 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1890 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1891 bitmap scanline.
1892 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001893
David Turneraa557a92006-09-04 16:42:44 +000018942006-09-04 David Turner <david@freetype.org>
1895
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001896 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1897 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001898
Werner Lemberg2d8629b2006-09-03 06:18:45 +000018992006-09-03 Werner Lemberg <wl@gnu.org>
1900
1901 * devel/ftoption.h: Synchronize with
1902 include/freetype/config/ftoption.h.
1903
1904 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1905 variable declaration.
1906 (gray_convert_glyph): Fix compiler warnings.
1907
David Turner6d79f212006-09-01 14:09:35 +000019082006-09-01 David Turner <david@freetype.org>
1909
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001910 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1911 to recognize a few fonts that require the automatic unpatented
1912 loader.
David Turnerbd502952006-09-01 19:05:24 +00001913
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001914 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1915 rasterizer. The speed improvement is between 15% and 25%, depending
1916 on the font data.
1917
1918 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1919 (TCell): Redefine.
1920 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1921 (gray_init_cells): Updated.
1922 (gray_find_cell, gray_alloc_cell): New functions.
1923 (gray_record_cell): Rewritten to use `gray_find_cell' and
1924 `gray_alloc_cell'.
1925 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1926 QSORT_THRESHOLD):
1927 Removed.
1928 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1929 gray_dump_cells): Removed.
1930 (gray_sweep): Rewritten.
1931 (gray_convert_glyph): Rewrite code which used one of the sorting
1932 functions.
1933 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001934
Werner Lembergd898aed2006-08-29 09:50:34 +000019352006-08-29 Dr. Werner Fink <werner@suse.de>
1936
1937 * configure: Make it possible to handle configure options which
1938 have strings containing spaces.
1939
19402006-08-27 David Turner <david@freetype.org>
1941
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001942 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1943 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1944 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1945
1946 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1947 src/truetype/truetype.c, src/truetype/ttdriver.c,
1948 src/truetype/ttgload.c, src/truetype/ttgload.h,
1949 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1950 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1951 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1952
1953 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1954 member `force_autohint'.
1955
1956 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1957
1958 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1959 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001960
Jens Claudiusa787f452006-08-27 11:26:18 +000019612006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1962
1963 Fix miscellaneous compiler warnings.
1964
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001965 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1966 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001967
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001968 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1969 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1970 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001971
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001972 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1973 volatileness of argument to ft_longjmp. Spotted by Werner
1974 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001975
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001976 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1977 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001978
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001979 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1980 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001981
Werner Lembergc4c35b72006-08-27 08:03:46 +000019822006-08-27 Werner Lemberg <wl@gnu.org>
1983
1984 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1985 Reported by Jens.
1986
Jens Claudius088e44e2006-08-22 14:24:30 +000019872006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001988
Jens Claudius088e44e2006-08-22 14:24:30 +00001989 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001990 about addresses of volatile objects passed as function arguments as
1991 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001992
Werner Lembergc4c35b72006-08-27 08:03:46 +00001993 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1994 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001995
1996 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1997 argument `table' a pointer to a volatile object.
1998
1999 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
2000 argument `table' a pointer to a volatile object.
2001
Jens Claudius2652bd52006-08-18 17:20:37 +000020022006-08-18 Jens Claudius <jens.claudius@yahoo.com>
2003
2004 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
2005 variable `_sfnt' as volatile since it must keep its value across
2006 a call to ft_setjmp.
2007 (gxv_validate): Same for local variables `memory' and `valid'.
2008 (classic_kern_validate): Same for local variables `memory',
2009 `ckern', and `valid'.
2010
2011 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
2012 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
2013 `jstf', and 'valid'.
2014
2015 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
2016 local variable `cmap'.
2017
David Turner9fbfc6a2006-08-16 09:11:31 +000020182006-08-16 David Turner <david@freetype.org>
2019
Werner Lemberg12342992006-08-19 11:18:09 +00002020 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
2021 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00002022
Werner Lemberg12342992006-08-19 11:18:09 +00002023 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
2024 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00002025
David Turner33f5f242006-08-16 16:50:55 +00002026
Werner Lemberg12342992006-08-19 11:18:09 +00002027 Improvements to native TrueType hinting. This is a first try,
2028 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
2029
2030 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
2031 `extra_points2'.
2032
2033 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
2034 `orus'.
2035
2036 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
2037 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
2038 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
2039 handle `extra_points2'.
2040
2041 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2042 Remove compiler warning.
2043 (cur_to_arg): Remove macro.
2044 (TT_Hint_Glyph): Updated.
2045 (TT_Process_Simple_Glyph): Handle `orus'.
2046
2047 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2048 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2049 (LOC_Ins_IUP): Renamed to...
2050 (IUP_WorkerRec): This.
2051 Add `orus' member.
2052 (Shift): Renamed to...
2053 (_iup_worker_shift): This.
2054 Updated.
2055 (Interp): Renamed to...
2056 (_iup_worker_interpolate): This.
2057 Updated to handle `orus'.
2058 (Ins_IUP): Updated.
2059
2060 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2061 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00002062
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000020632006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2064
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002065 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00002066 build ftvalid in ft2demos. This has been inadvertedly changed
2067 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00002068
20692006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2070
Werner Lemberg12342992006-08-19 11:18:09 +00002071 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2072 Jens:
2073 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002074
Werner Lemberg12342992006-08-19 11:18:09 +00002075 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2076 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00002077
2078 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2079
Jens Claudius9950adc2006-08-13 12:14:36 +000020802006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2081
Werner Lemberg12342992006-08-19 11:18:09 +00002082 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2083 T1_TOKEN_TYPE_KEY.
2084 (T1_FieldRec): Add `dict'.
2085 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2086 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2087 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00002088
Werner Lemberg12342992006-08-19 11:18:09 +00002089 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2090 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002091
2092 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2093
2094 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00002095 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2096 not T1_TOKEN_TYPE_ANY.
2097 (ps_parser_load_field): Make sure a token that should be a string or
2098 name is really a string or name.
2099 Avoid memory leak if a keyword has been already encountered and its
2100 value is overwritten.
2101 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2102 T1_FIELD_XXX.
2103 (parse_dict): Ignore keywords that occur in the wrong dictionary
2104 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00002105
Werner Lemberg12342992006-08-19 11:18:09 +00002106 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2107 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002108
Werner Lemberg12342992006-08-19 11:18:09 +00002109 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2110 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00002111
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000021122006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2113
2114 Move creation of field `buildchar' of T1_DecoderRec out of
2115 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2116 of it.
2117
2118 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2119 and `T1_Compute_Max_Advance'.
2120
2121 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2122 Remove field `face', add `len_buildchar'.
2123
2124 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2125 field `buildchar'.
2126
2127 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2128 finisher for T1_Decoder.
2129 (cid_slot_load_glyph): Do not ignore failure when initializing the
2130 T1_Decoder.
2131
2132 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2133 Updated.
2134 (t1_decoder_init): Remove initialization of fields `buildchar' and
2135 `len_buildchar'.
2136 (t1_decoder_done): Remove deallocation of field `buildchar'.
2137
2138 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2139 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2140 T1_Decoder.
2141 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2142 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2143 case of error.
2144
2145 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2146 `buildchar' of T1_FaceRec.
2147
2148 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2149 `buildchar' of T1_FaceRec.
2150
Werner Lemberg1a380e02006-07-14 18:28:08 +000021512006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2152
2153 * freetype2/include/freetype/internal/psaux.h: New macros
2154 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2155 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2156 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2157 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2158 (T1_DecoderRec): New fields `buildchar' and `face'.
2159 (IS_PS_TOKEN): New macro.
2160
2161 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2162 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2163
2164 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2165 `default_design_vector' and `num_default_design_vector'.
2166
2167 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2168 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2169 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2170
2171 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2172 `token' argument to be NULL if we want only to count the number of
2173 tokens.
2174 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2175 want to skip the array.
2176 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2177 want to skip the array.
2178
2179 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2180 support for (partially commented out) othersubrs 19-25, 27, and 28.
2181 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2182 (t1_decoder_done): Release new field `buildchar'.
2183
2184 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2185 functions.
2186 (t1_keywords): Register them.
2187 (t1_allocate_blend): Updated.
2188 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2189 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2190 (parse_dict): Remove `keyword_flags' argument.
2191 Use new macro IS_PS_TOKEN.
2192 Changed function so that later PostScript definitions override
2193 earlier ones.
2194 (t1_init_loader): Initialize new field `keywords_encountered'.
2195 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2196 `len_buildchar'.
2197 Remove `keywords_flags'.
2198
2199 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2200 `keywords_encountered'.
2201 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2202
2203 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2204 New entries for parsing /NDV, /CDV, and /DesignVector.
2205
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000022062006-07-07 Werner Lemberg <wl@gnu.org>
2207
2208 Add many checks to protect against malformed PCF files.
2209
2210 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2211 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2212
2213 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2214 data and check that tables don't overlap (using a simple
2215 bubblesort).
2216 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2217 New macros which give the size of data structures in the data
2218 stream.
2219 (pcf_get_properties): Use rough estimates to get array size limits.
2220 Assign `face->nprops' and `face->properties' earlier so that a call
2221 to PCF_Face_Done can do the clean-up in case of error.
2222 Protect against invalid string offsets.
2223 (pcf_get_metrics): Clean up code.
2224 Adjust tracing message levels.
2225 Use rough estimate to get array size limit.
2226 (pcf_get_bitmaps): Clean up code.
2227 Adjust tracing message levels.
2228 Use rough estimates to get offset limits.
2229 (pcf_get_encodings): Adjust tracing message level.
2230 (pcf_get_accel): Clean up code.
2231
Werner Lemberg8eb05252006-06-27 06:20:01 +000022322006-06-26 Werner Lemberg <wl@gnu.org>
2233
2234 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2235 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2236
Werner Lemberg24703f82006-06-26 19:12:51 +000022372006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2238
2239 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2240 (t1_decoder_parse_charstrings): Operator with
2241 opcode 15 pops its two arguments.
2242 Handle the case where the pops of an othersubr may be part of a
2243 subroutine.
2244 Handle unknown othersubrs gracefully: count their operands and let
2245 the following pop operators push the operands as the results onto
2246 the Type1 stack.
2247 Improve handling of setcurrentpoint opcode.
2248
Werner Lembergc011f4c2006-06-26 09:40:00 +000022492006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2250
2251 The Type 1 parser now skips over top-level procedures as required
2252 for a `Simplified Parser'. This makes the parser more robust as it
2253 doesn't poke around in PostScript code. Additionally, it makes the
2254 FontDirectory hackery in src/type1/t1load.c unnecessary.
2255
2256 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2257 (skip_literal_string): Add FT_Error as return value.
2258 Handle escapes better.
2259 (skip_string): Add FT_Error as return value.
2260 Don't set `parser->error' but return error code directly.
2261 (skip_procedure): New function.
2262 (ps_parser_skip_PS_token): Handle procedures.
2263 Update code.
2264 (ps_parser_to_token): Update code.
2265 (ps_parser_load_field_table): Handle bbox entries also.
2266
2267 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2268 Add commented-out code for synthetic fonts.
2269
Werner Lemberga2da05c2006-06-25 06:27:27 +000022702006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2271
2272 Fix two hinting bugs as reported in
2273 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2274
2275 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2276 `first_point' member.
2277
2278 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2279 `first_point'.
2280 (TT_Process_Composite_Glyph): Always untouch points.
2281
2282 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2283 `first_point' and `last_point' in case of composite glyphs.
2284 (Ins_IUP): Fix computation of `end_point'.
2285
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000022862006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2287
Werner Lembergef3d2c22006-06-25 06:07:14 +00002288 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2289 Mac. The original patch was written by David Sachitano and Lawrence
2290 Coopet, and modified by Sean McBride for MPW compatibility. Only
2291 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002292
Werner Lembergef3d2c22006-06-25 06:07:14 +00002293 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2294 Mac OS X platforms.
2295 (OS_INLINE): Undefine before definition.
2296 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2297 FontAssociation table in FOND resource.
2298 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2299 and fontSize at each entry of FontAssociation table in FOND
2300 resource.
2301 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2302 ffStylOff of FamilyRecord header of FOND resource, the header,
2303 fontSize, fontID at each entry of FontAssociation table, and
2304 StyleMapping table.
2305 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00002306
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000023072006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2308
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002309 Public API of TrueTypeGX, OpenType, and classic kern table validator
2310 should return `FT_Err_Unimplemented_Feature' if validation service
2311 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00002312 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002313 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2314
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002315 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2316 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2317 unavailable.
2318 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2319 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002320
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00002321 * src/base/ftotval.c (FT_OpenType_Validate): Return
2322 FT_Err_Unimplemented_Feature if OpenType validation service is
2323 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00002324
Werner Lembergb10e45a2006-06-08 07:32:56 +000023252006-06-08 Werner Lemberg <wl@gnu.org>
2326
2327 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2328 errors.
2329
David Turner5f1f7502006-06-07 05:11:50 +000023302006-06-07 David Turner <david@freetype.org>
2331
Werner Lemberg7d48cb02006-06-08 06:00:08 +00002332 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2333 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2334 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00002335
David Turner457b4a82006-06-06 08:14:14 +000023362006-06-06 David Turner <david@freetype.org>
2337
Werner Lemberg4836f952006-06-06 12:54:08 +00002338 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00002339
Werner Lemberg4836f952006-06-06 12:54:08 +00002340 We change `ps_unicodes_init' so that it also takes a
2341 `free_glyph_name' callback to release the glyph names returned by
2342 `get_glyph_name'
2343
2344 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2345 Renamed to ...
2346 (PS_GetGlyphNameFunc): This.
2347 (PS_FreeGlyphNameFunc): New typedef.
2348 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2349
2350 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2351 argument.
2352 (cff_sid_free_glyph_name): New function.
2353 (cff_cmap_unicode_init): Updated.
2354
2355 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2356
2357 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2358 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00002359
2360
David Turner09717352006-06-04 14:33:08 +000023612006-06-04 David Turner <david@freetype.org>
2362
Werner Lembergd724f202006-06-04 15:17:41 +00002363 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2364 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00002365 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00002366
Werner Lembergd724f202006-06-04 15:17:41 +00002367 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2368 of `face->num_glyphs' which missed the last glyph, due to
2369 the offset-by-1 computation, since the PFR format doesn't
2370 guarantee that glyph index 0 corresponds to the `missing
2371 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00002372
Werner Lemberg33779662006-05-26 06:30:05 +000023732006-05-25 Werner Lemberg <wl@gnu.org>
2374
2375 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2376 `-no-undefined'. Reported by Christian Biesinger.
2377
Werner Lemberg24773d62006-05-20 08:53:13 +000023782006-05-19 Brian Weed <bw@imaginengine.com>
2379
2380 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2381 have debug information, and debug libraries use `C7 compatible'
2382 debug info.
2383
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000023842006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2385
Werner Lemberga6523a62006-05-20 08:47:01 +00002386 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00002387 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002388
Werner Lemberga6523a62006-05-20 08:47:01 +00002389 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2390 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002391
2392 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00002393 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00002394
23952006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2396
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00002397 * build/unix/configure.raw: Add a fallback to disable Carbon
2398 dependency, if configured with no options on Mac OS X.
2399
24002006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2401
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002402 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00002403 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00002404 the second part of Savannah bug #16590.
2405
Werner Lemberg545c4e52006-05-17 22:55:04 +000024062006-05-18 Werner Lemberg <wl@gnu.org>
2407
2408 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2409 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2410
David Turnerdc3ff312006-05-17 12:59:35 +000024112006-05-17 David Turner <david@freetype.org>
2412
Werner Lemberg545c4e52006-05-17 22:55:04 +00002413 This is a major patch used to drastically improve the performance of
2414 loading glyphs. This both speeds up loading the glyph vectors
2415 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00002416
Werner Lemberg545c4e52006-05-17 22:55:04 +00002417 We now use inline assembler code with GCC to implement `FT_MulFix',
2418 which is probably the most important function related to the
2419 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00002420
Werner Lemberg545c4e52006-05-17 22:55:04 +00002421 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00002422
2423
Werner Lemberg545c4e52006-05-17 22:55:04 +00002424 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2425 `cursor' and `limit'.
2426
2427 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2428 New functions.
2429 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2430 [TEST]: Remove.
2431
2432 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2433 code.
2434
2435 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2436 `FT_ZERO'
2437 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2438 (af_glyph_hints_reload: Rewrite recognition of weak points.
2439
2440 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2441 constant values out of the loops.
2442
2443 * src/autofit/aftypes.h: Updated.
2444
2445 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2446
2447 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2448 product to get orientation.
2449
2450 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2451 (FT_Stream_OpenGzip): Use it to handle small files directly in
2452 memory.
2453
2454 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2455 Improve performance.
2456
2457 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2458 `limit'.
2459
2460 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2461 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2462 exceedingly large values of number of contours. Speed up by
2463 reducing the number of loops.
2464
2465 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2466
2467
2468 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2469 used to detect rogue clients from 4 to 16. This is to prevent some
2470 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2471 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00002472
Werner Lembergde2d90a2006-05-17 08:54:30 +000024732007-05-17 Werner Lemberg <wl@gnu.org>
2474
2475 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00002476 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00002477
24782006-05-16 Werner Lemberg <wl@gnu.org>
2479
2480 * docs/PROBLEMS: Updated icl issues.
2481
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002482----------------------------------------------------------------------------
2483
Werner Lemberg42b63b22007-01-21 21:01:33 +00002484Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002485David Turner, Robert Wilhelm, and Werner Lemberg.
2486
2487This file is part of the FreeType project, and may only be used, modified,
2488and distributed under the terms of the FreeType project license,
2489LICENSE.TXT. By continuing to use, modify, or distribute this file you
2490indicate that you have read the license and understand and accept it
2491fully.
2492
2493
2494Local Variables:
2495version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00002496coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00002497End: