blob: 8b3631bddc819f3e7502f4c25331c0ffc4db5afb [file] [log] [blame]
David Turner601aefe2007-02-21 16:47:49 +000012007-02-21 David Turner <david@freetype.org>
2
Werner Lembergde5e6862007-02-25 21:06:43 +00003 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
4 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +00005
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +000062007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
7
8 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
9 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
10 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
11
Werner Lemberga0915172007-02-16 08:12:50 +0000122007-02-16 Werner Lemberg <wl@gnu.org>
13
14 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
15 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
16
David Turner2c4500e2007-02-14 15:08:47 +0000172007-02-14 David Turner <david@freetype.org>
18
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000019 It seems that the following changes fix most of the known
20 interpreter problems with my fonts, but more testing is needed,
21 though.
22
23 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
24 (TT_MulFix14): Rewrite.
25 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
26 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000027
Werner Lembergc6a14082007-02-12 22:08:15 +0000282007-02-12 Werner Lemberg <wl@gnu.org>
29
30 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
31 warnings.
32
33 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
34 (bdf_interpret_style): Ditto.
35
David Turnerc0f9c4a2007-02-12 14:55:03 +0000362007-02-12 David Turner <david@freetype.org>
37
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000038 Simplify projection and dual-projection code interface.
39
Werner Lemberg406d25f2007-02-12 22:01:18 +000040 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
41 FT_Vector' as argument type.
42 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
43 Updated.
44 (CUR_fast_project, CUR_fast_dualproj): New macros.
45 (Project, Dual_Project, Project_x, Project_y): Updated.
46 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
47 macros.
48
49
50 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
51 adjustments for the non-light auto-hinted modes. Gets rid of
52 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000053
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000054 * src/autofit/aflatin.c (af_latin_hints_link_segments,
55 af_latin_hints_compute_edges): Slight optimization of the segment
56 linker and better handling of serif segments to get rid of broken
57 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000058
David Turnerc0f9c4a2007-02-12 14:55:03 +000059
Werner Lemberg442bfb82007-02-12 21:44:10 +000060 Introduce new string functions and the corresponding macros to get
61 rid of various uses of strcpy and other `evil' functions, as well as
62 to simplify a few things.
63
64 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
65 ft_mem_strcpyn): New declarations.
66 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
67 macros.
68 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
69 functions.
70
71 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
72 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
73 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
74 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
75 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
76 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
77 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
78 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +000079
Werner Lemberg406d25f2007-02-12 22:01:18 +000080 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
81
Werner Lemberg582067d2007-02-11 15:03:05 +0000822007-02-11 Werner Lemberg <wl@gnu.org>
83
84 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
85 non-spacing glyphs.
86
Werner Lemberg8f474532007-02-07 08:31:01 +0000872007-02-07 Tom Parker <palfrey@tevp.net>
88
89 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
90 pointer.
91
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000922007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
93
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000094 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
95 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +000096 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000097 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
98 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
99 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
100 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000101
102 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
103 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000104 * builds/mac/ftmac.c: Ditto.
105
1062007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
107
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000108 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000109 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000110 #include <ftmac.c>.
111
1122007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
113
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000114 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
115 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
116 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
117 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
118 FT_GetFilePath_From_Mac_ATS_Name.
119 * builds/mac/ftmac.c: Ditto.
120
1212007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
122
Werner Lembergdcbb7082007-02-08 08:54:09 +0000123 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000124 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
125 for passing to FT_New_Face_From_FSSpec.
126
1272007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
128
Werner Lembergdcbb7082007-02-08 08:54:09 +0000129 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000130 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000131
132 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
133 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000134 * builds/mac/ftmac.c (OS_INLINE): Ditto.
135
Werner Lemberg313d7772007-02-01 08:10:45 +00001362007-02-01 Werner Lemberg <wl@gnu.org>
137
138 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
139 Explain why applications shouldn't use it. Found by Alexei.
140
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001412007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000142
143 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
144 message.
145
146 * src/gxvalid/gxvmort1.c
147 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
148 message.
149
Werner Lemberg53935932007-01-31 08:53:02 +00001502007-01-31 Werner Lemberg <wl@gnu.org>
151
152
153 * Version 2.3.1 released.
154 =========================
155
156
157 Tag sources with `VER-2-3-1-FINAL'.
158
159 * builds/win32/visualc/freetype.dsp,
160 builds/win32/visualc/freetype.vcproj: s/230/231/.
161 * builds/win32/visualc/index.html: s/221/231/.
162
163 * vms_make.com: Add `ftgasp'.
164
David Turnera7ee6082007-01-30 10:33:53 +00001652007-01-30 David Turner <david@freetype.org>
166
Werner Lemberg53935932007-01-31 08:53:02 +0000167 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000168
Werner Lemberg53935932007-01-31 08:53:02 +0000169 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000170
Werner Lemberg53935932007-01-31 08:53:02 +0000171 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
172 s/2.3.0/2.3.1/.
173
174 * builds/unix/configure.raw (version_info): Set to 9:12:3.
175
176
177 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
178 (af_loader_load_g): Disable the warper (i.e., the light hinting
179 improvements) to make a 2.3.1 bugfix release before introducing a
180 new feature. This should give us more time to tune and improve the
181 warper for the next release.
182
183 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000184
David Turnerd91eebd2007-01-26 15:05:41 +00001852007-01-25 David Turner <david@freetype.org>
186
Werner Lembergbf241762007-01-26 16:08:49 +0000187 For light auto-hinting, improve glyph advance widths and resurrect
188 normal/full hinting to its normal quality.
189
190 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
191 and `xmax_delta'.
192 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
193 and `xmax_delta'.
194
195 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
196 preprocessor conditional with if-clause, handling both light and
197 normal mode.
198
199 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
200 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000201
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002022007-01-25 Werner Lemberg <wl@gnu.org>
203
204 * docs/release: Updated -- Savannah uses a new uploading scheme.
205
David Turnera42567b2007-01-25 12:23:37 +00002062007-01-25 David Turner <david@freetype.org>
207
Werner Lembergd7855662007-01-25 13:53:56 +0000208 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000209
Werner Lembergd7855662007-01-25 13:53:56 +0000210 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
211 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
212 functions.
David Turnera42567b2007-01-25 12:23:37 +0000213
Werner Lembergd7855662007-01-25 13:53:56 +0000214 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000215
Werner Lembergb1be9e82007-01-25 11:50:00 +00002162007-01-25 Werner Lemberg <wl@gnu.org>
217
218 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000219 correctly in a sanity check. Since this function is only used to
220 load local and global functions, any charstring that called the last
221 local/global function would fail otherwise. This fixes Savannah bug
222 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000223
224 * docs/CHANGES: Document it.
225
David Turnerb6de8d12007-01-23 15:51:50 +00002262007-01-23 David Turner <david@freetype.org>
227
Werner Lembergb1be9e82007-01-25 11:50:00 +0000228 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
229 prevented compilation when disabling both the unpatented and the
230 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000231
Werner Lembergb1be9e82007-01-25 11:50:00 +0000232
233 Fix and enable the warper to improve `light' hinting mode. This is
234 not necessarily a final version, but it seems to work well.
235
236 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
237 Disable code.
238 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
239 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
240
241 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
242 (af_warper_compute_line_best): Fix array size of `scores'.
243 (af_warper_compute): Better handling of border cases.
244 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
245 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000246
Werner Lemberg011d1112007-01-21 09:36:00 +00002472007-01-21 Werner Lemberg <wl@gnu.org>
248
Werner Lemberg42b63b22007-01-21 21:01:33 +0000249 * ChangeLog: Split off older entries into...
250 * ChangeLog.22: This new file.
251
2522007-01-21 Werner Lemberg <wl@gnu.org>
253
Werner Lemberg555258f2007-01-21 09:46:37 +0000254 * docs/CHANGES: Document SHZ fix.
255
2562007-01-21 George Williams <gww@silcom.com>
257
258 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
259 points.
260
2612007-01-21 Werner Lemberg <wl@gnu.org>
262
Werner Lemberg011d1112007-01-21 09:36:00 +0000263 * src/sfnt/ttmtx.c (tt_face_get_metrics)
264 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
265
Werner Lemberg87a5a432007-01-17 12:44:39 +00002662007-01-17 Werner Lemberg <wl@gnu.org>
267
Werner Lembergb8003292007-01-17 12:56:25 +0000268
269 * Version 2.3.0 released.
270 =========================
271
272
273 Tag sources with `VER-2-3-0-FINAL'.
274
2752007-01-17 Werner Lemberg <wl@gnu.org>
276
Werner Lemberg87a5a432007-01-17 12:44:39 +0000277 * docs/release: Updated.
278
David Turner22122722007-01-16 20:06:44 +00002792007-01-16 David Turner <david@freetype.org>
280
Werner Lemberg87a5a432007-01-17 12:44:39 +0000281 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
282 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
283 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
284 warnings.
David Turner22122722007-01-16 20:06:44 +0000285
Werner Lemberg267e1d72007-01-15 07:48:09 +00002862007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
287
288 * builds/amiga/makefile, builds/amiga/makefile.os4,
289 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
290
291 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
292
Werner Lemberg8c4120d2007-01-15 06:42:40 +00002932007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
294
295 Fix various compiler warnings.
296
297 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
298 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
299 s/index/strike_index/.
300 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
301
302 * src/gxvalid/gxvmorx5.c
303 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
304
305 * src/truetype/ttinterp.c (Compute_Point_Displacement),
306 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
307 uninitialized variables.
308
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003092007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
310
311 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
312
Werner Lemberg281c1482007-01-13 22:50:51 +00003132007-01-13 Werner Lemberg <wl@gnu.org>
314
315 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
316 versions up to 0x3FF without complaining.
317
Werner Lembergac250b22007-01-13 14:01:36 +00003182007-01-13 Derek Clegg <dclegg@apple.com>
319
320 Add FT_Get_PS_Font_Info interface to CFF driver.
321
322 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
323 (CFF_FontRec): Add `font_info' field.
324
325 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
326 (cff_font_done): Free font->font_info if necessary.
327
328 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
329 (cff_service_ps_info): Register cff_ps_get_font_info.
330
Werner Lemberg23df31a2007-01-13 08:45:00 +00003312007-01-13 Werner Lemberg <wl@gnu.org>
332
333 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
334 with C++ compiler.
335
336 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
337 af_glyph_hints_dump_edges): Ditto.
338
339 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
340 `modules.cfg').
341
342 * src/sfnt/ttsbit0.h: Remove.
343
344 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
345
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003462007-01-12 David Turner <david@freetype.org>
347
348 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
349 bug in the bitmap emboldener if the pitch of the source bitmap is
350 much larger than its width.
351
352 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
353 compilation warning.
354
Werner Lemberg6d96d312007-01-12 10:30:19 +00003552007-01-12 Werner Lemberg <wl@gnu.org>
356
357 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
358 `automake' CVS module from sources.redhat.com.
359
Werner Lemberg17432b52007-01-12 09:28:44 +00003602007-01-11 Werner Lemberg <wl@gnu.org>
361
362 * src/type1/t1load.c (is_space): Removed.
363 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
364 (parse_charstrings): Use IS_PS_TOKEN.
365
366
367 * autogen.sh: Avoid bash specific syntax.
368
David Turner038ace22007-01-11 15:00:59 +00003692007-01-11 David Turner <david@freetype.org>
370
Werner Lemberg17432b52007-01-12 09:28:44 +0000371 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000372
Werner Lemberg17432b52007-01-12 09:28:44 +0000373 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000374
Werner Lemberg17432b52007-01-12 09:28:44 +0000375 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
376 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000377 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000378
Werner Lemberg17432b52007-01-12 09:28:44 +0000379 * autogen.sh: Small fix to get it working on Mac OS X properly:
380 The issue is that GNU libtool is called `glibtool' on this platform,
381 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000382
David Turner2628ea92007-01-10 13:15:56 +00003832007-01-10 David Turner <david@freetype.org>
384
Werner Lemberg17432b52007-01-12 09:28:44 +0000385 * all-sources: Tag all sources with VER-2-3-0-RC1 and
386 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000387
Werner Lemberg17432b52007-01-12 09:28:44 +0000388 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
389 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
390 version number to 2.3.0.
391
392 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
393 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000394
395 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000396 include/freetype/ftlcdfil.h: Update reference documentation with
397 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000398
Werner Lemberg17432b52007-01-12 09:28:44 +0000399 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
400 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000401
Werner Lembergbf02d392007-01-10 07:07:37 +00004022007-01-10 Derek Clegg <dclegg@apple.com>
403
404 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
405 values.
406
David Turnerf48b60e2007-01-08 15:15:32 +00004072007-01-08 David Turner <david@freetype.org>
408
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000409 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000410
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000411 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
412 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000413 corresponding to a given character pixel size.
414
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000415 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
416 `gasp' table, in order to avoid potential problems with later
417 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000418
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000419 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
420 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000421
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000422 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
423 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
424 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
425 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000426
Werner Lemberge6b6f372007-01-07 00:06:47 +00004272007-01-07 Werner Lemberg <wl@gnu.org>
428
Werner Lembergb8004d22007-01-07 09:13:38 +0000429 * src/cid/cidparse.c (cid_parser_new): Improve error message for
430 Type 11 fonts.
431 Scan for `/sfnts' token.
432
4332007-01-07 Werner Lemberg <wl@gnu.org>
434
435 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000436
Werner Lembergbe5f7972007-01-06 07:51:48 +00004372007-01-06 Werner Lemberg <wl@gnu.org>
438
439 * src/cff/cffload.c (cff_index_init): Remove unused variable.
440 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
441
David Turnera8cf42b2007-01-04 16:46:46 +00004422007-01-04 David Turner <david@freetype.org>
443
Werner Lembergf6294392007-01-06 07:47:45 +0000444 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
445 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000446
Werner Lembergf6294392007-01-06 07:47:45 +0000447
448 Do not allocate interpreter-specific tables in memory if we are not
449 going to load glyphs with the bytecode interpreter anyway.
450
451 * src/truetype/ttgload.c (tt_loader_init): Load execution context
452 only if glyph is hinted.
453 Updated.
454 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
455 and `cvs_ready'.
456 Add `tt_size_ready_bytecode' declaration.
457 * src/truetype/ttobjs.c (tt_size_done_bytecode,
458 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
459 (tt_size_init): Move most code into `tt_size_init_bytecode'.
460 (tt_size_done): Move most code into `tt_size_done_bytecode'.
461 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000462
David Turner91a34022007-01-05 14:47:08 +0000463
Werner Lembergf6294392007-01-06 07:47:45 +0000464 Don't extract the metrics table from the SFNT font file. Instead,
465 reparse it on each glyph load. The runtime difference is not
466 noticeable, and it can save a lot of heap memory when memory-mapped
467 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000468
Werner Lembergf6294392007-01-06 07:47:45 +0000469 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
470 `horz_metrics_offset' and `vert_metrics_ofset'.
471 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
472 Updated.
473
474
475 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
476
477
478 Do not load the CFF index offsets into memory, since this wastes a
479 *lot* of heap memory with large Asian CFF fonts. There is no
480 significant performance loss.
481
482 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
483 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
484 `data_size'.
485 (CFF_CharsetRec): Add field `num_glyphs'.
486
487 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
488 cff_charset_cid_to_gindex): New functions.
489 (cff_new_index): Renamed to...
490 (cff_index_init): This. Update all callers.
491 Updated -- some code has been moved to `cff_index_load_offsets'.
492 (cff_done_index): Renamed to...
493 (cff_index_done): This. Update all callers.
494 (cff_index_get_pointers, cff_index_access_element): Updated to use
495 stream offsets.
496 (cff_charset_compute_cids): Set `num_glyphs' field.
497 (cff_encoding_load): Updated.
498
499 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000500
5012007-01-04 David Turner <david@freetype.org>
502
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000503 * docs/INSTALL.UNIX: Simplify some parts, add reference to
504 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000505
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000506 * README.CVS: Add common problem description and solution
507 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000508
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000509 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000510
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000511 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000512
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000513 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000514
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000515 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
516 (TWorker): This.
517 Remove `count_table' and `memory'.
518 Make `grays' a pointer.
519 (TRaster): New structure.
520 (count_table): New static array.
521 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
522 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
523 ft_black_set_mode, ft_black_render): Updated.
524 (ft_black_init): Don't initialize `count_table'.
525 (ft_black_reset): Use the render pool. This saves about 6KB of
526 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000527
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000528 * src/smooth/ftgrays.c (TRaster): Replaced with...
529 (TWorker): This.
530 Remove `memory'.
531 (TRaster): New structure.
532
533 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
534 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
535 gray_render_span, gray_raster_render): Updated.
536 (gray_raster_reset): Use the render pool. This saves about 6KB of
537 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000538
David Turner8a6c44e2007-01-04 17:03:11 +0000539 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
540 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000541 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
542 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
543 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000544
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000545 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
546 Remove a typo that results in no hinting and a memory leak with some
547 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000548
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000549 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000550 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000551 CFF_Faces in it. We need to close all faces before destroying the
552 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000553
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005542007-01-02 Werner Lemberg <wl@gnu.org>
555
556 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
557 Remove compiler warning.
558
David Turner9207e002007-01-02 16:58:13 +00005592007-01-02 David Turner <david@freetype.org>
560
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000561 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000562
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005632006-12-31 Masatake YAMATO <jet@gyve.org>
564
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000565 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
566 function.
567 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000568 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000569 `gxv_kern_subtable_fmt0_pairs_validate'.
570
David Turner115b4422006-12-22 11:37:05 +00005712006-12-22 David Turner <david@freetype.org>
572
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000573 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
574 warnings.
David Turner115b4422006-12-22 11:37:05 +0000575
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000576 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
577 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000578
Werner Lemberg4755bf72006-12-16 08:58:44 +00005792006-12-16 Anders Kaseorg <anders@kaseorg.com>
580
581 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
582 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
583
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00005842006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
585
Werner Lemberg9b774e22007-01-16 06:11:27 +0000586 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000587 sync with the modification by Jens Claudius on 2006-08-22; cf.
588 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 +0000589
5902006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
591
592 * src/base/ftmac.c: Specialized for Mac OS X only.
593 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
594 * builds/unix/configure.raw: Ditto. When explicit switches for
595 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
596 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
597
5982006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
599
600 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
601 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
602 instead of src/base/ftmac.c
603 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
604 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
605 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
606 that cannot be built at present.
607
6082006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
609
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000610 * src/base/ftobjs.c: Improvement of resource fork handler for
611 POSIX, cf.
612 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000613 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
614 format or .dfont, to simulate the face index number counted by ftmac.c.
615 (IsMacResource): Return the number of scalable faces correctly.
616
Werner Lembergec5b4502006-12-10 07:51:38 +00006172006-12-10 Werner Lemberg <wl@gnu.org>
618
619 * builds/toplevel.mk (version): Protect against `distclean' target.
620
Werner Lembergb26b3142006-12-09 20:01:43 +00006212006-12-09 Werner Lemberg <wl@gnu.org>
622
623 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
624 or `type'.
625
626 * builds/freetype.mk (version): Extracted from freetype.h, using
627 GNU make's built-in string functions.
628 (refdoc): Use $(version) instead of static version number.
629
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006302006-12-08 Werner Lemberg <wl@gnu.org>
631
632 * builds/toplevel.mk (dist): Extract version number from freetype.h.
633
Werner Lemberg15c29502006-12-09 07:29:54 +00006342006-12-08 Vladimir Volovich <vvv@vsu.ru>
635
636 * src/tools/apinames (State): Remove final comma in structure -- xlc
637 v5 under AIX 4.3 doesn't like this.
638
David Turnerdbf3b432006-12-07 21:18:09 +00006392006-12-07 David Turner <david@freetype.org>
640
Werner Lemberg256a3512006-12-08 06:49:33 +0000641 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
642 to the spacing of auto-fitted glyphs. This only impacts rare
643 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000644
Werner Lemberg11171312006-12-03 09:43:40 +00006452006-12-03 Werner Lemberg <wl@gnu.org>
646
647 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
648
Werner Lemberg960ba592006-12-01 08:20:47 +00006492006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000650
Werner Lemberg960ba592006-12-01 08:20:47 +0000651 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
652 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
653 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000654
David Turner80658e52006-11-28 08:09:20 +0000655
Werner Lemberg960ba592006-12-01 08:20:47 +0000656 * include/freetype/ftxf86.h: Fix and extend comment so that it
657 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000658
Werner Lemberg960ba592006-12-01 08:20:47 +0000659 * include/freetype/ftchapters.h: Add `font_format' section.
660
661
662 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
663 to TOC in index page.
664
6652006-11-28 David Turner <david@freetype.org>
666
667 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
668 trying to render into a zero-width/height bitmap, not an error code.
669
670 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
671
672 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
673 ones instead.
674
675 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
676 variable.
David Turner80658e52006-11-28 08:09:20 +0000677
Werner Lemberg8636c292006-11-26 22:28:13 +00006782006-11-26 Pierre Hanser <hanser@club-internet.fr>
679
680 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
681
Werner Lemberg960ba592006-12-01 08:20:47 +00006822006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000683
Werner Lemberg960ba592006-12-01 08:20:47 +0000684 * src/autofit/afhints.c (af_glyph_hints_dump_points,
685 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
686 Add stubs to link the `ftgrid' test program when debugging is
687 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000688
Werner Lemberg960ba592006-12-01 08:20:47 +00006892006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000690
691 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000692 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
693
694 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
695 Emit more sensible information.
696
697 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
698
699 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
700 rounding of blue values.
701 (af_latin_hints_compute_segments): Hint segment heights.
702 (af_latin_hints_link_segments): Reduce `len_score' value.
703 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
704 value and use `height' member for comparisons.
705 (af_latin_hint_edges): Extend logging message.
706 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000707
Werner Lemberg91959bf2006-11-22 10:36:55 +00007082006-11-22 Werner Lemberg <wl@gnu.org>
709
710 Fix Savannah bug #15553.
711
712 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
713 program after a change from mono to grayscaling (and vice versa).
714 Use correct constant for comparison to get `exec->grayscale'.
715
Werner Lemberg913a3652006-11-19 09:19:17 +00007162006-11-18 Werner Lemberg <wl@gnu.org>
717
718 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000719 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000720 This patch fixes Savannah bug #18301.
721
722 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
723 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
724 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
725 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
726 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
727 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
728 (FNT_Load_Glyph): Check validity of `glyph_index'.
729
David Turner7bab6ae2006-11-13 11:25:06 +00007302006-11-13 David Turner <david@freetype.org>
731
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000732 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
733 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000734
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000735 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
736 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
737 when building the library to change the default LCD filter to be
738 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000739
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000740 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000741
David Turner8765c712006-11-10 16:49:42 +00007422006-11-10 David Turner <david@freetype.org>
743
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000744 * src/smooth/ftsmooth.c: API change for the LCD
745 filter. The FT_LcdFilter value is an enumeration describing which
746 filter to apply, with new values FT_LCD_FILTER_LIGHT and
747 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
748 algorithm which produces strong color fringes for everything
749 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000750
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000751 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
752 second parameter to an enum type.
753
754 * src/base/ftlcdfil.c (USE_LEGACY): Define.
755 (_ft_lcd_filter): Rename to...
756 (_ft_lcd_filter_fir): This.
757 Update parameters.
758 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
759 (FT_Library_Set_LcdFilter): Update parameters.
760 Handle new filter modes.
761
762 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
763 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
764 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
765 callback and update other fields.
766
767 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
768 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
769 Other minor improvements.
770
771 * src/autofit/aflatin.c: Various tiny improvements that drastically
772 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
773 (af_latin_hints_compute_edges): Fix typo.
774 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000775
David Turner4e9cc3c2006-11-09 16:31:52 +00007762006-11-09 David Turner <david@freetype.org>
777
Werner Lemberg49c77a82006-11-09 21:51:57 +0000778 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
779 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000780
Werner Lemberg5e430892006-11-07 09:35:03 +00007812006-11-07 Zhe Su <james.su@gmail.com>
782
783 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
784 also.
785
Werner Lemberg111b5ae2006-11-03 09:40:12 +00007862006-11-03 Werner Lemberg <wl@gnu.org>
787
788 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
789
David Turner40604742006-11-02 16:37:35 +00007902006-11-02 David Turner <david@freetype.org>
791
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000792 Add a few tweaks to better handle serif fonts.
793 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000794
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000795 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
796 segments that are less than 1.5 pixels high. This gets rid of
797 *many* corner cases with serifs.
798 (af_latin_align_linked_edge): Add logging message.
799 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
800 Add logging messages.
801 Handle AF_EDGE_FLAG flag specially.
802
803 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
804 _af_debug_disable_blue_hints, and _af_debug_hints variables.
805
806 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
807 Update external declarations.
808 (af_corner_orientation, af_corner_is_flat): Replaced by...
809
810 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
811 ft_corner_is_flat): These declarations.
812
813 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
814 Comment out. Replaced by...
815
816 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
817 These functions. Update all callers.
818 (FT_Add64) [!FT_LONG64]: Simplify.
819
820 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
821 (af_direction_compute): Add a missing FT_ABS call. This bug caused
822 production of garbage by missing lots of segments.
823
824 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
825
826 * src/autofit/afloader.c (af_loader_init, af_loader_done)
827 [AF_DEBUG]: Set _af_debug_hints.
828
829
830 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
831 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
832 and ft_corner_orientation.
833
834
835 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000836
Werner Lemberge88c5262006-10-24 05:46:26 +00008372006-10-24 Werner Lemberg <wl@gnu.org>
838
839 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
840
841 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
842 as argument.
843
David Turnera1861392006-10-23 16:00:59 +00008442006-10-23 Zhe Su <zsu@novell.com>
845
Werner Lemberg715e96e2006-10-24 05:28:45 +0000846 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
847 better deal with broken Asian fonts with strange glyphs, having
848 self-intersections and other peculiarities. The used algorithm is
849 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000850
David Turnere140f142006-10-23 08:56:57 +00008512006-10-23 David Turner <david@freetype.org>
852
Werner Lemberg715e96e2006-10-24 05:28:45 +0000853 Speed up the CFF font loader. With some large CFF fonts,
854 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000855
Werner Lemberg715e96e2006-10-24 05:28:45 +0000856 * src/cff/cffload.c (cff_get_offset): Removed.
857 (cff_new_index): Inline functionality of `cff_get_offset'.
858 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
859 (cff_charset_done): Call `cff_charset_free_cids'.
860 (cff_charset_load): Call `cff_charset_compute_cids'.
861 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
862
863 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
864 with FT_NEXT_XXX.
865
866
867 Speed up the Postscript hinter, with more than 100% speed increase
868 on my machine.
869
870 * src/pshinter/pshalgo.c (psh_corner_is_flat,
871 psh_corner_orientation): New functions.
872 (psh_glyph_compute_inflections): Merge loops for efficiency.
873 Use `psh_corner_orientation'.
874 (psh_glyph_init): Use `psh_corner_is_flat'.
875 (psh_hint_table_find_strong_point): Renamed to...
876 (psh_hint_table_find_strong_points): This.
877 Rewrite, adding argument to handle all points at once.
878 Update all callers.
879 (PSH_MAX_STRONG_INTERNAL): New macro.
880 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000881
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00008822006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
883
884 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000885 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000886
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00008872006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
888
889 * docs/INSTALL.CROSS: New document file for cross-building.
890
891 * builds/unix/configure.raw: Preliminary cross-building support.
892 Find native C compiler and pass it by CC_BUILD, and
893 find suffix for native executable and pass it by EXEEXT_BUILD.
894 Also suffix for target executable is passed by EXEEXT.
895
Werner Lembergb9e6d692006-10-15 08:58:40 +0000896 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
897 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000898 CC_BUILD and EXEEXT_BUILD.
899
Werner Lembergb9e6d692006-10-15 08:58:40 +0000900 * builds/exports.mk (APINAMES_EXE): Change the extension for
901 apinames from the suffix for target (E) to that for building host
902 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000903
Werner Lemberg82a07e92006-10-12 06:20:44 +00009042006-10-12 Werner Lemberg <wl@gnu.org>
905
906 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
907 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
908 which reference those files.
909
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009102006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
911
Werner Lembergb9e6d692006-10-15 08:58:40 +0000912 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
913 embedded in freetype2.pc and freetype-config. Use it to record
914 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000915
916 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
917
918 * builds/unix/freetype-config.in: Ditto.
919
Werner Lemberg28e17d92006-10-11 17:27:47 +00009202006-10-11 Werner Lemberg <wl@gnu.org>
921
922 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
923 development.
924
Jens Claudius336d2292006-10-03 08:53:37 +00009252006-10-03 Jens Claudius <jens.claudius@yahoo.com>
926
927 * include/freetype/config/ftstdlib.h: Cast away volatileness from
928 argument to ft_setjmp.
929
930 * include/freetype/internal/ftvalid.h: Add comment that
931 ft_validator_run must not be used.
932
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009332006-10-01 Werner Lemberg <wl@gnu.org>
934
935 * src/base/ftbase.c: Undo change from 2006-09-30.
936
937 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
938
9392006-09-30 David Turner <david@freetype.org>
940
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000941 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
942 s/unpatented_hinting/ignore_unpatented_hinter/.
943 Update all callers.
944
945 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
946 auto-hinting shall be used or not.
947
948 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000949
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009502006-09-30 Werner Lemberg <wl@gnu.org>
951
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000952 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
953 in use).
954
955 * src/base/ftbase.c: Include `ftlcdfil.c'.
956
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009572006-09-29 Werner Lemberg <wl@gnu.org>
958
959 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
960 overlapping segments. Bug reported by Stefan Koch.
961
David Turnerad830712006-09-27 16:20:59 +00009622006-09-28 David Turner <david@freetype.org>
963
Werner Lemberg2c002e12006-09-29 21:31:53 +0000964 Fix a bug in the automatic unpatented hinting support which prevents
965 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000966
Werner Lemberg2c002e12006-09-29 21:31:53 +0000967 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
968 s/force_autohint/unpatented_hinting/. Update all callers.
969
970 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
971
972 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000973
David Turner8a317cf2006-09-27 07:52:48 +00009742006-09-27 David Turner <david@freetype.org>
975
Werner Lemberg2c002e12006-09-29 21:31:53 +0000976 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000977
David Turner8a317cf2006-09-27 07:52:48 +0000978
David Turnere140f142006-10-23 08:56:57 +0000979 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000980 In a default build, the function `FT_Library_SetLcdFilter' returns
981 `FT_Err_Unimplemented_Feature'; you need to #define
982 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
983 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000984
Werner Lemberg2c002e12006-09-29 21:31:53 +0000985 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000986
Werner Lemberg2c002e12006-09-29 21:31:53 +0000987 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
988 typedef.
989 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
990 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000991
Werner Lemberg2c002e12006-09-29 21:31:53 +0000992 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
993 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000994
Werner Lemberg2c002e12006-09-29 21:31:53 +0000995 Handle subpixel rendering.
996 Simplify function.
997 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
998 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
999
1000 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1001 pointing to <freetype/ftlcdfil.h>.
1002
1003 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1004 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1005
1006 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001007
Werner Lemberge20df4a2006-09-27 06:29:21 +000010082006-09-26 David Bustin
1009
1010 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1011 correctly. Reported as Savannah bug #17843.
1012
David Turner6f8c6222006-09-26 15:42:44 +000010132006-09-26 David Turner <david@freetype.org>
1014
Werner Lemberg110246c2006-09-26 21:55:44 +00001015 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1016 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1017 horizontal and vertical hinting for the purpose of debugging the
1018 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001019
Werner Lemberg110246c2006-09-26 21:55:44 +00001020 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1021 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001022
Werner Lemberg110246c2006-09-26 21:55:44 +00001023 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1024
1025 * include/freetype/config/ftoption.h, devel/ftoption.h
1026 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1027 we want to compile LCD-optimized rendering code (à la ClearType) or
1028 not. The macro *must* be disabled in default builds of the library
1029 for patent reasons.
1030
1031 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1032 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1033 isn't defined at compile time. This only changes the content of the
1034 rendered glyph to match the one of normal gray-level rendering,
1035 hence clients should not need to be modified.
1036
1037 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001038
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010392006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1040
1041 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1042 LWFN fails and both are available.
1043
David Turnerf3050052006-09-11 12:00:32 +000010442006-09-11 David Turner <david@freetype.org>
1045
Werner Lembergf9644552006-09-12 13:48:10 +00001046 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1047 report their English names through an Apple Roman
1048 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001049
Werner Lembergf9644552006-09-12 13:48:10 +00001050 If the font uses another name entry with language_id == English, it
1051 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001052
Werner Lembergf9644552006-09-12 13:48:10 +00001053 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1054 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001055
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010562006-09-05 Werner Lemberg <wl@gnu.org>
1057
1058 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001059 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001060 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1061 `HAN NOM B.ttf').
1062
1063 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1064
David Turner772e55d2006-09-05 09:45:15 +000010652006-09-05 David Turner <david@freetype.org>
1066
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001067 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001068
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001069 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1070 (TRaster): Remove `count_ex' and `count_ey'.
1071 (gray_find_cell): Remove 2nd and 3rd argument.
1072 (gray_alloc_cell): Merged with `gray_find_cell'.
1073 (gray_record_cell): Simplify.
1074 (gray_set_cell): Rewrite.
1075 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1076 (gray_render_span): Don't use FT_MEM_SET for small values.
1077 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1078 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1079 bitmap scanline.
1080 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001081
David Turneraa557a92006-09-04 16:42:44 +000010822006-09-04 David Turner <david@freetype.org>
1083
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001084 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1085 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001086
Werner Lemberg2d8629b2006-09-03 06:18:45 +000010872006-09-03 Werner Lemberg <wl@gnu.org>
1088
1089 * devel/ftoption.h: Synchronize with
1090 include/freetype/config/ftoption.h.
1091
1092 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1093 variable declaration.
1094 (gray_convert_glyph): Fix compiler warnings.
1095
David Turner6d79f212006-09-01 14:09:35 +000010962006-09-01 David Turner <david@freetype.org>
1097
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001098 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1099 to recognize a few fonts that require the automatic unpatented
1100 loader.
David Turnerbd502952006-09-01 19:05:24 +00001101
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001102 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1103 rasterizer. The speed improvement is between 15% and 25%, depending
1104 on the font data.
1105
1106 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1107 (TCell): Redefine.
1108 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1109 (gray_init_cells): Updated.
1110 (gray_find_cell, gray_alloc_cell): New functions.
1111 (gray_record_cell): Rewritten to use `gray_find_cell' and
1112 `gray_alloc_cell'.
1113 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1114 QSORT_THRESHOLD):
1115 Removed.
1116 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1117 gray_dump_cells): Removed.
1118 (gray_sweep): Rewritten.
1119 (gray_convert_glyph): Rewrite code which used one of the sorting
1120 functions.
1121 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001122
Werner Lembergd898aed2006-08-29 09:50:34 +000011232006-08-29 Dr. Werner Fink <werner@suse.de>
1124
1125 * configure: Make it possible to handle configure options which
1126 have strings containing spaces.
1127
11282006-08-27 David Turner <david@freetype.org>
1129
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001130 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1131 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1132 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1133
1134 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1135 src/truetype/truetype.c, src/truetype/ttdriver.c,
1136 src/truetype/ttgload.c, src/truetype/ttgload.h,
1137 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1138 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1139 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1140
1141 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1142 member `force_autohint'.
1143
1144 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1145
1146 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1147 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001148
Jens Claudiusa787f452006-08-27 11:26:18 +000011492006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1150
1151 Fix miscellaneous compiler warnings.
1152
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001153 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1154 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001155
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001156 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1157 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1158 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001159
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001160 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1161 volatileness of argument to ft_longjmp. Spotted by Werner
1162 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001163
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001164 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1165 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001166
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001167 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1168 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001169
Werner Lembergc4c35b72006-08-27 08:03:46 +000011702006-08-27 Werner Lemberg <wl@gnu.org>
1171
1172 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1173 Reported by Jens.
1174
Jens Claudius088e44e2006-08-22 14:24:30 +000011752006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001176
Jens Claudius088e44e2006-08-22 14:24:30 +00001177 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001178 about addresses of volatile objects passed as function arguments as
1179 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001180
Werner Lembergc4c35b72006-08-27 08:03:46 +00001181 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1182 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001183
1184 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1185 argument `table' a pointer to a volatile object.
1186
1187 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1188 argument `table' a pointer to a volatile object.
1189
Jens Claudius2652bd52006-08-18 17:20:37 +000011902006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1191
1192 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1193 variable `_sfnt' as volatile since it must keep its value across
1194 a call to ft_setjmp.
1195 (gxv_validate): Same for local variables `memory' and `valid'.
1196 (classic_kern_validate): Same for local variables `memory',
1197 `ckern', and `valid'.
1198
1199 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1200 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1201 `jstf', and 'valid'.
1202
1203 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1204 local variable `cmap'.
1205
David Turner9fbfc6a2006-08-16 09:11:31 +000012062006-08-16 David Turner <david@freetype.org>
1207
Werner Lemberg12342992006-08-19 11:18:09 +00001208 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1209 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001210
Werner Lemberg12342992006-08-19 11:18:09 +00001211 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1212 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001213
David Turner33f5f242006-08-16 16:50:55 +00001214
Werner Lemberg12342992006-08-19 11:18:09 +00001215 Improvements to native TrueType hinting. This is a first try,
1216 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1217
1218 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1219 `extra_points2'.
1220
1221 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1222 `orus'.
1223
1224 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1225 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1226 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1227 handle `extra_points2'.
1228
1229 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1230 Remove compiler warning.
1231 (cur_to_arg): Remove macro.
1232 (TT_Hint_Glyph): Updated.
1233 (TT_Process_Simple_Glyph): Handle `orus'.
1234
1235 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1236 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1237 (LOC_Ins_IUP): Renamed to...
1238 (IUP_WorkerRec): This.
1239 Add `orus' member.
1240 (Shift): Renamed to...
1241 (_iup_worker_shift): This.
1242 Updated.
1243 (Interp): Renamed to...
1244 (_iup_worker_interpolate): This.
1245 Updated to handle `orus'.
1246 (Ins_IUP): Updated.
1247
1248 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1249 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001250
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012512006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1252
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001253 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001254 build ftvalid in ft2demos. This has been inadvertedly changed
1255 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001256
12572006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1258
Werner Lemberg12342992006-08-19 11:18:09 +00001259 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1260 Jens:
1261 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001262
Werner Lemberg12342992006-08-19 11:18:09 +00001263 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1264 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001265
1266 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1267
Jens Claudius9950adc2006-08-13 12:14:36 +000012682006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1269
Werner Lemberg12342992006-08-19 11:18:09 +00001270 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1271 T1_TOKEN_TYPE_KEY.
1272 (T1_FieldRec): Add `dict'.
1273 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1274 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1275 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001276
Werner Lemberg12342992006-08-19 11:18:09 +00001277 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1278 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001279
1280 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1281
1282 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001283 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1284 not T1_TOKEN_TYPE_ANY.
1285 (ps_parser_load_field): Make sure a token that should be a string or
1286 name is really a string or name.
1287 Avoid memory leak if a keyword has been already encountered and its
1288 value is overwritten.
1289 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1290 T1_FIELD_XXX.
1291 (parse_dict): Ignore keywords that occur in the wrong dictionary
1292 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001293
Werner Lemberg12342992006-08-19 11:18:09 +00001294 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1295 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001296
Werner Lemberg12342992006-08-19 11:18:09 +00001297 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1298 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001299
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013002006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1301
1302 Move creation of field `buildchar' of T1_DecoderRec out of
1303 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1304 of it.
1305
1306 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1307 and `T1_Compute_Max_Advance'.
1308
1309 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1310 Remove field `face', add `len_buildchar'.
1311
1312 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1313 field `buildchar'.
1314
1315 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1316 finisher for T1_Decoder.
1317 (cid_slot_load_glyph): Do not ignore failure when initializing the
1318 T1_Decoder.
1319
1320 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1321 Updated.
1322 (t1_decoder_init): Remove initialization of fields `buildchar' and
1323 `len_buildchar'.
1324 (t1_decoder_done): Remove deallocation of field `buildchar'.
1325
1326 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1327 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1328 T1_Decoder.
1329 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1330 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1331 case of error.
1332
1333 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1334 `buildchar' of T1_FaceRec.
1335
1336 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1337 `buildchar' of T1_FaceRec.
1338
Werner Lemberg1a380e02006-07-14 18:28:08 +000013392006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1340
1341 * freetype2/include/freetype/internal/psaux.h: New macros
1342 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1343 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1344 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1345 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1346 (T1_DecoderRec): New fields `buildchar' and `face'.
1347 (IS_PS_TOKEN): New macro.
1348
1349 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1350 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1351
1352 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1353 `default_design_vector' and `num_default_design_vector'.
1354
1355 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1356 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1357 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1358
1359 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1360 `token' argument to be NULL if we want only to count the number of
1361 tokens.
1362 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1363 want to skip the array.
1364 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1365 want to skip the array.
1366
1367 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1368 support for (partially commented out) othersubrs 19-25, 27, and 28.
1369 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1370 (t1_decoder_done): Release new field `buildchar'.
1371
1372 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1373 functions.
1374 (t1_keywords): Register them.
1375 (t1_allocate_blend): Updated.
1376 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1377 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1378 (parse_dict): Remove `keyword_flags' argument.
1379 Use new macro IS_PS_TOKEN.
1380 Changed function so that later PostScript definitions override
1381 earlier ones.
1382 (t1_init_loader): Initialize new field `keywords_encountered'.
1383 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1384 `len_buildchar'.
1385 Remove `keywords_flags'.
1386
1387 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1388 `keywords_encountered'.
1389 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1390
1391 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1392 New entries for parsing /NDV, /CDV, and /DesignVector.
1393
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000013942006-07-07 Werner Lemberg <wl@gnu.org>
1395
1396 Add many checks to protect against malformed PCF files.
1397
1398 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1399 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1400
1401 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1402 data and check that tables don't overlap (using a simple
1403 bubblesort).
1404 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1405 New macros which give the size of data structures in the data
1406 stream.
1407 (pcf_get_properties): Use rough estimates to get array size limits.
1408 Assign `face->nprops' and `face->properties' earlier so that a call
1409 to PCF_Face_Done can do the clean-up in case of error.
1410 Protect against invalid string offsets.
1411 (pcf_get_metrics): Clean up code.
1412 Adjust tracing message levels.
1413 Use rough estimate to get array size limit.
1414 (pcf_get_bitmaps): Clean up code.
1415 Adjust tracing message levels.
1416 Use rough estimates to get offset limits.
1417 (pcf_get_encodings): Adjust tracing message level.
1418 (pcf_get_accel): Clean up code.
1419
Werner Lemberg8eb05252006-06-27 06:20:01 +000014202006-06-26 Werner Lemberg <wl@gnu.org>
1421
1422 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1423 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1424
Werner Lemberg24703f82006-06-26 19:12:51 +000014252006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1426
1427 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1428 (t1_decoder_parse_charstrings): Operator with
1429 opcode 15 pops its two arguments.
1430 Handle the case where the pops of an othersubr may be part of a
1431 subroutine.
1432 Handle unknown othersubrs gracefully: count their operands and let
1433 the following pop operators push the operands as the results onto
1434 the Type1 stack.
1435 Improve handling of setcurrentpoint opcode.
1436
Werner Lembergc011f4c2006-06-26 09:40:00 +000014372006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1438
1439 The Type 1 parser now skips over top-level procedures as required
1440 for a `Simplified Parser'. This makes the parser more robust as it
1441 doesn't poke around in PostScript code. Additionally, it makes the
1442 FontDirectory hackery in src/type1/t1load.c unnecessary.
1443
1444 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1445 (skip_literal_string): Add FT_Error as return value.
1446 Handle escapes better.
1447 (skip_string): Add FT_Error as return value.
1448 Don't set `parser->error' but return error code directly.
1449 (skip_procedure): New function.
1450 (ps_parser_skip_PS_token): Handle procedures.
1451 Update code.
1452 (ps_parser_to_token): Update code.
1453 (ps_parser_load_field_table): Handle bbox entries also.
1454
1455 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1456 Add commented-out code for synthetic fonts.
1457
Werner Lemberga2da05c2006-06-25 06:27:27 +000014582006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1459
1460 Fix two hinting bugs as reported in
1461 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1462
1463 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1464 `first_point' member.
1465
1466 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1467 `first_point'.
1468 (TT_Process_Composite_Glyph): Always untouch points.
1469
1470 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1471 `first_point' and `last_point' in case of composite glyphs.
1472 (Ins_IUP): Fix computation of `end_point'.
1473
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014742006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1475
Werner Lembergef3d2c22006-06-25 06:07:14 +00001476 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1477 Mac. The original patch was written by David Sachitano and Lawrence
1478 Coopet, and modified by Sean McBride for MPW compatibility. Only
1479 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001480
Werner Lembergef3d2c22006-06-25 06:07:14 +00001481 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1482 Mac OS X platforms.
1483 (OS_INLINE): Undefine before definition.
1484 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1485 FontAssociation table in FOND resource.
1486 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1487 and fontSize at each entry of FontAssociation table in FOND
1488 resource.
1489 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1490 ffStylOff of FamilyRecord header of FOND resource, the header,
1491 fontSize, fontID at each entry of FontAssociation table, and
1492 StyleMapping table.
1493 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001494
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000014952006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1496
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001497 Public API of TrueTypeGX, OpenType, and classic kern table validator
1498 should return `FT_Err_Unimplemented_Feature' if validation service
1499 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001500 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001501 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1502
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001503 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1504 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1505 unavailable.
1506 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1507 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001508
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001509 * src/base/ftotval.c (FT_OpenType_Validate): Return
1510 FT_Err_Unimplemented_Feature if OpenType validation service is
1511 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001512
Werner Lembergb10e45a2006-06-08 07:32:56 +000015132006-06-08 Werner Lemberg <wl@gnu.org>
1514
1515 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1516 errors.
1517
David Turner5f1f7502006-06-07 05:11:50 +000015182006-06-07 David Turner <david@freetype.org>
1519
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001520 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1521 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1522 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001523
David Turner457b4a82006-06-06 08:14:14 +000015242006-06-06 David Turner <david@freetype.org>
1525
Werner Lemberg4836f952006-06-06 12:54:08 +00001526 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001527
Werner Lemberg4836f952006-06-06 12:54:08 +00001528 We change `ps_unicodes_init' so that it also takes a
1529 `free_glyph_name' callback to release the glyph names returned by
1530 `get_glyph_name'
1531
1532 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1533 Renamed to ...
1534 (PS_GetGlyphNameFunc): This.
1535 (PS_FreeGlyphNameFunc): New typedef.
1536 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1537
1538 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1539 argument.
1540 (cff_sid_free_glyph_name): New function.
1541 (cff_cmap_unicode_init): Updated.
1542
1543 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1544
1545 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1546 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001547
1548
David Turner09717352006-06-04 14:33:08 +000015492006-06-04 David Turner <david@freetype.org>
1550
Werner Lembergd724f202006-06-04 15:17:41 +00001551 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1552 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001553 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001554
Werner Lembergd724f202006-06-04 15:17:41 +00001555 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1556 of `face->num_glyphs' which missed the last glyph, due to
1557 the offset-by-1 computation, since the PFR format doesn't
1558 guarantee that glyph index 0 corresponds to the `missing
1559 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001560
Werner Lemberg33779662006-05-26 06:30:05 +000015612006-05-25 Werner Lemberg <wl@gnu.org>
1562
1563 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1564 `-no-undefined'. Reported by Christian Biesinger.
1565
Werner Lemberg24773d62006-05-20 08:53:13 +000015662006-05-19 Brian Weed <bw@imaginengine.com>
1567
1568 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1569 have debug information, and debug libraries use `C7 compatible'
1570 debug info.
1571
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015722006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1573
Werner Lemberga6523a62006-05-20 08:47:01 +00001574 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001575 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001576
Werner Lemberga6523a62006-05-20 08:47:01 +00001577 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1578 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001579
1580 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001581 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001582
15832006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1584
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001585 * build/unix/configure.raw: Add a fallback to disable Carbon
1586 dependency, if configured with no options on Mac OS X.
1587
15882006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1589
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001590 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001591 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001592 the second part of Savannah bug #16590.
1593
Werner Lemberg545c4e52006-05-17 22:55:04 +000015942006-05-18 Werner Lemberg <wl@gnu.org>
1595
1596 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1597 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1598
David Turnerdc3ff312006-05-17 12:59:35 +000015992006-05-17 David Turner <david@freetype.org>
1600
Werner Lemberg545c4e52006-05-17 22:55:04 +00001601 This is a major patch used to drastically improve the performance of
1602 loading glyphs. This both speeds up loading the glyph vectors
1603 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001604
Werner Lemberg545c4e52006-05-17 22:55:04 +00001605 We now use inline assembler code with GCC to implement `FT_MulFix',
1606 which is probably the most important function related to the
1607 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001608
Werner Lemberg545c4e52006-05-17 22:55:04 +00001609 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001610
1611
Werner Lemberg545c4e52006-05-17 22:55:04 +00001612 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1613 `cursor' and `limit'.
1614
1615 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1616 New functions.
1617 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1618 [TEST]: Remove.
1619
1620 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1621 code.
1622
1623 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1624 `FT_ZERO'
1625 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1626 (af_glyph_hints_reload: Rewrite recognition of weak points.
1627
1628 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1629 constant values out of the loops.
1630
1631 * src/autofit/aftypes.h: Updated.
1632
1633 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1634
1635 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1636 product to get orientation.
1637
1638 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1639 (FT_Stream_OpenGzip): Use it to handle small files directly in
1640 memory.
1641
1642 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1643 Improve performance.
1644
1645 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1646 `limit'.
1647
1648 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1649 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1650 exceedingly large values of number of contours. Speed up by
1651 reducing the number of loops.
1652
1653 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1654
1655
1656 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1657 used to detect rogue clients from 4 to 16. This is to prevent some
1658 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1659 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001660
Werner Lembergde2d90a2006-05-17 08:54:30 +000016612007-05-17 Werner Lemberg <wl@gnu.org>
1662
1663 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001664 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001665
16662006-05-16 Werner Lemberg <wl@gnu.org>
1667
1668 * docs/PROBLEMS: Updated icl issues.
1669
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001670----------------------------------------------------------------------------
1671
Werner Lemberg42b63b22007-01-21 21:01:33 +00001672Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001673David Turner, Robert Wilhelm, and Werner Lemberg.
1674
1675This file is part of the FreeType project, and may only be used, modified,
1676and distributed under the terms of the FreeType project license,
1677LICENSE.TXT. By continuing to use, modify, or distribute this file you
1678indicate that you have read the license and understand and accept it
1679fully.
1680
1681
1682Local Variables:
1683version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001684coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001685End: