blob: be4712ba017f49605074bd5594dc0f94bd175d0c [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +000012007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
3 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
4 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
5 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
6
Werner Lemberga0915172007-02-16 08:12:50 +000072007-02-16 Werner Lemberg <wl@gnu.org>
8
9 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
10 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
11
David Turner2c4500e2007-02-14 15:08:47 +0000122007-02-14 David Turner <david@freetype.org>
13
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000014 It seems that the following changes fix most of the known
15 interpreter problems with my fonts, but more testing is needed,
16 though.
17
18 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
19 (TT_MulFix14): Rewrite.
20 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
21 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000022
Werner Lembergc6a14082007-02-12 22:08:15 +0000232007-02-12 Werner Lemberg <wl@gnu.org>
24
25 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
26 warnings.
27
28 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
29 (bdf_interpret_style): Ditto.
30
David Turnerc0f9c4a2007-02-12 14:55:03 +0000312007-02-12 David Turner <david@freetype.org>
32
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000033 Simplify projection and dual-projection code interface.
34
Werner Lemberg406d25f2007-02-12 22:01:18 +000035 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
36 FT_Vector' as argument type.
37 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
38 Updated.
39 (CUR_fast_project, CUR_fast_dualproj): New macros.
40 (Project, Dual_Project, Project_x, Project_y): Updated.
41 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
42 macros.
43
44
45 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
46 adjustments for the non-light auto-hinted modes. Gets rid of
47 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000048
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000049 * src/autofit/aflatin.c (af_latin_hints_link_segments,
50 af_latin_hints_compute_edges): Slight optimization of the segment
51 linker and better handling of serif segments to get rid of broken
52 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000053
David Turnerc0f9c4a2007-02-12 14:55:03 +000054
Werner Lemberg442bfb82007-02-12 21:44:10 +000055 Introduce new string functions and the corresponding macros to get
56 rid of various uses of strcpy and other `evil' functions, as well as
57 to simplify a few things.
58
59 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
60 ft_mem_strcpyn): New declarations.
61 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
62 macros.
63 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
64 functions.
65
66 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
67 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
68 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
69 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
70 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
71 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
72 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
73 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +000074
Werner Lemberg406d25f2007-02-12 22:01:18 +000075 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
76
Werner Lemberg582067d2007-02-11 15:03:05 +0000772007-02-11 Werner Lemberg <wl@gnu.org>
78
79 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
80 non-spacing glyphs.
81
Werner Lemberg8f474532007-02-07 08:31:01 +0000822007-02-07 Tom Parker <palfrey@tevp.net>
83
84 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
85 pointer.
86
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000872007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
88
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000089 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
90 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +000091 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000092 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
93 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
94 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
95 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +000096
97 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
98 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +000099 * builds/mac/ftmac.c: Ditto.
100
1012007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
102
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000103 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000104 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000105 #include <ftmac.c>.
106
1072007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
108
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000109 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
110 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
111 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
112 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
113 FT_GetFilePath_From_Mac_ATS_Name.
114 * builds/mac/ftmac.c: Ditto.
115
1162007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
117
Werner Lembergdcbb7082007-02-08 08:54:09 +0000118 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000119 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
120 for passing to FT_New_Face_From_FSSpec.
121
1222007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
123
Werner Lembergdcbb7082007-02-08 08:54:09 +0000124 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000125 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000126
127 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
128 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000129 * builds/mac/ftmac.c (OS_INLINE): Ditto.
130
Werner Lemberg313d7772007-02-01 08:10:45 +00001312007-02-01 Werner Lemberg <wl@gnu.org>
132
133 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
134 Explain why applications shouldn't use it. Found by Alexei.
135
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001362007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000137
138 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
139 message.
140
141 * src/gxvalid/gxvmort1.c
142 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
143 message.
144
Werner Lemberg53935932007-01-31 08:53:02 +00001452007-01-31 Werner Lemberg <wl@gnu.org>
146
147
148 * Version 2.3.1 released.
149 =========================
150
151
152 Tag sources with `VER-2-3-1-FINAL'.
153
154 * builds/win32/visualc/freetype.dsp,
155 builds/win32/visualc/freetype.vcproj: s/230/231/.
156 * builds/win32/visualc/index.html: s/221/231/.
157
158 * vms_make.com: Add `ftgasp'.
159
David Turnera7ee6082007-01-30 10:33:53 +00001602007-01-30 David Turner <david@freetype.org>
161
Werner Lemberg53935932007-01-31 08:53:02 +0000162 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000163
Werner Lemberg53935932007-01-31 08:53:02 +0000164 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000165
Werner Lemberg53935932007-01-31 08:53:02 +0000166 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
167 s/2.3.0/2.3.1/.
168
169 * builds/unix/configure.raw (version_info): Set to 9:12:3.
170
171
172 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
173 (af_loader_load_g): Disable the warper (i.e., the light hinting
174 improvements) to make a 2.3.1 bugfix release before introducing a
175 new feature. This should give us more time to tune and improve the
176 warper for the next release.
177
178 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000179
David Turnerd91eebd2007-01-26 15:05:41 +00001802007-01-25 David Turner <david@freetype.org>
181
Werner Lembergbf241762007-01-26 16:08:49 +0000182 For light auto-hinting, improve glyph advance widths and resurrect
183 normal/full hinting to its normal quality.
184
185 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
186 and `xmax_delta'.
187 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
188 and `xmax_delta'.
189
190 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
191 preprocessor conditional with if-clause, handling both light and
192 normal mode.
193
194 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
195 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000196
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00001972007-01-25 Werner Lemberg <wl@gnu.org>
198
199 * docs/release: Updated -- Savannah uses a new uploading scheme.
200
David Turnera42567b2007-01-25 12:23:37 +00002012007-01-25 David Turner <david@freetype.org>
202
Werner Lembergd7855662007-01-25 13:53:56 +0000203 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000204
Werner Lembergd7855662007-01-25 13:53:56 +0000205 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
206 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
207 functions.
David Turnera42567b2007-01-25 12:23:37 +0000208
Werner Lembergd7855662007-01-25 13:53:56 +0000209 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000210
Werner Lembergb1be9e82007-01-25 11:50:00 +00002112007-01-25 Werner Lemberg <wl@gnu.org>
212
213 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000214 correctly in a sanity check. Since this function is only used to
215 load local and global functions, any charstring that called the last
216 local/global function would fail otherwise. This fixes Savannah bug
217 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000218
219 * docs/CHANGES: Document it.
220
David Turnerb6de8d12007-01-23 15:51:50 +00002212007-01-23 David Turner <david@freetype.org>
222
Werner Lembergb1be9e82007-01-25 11:50:00 +0000223 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
224 prevented compilation when disabling both the unpatented and the
225 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000226
Werner Lembergb1be9e82007-01-25 11:50:00 +0000227
228 Fix and enable the warper to improve `light' hinting mode. This is
229 not necessarily a final version, but it seems to work well.
230
231 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
232 Disable code.
233 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
234 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
235
236 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
237 (af_warper_compute_line_best): Fix array size of `scores'.
238 (af_warper_compute): Better handling of border cases.
239 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
240 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000241
Werner Lemberg011d1112007-01-21 09:36:00 +00002422007-01-21 Werner Lemberg <wl@gnu.org>
243
Werner Lemberg42b63b22007-01-21 21:01:33 +0000244 * ChangeLog: Split off older entries into...
245 * ChangeLog.22: This new file.
246
2472007-01-21 Werner Lemberg <wl@gnu.org>
248
Werner Lemberg555258f2007-01-21 09:46:37 +0000249 * docs/CHANGES: Document SHZ fix.
250
2512007-01-21 George Williams <gww@silcom.com>
252
253 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
254 points.
255
2562007-01-21 Werner Lemberg <wl@gnu.org>
257
Werner Lemberg011d1112007-01-21 09:36:00 +0000258 * src/sfnt/ttmtx.c (tt_face_get_metrics)
259 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
260
Werner Lemberg87a5a432007-01-17 12:44:39 +00002612007-01-17 Werner Lemberg <wl@gnu.org>
262
Werner Lembergb8003292007-01-17 12:56:25 +0000263
264 * Version 2.3.0 released.
265 =========================
266
267
268 Tag sources with `VER-2-3-0-FINAL'.
269
2702007-01-17 Werner Lemberg <wl@gnu.org>
271
Werner Lemberg87a5a432007-01-17 12:44:39 +0000272 * docs/release: Updated.
273
David Turner22122722007-01-16 20:06:44 +00002742007-01-16 David Turner <david@freetype.org>
275
Werner Lemberg87a5a432007-01-17 12:44:39 +0000276 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
277 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
278 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
279 warnings.
David Turner22122722007-01-16 20:06:44 +0000280
Werner Lemberg267e1d72007-01-15 07:48:09 +00002812007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
282
283 * builds/amiga/makefile, builds/amiga/makefile.os4,
284 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
285
286 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
287
Werner Lemberg8c4120d2007-01-15 06:42:40 +00002882007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
289
290 Fix various compiler warnings.
291
292 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
293 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
294 s/index/strike_index/.
295 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
296
297 * src/gxvalid/gxvmorx5.c
298 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
299
300 * src/truetype/ttinterp.c (Compute_Point_Displacement),
301 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
302 uninitialized variables.
303
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003042007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
305
306 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
307
Werner Lemberg281c1482007-01-13 22:50:51 +00003082007-01-13 Werner Lemberg <wl@gnu.org>
309
310 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
311 versions up to 0x3FF without complaining.
312
Werner Lembergac250b22007-01-13 14:01:36 +00003132007-01-13 Derek Clegg <dclegg@apple.com>
314
315 Add FT_Get_PS_Font_Info interface to CFF driver.
316
317 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
318 (CFF_FontRec): Add `font_info' field.
319
320 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
321 (cff_font_done): Free font->font_info if necessary.
322
323 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
324 (cff_service_ps_info): Register cff_ps_get_font_info.
325
Werner Lemberg23df31a2007-01-13 08:45:00 +00003262007-01-13 Werner Lemberg <wl@gnu.org>
327
328 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
329 with C++ compiler.
330
331 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
332 af_glyph_hints_dump_edges): Ditto.
333
334 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
335 `modules.cfg').
336
337 * src/sfnt/ttsbit0.h: Remove.
338
339 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
340
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003412007-01-12 David Turner <david@freetype.org>
342
343 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
344 bug in the bitmap emboldener if the pitch of the source bitmap is
345 much larger than its width.
346
347 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
348 compilation warning.
349
Werner Lemberg6d96d312007-01-12 10:30:19 +00003502007-01-12 Werner Lemberg <wl@gnu.org>
351
352 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
353 `automake' CVS module from sources.redhat.com.
354
Werner Lemberg17432b52007-01-12 09:28:44 +00003552007-01-11 Werner Lemberg <wl@gnu.org>
356
357 * src/type1/t1load.c (is_space): Removed.
358 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
359 (parse_charstrings): Use IS_PS_TOKEN.
360
361
362 * autogen.sh: Avoid bash specific syntax.
363
David Turner038ace22007-01-11 15:00:59 +00003642007-01-11 David Turner <david@freetype.org>
365
Werner Lemberg17432b52007-01-12 09:28:44 +0000366 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000367
Werner Lemberg17432b52007-01-12 09:28:44 +0000368 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000369
Werner Lemberg17432b52007-01-12 09:28:44 +0000370 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
371 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000372 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000373
Werner Lemberg17432b52007-01-12 09:28:44 +0000374 * autogen.sh: Small fix to get it working on Mac OS X properly:
375 The issue is that GNU libtool is called `glibtool' on this platform,
376 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000377
David Turner2628ea92007-01-10 13:15:56 +00003782007-01-10 David Turner <david@freetype.org>
379
Werner Lemberg17432b52007-01-12 09:28:44 +0000380 * all-sources: Tag all sources with VER-2-3-0-RC1 and
381 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000382
Werner Lemberg17432b52007-01-12 09:28:44 +0000383 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
384 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
385 version number to 2.3.0.
386
387 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
388 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000389
390 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000391 include/freetype/ftlcdfil.h: Update reference documentation with
392 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000393
Werner Lemberg17432b52007-01-12 09:28:44 +0000394 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
395 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000396
Werner Lembergbf02d392007-01-10 07:07:37 +00003972007-01-10 Derek Clegg <dclegg@apple.com>
398
399 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
400 values.
401
David Turnerf48b60e2007-01-08 15:15:32 +00004022007-01-08 David Turner <david@freetype.org>
403
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000404 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000405
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000406 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
407 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000408 corresponding to a given character pixel size.
409
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000410 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
411 `gasp' table, in order to avoid potential problems with later
412 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000413
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000414 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
415 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000416
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000417 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
418 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
419 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
420 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000421
Werner Lemberge6b6f372007-01-07 00:06:47 +00004222007-01-07 Werner Lemberg <wl@gnu.org>
423
Werner Lembergb8004d22007-01-07 09:13:38 +0000424 * src/cid/cidparse.c (cid_parser_new): Improve error message for
425 Type 11 fonts.
426 Scan for `/sfnts' token.
427
4282007-01-07 Werner Lemberg <wl@gnu.org>
429
430 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000431
Werner Lembergbe5f7972007-01-06 07:51:48 +00004322007-01-06 Werner Lemberg <wl@gnu.org>
433
434 * src/cff/cffload.c (cff_index_init): Remove unused variable.
435 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
436
David Turnera8cf42b2007-01-04 16:46:46 +00004372007-01-04 David Turner <david@freetype.org>
438
Werner Lembergf6294392007-01-06 07:47:45 +0000439 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
440 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000441
Werner Lembergf6294392007-01-06 07:47:45 +0000442
443 Do not allocate interpreter-specific tables in memory if we are not
444 going to load glyphs with the bytecode interpreter anyway.
445
446 * src/truetype/ttgload.c (tt_loader_init): Load execution context
447 only if glyph is hinted.
448 Updated.
449 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
450 and `cvs_ready'.
451 Add `tt_size_ready_bytecode' declaration.
452 * src/truetype/ttobjs.c (tt_size_done_bytecode,
453 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
454 (tt_size_init): Move most code into `tt_size_init_bytecode'.
455 (tt_size_done): Move most code into `tt_size_done_bytecode'.
456 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000457
David Turner91a34022007-01-05 14:47:08 +0000458
Werner Lembergf6294392007-01-06 07:47:45 +0000459 Don't extract the metrics table from the SFNT font file. Instead,
460 reparse it on each glyph load. The runtime difference is not
461 noticeable, and it can save a lot of heap memory when memory-mapped
462 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000463
Werner Lembergf6294392007-01-06 07:47:45 +0000464 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
465 `horz_metrics_offset' and `vert_metrics_ofset'.
466 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
467 Updated.
468
469
470 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
471
472
473 Do not load the CFF index offsets into memory, since this wastes a
474 *lot* of heap memory with large Asian CFF fonts. There is no
475 significant performance loss.
476
477 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
478 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
479 `data_size'.
480 (CFF_CharsetRec): Add field `num_glyphs'.
481
482 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
483 cff_charset_cid_to_gindex): New functions.
484 (cff_new_index): Renamed to...
485 (cff_index_init): This. Update all callers.
486 Updated -- some code has been moved to `cff_index_load_offsets'.
487 (cff_done_index): Renamed to...
488 (cff_index_done): This. Update all callers.
489 (cff_index_get_pointers, cff_index_access_element): Updated to use
490 stream offsets.
491 (cff_charset_compute_cids): Set `num_glyphs' field.
492 (cff_encoding_load): Updated.
493
494 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000495
4962007-01-04 David Turner <david@freetype.org>
497
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000498 * docs/INSTALL.UNIX: Simplify some parts, add reference to
499 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000500
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000501 * README.CVS: Add common problem description and solution
502 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000503
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000504 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000505
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000506 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000507
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000508 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000509
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000510 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
511 (TWorker): This.
512 Remove `count_table' and `memory'.
513 Make `grays' a pointer.
514 (TRaster): New structure.
515 (count_table): New static array.
516 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
517 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
518 ft_black_set_mode, ft_black_render): Updated.
519 (ft_black_init): Don't initialize `count_table'.
520 (ft_black_reset): Use the render pool. This saves about 6KB of
521 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000522
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000523 * src/smooth/ftgrays.c (TRaster): Replaced with...
524 (TWorker): This.
525 Remove `memory'.
526 (TRaster): New structure.
527
528 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
529 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
530 gray_render_span, gray_raster_render): Updated.
531 (gray_raster_reset): Use the render pool. This saves about 6KB of
532 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000533
David Turner8a6c44e2007-01-04 17:03:11 +0000534 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
535 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000536 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
537 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
538 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000539
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000540 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
541 Remove a typo that results in no hinting and a memory leak with some
542 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000543
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000544 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000545 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000546 CFF_Faces in it. We need to close all faces before destroying the
547 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000548
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005492007-01-02 Werner Lemberg <wl@gnu.org>
550
551 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
552 Remove compiler warning.
553
David Turner9207e002007-01-02 16:58:13 +00005542007-01-02 David Turner <david@freetype.org>
555
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000556 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000557
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005582006-12-31 Masatake YAMATO <jet@gyve.org>
559
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000560 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
561 function.
562 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000563 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000564 `gxv_kern_subtable_fmt0_pairs_validate'.
565
David Turner115b4422006-12-22 11:37:05 +00005662006-12-22 David Turner <david@freetype.org>
567
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000568 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
569 warnings.
David Turner115b4422006-12-22 11:37:05 +0000570
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000571 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
572 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000573
Werner Lemberg4755bf72006-12-16 08:58:44 +00005742006-12-16 Anders Kaseorg <anders@kaseorg.com>
575
576 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
577 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
578
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00005792006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
580
Werner Lemberg9b774e22007-01-16 06:11:27 +0000581 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000582 sync with the modification by Jens Claudius on 2006-08-22; cf.
583 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 +0000584
5852006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
586
587 * src/base/ftmac.c: Specialized for Mac OS X only.
588 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
589 * builds/unix/configure.raw: Ditto. When explicit switches for
590 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
591 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
592
5932006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
594
595 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
596 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
597 instead of src/base/ftmac.c
598 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
599 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
600 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
601 that cannot be built at present.
602
6032006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
604
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000605 * src/base/ftobjs.c: Improvement of resource fork handler for
606 POSIX, cf.
607 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000608 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
609 format or .dfont, to simulate the face index number counted by ftmac.c.
610 (IsMacResource): Return the number of scalable faces correctly.
611
Werner Lembergec5b4502006-12-10 07:51:38 +00006122006-12-10 Werner Lemberg <wl@gnu.org>
613
614 * builds/toplevel.mk (version): Protect against `distclean' target.
615
Werner Lembergb26b3142006-12-09 20:01:43 +00006162006-12-09 Werner Lemberg <wl@gnu.org>
617
618 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
619 or `type'.
620
621 * builds/freetype.mk (version): Extracted from freetype.h, using
622 GNU make's built-in string functions.
623 (refdoc): Use $(version) instead of static version number.
624
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006252006-12-08 Werner Lemberg <wl@gnu.org>
626
627 * builds/toplevel.mk (dist): Extract version number from freetype.h.
628
Werner Lemberg15c29502006-12-09 07:29:54 +00006292006-12-08 Vladimir Volovich <vvv@vsu.ru>
630
631 * src/tools/apinames (State): Remove final comma in structure -- xlc
632 v5 under AIX 4.3 doesn't like this.
633
David Turnerdbf3b432006-12-07 21:18:09 +00006342006-12-07 David Turner <david@freetype.org>
635
Werner Lemberg256a3512006-12-08 06:49:33 +0000636 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
637 to the spacing of auto-fitted glyphs. This only impacts rare
638 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000639
Werner Lemberg11171312006-12-03 09:43:40 +00006402006-12-03 Werner Lemberg <wl@gnu.org>
641
642 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
643
Werner Lemberg960ba592006-12-01 08:20:47 +00006442006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000645
Werner Lemberg960ba592006-12-01 08:20:47 +0000646 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
647 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
648 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000649
David Turner80658e52006-11-28 08:09:20 +0000650
Werner Lemberg960ba592006-12-01 08:20:47 +0000651 * include/freetype/ftxf86.h: Fix and extend comment so that it
652 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000653
Werner Lemberg960ba592006-12-01 08:20:47 +0000654 * include/freetype/ftchapters.h: Add `font_format' section.
655
656
657 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
658 to TOC in index page.
659
6602006-11-28 David Turner <david@freetype.org>
661
662 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
663 trying to render into a zero-width/height bitmap, not an error code.
664
665 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
666
667 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
668 ones instead.
669
670 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
671 variable.
David Turner80658e52006-11-28 08:09:20 +0000672
Werner Lemberg8636c292006-11-26 22:28:13 +00006732006-11-26 Pierre Hanser <hanser@club-internet.fr>
674
675 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
676
Werner Lemberg960ba592006-12-01 08:20:47 +00006772006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000678
Werner Lemberg960ba592006-12-01 08:20:47 +0000679 * src/autofit/afhints.c (af_glyph_hints_dump_points,
680 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
681 Add stubs to link the `ftgrid' test program when debugging is
682 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000683
Werner Lemberg960ba592006-12-01 08:20:47 +00006842006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000685
686 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000687 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
688
689 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
690 Emit more sensible information.
691
692 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
693
694 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
695 rounding of blue values.
696 (af_latin_hints_compute_segments): Hint segment heights.
697 (af_latin_hints_link_segments): Reduce `len_score' value.
698 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
699 value and use `height' member for comparisons.
700 (af_latin_hint_edges): Extend logging message.
701 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000702
Werner Lemberg91959bf2006-11-22 10:36:55 +00007032006-11-22 Werner Lemberg <wl@gnu.org>
704
705 Fix Savannah bug #15553.
706
707 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
708 program after a change from mono to grayscaling (and vice versa).
709 Use correct constant for comparison to get `exec->grayscale'.
710
Werner Lemberg913a3652006-11-19 09:19:17 +00007112006-11-18 Werner Lemberg <wl@gnu.org>
712
713 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000714 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000715 This patch fixes Savannah bug #18301.
716
717 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
718 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
719 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
720 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
721 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
722 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
723 (FNT_Load_Glyph): Check validity of `glyph_index'.
724
David Turner7bab6ae2006-11-13 11:25:06 +00007252006-11-13 David Turner <david@freetype.org>
726
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000727 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
728 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000729
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000730 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
731 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
732 when building the library to change the default LCD filter to be
733 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000734
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000735 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000736
David Turner8765c712006-11-10 16:49:42 +00007372006-11-10 David Turner <david@freetype.org>
738
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000739 * src/smooth/ftsmooth.c: API change for the LCD
740 filter. The FT_LcdFilter value is an enumeration describing which
741 filter to apply, with new values FT_LCD_FILTER_LIGHT and
742 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
743 algorithm which produces strong color fringes for everything
744 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000745
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000746 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
747 second parameter to an enum type.
748
749 * src/base/ftlcdfil.c (USE_LEGACY): Define.
750 (_ft_lcd_filter): Rename to...
751 (_ft_lcd_filter_fir): This.
752 Update parameters.
753 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
754 (FT_Library_Set_LcdFilter): Update parameters.
755 Handle new filter modes.
756
757 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
758 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
759 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
760 callback and update other fields.
761
762 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
763 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
764 Other minor improvements.
765
766 * src/autofit/aflatin.c: Various tiny improvements that drastically
767 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
768 (af_latin_hints_compute_edges): Fix typo.
769 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000770
David Turner4e9cc3c2006-11-09 16:31:52 +00007712006-11-09 David Turner <david@freetype.org>
772
Werner Lemberg49c77a82006-11-09 21:51:57 +0000773 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
774 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000775
Werner Lemberg5e430892006-11-07 09:35:03 +00007762006-11-07 Zhe Su <james.su@gmail.com>
777
778 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
779 also.
780
Werner Lemberg111b5ae2006-11-03 09:40:12 +00007812006-11-03 Werner Lemberg <wl@gnu.org>
782
783 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
784
David Turner40604742006-11-02 16:37:35 +00007852006-11-02 David Turner <david@freetype.org>
786
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000787 Add a few tweaks to better handle serif fonts.
788 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000789
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000790 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
791 segments that are less than 1.5 pixels high. This gets rid of
792 *many* corner cases with serifs.
793 (af_latin_align_linked_edge): Add logging message.
794 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
795 Add logging messages.
796 Handle AF_EDGE_FLAG flag specially.
797
798 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
799 _af_debug_disable_blue_hints, and _af_debug_hints variables.
800
801 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
802 Update external declarations.
803 (af_corner_orientation, af_corner_is_flat): Replaced by...
804
805 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
806 ft_corner_is_flat): These declarations.
807
808 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
809 Comment out. Replaced by...
810
811 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
812 These functions. Update all callers.
813 (FT_Add64) [!FT_LONG64]: Simplify.
814
815 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
816 (af_direction_compute): Add a missing FT_ABS call. This bug caused
817 production of garbage by missing lots of segments.
818
819 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
820
821 * src/autofit/afloader.c (af_loader_init, af_loader_done)
822 [AF_DEBUG]: Set _af_debug_hints.
823
824
825 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
826 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
827 and ft_corner_orientation.
828
829
830 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000831
Werner Lemberge88c5262006-10-24 05:46:26 +00008322006-10-24 Werner Lemberg <wl@gnu.org>
833
834 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
835
836 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
837 as argument.
838
David Turnera1861392006-10-23 16:00:59 +00008392006-10-23 Zhe Su <zsu@novell.com>
840
Werner Lemberg715e96e2006-10-24 05:28:45 +0000841 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
842 better deal with broken Asian fonts with strange glyphs, having
843 self-intersections and other peculiarities. The used algorithm is
844 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000845
David Turnere140f142006-10-23 08:56:57 +00008462006-10-23 David Turner <david@freetype.org>
847
Werner Lemberg715e96e2006-10-24 05:28:45 +0000848 Speed up the CFF font loader. With some large CFF fonts,
849 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000850
Werner Lemberg715e96e2006-10-24 05:28:45 +0000851 * src/cff/cffload.c (cff_get_offset): Removed.
852 (cff_new_index): Inline functionality of `cff_get_offset'.
853 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
854 (cff_charset_done): Call `cff_charset_free_cids'.
855 (cff_charset_load): Call `cff_charset_compute_cids'.
856 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
857
858 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
859 with FT_NEXT_XXX.
860
861
862 Speed up the Postscript hinter, with more than 100% speed increase
863 on my machine.
864
865 * src/pshinter/pshalgo.c (psh_corner_is_flat,
866 psh_corner_orientation): New functions.
867 (psh_glyph_compute_inflections): Merge loops for efficiency.
868 Use `psh_corner_orientation'.
869 (psh_glyph_init): Use `psh_corner_is_flat'.
870 (psh_hint_table_find_strong_point): Renamed to...
871 (psh_hint_table_find_strong_points): This.
872 Rewrite, adding argument to handle all points at once.
873 Update all callers.
874 (PSH_MAX_STRONG_INTERNAL): New macro.
875 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000876
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00008772006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
878
879 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000880 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000881
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00008822006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
883
884 * docs/INSTALL.CROSS: New document file for cross-building.
885
886 * builds/unix/configure.raw: Preliminary cross-building support.
887 Find native C compiler and pass it by CC_BUILD, and
888 find suffix for native executable and pass it by EXEEXT_BUILD.
889 Also suffix for target executable is passed by EXEEXT.
890
Werner Lembergb9e6d692006-10-15 08:58:40 +0000891 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
892 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000893 CC_BUILD and EXEEXT_BUILD.
894
Werner Lembergb9e6d692006-10-15 08:58:40 +0000895 * builds/exports.mk (APINAMES_EXE): Change the extension for
896 apinames from the suffix for target (E) to that for building host
897 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000898
Werner Lemberg82a07e92006-10-12 06:20:44 +00008992006-10-12 Werner Lemberg <wl@gnu.org>
900
901 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
902 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
903 which reference those files.
904
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009052006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
906
Werner Lembergb9e6d692006-10-15 08:58:40 +0000907 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
908 embedded in freetype2.pc and freetype-config. Use it to record
909 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000910
911 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
912
913 * builds/unix/freetype-config.in: Ditto.
914
Werner Lemberg28e17d92006-10-11 17:27:47 +00009152006-10-11 Werner Lemberg <wl@gnu.org>
916
917 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
918 development.
919
Jens Claudius336d2292006-10-03 08:53:37 +00009202006-10-03 Jens Claudius <jens.claudius@yahoo.com>
921
922 * include/freetype/config/ftstdlib.h: Cast away volatileness from
923 argument to ft_setjmp.
924
925 * include/freetype/internal/ftvalid.h: Add comment that
926 ft_validator_run must not be used.
927
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009282006-10-01 Werner Lemberg <wl@gnu.org>
929
930 * src/base/ftbase.c: Undo change from 2006-09-30.
931
932 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
933
9342006-09-30 David Turner <david@freetype.org>
935
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000936 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
937 s/unpatented_hinting/ignore_unpatented_hinter/.
938 Update all callers.
939
940 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
941 auto-hinting shall be used or not.
942
943 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000944
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009452006-09-30 Werner Lemberg <wl@gnu.org>
946
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000947 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
948 in use).
949
950 * src/base/ftbase.c: Include `ftlcdfil.c'.
951
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009522006-09-29 Werner Lemberg <wl@gnu.org>
953
954 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
955 overlapping segments. Bug reported by Stefan Koch.
956
David Turnerad830712006-09-27 16:20:59 +00009572006-09-28 David Turner <david@freetype.org>
958
Werner Lemberg2c002e12006-09-29 21:31:53 +0000959 Fix a bug in the automatic unpatented hinting support which prevents
960 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000961
Werner Lemberg2c002e12006-09-29 21:31:53 +0000962 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
963 s/force_autohint/unpatented_hinting/. Update all callers.
964
965 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
966
967 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +0000968
David Turner8a317cf2006-09-27 07:52:48 +00009692006-09-27 David Turner <david@freetype.org>
970
Werner Lemberg2c002e12006-09-29 21:31:53 +0000971 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +0000972
David Turner8a317cf2006-09-27 07:52:48 +0000973
David Turnere140f142006-10-23 08:56:57 +0000974 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +0000975 In a default build, the function `FT_Library_SetLcdFilter' returns
976 `FT_Err_Unimplemented_Feature'; you need to #define
977 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
978 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +0000979
Werner Lemberg2c002e12006-09-29 21:31:53 +0000980 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +0000981
Werner Lemberg2c002e12006-09-29 21:31:53 +0000982 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
983 typedef.
984 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
985 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +0000986
Werner Lemberg2c002e12006-09-29 21:31:53 +0000987 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
988 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +0000989
Werner Lemberg2c002e12006-09-29 21:31:53 +0000990 Handle subpixel rendering.
991 Simplify function.
992 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
993 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
994
995 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
996 pointing to <freetype/ftlcdfil.h>.
997
998 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
999 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1000
1001 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001002
Werner Lemberge20df4a2006-09-27 06:29:21 +000010032006-09-26 David Bustin
1004
1005 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1006 correctly. Reported as Savannah bug #17843.
1007
David Turner6f8c6222006-09-26 15:42:44 +000010082006-09-26 David Turner <david@freetype.org>
1009
Werner Lemberg110246c2006-09-26 21:55:44 +00001010 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1011 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1012 horizontal and vertical hinting for the purpose of debugging the
1013 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001014
Werner Lemberg110246c2006-09-26 21:55:44 +00001015 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1016 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001017
Werner Lemberg110246c2006-09-26 21:55:44 +00001018 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1019
1020 * include/freetype/config/ftoption.h, devel/ftoption.h
1021 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1022 we want to compile LCD-optimized rendering code (à la ClearType) or
1023 not. The macro *must* be disabled in default builds of the library
1024 for patent reasons.
1025
1026 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1027 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1028 isn't defined at compile time. This only changes the content of the
1029 rendered glyph to match the one of normal gray-level rendering,
1030 hence clients should not need to be modified.
1031
1032 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001033
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010342006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1035
1036 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1037 LWFN fails and both are available.
1038
David Turnerf3050052006-09-11 12:00:32 +000010392006-09-11 David Turner <david@freetype.org>
1040
Werner Lembergf9644552006-09-12 13:48:10 +00001041 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1042 report their English names through an Apple Roman
1043 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001044
Werner Lembergf9644552006-09-12 13:48:10 +00001045 If the font uses another name entry with language_id == English, it
1046 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001047
Werner Lembergf9644552006-09-12 13:48:10 +00001048 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1049 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001050
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010512006-09-05 Werner Lemberg <wl@gnu.org>
1052
1053 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001054 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001055 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1056 `HAN NOM B.ttf').
1057
1058 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1059
David Turner772e55d2006-09-05 09:45:15 +000010602006-09-05 David Turner <david@freetype.org>
1061
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001062 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001063
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001064 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1065 (TRaster): Remove `count_ex' and `count_ey'.
1066 (gray_find_cell): Remove 2nd and 3rd argument.
1067 (gray_alloc_cell): Merged with `gray_find_cell'.
1068 (gray_record_cell): Simplify.
1069 (gray_set_cell): Rewrite.
1070 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1071 (gray_render_span): Don't use FT_MEM_SET for small values.
1072 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1073 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1074 bitmap scanline.
1075 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001076
David Turneraa557a92006-09-04 16:42:44 +000010772006-09-04 David Turner <david@freetype.org>
1078
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001079 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1080 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001081
Werner Lemberg2d8629b2006-09-03 06:18:45 +000010822006-09-03 Werner Lemberg <wl@gnu.org>
1083
1084 * devel/ftoption.h: Synchronize with
1085 include/freetype/config/ftoption.h.
1086
1087 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1088 variable declaration.
1089 (gray_convert_glyph): Fix compiler warnings.
1090
David Turner6d79f212006-09-01 14:09:35 +000010912006-09-01 David Turner <david@freetype.org>
1092
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001093 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1094 to recognize a few fonts that require the automatic unpatented
1095 loader.
David Turnerbd502952006-09-01 19:05:24 +00001096
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001097 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1098 rasterizer. The speed improvement is between 15% and 25%, depending
1099 on the font data.
1100
1101 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1102 (TCell): Redefine.
1103 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1104 (gray_init_cells): Updated.
1105 (gray_find_cell, gray_alloc_cell): New functions.
1106 (gray_record_cell): Rewritten to use `gray_find_cell' and
1107 `gray_alloc_cell'.
1108 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1109 QSORT_THRESHOLD):
1110 Removed.
1111 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1112 gray_dump_cells): Removed.
1113 (gray_sweep): Rewritten.
1114 (gray_convert_glyph): Rewrite code which used one of the sorting
1115 functions.
1116 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001117
Werner Lembergd898aed2006-08-29 09:50:34 +000011182006-08-29 Dr. Werner Fink <werner@suse.de>
1119
1120 * configure: Make it possible to handle configure options which
1121 have strings containing spaces.
1122
11232006-08-27 David Turner <david@freetype.org>
1124
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001125 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1126 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1127 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1128
1129 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1130 src/truetype/truetype.c, src/truetype/ttdriver.c,
1131 src/truetype/ttgload.c, src/truetype/ttgload.h,
1132 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1133 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1134 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1135
1136 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1137 member `force_autohint'.
1138
1139 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1140
1141 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1142 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001143
Jens Claudiusa787f452006-08-27 11:26:18 +000011442006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1145
1146 Fix miscellaneous compiler warnings.
1147
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001148 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1149 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001150
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001151 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1152 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1153 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001154
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001155 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1156 volatileness of argument to ft_longjmp. Spotted by Werner
1157 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001158
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001159 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1160 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001161
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001162 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1163 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001164
Werner Lembergc4c35b72006-08-27 08:03:46 +000011652006-08-27 Werner Lemberg <wl@gnu.org>
1166
1167 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1168 Reported by Jens.
1169
Jens Claudius088e44e2006-08-22 14:24:30 +000011702006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001171
Jens Claudius088e44e2006-08-22 14:24:30 +00001172 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001173 about addresses of volatile objects passed as function arguments as
1174 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001175
Werner Lembergc4c35b72006-08-27 08:03:46 +00001176 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1177 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001178
1179 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1180 argument `table' a pointer to a volatile object.
1181
1182 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1183 argument `table' a pointer to a volatile object.
1184
Jens Claudius2652bd52006-08-18 17:20:37 +000011852006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1186
1187 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1188 variable `_sfnt' as volatile since it must keep its value across
1189 a call to ft_setjmp.
1190 (gxv_validate): Same for local variables `memory' and `valid'.
1191 (classic_kern_validate): Same for local variables `memory',
1192 `ckern', and `valid'.
1193
1194 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1195 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1196 `jstf', and 'valid'.
1197
1198 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1199 local variable `cmap'.
1200
David Turner9fbfc6a2006-08-16 09:11:31 +000012012006-08-16 David Turner <david@freetype.org>
1202
Werner Lemberg12342992006-08-19 11:18:09 +00001203 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1204 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001205
Werner Lemberg12342992006-08-19 11:18:09 +00001206 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1207 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001208
David Turner33f5f242006-08-16 16:50:55 +00001209
Werner Lemberg12342992006-08-19 11:18:09 +00001210 Improvements to native TrueType hinting. This is a first try,
1211 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1212
1213 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1214 `extra_points2'.
1215
1216 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1217 `orus'.
1218
1219 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1220 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1221 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1222 handle `extra_points2'.
1223
1224 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1225 Remove compiler warning.
1226 (cur_to_arg): Remove macro.
1227 (TT_Hint_Glyph): Updated.
1228 (TT_Process_Simple_Glyph): Handle `orus'.
1229
1230 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1231 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1232 (LOC_Ins_IUP): Renamed to...
1233 (IUP_WorkerRec): This.
1234 Add `orus' member.
1235 (Shift): Renamed to...
1236 (_iup_worker_shift): This.
1237 Updated.
1238 (Interp): Renamed to...
1239 (_iup_worker_interpolate): This.
1240 Updated to handle `orus'.
1241 (Ins_IUP): Updated.
1242
1243 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1244 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001245
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012462006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1247
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001248 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001249 build ftvalid in ft2demos. This has been inadvertedly changed
1250 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001251
12522006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1253
Werner Lemberg12342992006-08-19 11:18:09 +00001254 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1255 Jens:
1256 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001257
Werner Lemberg12342992006-08-19 11:18:09 +00001258 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1259 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001260
1261 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1262
Jens Claudius9950adc2006-08-13 12:14:36 +000012632006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1264
Werner Lemberg12342992006-08-19 11:18:09 +00001265 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1266 T1_TOKEN_TYPE_KEY.
1267 (T1_FieldRec): Add `dict'.
1268 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1269 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1270 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001271
Werner Lemberg12342992006-08-19 11:18:09 +00001272 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1273 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001274
1275 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1276
1277 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001278 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1279 not T1_TOKEN_TYPE_ANY.
1280 (ps_parser_load_field): Make sure a token that should be a string or
1281 name is really a string or name.
1282 Avoid memory leak if a keyword has been already encountered and its
1283 value is overwritten.
1284 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1285 T1_FIELD_XXX.
1286 (parse_dict): Ignore keywords that occur in the wrong dictionary
1287 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001288
Werner Lemberg12342992006-08-19 11:18:09 +00001289 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1290 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001291
Werner Lemberg12342992006-08-19 11:18:09 +00001292 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1293 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001294
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000012952006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1296
1297 Move creation of field `buildchar' of T1_DecoderRec out of
1298 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1299 of it.
1300
1301 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1302 and `T1_Compute_Max_Advance'.
1303
1304 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1305 Remove field `face', add `len_buildchar'.
1306
1307 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1308 field `buildchar'.
1309
1310 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1311 finisher for T1_Decoder.
1312 (cid_slot_load_glyph): Do not ignore failure when initializing the
1313 T1_Decoder.
1314
1315 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1316 Updated.
1317 (t1_decoder_init): Remove initialization of fields `buildchar' and
1318 `len_buildchar'.
1319 (t1_decoder_done): Remove deallocation of field `buildchar'.
1320
1321 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1322 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1323 T1_Decoder.
1324 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1325 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1326 case of error.
1327
1328 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1329 `buildchar' of T1_FaceRec.
1330
1331 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1332 `buildchar' of T1_FaceRec.
1333
Werner Lemberg1a380e02006-07-14 18:28:08 +000013342006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1335
1336 * freetype2/include/freetype/internal/psaux.h: New macros
1337 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1338 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1339 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1340 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1341 (T1_DecoderRec): New fields `buildchar' and `face'.
1342 (IS_PS_TOKEN): New macro.
1343
1344 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1345 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1346
1347 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1348 `default_design_vector' and `num_default_design_vector'.
1349
1350 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1351 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1352 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1353
1354 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1355 `token' argument to be NULL if we want only to count the number of
1356 tokens.
1357 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1358 want to skip the array.
1359 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1360 want to skip the array.
1361
1362 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1363 support for (partially commented out) othersubrs 19-25, 27, and 28.
1364 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1365 (t1_decoder_done): Release new field `buildchar'.
1366
1367 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1368 functions.
1369 (t1_keywords): Register them.
1370 (t1_allocate_blend): Updated.
1371 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1372 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1373 (parse_dict): Remove `keyword_flags' argument.
1374 Use new macro IS_PS_TOKEN.
1375 Changed function so that later PostScript definitions override
1376 earlier ones.
1377 (t1_init_loader): Initialize new field `keywords_encountered'.
1378 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1379 `len_buildchar'.
1380 Remove `keywords_flags'.
1381
1382 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1383 `keywords_encountered'.
1384 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1385
1386 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1387 New entries for parsing /NDV, /CDV, and /DesignVector.
1388
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000013892006-07-07 Werner Lemberg <wl@gnu.org>
1390
1391 Add many checks to protect against malformed PCF files.
1392
1393 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1394 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1395
1396 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1397 data and check that tables don't overlap (using a simple
1398 bubblesort).
1399 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1400 New macros which give the size of data structures in the data
1401 stream.
1402 (pcf_get_properties): Use rough estimates to get array size limits.
1403 Assign `face->nprops' and `face->properties' earlier so that a call
1404 to PCF_Face_Done can do the clean-up in case of error.
1405 Protect against invalid string offsets.
1406 (pcf_get_metrics): Clean up code.
1407 Adjust tracing message levels.
1408 Use rough estimate to get array size limit.
1409 (pcf_get_bitmaps): Clean up code.
1410 Adjust tracing message levels.
1411 Use rough estimates to get offset limits.
1412 (pcf_get_encodings): Adjust tracing message level.
1413 (pcf_get_accel): Clean up code.
1414
Werner Lemberg8eb05252006-06-27 06:20:01 +000014152006-06-26 Werner Lemberg <wl@gnu.org>
1416
1417 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1418 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1419
Werner Lemberg24703f82006-06-26 19:12:51 +000014202006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1421
1422 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1423 (t1_decoder_parse_charstrings): Operator with
1424 opcode 15 pops its two arguments.
1425 Handle the case where the pops of an othersubr may be part of a
1426 subroutine.
1427 Handle unknown othersubrs gracefully: count their operands and let
1428 the following pop operators push the operands as the results onto
1429 the Type1 stack.
1430 Improve handling of setcurrentpoint opcode.
1431
Werner Lembergc011f4c2006-06-26 09:40:00 +000014322006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1433
1434 The Type 1 parser now skips over top-level procedures as required
1435 for a `Simplified Parser'. This makes the parser more robust as it
1436 doesn't poke around in PostScript code. Additionally, it makes the
1437 FontDirectory hackery in src/type1/t1load.c unnecessary.
1438
1439 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1440 (skip_literal_string): Add FT_Error as return value.
1441 Handle escapes better.
1442 (skip_string): Add FT_Error as return value.
1443 Don't set `parser->error' but return error code directly.
1444 (skip_procedure): New function.
1445 (ps_parser_skip_PS_token): Handle procedures.
1446 Update code.
1447 (ps_parser_to_token): Update code.
1448 (ps_parser_load_field_table): Handle bbox entries also.
1449
1450 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1451 Add commented-out code for synthetic fonts.
1452
Werner Lemberga2da05c2006-06-25 06:27:27 +000014532006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1454
1455 Fix two hinting bugs as reported in
1456 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1457
1458 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1459 `first_point' member.
1460
1461 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1462 `first_point'.
1463 (TT_Process_Composite_Glyph): Always untouch points.
1464
1465 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1466 `first_point' and `last_point' in case of composite glyphs.
1467 (Ins_IUP): Fix computation of `end_point'.
1468
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000014692006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1470
Werner Lembergef3d2c22006-06-25 06:07:14 +00001471 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1472 Mac. The original patch was written by David Sachitano and Lawrence
1473 Coopet, and modified by Sean McBride for MPW compatibility. Only
1474 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001475
Werner Lembergef3d2c22006-06-25 06:07:14 +00001476 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1477 Mac OS X platforms.
1478 (OS_INLINE): Undefine before definition.
1479 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1480 FontAssociation table in FOND resource.
1481 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1482 and fontSize at each entry of FontAssociation table in FOND
1483 resource.
1484 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1485 ffStylOff of FamilyRecord header of FOND resource, the header,
1486 fontSize, fontID at each entry of FontAssociation table, and
1487 StyleMapping table.
1488 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001489
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000014902006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1491
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001492 Public API of TrueTypeGX, OpenType, and classic kern table validator
1493 should return `FT_Err_Unimplemented_Feature' if validation service
1494 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001495 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001496 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1497
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001498 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1499 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1500 unavailable.
1501 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1502 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001503
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001504 * src/base/ftotval.c (FT_OpenType_Validate): Return
1505 FT_Err_Unimplemented_Feature if OpenType validation service is
1506 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001507
Werner Lembergb10e45a2006-06-08 07:32:56 +000015082006-06-08 Werner Lemberg <wl@gnu.org>
1509
1510 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1511 errors.
1512
David Turner5f1f7502006-06-07 05:11:50 +000015132006-06-07 David Turner <david@freetype.org>
1514
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001515 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1516 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1517 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001518
David Turner457b4a82006-06-06 08:14:14 +000015192006-06-06 David Turner <david@freetype.org>
1520
Werner Lemberg4836f952006-06-06 12:54:08 +00001521 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001522
Werner Lemberg4836f952006-06-06 12:54:08 +00001523 We change `ps_unicodes_init' so that it also takes a
1524 `free_glyph_name' callback to release the glyph names returned by
1525 `get_glyph_name'
1526
1527 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1528 Renamed to ...
1529 (PS_GetGlyphNameFunc): This.
1530 (PS_FreeGlyphNameFunc): New typedef.
1531 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1532
1533 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1534 argument.
1535 (cff_sid_free_glyph_name): New function.
1536 (cff_cmap_unicode_init): Updated.
1537
1538 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1539
1540 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1541 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001542
1543
David Turner09717352006-06-04 14:33:08 +000015442006-06-04 David Turner <david@freetype.org>
1545
Werner Lembergd724f202006-06-04 15:17:41 +00001546 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1547 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001548 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001549
Werner Lembergd724f202006-06-04 15:17:41 +00001550 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1551 of `face->num_glyphs' which missed the last glyph, due to
1552 the offset-by-1 computation, since the PFR format doesn't
1553 guarantee that glyph index 0 corresponds to the `missing
1554 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001555
Werner Lemberg33779662006-05-26 06:30:05 +000015562006-05-25 Werner Lemberg <wl@gnu.org>
1557
1558 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1559 `-no-undefined'. Reported by Christian Biesinger.
1560
Werner Lemberg24773d62006-05-20 08:53:13 +000015612006-05-19 Brian Weed <bw@imaginengine.com>
1562
1563 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1564 have debug information, and debug libraries use `C7 compatible'
1565 debug info.
1566
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000015672006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1568
Werner Lemberga6523a62006-05-20 08:47:01 +00001569 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001570 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001571
Werner Lemberga6523a62006-05-20 08:47:01 +00001572 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1573 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001574
1575 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001576 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001577
15782006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1579
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001580 * build/unix/configure.raw: Add a fallback to disable Carbon
1581 dependency, if configured with no options on Mac OS X.
1582
15832006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1584
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001585 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001586 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001587 the second part of Savannah bug #16590.
1588
Werner Lemberg545c4e52006-05-17 22:55:04 +000015892006-05-18 Werner Lemberg <wl@gnu.org>
1590
1591 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1592 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1593
David Turnerdc3ff312006-05-17 12:59:35 +000015942006-05-17 David Turner <david@freetype.org>
1595
Werner Lemberg545c4e52006-05-17 22:55:04 +00001596 This is a major patch used to drastically improve the performance of
1597 loading glyphs. This both speeds up loading the glyph vectors
1598 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001599
Werner Lemberg545c4e52006-05-17 22:55:04 +00001600 We now use inline assembler code with GCC to implement `FT_MulFix',
1601 which is probably the most important function related to the
1602 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001603
Werner Lemberg545c4e52006-05-17 22:55:04 +00001604 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001605
1606
Werner Lemberg545c4e52006-05-17 22:55:04 +00001607 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1608 `cursor' and `limit'.
1609
1610 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1611 New functions.
1612 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1613 [TEST]: Remove.
1614
1615 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1616 code.
1617
1618 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1619 `FT_ZERO'
1620 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1621 (af_glyph_hints_reload: Rewrite recognition of weak points.
1622
1623 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1624 constant values out of the loops.
1625
1626 * src/autofit/aftypes.h: Updated.
1627
1628 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1629
1630 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1631 product to get orientation.
1632
1633 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1634 (FT_Stream_OpenGzip): Use it to handle small files directly in
1635 memory.
1636
1637 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1638 Improve performance.
1639
1640 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1641 `limit'.
1642
1643 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1644 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1645 exceedingly large values of number of contours. Speed up by
1646 reducing the number of loops.
1647
1648 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1649
1650
1651 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1652 used to detect rogue clients from 4 to 16. This is to prevent some
1653 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1654 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001655
Werner Lembergde2d90a2006-05-17 08:54:30 +000016562007-05-17 Werner Lemberg <wl@gnu.org>
1657
1658 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001659 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001660
16612006-05-16 Werner Lemberg <wl@gnu.org>
1662
1663 * docs/PROBLEMS: Updated icl issues.
1664
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001665----------------------------------------------------------------------------
1666
Werner Lemberg42b63b22007-01-21 21:01:33 +00001667Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001668David Turner, Robert Wilhelm, and Werner Lemberg.
1669
1670This file is part of the FreeType project, and may only be used, modified,
1671and distributed under the terms of the FreeType project license,
1672LICENSE.TXT. By continuing to use, modify, or distribute this file you
1673indicate that you have read the license and understand and accept it
1674fully.
1675
1676
1677Local Variables:
1678version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001679coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001680End: