blob: d6ac3bca547250edb997f024b67e827165618ad8 [file] [log] [blame]
David Turner2c4500e2007-02-14 15:08:47 +000012007-02-14 David Turner <david@freetype.org>
2
Werner Lemberg3cd6cc22007-02-16 08:10:17 +00003 It seems that the following changes fix most of the known
4 interpreter problems with my fonts, but more testing is needed,
5 though.
6
7 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
8 (TT_MulFix14): Rewrite.
9 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
10 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000011
Werner Lembergc6a14082007-02-12 22:08:15 +0000122007-02-12 Werner Lemberg <wl@gnu.org>
13
14 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
15 warnings.
16
17 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
18 (bdf_interpret_style): Ditto.
19
David Turnerc0f9c4a2007-02-12 14:55:03 +0000202007-02-12 David Turner <david@freetype.org>
21
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000022 Simplify projection and dual-projection code interface.
23
Werner Lemberg406d25f2007-02-12 22:01:18 +000024 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
25 FT_Vector' as argument type.
26 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
27 Updated.
28 (CUR_fast_project, CUR_fast_dualproj): New macros.
29 (Project, Dual_Project, Project_x, Project_y): Updated.
30 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
31 macros.
32
33
34 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
35 adjustments for the non-light auto-hinted modes. Gets rid of
36 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000037
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000038 * src/autofit/aflatin.c (af_latin_hints_link_segments,
39 af_latin_hints_compute_edges): Slight optimization of the segment
40 linker and better handling of serif segments to get rid of broken
41 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000042
David Turnerc0f9c4a2007-02-12 14:55:03 +000043
Werner Lemberg442bfb82007-02-12 21:44:10 +000044 Introduce new string functions and the corresponding macros to get
45 rid of various uses of strcpy and other `evil' functions, as well as
46 to simplify a few things.
47
48 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
49 ft_mem_strcpyn): New declarations.
50 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
51 macros.
52 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
53 functions.
54
55 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
56 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
57 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
58 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
59 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
60 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
61 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
62 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +000063
Werner Lemberg406d25f2007-02-12 22:01:18 +000064 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
65
Werner Lemberg582067d2007-02-11 15:03:05 +0000662007-02-11 Werner Lemberg <wl@gnu.org>
67
68 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
69 non-spacing glyphs.
70
Werner Lemberg8f474532007-02-07 08:31:01 +0000712007-02-07 Tom Parker <palfrey@tevp.net>
72
73 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
74 pointer.
75
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000762007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
77
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000078 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
79 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +000080 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000081 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
82 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
83 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
84 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +000085
86 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
87 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000088 * builds/mac/ftmac.c: Ditto.
89
902007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
91
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +000092 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +000093 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +000094 #include <ftmac.c>.
95
962007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
97
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +000098 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
99 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
100 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
101 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
102 FT_GetFilePath_From_Mac_ATS_Name.
103 * builds/mac/ftmac.c: Ditto.
104
1052007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
106
Werner Lembergdcbb7082007-02-08 08:54:09 +0000107 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000108 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
109 for passing to FT_New_Face_From_FSSpec.
110
1112007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
112
Werner Lembergdcbb7082007-02-08 08:54:09 +0000113 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000114 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000115
116 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
117 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000118 * builds/mac/ftmac.c (OS_INLINE): Ditto.
119
Werner Lemberg313d7772007-02-01 08:10:45 +00001202007-02-01 Werner Lemberg <wl@gnu.org>
121
122 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
123 Explain why applications shouldn't use it. Found by Alexei.
124
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001252007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000126
127 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
128 message.
129
130 * src/gxvalid/gxvmort1.c
131 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
132 message.
133
Werner Lemberg53935932007-01-31 08:53:02 +00001342007-01-31 Werner Lemberg <wl@gnu.org>
135
136
137 * Version 2.3.1 released.
138 =========================
139
140
141 Tag sources with `VER-2-3-1-FINAL'.
142
143 * builds/win32/visualc/freetype.dsp,
144 builds/win32/visualc/freetype.vcproj: s/230/231/.
145 * builds/win32/visualc/index.html: s/221/231/.
146
147 * vms_make.com: Add `ftgasp'.
148
David Turnera7ee6082007-01-30 10:33:53 +00001492007-01-30 David Turner <david@freetype.org>
150
Werner Lemberg53935932007-01-31 08:53:02 +0000151 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000152
Werner Lemberg53935932007-01-31 08:53:02 +0000153 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000154
Werner Lemberg53935932007-01-31 08:53:02 +0000155 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
156 s/2.3.0/2.3.1/.
157
158 * builds/unix/configure.raw (version_info): Set to 9:12:3.
159
160
161 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
162 (af_loader_load_g): Disable the warper (i.e., the light hinting
163 improvements) to make a 2.3.1 bugfix release before introducing a
164 new feature. This should give us more time to tune and improve the
165 warper for the next release.
166
167 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000168
David Turnerd91eebd2007-01-26 15:05:41 +00001692007-01-25 David Turner <david@freetype.org>
170
Werner Lembergbf241762007-01-26 16:08:49 +0000171 For light auto-hinting, improve glyph advance widths and resurrect
172 normal/full hinting to its normal quality.
173
174 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
175 and `xmax_delta'.
176 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
177 and `xmax_delta'.
178
179 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
180 preprocessor conditional with if-clause, handling both light and
181 normal mode.
182
183 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
184 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000185
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00001862007-01-25 Werner Lemberg <wl@gnu.org>
187
188 * docs/release: Updated -- Savannah uses a new uploading scheme.
189
David Turnera42567b2007-01-25 12:23:37 +00001902007-01-25 David Turner <david@freetype.org>
191
Werner Lembergd7855662007-01-25 13:53:56 +0000192 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000193
Werner Lembergd7855662007-01-25 13:53:56 +0000194 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
195 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
196 functions.
David Turnera42567b2007-01-25 12:23:37 +0000197
Werner Lembergd7855662007-01-25 13:53:56 +0000198 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000199
Werner Lembergb1be9e82007-01-25 11:50:00 +00002002007-01-25 Werner Lemberg <wl@gnu.org>
201
202 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000203 correctly in a sanity check. Since this function is only used to
204 load local and global functions, any charstring that called the last
205 local/global function would fail otherwise. This fixes Savannah bug
206 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000207
208 * docs/CHANGES: Document it.
209
David Turnerb6de8d12007-01-23 15:51:50 +00002102007-01-23 David Turner <david@freetype.org>
211
Werner Lembergb1be9e82007-01-25 11:50:00 +0000212 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
213 prevented compilation when disabling both the unpatented and the
214 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000215
Werner Lembergb1be9e82007-01-25 11:50:00 +0000216
217 Fix and enable the warper to improve `light' hinting mode. This is
218 not necessarily a final version, but it seems to work well.
219
220 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
221 Disable code.
222 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
223 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
224
225 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
226 (af_warper_compute_line_best): Fix array size of `scores'.
227 (af_warper_compute): Better handling of border cases.
228 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
229 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000230
Werner Lemberg011d1112007-01-21 09:36:00 +00002312007-01-21 Werner Lemberg <wl@gnu.org>
232
Werner Lemberg42b63b22007-01-21 21:01:33 +0000233 * ChangeLog: Split off older entries into...
234 * ChangeLog.22: This new file.
235
2362007-01-21 Werner Lemberg <wl@gnu.org>
237
Werner Lemberg555258f2007-01-21 09:46:37 +0000238 * docs/CHANGES: Document SHZ fix.
239
2402007-01-21 George Williams <gww@silcom.com>
241
242 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
243 points.
244
2452007-01-21 Werner Lemberg <wl@gnu.org>
246
Werner Lemberg011d1112007-01-21 09:36:00 +0000247 * src/sfnt/ttmtx.c (tt_face_get_metrics)
248 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
249
Werner Lemberg87a5a432007-01-17 12:44:39 +00002502007-01-17 Werner Lemberg <wl@gnu.org>
251
Werner Lembergb8003292007-01-17 12:56:25 +0000252
253 * Version 2.3.0 released.
254 =========================
255
256
257 Tag sources with `VER-2-3-0-FINAL'.
258
2592007-01-17 Werner Lemberg <wl@gnu.org>
260
Werner Lemberg87a5a432007-01-17 12:44:39 +0000261 * docs/release: Updated.
262
David Turner22122722007-01-16 20:06:44 +00002632007-01-16 David Turner <david@freetype.org>
264
Werner Lemberg87a5a432007-01-17 12:44:39 +0000265 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
266 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
267 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
268 warnings.
David Turner22122722007-01-16 20:06:44 +0000269
Werner Lemberg267e1d72007-01-15 07:48:09 +00002702007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
271
272 * builds/amiga/makefile, builds/amiga/makefile.os4,
273 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
274
275 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
276
Werner Lemberg8c4120d2007-01-15 06:42:40 +00002772007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
278
279 Fix various compiler warnings.
280
281 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
282 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
283 s/index/strike_index/.
284 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
285
286 * src/gxvalid/gxvmorx5.c
287 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
288
289 * src/truetype/ttinterp.c (Compute_Point_Displacement),
290 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
291 uninitialized variables.
292
Werner Lemberg6164a9d2007-01-13 23:01:36 +00002932007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
294
295 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
296
Werner Lemberg281c1482007-01-13 22:50:51 +00002972007-01-13 Werner Lemberg <wl@gnu.org>
298
299 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
300 versions up to 0x3FF without complaining.
301
Werner Lembergac250b22007-01-13 14:01:36 +00003022007-01-13 Derek Clegg <dclegg@apple.com>
303
304 Add FT_Get_PS_Font_Info interface to CFF driver.
305
306 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
307 (CFF_FontRec): Add `font_info' field.
308
309 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
310 (cff_font_done): Free font->font_info if necessary.
311
312 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
313 (cff_service_ps_info): Register cff_ps_get_font_info.
314
Werner Lemberg23df31a2007-01-13 08:45:00 +00003152007-01-13 Werner Lemberg <wl@gnu.org>
316
317 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
318 with C++ compiler.
319
320 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
321 af_glyph_hints_dump_edges): Ditto.
322
323 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
324 `modules.cfg').
325
326 * src/sfnt/ttsbit0.h: Remove.
327
328 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
329
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003302007-01-12 David Turner <david@freetype.org>
331
332 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
333 bug in the bitmap emboldener if the pitch of the source bitmap is
334 much larger than its width.
335
336 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
337 compilation warning.
338
Werner Lemberg6d96d312007-01-12 10:30:19 +00003392007-01-12 Werner Lemberg <wl@gnu.org>
340
341 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
342 `automake' CVS module from sources.redhat.com.
343
Werner Lemberg17432b52007-01-12 09:28:44 +00003442007-01-11 Werner Lemberg <wl@gnu.org>
345
346 * src/type1/t1load.c (is_space): Removed.
347 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
348 (parse_charstrings): Use IS_PS_TOKEN.
349
350
351 * autogen.sh: Avoid bash specific syntax.
352
David Turner038ace22007-01-11 15:00:59 +00003532007-01-11 David Turner <david@freetype.org>
354
Werner Lemberg17432b52007-01-12 09:28:44 +0000355 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000356
Werner Lemberg17432b52007-01-12 09:28:44 +0000357 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000358
Werner Lemberg17432b52007-01-12 09:28:44 +0000359 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
360 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000361 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000362
Werner Lemberg17432b52007-01-12 09:28:44 +0000363 * autogen.sh: Small fix to get it working on Mac OS X properly:
364 The issue is that GNU libtool is called `glibtool' on this platform,
365 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000366
David Turner2628ea92007-01-10 13:15:56 +00003672007-01-10 David Turner <david@freetype.org>
368
Werner Lemberg17432b52007-01-12 09:28:44 +0000369 * all-sources: Tag all sources with VER-2-3-0-RC1 and
370 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000371
Werner Lemberg17432b52007-01-12 09:28:44 +0000372 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
373 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
374 version number to 2.3.0.
375
376 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
377 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000378
379 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000380 include/freetype/ftlcdfil.h: Update reference documentation with
381 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000382
Werner Lemberg17432b52007-01-12 09:28:44 +0000383 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
384 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000385
Werner Lembergbf02d392007-01-10 07:07:37 +00003862007-01-10 Derek Clegg <dclegg@apple.com>
387
388 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
389 values.
390
David Turnerf48b60e2007-01-08 15:15:32 +00003912007-01-08 David Turner <david@freetype.org>
392
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000393 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000394
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000395 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
396 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000397 corresponding to a given character pixel size.
398
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000399 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
400 `gasp' table, in order to avoid potential problems with later
401 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000402
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000403 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
404 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000405
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000406 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
407 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
408 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
409 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000410
Werner Lemberge6b6f372007-01-07 00:06:47 +00004112007-01-07 Werner Lemberg <wl@gnu.org>
412
Werner Lembergb8004d22007-01-07 09:13:38 +0000413 * src/cid/cidparse.c (cid_parser_new): Improve error message for
414 Type 11 fonts.
415 Scan for `/sfnts' token.
416
4172007-01-07 Werner Lemberg <wl@gnu.org>
418
419 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000420
Werner Lembergbe5f7972007-01-06 07:51:48 +00004212007-01-06 Werner Lemberg <wl@gnu.org>
422
423 * src/cff/cffload.c (cff_index_init): Remove unused variable.
424 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
425
David Turnera8cf42b2007-01-04 16:46:46 +00004262007-01-04 David Turner <david@freetype.org>
427
Werner Lembergf6294392007-01-06 07:47:45 +0000428 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
429 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000430
Werner Lembergf6294392007-01-06 07:47:45 +0000431
432 Do not allocate interpreter-specific tables in memory if we are not
433 going to load glyphs with the bytecode interpreter anyway.
434
435 * src/truetype/ttgload.c (tt_loader_init): Load execution context
436 only if glyph is hinted.
437 Updated.
438 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
439 and `cvs_ready'.
440 Add `tt_size_ready_bytecode' declaration.
441 * src/truetype/ttobjs.c (tt_size_done_bytecode,
442 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
443 (tt_size_init): Move most code into `tt_size_init_bytecode'.
444 (tt_size_done): Move most code into `tt_size_done_bytecode'.
445 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000446
David Turner91a34022007-01-05 14:47:08 +0000447
Werner Lembergf6294392007-01-06 07:47:45 +0000448 Don't extract the metrics table from the SFNT font file. Instead,
449 reparse it on each glyph load. The runtime difference is not
450 noticeable, and it can save a lot of heap memory when memory-mapped
451 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000452
Werner Lembergf6294392007-01-06 07:47:45 +0000453 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
454 `horz_metrics_offset' and `vert_metrics_ofset'.
455 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
456 Updated.
457
458
459 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
460
461
462 Do not load the CFF index offsets into memory, since this wastes a
463 *lot* of heap memory with large Asian CFF fonts. There is no
464 significant performance loss.
465
466 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
467 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
468 `data_size'.
469 (CFF_CharsetRec): Add field `num_glyphs'.
470
471 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
472 cff_charset_cid_to_gindex): New functions.
473 (cff_new_index): Renamed to...
474 (cff_index_init): This. Update all callers.
475 Updated -- some code has been moved to `cff_index_load_offsets'.
476 (cff_done_index): Renamed to...
477 (cff_index_done): This. Update all callers.
478 (cff_index_get_pointers, cff_index_access_element): Updated to use
479 stream offsets.
480 (cff_charset_compute_cids): Set `num_glyphs' field.
481 (cff_encoding_load): Updated.
482
483 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000484
4852007-01-04 David Turner <david@freetype.org>
486
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000487 * docs/INSTALL.UNIX: Simplify some parts, add reference to
488 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000489
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000490 * README.CVS: Add common problem description and solution
491 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000492
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000493 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000494
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000495 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000496
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000497 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000498
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000499 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
500 (TWorker): This.
501 Remove `count_table' and `memory'.
502 Make `grays' a pointer.
503 (TRaster): New structure.
504 (count_table): New static array.
505 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
506 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
507 ft_black_set_mode, ft_black_render): Updated.
508 (ft_black_init): Don't initialize `count_table'.
509 (ft_black_reset): Use the render pool. This saves about 6KB of
510 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000511
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000512 * src/smooth/ftgrays.c (TRaster): Replaced with...
513 (TWorker): This.
514 Remove `memory'.
515 (TRaster): New structure.
516
517 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
518 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
519 gray_render_span, gray_raster_render): Updated.
520 (gray_raster_reset): Use the render pool. This saves about 6KB of
521 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000522
David Turner8a6c44e2007-01-04 17:03:11 +0000523 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
524 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000525 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
526 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
527 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000528
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000529 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
530 Remove a typo that results in no hinting and a memory leak with some
531 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000532
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000533 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000534 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000535 CFF_Faces in it. We need to close all faces before destroying the
536 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000537
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005382007-01-02 Werner Lemberg <wl@gnu.org>
539
540 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
541 Remove compiler warning.
542
David Turner9207e002007-01-02 16:58:13 +00005432007-01-02 David Turner <david@freetype.org>
544
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000545 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000546
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005472006-12-31 Masatake YAMATO <jet@gyve.org>
548
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000549 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
550 function.
551 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000552 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000553 `gxv_kern_subtable_fmt0_pairs_validate'.
554
David Turner115b4422006-12-22 11:37:05 +00005552006-12-22 David Turner <david@freetype.org>
556
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000557 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
558 warnings.
David Turner115b4422006-12-22 11:37:05 +0000559
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000560 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
561 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000562
Werner Lemberg4755bf72006-12-16 08:58:44 +00005632006-12-16 Anders Kaseorg <anders@kaseorg.com>
564
565 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
566 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
567
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00005682006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
569
Werner Lemberg9b774e22007-01-16 06:11:27 +0000570 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000571 sync with the modification by Jens Claudius on 2006-08-22; cf.
572 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 +0000573
5742006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
575
576 * src/base/ftmac.c: Specialized for Mac OS X only.
577 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
578 * builds/unix/configure.raw: Ditto. When explicit switches for
579 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
580 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
581
5822006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
583
584 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
585 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
586 instead of src/base/ftmac.c
587 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
588 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
589 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
590 that cannot be built at present.
591
5922006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
593
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000594 * src/base/ftobjs.c: Improvement of resource fork handler for
595 POSIX, cf.
596 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000597 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
598 format or .dfont, to simulate the face index number counted by ftmac.c.
599 (IsMacResource): Return the number of scalable faces correctly.
600
Werner Lembergec5b4502006-12-10 07:51:38 +00006012006-12-10 Werner Lemberg <wl@gnu.org>
602
603 * builds/toplevel.mk (version): Protect against `distclean' target.
604
Werner Lembergb26b3142006-12-09 20:01:43 +00006052006-12-09 Werner Lemberg <wl@gnu.org>
606
607 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
608 or `type'.
609
610 * builds/freetype.mk (version): Extracted from freetype.h, using
611 GNU make's built-in string functions.
612 (refdoc): Use $(version) instead of static version number.
613
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006142006-12-08 Werner Lemberg <wl@gnu.org>
615
616 * builds/toplevel.mk (dist): Extract version number from freetype.h.
617
Werner Lemberg15c29502006-12-09 07:29:54 +00006182006-12-08 Vladimir Volovich <vvv@vsu.ru>
619
620 * src/tools/apinames (State): Remove final comma in structure -- xlc
621 v5 under AIX 4.3 doesn't like this.
622
David Turnerdbf3b432006-12-07 21:18:09 +00006232006-12-07 David Turner <david@freetype.org>
624
Werner Lemberg256a3512006-12-08 06:49:33 +0000625 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
626 to the spacing of auto-fitted glyphs. This only impacts rare
627 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000628
Werner Lemberg11171312006-12-03 09:43:40 +00006292006-12-03 Werner Lemberg <wl@gnu.org>
630
631 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
632
Werner Lemberg960ba592006-12-01 08:20:47 +00006332006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000634
Werner Lemberg960ba592006-12-01 08:20:47 +0000635 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
636 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
637 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000638
David Turner80658e52006-11-28 08:09:20 +0000639
Werner Lemberg960ba592006-12-01 08:20:47 +0000640 * include/freetype/ftxf86.h: Fix and extend comment so that it
641 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000642
Werner Lemberg960ba592006-12-01 08:20:47 +0000643 * include/freetype/ftchapters.h: Add `font_format' section.
644
645
646 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
647 to TOC in index page.
648
6492006-11-28 David Turner <david@freetype.org>
650
651 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
652 trying to render into a zero-width/height bitmap, not an error code.
653
654 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
655
656 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
657 ones instead.
658
659 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
660 variable.
David Turner80658e52006-11-28 08:09:20 +0000661
Werner Lemberg8636c292006-11-26 22:28:13 +00006622006-11-26 Pierre Hanser <hanser@club-internet.fr>
663
664 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
665
Werner Lemberg960ba592006-12-01 08:20:47 +00006662006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000667
Werner Lemberg960ba592006-12-01 08:20:47 +0000668 * src/autofit/afhints.c (af_glyph_hints_dump_points,
669 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
670 Add stubs to link the `ftgrid' test program when debugging is
671 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000672
Werner Lemberg960ba592006-12-01 08:20:47 +00006732006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000674
675 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000676 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
677
678 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
679 Emit more sensible information.
680
681 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
682
683 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
684 rounding of blue values.
685 (af_latin_hints_compute_segments): Hint segment heights.
686 (af_latin_hints_link_segments): Reduce `len_score' value.
687 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
688 value and use `height' member for comparisons.
689 (af_latin_hint_edges): Extend logging message.
690 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000691
Werner Lemberg91959bf2006-11-22 10:36:55 +00006922006-11-22 Werner Lemberg <wl@gnu.org>
693
694 Fix Savannah bug #15553.
695
696 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
697 program after a change from mono to grayscaling (and vice versa).
698 Use correct constant for comparison to get `exec->grayscale'.
699
Werner Lemberg913a3652006-11-19 09:19:17 +00007002006-11-18 Werner Lemberg <wl@gnu.org>
701
702 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000703 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000704 This patch fixes Savannah bug #18301.
705
706 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
707 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
708 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
709 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
710 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
711 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
712 (FNT_Load_Glyph): Check validity of `glyph_index'.
713
David Turner7bab6ae2006-11-13 11:25:06 +00007142006-11-13 David Turner <david@freetype.org>
715
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000716 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
717 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000718
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000719 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
720 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
721 when building the library to change the default LCD filter to be
722 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000723
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000724 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000725
David Turner8765c712006-11-10 16:49:42 +00007262006-11-10 David Turner <david@freetype.org>
727
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000728 * src/smooth/ftsmooth.c: API change for the LCD
729 filter. The FT_LcdFilter value is an enumeration describing which
730 filter to apply, with new values FT_LCD_FILTER_LIGHT and
731 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
732 algorithm which produces strong color fringes for everything
733 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000734
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000735 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
736 second parameter to an enum type.
737
738 * src/base/ftlcdfil.c (USE_LEGACY): Define.
739 (_ft_lcd_filter): Rename to...
740 (_ft_lcd_filter_fir): This.
741 Update parameters.
742 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
743 (FT_Library_Set_LcdFilter): Update parameters.
744 Handle new filter modes.
745
746 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
747 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
748 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
749 callback and update other fields.
750
751 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
752 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
753 Other minor improvements.
754
755 * src/autofit/aflatin.c: Various tiny improvements that drastically
756 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
757 (af_latin_hints_compute_edges): Fix typo.
758 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000759
David Turner4e9cc3c2006-11-09 16:31:52 +00007602006-11-09 David Turner <david@freetype.org>
761
Werner Lemberg49c77a82006-11-09 21:51:57 +0000762 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
763 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000764
Werner Lemberg5e430892006-11-07 09:35:03 +00007652006-11-07 Zhe Su <james.su@gmail.com>
766
767 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
768 also.
769
Werner Lemberg111b5ae2006-11-03 09:40:12 +00007702006-11-03 Werner Lemberg <wl@gnu.org>
771
772 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
773
David Turner40604742006-11-02 16:37:35 +00007742006-11-02 David Turner <david@freetype.org>
775
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000776 Add a few tweaks to better handle serif fonts.
777 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000778
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000779 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
780 segments that are less than 1.5 pixels high. This gets rid of
781 *many* corner cases with serifs.
782 (af_latin_align_linked_edge): Add logging message.
783 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
784 Add logging messages.
785 Handle AF_EDGE_FLAG flag specially.
786
787 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
788 _af_debug_disable_blue_hints, and _af_debug_hints variables.
789
790 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
791 Update external declarations.
792 (af_corner_orientation, af_corner_is_flat): Replaced by...
793
794 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
795 ft_corner_is_flat): These declarations.
796
797 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
798 Comment out. Replaced by...
799
800 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
801 These functions. Update all callers.
802 (FT_Add64) [!FT_LONG64]: Simplify.
803
804 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
805 (af_direction_compute): Add a missing FT_ABS call. This bug caused
806 production of garbage by missing lots of segments.
807
808 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
809
810 * src/autofit/afloader.c (af_loader_init, af_loader_done)
811 [AF_DEBUG]: Set _af_debug_hints.
812
813
814 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
815 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
816 and ft_corner_orientation.
817
818
819 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000820
Werner Lemberge88c5262006-10-24 05:46:26 +00008212006-10-24 Werner Lemberg <wl@gnu.org>
822
823 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
824
825 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
826 as argument.
827
David Turnera1861392006-10-23 16:00:59 +00008282006-10-23 Zhe Su <zsu@novell.com>
829
Werner Lemberg715e96e2006-10-24 05:28:45 +0000830 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
831 better deal with broken Asian fonts with strange glyphs, having
832 self-intersections and other peculiarities. The used algorithm is
833 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000834
David Turnere140f142006-10-23 08:56:57 +00008352006-10-23 David Turner <david@freetype.org>
836
Werner Lemberg715e96e2006-10-24 05:28:45 +0000837 Speed up the CFF font loader. With some large CFF fonts,
838 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000839
Werner Lemberg715e96e2006-10-24 05:28:45 +0000840 * src/cff/cffload.c (cff_get_offset): Removed.
841 (cff_new_index): Inline functionality of `cff_get_offset'.
842 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
843 (cff_charset_done): Call `cff_charset_free_cids'.
844 (cff_charset_load): Call `cff_charset_compute_cids'.
845 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
846
847 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
848 with FT_NEXT_XXX.
849
850
851 Speed up the Postscript hinter, with more than 100% speed increase
852 on my machine.
853
854 * src/pshinter/pshalgo.c (psh_corner_is_flat,
855 psh_corner_orientation): New functions.
856 (psh_glyph_compute_inflections): Merge loops for efficiency.
857 Use `psh_corner_orientation'.
858 (psh_glyph_init): Use `psh_corner_is_flat'.
859 (psh_hint_table_find_strong_point): Renamed to...
860 (psh_hint_table_find_strong_points): This.
861 Rewrite, adding argument to handle all points at once.
862 Update all callers.
863 (PSH_MAX_STRONG_INTERNAL): New macro.
864 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000865
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00008662006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
867
868 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000869 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000870
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00008712006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
872
873 * docs/INSTALL.CROSS: New document file for cross-building.
874
875 * builds/unix/configure.raw: Preliminary cross-building support.
876 Find native C compiler and pass it by CC_BUILD, and
877 find suffix for native executable and pass it by EXEEXT_BUILD.
878 Also suffix for target executable is passed by EXEEXT.
879
Werner Lembergb9e6d692006-10-15 08:58:40 +0000880 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
881 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000882 CC_BUILD and EXEEXT_BUILD.
883
Werner Lembergb9e6d692006-10-15 08:58:40 +0000884 * builds/exports.mk (APINAMES_EXE): Change the extension for
885 apinames from the suffix for target (E) to that for building host
886 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000887
Werner Lemberg82a07e92006-10-12 06:20:44 +00008882006-10-12 Werner Lemberg <wl@gnu.org>
889
890 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
891 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
892 which reference those files.
893
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00008942006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
895
Werner Lembergb9e6d692006-10-15 08:58:40 +0000896 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
897 embedded in freetype2.pc and freetype-config. Use it to record
898 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000899
900 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
901
902 * builds/unix/freetype-config.in: Ditto.
903
Werner Lemberg28e17d92006-10-11 17:27:47 +00009042006-10-11 Werner Lemberg <wl@gnu.org>
905
906 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
907 development.
908
Jens Claudius336d2292006-10-03 08:53:37 +00009092006-10-03 Jens Claudius <jens.claudius@yahoo.com>
910
911 * include/freetype/config/ftstdlib.h: Cast away volatileness from
912 argument to ft_setjmp.
913
914 * include/freetype/internal/ftvalid.h: Add comment that
915 ft_validator_run must not be used.
916
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009172006-10-01 Werner Lemberg <wl@gnu.org>
918
919 * src/base/ftbase.c: Undo change from 2006-09-30.
920
921 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
922
9232006-09-30 David Turner <david@freetype.org>
924
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000925 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
926 s/unpatented_hinting/ignore_unpatented_hinter/.
927 Update all callers.
928
929 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
930 auto-hinting shall be used or not.
931
932 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000933
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009342006-09-30 Werner Lemberg <wl@gnu.org>
935
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000936 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
937 in use).
938
939 * src/base/ftbase.c: Include `ftlcdfil.c'.
940
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009412006-09-29 Werner Lemberg <wl@gnu.org>
942
943 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
944 overlapping segments. Bug reported by Stefan Koch.
945
David Turnerad830712006-09-27 16:20:59 +00009462006-09-28 David Turner <david@freetype.org>
947
Werner Lemberg2c002e12006-09-29 21:31:53 +0000948 Fix a bug in the automatic unpatented hinting support which prevents
949 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000950
Werner Lemberg2c002e12006-09-29 21:31:53 +0000951 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
952 s/force_autohint/unpatented_hinting/. Update all callers.
953
954 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
955
956 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000957
David Turner8a317cf2006-09-27 07:52:48 +00009582006-09-27 David Turner <david@freetype.org>
959
Werner Lemberg2c002e12006-09-29 21:31:53 +0000960 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000961
David Turner8a317cf2006-09-27 07:52:48 +0000962
David Turnere140f142006-10-23 08:56:57 +0000963 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000964 In a default build, the function `FT_Library_SetLcdFilter' returns
965 `FT_Err_Unimplemented_Feature'; you need to #define
966 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
967 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000968
Werner Lemberg2c002e12006-09-29 21:31:53 +0000969 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000970
Werner Lemberg2c002e12006-09-29 21:31:53 +0000971 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
972 typedef.
973 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
974 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000975
Werner Lemberg2c002e12006-09-29 21:31:53 +0000976 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
977 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000978
Werner Lemberg2c002e12006-09-29 21:31:53 +0000979 Handle subpixel rendering.
980 Simplify function.
981 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
982 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
983
984 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
985 pointing to <freetype/ftlcdfil.h>.
986
987 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
988 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
989
990 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +0000991
Werner Lemberge20df4a2006-09-27 06:29:21 +00009922006-09-26 David Bustin
993
994 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
995 correctly. Reported as Savannah bug #17843.
996
David Turner6f8c6222006-09-26 15:42:44 +00009972006-09-26 David Turner <david@freetype.org>
998
Werner Lemberg110246c2006-09-26 21:55:44 +0000999 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1000 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1001 horizontal and vertical hinting for the purpose of debugging the
1002 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001003
Werner Lemberg110246c2006-09-26 21:55:44 +00001004 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1005 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001006
Werner Lemberg110246c2006-09-26 21:55:44 +00001007 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1008
1009 * include/freetype/config/ftoption.h, devel/ftoption.h
1010 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1011 we want to compile LCD-optimized rendering code (à la ClearType) or
1012 not. The macro *must* be disabled in default builds of the library
1013 for patent reasons.
1014
1015 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1016 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1017 isn't defined at compile time. This only changes the content of the
1018 rendered glyph to match the one of normal gray-level rendering,
1019 hence clients should not need to be modified.
1020
1021 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001022
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010232006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1024
1025 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1026 LWFN fails and both are available.
1027
David Turnerf3050052006-09-11 12:00:32 +000010282006-09-11 David Turner <david@freetype.org>
1029
Werner Lembergf9644552006-09-12 13:48:10 +00001030 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1031 report their English names through an Apple Roman
1032 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001033
Werner Lembergf9644552006-09-12 13:48:10 +00001034 If the font uses another name entry with language_id == English, it
1035 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001036
Werner Lembergf9644552006-09-12 13:48:10 +00001037 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1038 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001039
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010402006-09-05 Werner Lemberg <wl@gnu.org>
1041
1042 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001043 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001044 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1045 `HAN NOM B.ttf').
1046
1047 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1048
David Turner772e55d2006-09-05 09:45:15 +000010492006-09-05 David Turner <david@freetype.org>
1050
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001051 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001052
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001053 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1054 (TRaster): Remove `count_ex' and `count_ey'.
1055 (gray_find_cell): Remove 2nd and 3rd argument.
1056 (gray_alloc_cell): Merged with `gray_find_cell'.
1057 (gray_record_cell): Simplify.
1058 (gray_set_cell): Rewrite.
1059 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1060 (gray_render_span): Don't use FT_MEM_SET for small values.
1061 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1062 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1063 bitmap scanline.
1064 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001065
David Turneraa557a92006-09-04 16:42:44 +000010662006-09-04 David Turner <david@freetype.org>
1067
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001068 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1069 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001070
Werner Lemberg2d8629b2006-09-03 06:18:45 +000010712006-09-03 Werner Lemberg <wl@gnu.org>
1072
1073 * devel/ftoption.h: Synchronize with
1074 include/freetype/config/ftoption.h.
1075
1076 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1077 variable declaration.
1078 (gray_convert_glyph): Fix compiler warnings.
1079
David Turner6d79f212006-09-01 14:09:35 +000010802006-09-01 David Turner <david@freetype.org>
1081
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001082 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1083 to recognize a few fonts that require the automatic unpatented
1084 loader.
David Turnerbd502952006-09-01 19:05:24 +00001085
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001086 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1087 rasterizer. The speed improvement is between 15% and 25%, depending
1088 on the font data.
1089
1090 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1091 (TCell): Redefine.
1092 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1093 (gray_init_cells): Updated.
1094 (gray_find_cell, gray_alloc_cell): New functions.
1095 (gray_record_cell): Rewritten to use `gray_find_cell' and
1096 `gray_alloc_cell'.
1097 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1098 QSORT_THRESHOLD):
1099 Removed.
1100 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1101 gray_dump_cells): Removed.
1102 (gray_sweep): Rewritten.
1103 (gray_convert_glyph): Rewrite code which used one of the sorting
1104 functions.
1105 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001106
Werner Lembergd898aed2006-08-29 09:50:34 +000011072006-08-29 Dr. Werner Fink <werner@suse.de>
1108
1109 * configure: Make it possible to handle configure options which
1110 have strings containing spaces.
1111
11122006-08-27 David Turner <david@freetype.org>
1113
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001114 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1115 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1116 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1117
1118 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1119 src/truetype/truetype.c, src/truetype/ttdriver.c,
1120 src/truetype/ttgload.c, src/truetype/ttgload.h,
1121 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1122 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1123 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1124
1125 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1126 member `force_autohint'.
1127
1128 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1129
1130 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1131 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001132
Jens Claudiusa787f452006-08-27 11:26:18 +000011332006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1134
1135 Fix miscellaneous compiler warnings.
1136
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001137 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1138 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001139
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001140 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1141 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1142 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001143
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001144 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1145 volatileness of argument to ft_longjmp. Spotted by Werner
1146 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001147
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001148 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1149 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001150
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001151 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1152 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001153
Werner Lembergc4c35b72006-08-27 08:03:46 +000011542006-08-27 Werner Lemberg <wl@gnu.org>
1155
1156 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1157 Reported by Jens.
1158
Jens Claudius088e44e2006-08-22 14:24:30 +000011592006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001160
Jens Claudius088e44e2006-08-22 14:24:30 +00001161 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001162 about addresses of volatile objects passed as function arguments as
1163 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001164
Werner Lembergc4c35b72006-08-27 08:03:46 +00001165 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1166 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001167
1168 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1169 argument `table' a pointer to a volatile object.
1170
1171 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1172 argument `table' a pointer to a volatile object.
1173
Jens Claudius2652bd52006-08-18 17:20:37 +000011742006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1175
1176 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1177 variable `_sfnt' as volatile since it must keep its value across
1178 a call to ft_setjmp.
1179 (gxv_validate): Same for local variables `memory' and `valid'.
1180 (classic_kern_validate): Same for local variables `memory',
1181 `ckern', and `valid'.
1182
1183 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1184 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1185 `jstf', and 'valid'.
1186
1187 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1188 local variable `cmap'.
1189
David Turner9fbfc6a2006-08-16 09:11:31 +000011902006-08-16 David Turner <david@freetype.org>
1191
Werner Lemberg12342992006-08-19 11:18:09 +00001192 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1193 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001194
Werner Lemberg12342992006-08-19 11:18:09 +00001195 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1196 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001197
David Turner33f5f242006-08-16 16:50:55 +00001198
Werner Lemberg12342992006-08-19 11:18:09 +00001199 Improvements to native TrueType hinting. This is a first try,
1200 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1201
1202 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1203 `extra_points2'.
1204
1205 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1206 `orus'.
1207
1208 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1209 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1210 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1211 handle `extra_points2'.
1212
1213 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1214 Remove compiler warning.
1215 (cur_to_arg): Remove macro.
1216 (TT_Hint_Glyph): Updated.
1217 (TT_Process_Simple_Glyph): Handle `orus'.
1218
1219 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1220 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1221 (LOC_Ins_IUP): Renamed to...
1222 (IUP_WorkerRec): This.
1223 Add `orus' member.
1224 (Shift): Renamed to...
1225 (_iup_worker_shift): This.
1226 Updated.
1227 (Interp): Renamed to...
1228 (_iup_worker_interpolate): This.
1229 Updated to handle `orus'.
1230 (Ins_IUP): Updated.
1231
1232 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1233 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001234
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012352006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1236
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001237 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001238 build ftvalid in ft2demos. This has been inadvertedly changed
1239 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001240
12412006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1242
Werner Lemberg12342992006-08-19 11:18:09 +00001243 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1244 Jens:
1245 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001246
Werner Lemberg12342992006-08-19 11:18:09 +00001247 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1248 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001249
1250 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1251
Jens Claudius9950adc2006-08-13 12:14:36 +000012522006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1253
Werner Lemberg12342992006-08-19 11:18:09 +00001254 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1255 T1_TOKEN_TYPE_KEY.
1256 (T1_FieldRec): Add `dict'.
1257 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1258 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1259 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001260
Werner Lemberg12342992006-08-19 11:18:09 +00001261 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1262 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001263
1264 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1265
1266 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001267 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1268 not T1_TOKEN_TYPE_ANY.
1269 (ps_parser_load_field): Make sure a token that should be a string or
1270 name is really a string or name.
1271 Avoid memory leak if a keyword has been already encountered and its
1272 value is overwritten.
1273 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1274 T1_FIELD_XXX.
1275 (parse_dict): Ignore keywords that occur in the wrong dictionary
1276 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001277
Werner Lemberg12342992006-08-19 11:18:09 +00001278 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1279 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001280
Werner Lemberg12342992006-08-19 11:18:09 +00001281 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1282 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001283
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000012842006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1285
1286 Move creation of field `buildchar' of T1_DecoderRec out of
1287 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1288 of it.
1289
1290 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1291 and `T1_Compute_Max_Advance'.
1292
1293 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1294 Remove field `face', add `len_buildchar'.
1295
1296 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1297 field `buildchar'.
1298
1299 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1300 finisher for T1_Decoder.
1301 (cid_slot_load_glyph): Do not ignore failure when initializing the
1302 T1_Decoder.
1303
1304 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1305 Updated.
1306 (t1_decoder_init): Remove initialization of fields `buildchar' and
1307 `len_buildchar'.
1308 (t1_decoder_done): Remove deallocation of field `buildchar'.
1309
1310 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1311 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1312 T1_Decoder.
1313 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1314 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1315 case of error.
1316
1317 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1318 `buildchar' of T1_FaceRec.
1319
1320 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1321 `buildchar' of T1_FaceRec.
1322
Werner Lemberg1a380e02006-07-14 18:28:08 +000013232006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1324
1325 * freetype2/include/freetype/internal/psaux.h: New macros
1326 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1327 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1328 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1329 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1330 (T1_DecoderRec): New fields `buildchar' and `face'.
1331 (IS_PS_TOKEN): New macro.
1332
1333 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1334 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1335
1336 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1337 `default_design_vector' and `num_default_design_vector'.
1338
1339 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1340 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1341 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1342
1343 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1344 `token' argument to be NULL if we want only to count the number of
1345 tokens.
1346 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1347 want to skip the array.
1348 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1349 want to skip the array.
1350
1351 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1352 support for (partially commented out) othersubrs 19-25, 27, and 28.
1353 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1354 (t1_decoder_done): Release new field `buildchar'.
1355
1356 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1357 functions.
1358 (t1_keywords): Register them.
1359 (t1_allocate_blend): Updated.
1360 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1361 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1362 (parse_dict): Remove `keyword_flags' argument.
1363 Use new macro IS_PS_TOKEN.
1364 Changed function so that later PostScript definitions override
1365 earlier ones.
1366 (t1_init_loader): Initialize new field `keywords_encountered'.
1367 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1368 `len_buildchar'.
1369 Remove `keywords_flags'.
1370
1371 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1372 `keywords_encountered'.
1373 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1374
1375 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1376 New entries for parsing /NDV, /CDV, and /DesignVector.
1377
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000013782006-07-07 Werner Lemberg <wl@gnu.org>
1379
1380 Add many checks to protect against malformed PCF files.
1381
1382 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1383 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1384
1385 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1386 data and check that tables don't overlap (using a simple
1387 bubblesort).
1388 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1389 New macros which give the size of data structures in the data
1390 stream.
1391 (pcf_get_properties): Use rough estimates to get array size limits.
1392 Assign `face->nprops' and `face->properties' earlier so that a call
1393 to PCF_Face_Done can do the clean-up in case of error.
1394 Protect against invalid string offsets.
1395 (pcf_get_metrics): Clean up code.
1396 Adjust tracing message levels.
1397 Use rough estimate to get array size limit.
1398 (pcf_get_bitmaps): Clean up code.
1399 Adjust tracing message levels.
1400 Use rough estimates to get offset limits.
1401 (pcf_get_encodings): Adjust tracing message level.
1402 (pcf_get_accel): Clean up code.
1403
Werner Lemberg8eb05252006-06-27 06:20:01 +000014042006-06-26 Werner Lemberg <wl@gnu.org>
1405
1406 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1407 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1408
Werner Lemberg24703f82006-06-26 19:12:51 +000014092006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1410
1411 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1412 (t1_decoder_parse_charstrings): Operator with
1413 opcode 15 pops its two arguments.
1414 Handle the case where the pops of an othersubr may be part of a
1415 subroutine.
1416 Handle unknown othersubrs gracefully: count their operands and let
1417 the following pop operators push the operands as the results onto
1418 the Type1 stack.
1419 Improve handling of setcurrentpoint opcode.
1420
Werner Lembergc011f4c2006-06-26 09:40:00 +000014212006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1422
1423 The Type 1 parser now skips over top-level procedures as required
1424 for a `Simplified Parser'. This makes the parser more robust as it
1425 doesn't poke around in PostScript code. Additionally, it makes the
1426 FontDirectory hackery in src/type1/t1load.c unnecessary.
1427
1428 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1429 (skip_literal_string): Add FT_Error as return value.
1430 Handle escapes better.
1431 (skip_string): Add FT_Error as return value.
1432 Don't set `parser->error' but return error code directly.
1433 (skip_procedure): New function.
1434 (ps_parser_skip_PS_token): Handle procedures.
1435 Update code.
1436 (ps_parser_to_token): Update code.
1437 (ps_parser_load_field_table): Handle bbox entries also.
1438
1439 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1440 Add commented-out code for synthetic fonts.
1441
Werner Lemberga2da05c2006-06-25 06:27:27 +000014422006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1443
1444 Fix two hinting bugs as reported in
1445 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1446
1447 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1448 `first_point' member.
1449
1450 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1451 `first_point'.
1452 (TT_Process_Composite_Glyph): Always untouch points.
1453
1454 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1455 `first_point' and `last_point' in case of composite glyphs.
1456 (Ins_IUP): Fix computation of `end_point'.
1457
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014582006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1459
Werner Lembergef3d2c22006-06-25 06:07:14 +00001460 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1461 Mac. The original patch was written by David Sachitano and Lawrence
1462 Coopet, and modified by Sean McBride for MPW compatibility. Only
1463 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001464
Werner Lembergef3d2c22006-06-25 06:07:14 +00001465 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1466 Mac OS X platforms.
1467 (OS_INLINE): Undefine before definition.
1468 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1469 FontAssociation table in FOND resource.
1470 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1471 and fontSize at each entry of FontAssociation table in FOND
1472 resource.
1473 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1474 ffStylOff of FamilyRecord header of FOND resource, the header,
1475 fontSize, fontID at each entry of FontAssociation table, and
1476 StyleMapping table.
1477 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001478
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000014792006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1480
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001481 Public API of TrueTypeGX, OpenType, and classic kern table validator
1482 should return `FT_Err_Unimplemented_Feature' if validation service
1483 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001484 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001485 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1486
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001487 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1488 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1489 unavailable.
1490 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1491 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001492
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001493 * src/base/ftotval.c (FT_OpenType_Validate): Return
1494 FT_Err_Unimplemented_Feature if OpenType validation service is
1495 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001496
Werner Lembergb10e45a2006-06-08 07:32:56 +000014972006-06-08 Werner Lemberg <wl@gnu.org>
1498
1499 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1500 errors.
1501
David Turner5f1f7502006-06-07 05:11:50 +000015022006-06-07 David Turner <david@freetype.org>
1503
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001504 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1505 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1506 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001507
David Turner457b4a82006-06-06 08:14:14 +000015082006-06-06 David Turner <david@freetype.org>
1509
Werner Lemberg4836f952006-06-06 12:54:08 +00001510 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001511
Werner Lemberg4836f952006-06-06 12:54:08 +00001512 We change `ps_unicodes_init' so that it also takes a
1513 `free_glyph_name' callback to release the glyph names returned by
1514 `get_glyph_name'
1515
1516 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1517 Renamed to ...
1518 (PS_GetGlyphNameFunc): This.
1519 (PS_FreeGlyphNameFunc): New typedef.
1520 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1521
1522 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1523 argument.
1524 (cff_sid_free_glyph_name): New function.
1525 (cff_cmap_unicode_init): Updated.
1526
1527 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1528
1529 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1530 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001531
1532
David Turner09717352006-06-04 14:33:08 +000015332006-06-04 David Turner <david@freetype.org>
1534
Werner Lembergd724f202006-06-04 15:17:41 +00001535 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1536 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001537 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001538
Werner Lembergd724f202006-06-04 15:17:41 +00001539 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1540 of `face->num_glyphs' which missed the last glyph, due to
1541 the offset-by-1 computation, since the PFR format doesn't
1542 guarantee that glyph index 0 corresponds to the `missing
1543 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001544
Werner Lemberg33779662006-05-26 06:30:05 +000015452006-05-25 Werner Lemberg <wl@gnu.org>
1546
1547 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1548 `-no-undefined'. Reported by Christian Biesinger.
1549
Werner Lemberg24773d62006-05-20 08:53:13 +000015502006-05-19 Brian Weed <bw@imaginengine.com>
1551
1552 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1553 have debug information, and debug libraries use `C7 compatible'
1554 debug info.
1555
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015562006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1557
Werner Lemberga6523a62006-05-20 08:47:01 +00001558 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001559 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001560
Werner Lemberga6523a62006-05-20 08:47:01 +00001561 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1562 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001563
1564 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001565 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001566
15672006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1568
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001569 * build/unix/configure.raw: Add a fallback to disable Carbon
1570 dependency, if configured with no options on Mac OS X.
1571
15722006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1573
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001574 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001575 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001576 the second part of Savannah bug #16590.
1577
Werner Lemberg545c4e52006-05-17 22:55:04 +000015782006-05-18 Werner Lemberg <wl@gnu.org>
1579
1580 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1581 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1582
David Turnerdc3ff312006-05-17 12:59:35 +000015832006-05-17 David Turner <david@freetype.org>
1584
Werner Lemberg545c4e52006-05-17 22:55:04 +00001585 This is a major patch used to drastically improve the performance of
1586 loading glyphs. This both speeds up loading the glyph vectors
1587 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001588
Werner Lemberg545c4e52006-05-17 22:55:04 +00001589 We now use inline assembler code with GCC to implement `FT_MulFix',
1590 which is probably the most important function related to the
1591 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001592
Werner Lemberg545c4e52006-05-17 22:55:04 +00001593 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001594
1595
Werner Lemberg545c4e52006-05-17 22:55:04 +00001596 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1597 `cursor' and `limit'.
1598
1599 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1600 New functions.
1601 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1602 [TEST]: Remove.
1603
1604 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1605 code.
1606
1607 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1608 `FT_ZERO'
1609 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1610 (af_glyph_hints_reload: Rewrite recognition of weak points.
1611
1612 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1613 constant values out of the loops.
1614
1615 * src/autofit/aftypes.h: Updated.
1616
1617 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1618
1619 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1620 product to get orientation.
1621
1622 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1623 (FT_Stream_OpenGzip): Use it to handle small files directly in
1624 memory.
1625
1626 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1627 Improve performance.
1628
1629 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1630 `limit'.
1631
1632 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1633 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1634 exceedingly large values of number of contours. Speed up by
1635 reducing the number of loops.
1636
1637 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1638
1639
1640 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1641 used to detect rogue clients from 4 to 16. This is to prevent some
1642 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1643 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001644
Werner Lembergde2d90a2006-05-17 08:54:30 +000016452007-05-17 Werner Lemberg <wl@gnu.org>
1646
1647 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001648 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001649
16502006-05-16 Werner Lemberg <wl@gnu.org>
1651
1652 * docs/PROBLEMS: Updated icl issues.
1653
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001654----------------------------------------------------------------------------
1655
Werner Lemberg42b63b22007-01-21 21:01:33 +00001656Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001657David Turner, Robert Wilhelm, and Werner Lemberg.
1658
1659This file is part of the FreeType project, and may only be used, modified,
1660and distributed under the terms of the FreeType project license,
1661LICENSE.TXT. By continuing to use, modify, or distribute this file you
1662indicate that you have read the license and understand and accept it
1663fully.
1664
1665
1666Local Variables:
1667version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001668coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001669End: