blob: 77798d9af24813252439d7bcdd7f96a72fe7bd54 [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000012007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
Werner Lembergc9f6c662007-03-21 13:30:14 +00003 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
4 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
5 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +00006
David Turner74c34eb2007-03-18 07:19:31 +000072007-03-18 David Turner <david@freetype.org>
8
Werner Lembergc9f6c662007-03-21 13:30:14 +00009 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
10 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000011
Werner Lembergc9f6c662007-03-21 13:30:14 +000012 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000013
David Turner89020d92007-03-17 17:48:57 +0000142007-03-17 David Turner <david@freetype.org>
15
Werner Lembergc9f6c662007-03-21 13:30:14 +000016 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
17 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000018
Werner Lemberg25d592a2007-03-09 07:59:35 +0000192007-03-09 Werner Lemberg <wl@gnu.org>
20
21 * Version 2.3.2 released.
22 =========================
23
24
25 Tag sources with `VER-2-3-2'.
26
27 * builds/win32/visualc/index.html,
28 builds/win32/visualc/freetype.dsp,
29 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
30 s/231/232/.
31
David Turner3a51afa2007-03-08 10:50:38 +0000322007-03-08 David Turner <david@freetype.org>
33
Werner Lemberg25d592a2007-03-09 07:59:35 +000034 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000035
Werner Lemberg25d592a2007-03-09 07:59:35 +000036 * builds/unix/configure.raw (version_info): Set to 9:13:3.
37
38 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
39
40 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000041
Werner Lemberg1e259de2007-03-08 15:39:21 +000042 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
43 function to work properly, over-writing user-provided buffers in
44 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000045
David Turner121cad52007-03-08 16:43:50 +000046
Werner Lemberg3d92f082007-03-06 11:59:24 +0000472007-03-05 Werner Lemberg <wl@gnu.org>
48
49 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
50 macro for `strstr'.
51
52 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
53 `trick_names', as suggested by Ivan Nincic.
54
David Turner085bc6e2007-03-05 17:40:03 +0000552007-03-05 David Turner <david@freetype.org>
56
Werner Lembergd112cf02007-03-06 12:06:56 +000057 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
58 case FT_Init_FreeType fails for some reason. Problem reported by
59 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000060
Werner Lembergd112cf02007-03-06 12:06:56 +000061 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
62 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
63 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
64 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000065
Werner Lembergd112cf02007-03-06 12:06:56 +000066 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
67 signed values, not unsigned ones. Problem reported by Johannes
68 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000069
David Turner601aefe2007-02-21 16:47:49 +0000702007-02-21 David Turner <david@freetype.org>
71
Werner Lembergde5e6862007-02-25 21:06:43 +000072 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
73 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000074
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000752007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
76
77 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
78 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
79 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
80
Werner Lemberga0915172007-02-16 08:12:50 +0000812007-02-16 Werner Lemberg <wl@gnu.org>
82
83 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
84 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
85
David Turner2c4500e2007-02-14 15:08:47 +0000862007-02-14 David Turner <david@freetype.org>
87
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000088 It seems that the following changes fix most of the known
89 interpreter problems with my fonts, but more testing is needed,
90 though.
91
92 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
93 (TT_MulFix14): Rewrite.
94 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
95 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000096
Werner Lembergc6a14082007-02-12 22:08:15 +0000972007-02-12 Werner Lemberg <wl@gnu.org>
98
99 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
100 warnings.
101
102 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
103 (bdf_interpret_style): Ditto.
104
David Turnerc0f9c4a2007-02-12 14:55:03 +00001052007-02-12 David Turner <david@freetype.org>
106
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000107 Simplify projection and dual-projection code interface.
108
Werner Lemberg406d25f2007-02-12 22:01:18 +0000109 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
110 FT_Vector' as argument type.
111 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
112 Updated.
113 (CUR_fast_project, CUR_fast_dualproj): New macros.
114 (Project, Dual_Project, Project_x, Project_y): Updated.
115 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
116 macros.
117
118
119 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
120 adjustments for the non-light auto-hinted modes. Gets rid of
121 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000122
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000123 * src/autofit/aflatin.c (af_latin_hints_link_segments,
124 af_latin_hints_compute_edges): Slight optimization of the segment
125 linker and better handling of serif segments to get rid of broken
126 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000127
David Turnerc0f9c4a2007-02-12 14:55:03 +0000128
Werner Lemberg442bfb82007-02-12 21:44:10 +0000129 Introduce new string functions and the corresponding macros to get
130 rid of various uses of strcpy and other `evil' functions, as well as
131 to simplify a few things.
132
133 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
134 ft_mem_strcpyn): New declarations.
135 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
136 macros.
137 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
138 functions.
139
140 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
141 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
142 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
143 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
144 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
145 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
146 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
147 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000148
Werner Lemberg406d25f2007-02-12 22:01:18 +0000149 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
150
Werner Lemberg582067d2007-02-11 15:03:05 +00001512007-02-11 Werner Lemberg <wl@gnu.org>
152
153 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
154 non-spacing glyphs.
155
Werner Lemberg8f474532007-02-07 08:31:01 +00001562007-02-07 Tom Parker <palfrey@tevp.net>
157
158 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
159 pointer.
160
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001612007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
162
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000163 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
164 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000165 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000166 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
167 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
168 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
169 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000170
171 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
172 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000173 * builds/mac/ftmac.c: Ditto.
174
1752007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
176
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000177 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000178 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000179 #include <ftmac.c>.
180
1812007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
182
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000183 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
184 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
185 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
186 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
187 FT_GetFilePath_From_Mac_ATS_Name.
188 * builds/mac/ftmac.c: Ditto.
189
1902007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
191
Werner Lembergdcbb7082007-02-08 08:54:09 +0000192 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000193 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
194 for passing to FT_New_Face_From_FSSpec.
195
1962007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
197
Werner Lembergdcbb7082007-02-08 08:54:09 +0000198 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000199 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000200
201 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
202 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000203 * builds/mac/ftmac.c (OS_INLINE): Ditto.
204
Werner Lemberg313d7772007-02-01 08:10:45 +00002052007-02-01 Werner Lemberg <wl@gnu.org>
206
207 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
208 Explain why applications shouldn't use it. Found by Alexei.
209
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002102007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000211
212 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
213 message.
214
215 * src/gxvalid/gxvmort1.c
216 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
217 message.
218
Werner Lemberg53935932007-01-31 08:53:02 +00002192007-01-31 Werner Lemberg <wl@gnu.org>
220
221
222 * Version 2.3.1 released.
223 =========================
224
225
226 Tag sources with `VER-2-3-1-FINAL'.
227
228 * builds/win32/visualc/freetype.dsp,
229 builds/win32/visualc/freetype.vcproj: s/230/231/.
230 * builds/win32/visualc/index.html: s/221/231/.
231
232 * vms_make.com: Add `ftgasp'.
233
David Turnera7ee6082007-01-30 10:33:53 +00002342007-01-30 David Turner <david@freetype.org>
235
Werner Lemberg53935932007-01-31 08:53:02 +0000236 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000237
Werner Lemberg53935932007-01-31 08:53:02 +0000238 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000239
Werner Lemberg25d592a2007-03-09 07:59:35 +0000240 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000241 s/2.3.0/2.3.1/.
242
243 * builds/unix/configure.raw (version_info): Set to 9:12:3.
244
245
246 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
247 (af_loader_load_g): Disable the warper (i.e., the light hinting
248 improvements) to make a 2.3.1 bugfix release before introducing a
249 new feature. This should give us more time to tune and improve the
250 warper for the next release.
251
252 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000253
David Turnerd91eebd2007-01-26 15:05:41 +00002542007-01-25 David Turner <david@freetype.org>
255
Werner Lembergbf241762007-01-26 16:08:49 +0000256 For light auto-hinting, improve glyph advance widths and resurrect
257 normal/full hinting to its normal quality.
258
259 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
260 and `xmax_delta'.
261 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
262 and `xmax_delta'.
263
264 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
265 preprocessor conditional with if-clause, handling both light and
266 normal mode.
267
268 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
269 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000270
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002712007-01-25 Werner Lemberg <wl@gnu.org>
272
273 * docs/release: Updated -- Savannah uses a new uploading scheme.
274
David Turnera42567b2007-01-25 12:23:37 +00002752007-01-25 David Turner <david@freetype.org>
276
Werner Lembergd7855662007-01-25 13:53:56 +0000277 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000278
Werner Lembergd7855662007-01-25 13:53:56 +0000279 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
280 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
281 functions.
David Turnera42567b2007-01-25 12:23:37 +0000282
Werner Lembergd7855662007-01-25 13:53:56 +0000283 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000284
Werner Lembergb1be9e82007-01-25 11:50:00 +00002852007-01-25 Werner Lemberg <wl@gnu.org>
286
287 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000288 correctly in a sanity check. Since this function is only used to
289 load local and global functions, any charstring that called the last
290 local/global function would fail otherwise. This fixes Savannah bug
291 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000292
293 * docs/CHANGES: Document it.
294
David Turnerb6de8d12007-01-23 15:51:50 +00002952007-01-23 David Turner <david@freetype.org>
296
Werner Lembergb1be9e82007-01-25 11:50:00 +0000297 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
298 prevented compilation when disabling both the unpatented and the
299 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000300
Werner Lembergb1be9e82007-01-25 11:50:00 +0000301
302 Fix and enable the warper to improve `light' hinting mode. This is
303 not necessarily a final version, but it seems to work well.
304
305 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
306 Disable code.
307 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
308 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
309
310 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
311 (af_warper_compute_line_best): Fix array size of `scores'.
312 (af_warper_compute): Better handling of border cases.
313 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
314 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000315
Werner Lemberg011d1112007-01-21 09:36:00 +00003162007-01-21 Werner Lemberg <wl@gnu.org>
317
Werner Lemberg42b63b22007-01-21 21:01:33 +0000318 * ChangeLog: Split off older entries into...
319 * ChangeLog.22: This new file.
320
3212007-01-21 Werner Lemberg <wl@gnu.org>
322
Werner Lemberg555258f2007-01-21 09:46:37 +0000323 * docs/CHANGES: Document SHZ fix.
324
3252007-01-21 George Williams <gww@silcom.com>
326
327 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
328 points.
329
3302007-01-21 Werner Lemberg <wl@gnu.org>
331
Werner Lemberg011d1112007-01-21 09:36:00 +0000332 * src/sfnt/ttmtx.c (tt_face_get_metrics)
333 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
334
Werner Lemberg87a5a432007-01-17 12:44:39 +00003352007-01-17 Werner Lemberg <wl@gnu.org>
336
Werner Lembergb8003292007-01-17 12:56:25 +0000337
338 * Version 2.3.0 released.
339 =========================
340
341
342 Tag sources with `VER-2-3-0-FINAL'.
343
3442007-01-17 Werner Lemberg <wl@gnu.org>
345
Werner Lemberg87a5a432007-01-17 12:44:39 +0000346 * docs/release: Updated.
347
David Turner22122722007-01-16 20:06:44 +00003482007-01-16 David Turner <david@freetype.org>
349
Werner Lemberg87a5a432007-01-17 12:44:39 +0000350 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
351 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
352 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
353 warnings.
David Turner22122722007-01-16 20:06:44 +0000354
Werner Lemberg267e1d72007-01-15 07:48:09 +00003552007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
356
357 * builds/amiga/makefile, builds/amiga/makefile.os4,
358 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
359
360 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
361
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003622007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
363
364 Fix various compiler warnings.
365
366 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
367 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
368 s/index/strike_index/.
369 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
370
371 * src/gxvalid/gxvmorx5.c
372 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
373
374 * src/truetype/ttinterp.c (Compute_Point_Displacement),
375 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
376 uninitialized variables.
377
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003782007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
379
380 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
381
Werner Lemberg281c1482007-01-13 22:50:51 +00003822007-01-13 Werner Lemberg <wl@gnu.org>
383
384 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
385 versions up to 0x3FF without complaining.
386
Werner Lembergac250b22007-01-13 14:01:36 +00003872007-01-13 Derek Clegg <dclegg@apple.com>
388
389 Add FT_Get_PS_Font_Info interface to CFF driver.
390
391 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
392 (CFF_FontRec): Add `font_info' field.
393
394 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
395 (cff_font_done): Free font->font_info if necessary.
396
397 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
398 (cff_service_ps_info): Register cff_ps_get_font_info.
399
Werner Lemberg23df31a2007-01-13 08:45:00 +00004002007-01-13 Werner Lemberg <wl@gnu.org>
401
402 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
403 with C++ compiler.
404
405 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
406 af_glyph_hints_dump_edges): Ditto.
407
408 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
409 `modules.cfg').
410
411 * src/sfnt/ttsbit0.h: Remove.
412
413 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
414
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004152007-01-12 David Turner <david@freetype.org>
416
417 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
418 bug in the bitmap emboldener if the pitch of the source bitmap is
419 much larger than its width.
420
421 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
422 compilation warning.
423
Werner Lemberg6d96d312007-01-12 10:30:19 +00004242007-01-12 Werner Lemberg <wl@gnu.org>
425
426 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
427 `automake' CVS module from sources.redhat.com.
428
Werner Lemberg17432b52007-01-12 09:28:44 +00004292007-01-11 Werner Lemberg <wl@gnu.org>
430
431 * src/type1/t1load.c (is_space): Removed.
432 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
433 (parse_charstrings): Use IS_PS_TOKEN.
434
435
436 * autogen.sh: Avoid bash specific syntax.
437
David Turner038ace22007-01-11 15:00:59 +00004382007-01-11 David Turner <david@freetype.org>
439
Werner Lemberg17432b52007-01-12 09:28:44 +0000440 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000441
Werner Lemberg17432b52007-01-12 09:28:44 +0000442 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000443
Werner Lemberg17432b52007-01-12 09:28:44 +0000444 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
445 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000446 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000447
Werner Lemberg17432b52007-01-12 09:28:44 +0000448 * autogen.sh: Small fix to get it working on Mac OS X properly:
449 The issue is that GNU libtool is called `glibtool' on this platform,
450 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000451
David Turner2628ea92007-01-10 13:15:56 +00004522007-01-10 David Turner <david@freetype.org>
453
Werner Lemberg17432b52007-01-12 09:28:44 +0000454 * all-sources: Tag all sources with VER-2-3-0-RC1 and
455 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000456
Werner Lemberg17432b52007-01-12 09:28:44 +0000457 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
458 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
459 version number to 2.3.0.
460
461 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
462 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000463
464 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000465 include/freetype/ftlcdfil.h: Update reference documentation with
466 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000467
Werner Lemberg17432b52007-01-12 09:28:44 +0000468 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
469 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000470
Werner Lembergbf02d392007-01-10 07:07:37 +00004712007-01-10 Derek Clegg <dclegg@apple.com>
472
473 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
474 values.
475
David Turnerf48b60e2007-01-08 15:15:32 +00004762007-01-08 David Turner <david@freetype.org>
477
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000478 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000479
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000480 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
481 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000482 corresponding to a given character pixel size.
483
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000484 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
485 `gasp' table, in order to avoid potential problems with later
486 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000487
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000488 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
489 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000490
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000491 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
492 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
493 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
494 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000495
Werner Lemberge6b6f372007-01-07 00:06:47 +00004962007-01-07 Werner Lemberg <wl@gnu.org>
497
Werner Lembergb8004d22007-01-07 09:13:38 +0000498 * src/cid/cidparse.c (cid_parser_new): Improve error message for
499 Type 11 fonts.
500 Scan for `/sfnts' token.
501
5022007-01-07 Werner Lemberg <wl@gnu.org>
503
504 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000505
Werner Lembergbe5f7972007-01-06 07:51:48 +00005062007-01-06 Werner Lemberg <wl@gnu.org>
507
508 * src/cff/cffload.c (cff_index_init): Remove unused variable.
509 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
510
David Turnera8cf42b2007-01-04 16:46:46 +00005112007-01-04 David Turner <david@freetype.org>
512
Werner Lembergf6294392007-01-06 07:47:45 +0000513 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
514 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000515
Werner Lembergf6294392007-01-06 07:47:45 +0000516
517 Do not allocate interpreter-specific tables in memory if we are not
518 going to load glyphs with the bytecode interpreter anyway.
519
520 * src/truetype/ttgload.c (tt_loader_init): Load execution context
521 only if glyph is hinted.
522 Updated.
523 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
524 and `cvs_ready'.
525 Add `tt_size_ready_bytecode' declaration.
526 * src/truetype/ttobjs.c (tt_size_done_bytecode,
527 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
528 (tt_size_init): Move most code into `tt_size_init_bytecode'.
529 (tt_size_done): Move most code into `tt_size_done_bytecode'.
530 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000531
David Turner91a34022007-01-05 14:47:08 +0000532
Werner Lembergf6294392007-01-06 07:47:45 +0000533 Don't extract the metrics table from the SFNT font file. Instead,
534 reparse it on each glyph load. The runtime difference is not
535 noticeable, and it can save a lot of heap memory when memory-mapped
536 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000537
Werner Lembergf6294392007-01-06 07:47:45 +0000538 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
539 `horz_metrics_offset' and `vert_metrics_ofset'.
540 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
541 Updated.
542
543
544 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
545
546
547 Do not load the CFF index offsets into memory, since this wastes a
548 *lot* of heap memory with large Asian CFF fonts. There is no
549 significant performance loss.
550
551 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
552 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
553 `data_size'.
554 (CFF_CharsetRec): Add field `num_glyphs'.
555
556 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
557 cff_charset_cid_to_gindex): New functions.
558 (cff_new_index): Renamed to...
559 (cff_index_init): This. Update all callers.
560 Updated -- some code has been moved to `cff_index_load_offsets'.
561 (cff_done_index): Renamed to...
562 (cff_index_done): This. Update all callers.
563 (cff_index_get_pointers, cff_index_access_element): Updated to use
564 stream offsets.
565 (cff_charset_compute_cids): Set `num_glyphs' field.
566 (cff_encoding_load): Updated.
567
568 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000569
5702007-01-04 David Turner <david@freetype.org>
571
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000572 * docs/INSTALL.UNIX: Simplify some parts, add reference to
573 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000574
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000575 * README.CVS: Add common problem description and solution
576 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000577
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000578 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000579
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000580 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000581
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000582 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000583
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000584 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
585 (TWorker): This.
586 Remove `count_table' and `memory'.
587 Make `grays' a pointer.
588 (TRaster): New structure.
589 (count_table): New static array.
590 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
591 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
592 ft_black_set_mode, ft_black_render): Updated.
593 (ft_black_init): Don't initialize `count_table'.
594 (ft_black_reset): Use the render pool. This saves about 6KB of
595 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000596
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000597 * src/smooth/ftgrays.c (TRaster): Replaced with...
598 (TWorker): This.
599 Remove `memory'.
600 (TRaster): New structure.
601
602 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
603 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
604 gray_render_span, gray_raster_render): Updated.
605 (gray_raster_reset): Use the render pool. This saves about 6KB of
606 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000607
David Turner8a6c44e2007-01-04 17:03:11 +0000608 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
609 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000610 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
611 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
612 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000613
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000614 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
615 Remove a typo that results in no hinting and a memory leak with some
616 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000617
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000618 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000619 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000620 CFF_Faces in it. We need to close all faces before destroying the
621 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000622
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006232007-01-02 Werner Lemberg <wl@gnu.org>
624
625 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
626 Remove compiler warning.
627
David Turner9207e002007-01-02 16:58:13 +00006282007-01-02 David Turner <david@freetype.org>
629
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000630 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000631
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006322006-12-31 Masatake YAMATO <jet@gyve.org>
633
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000634 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
635 function.
636 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000637 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000638 `gxv_kern_subtable_fmt0_pairs_validate'.
639
David Turner115b4422006-12-22 11:37:05 +00006402006-12-22 David Turner <david@freetype.org>
641
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000642 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
643 warnings.
David Turner115b4422006-12-22 11:37:05 +0000644
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000645 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
646 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000647
Werner Lemberg4755bf72006-12-16 08:58:44 +00006482006-12-16 Anders Kaseorg <anders@kaseorg.com>
649
650 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
651 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
652
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006532006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
654
Werner Lemberg9b774e22007-01-16 06:11:27 +0000655 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000656 sync with the modification by Jens Claudius on 2006-08-22; cf.
657 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 +0000658
6592006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
660
661 * src/base/ftmac.c: Specialized for Mac OS X only.
662 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
663 * builds/unix/configure.raw: Ditto. When explicit switches for
664 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
665 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
666
6672006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
668
669 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
670 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
671 instead of src/base/ftmac.c
672 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
673 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
674 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
675 that cannot be built at present.
676
6772006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
678
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000679 * src/base/ftobjs.c: Improvement of resource fork handler for
680 POSIX, cf.
681 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000682 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
683 format or .dfont, to simulate the face index number counted by ftmac.c.
684 (IsMacResource): Return the number of scalable faces correctly.
685
Werner Lembergec5b4502006-12-10 07:51:38 +00006862006-12-10 Werner Lemberg <wl@gnu.org>
687
688 * builds/toplevel.mk (version): Protect against `distclean' target.
689
Werner Lembergb26b3142006-12-09 20:01:43 +00006902006-12-09 Werner Lemberg <wl@gnu.org>
691
692 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
693 or `type'.
694
695 * builds/freetype.mk (version): Extracted from freetype.h, using
696 GNU make's built-in string functions.
697 (refdoc): Use $(version) instead of static version number.
698
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006992006-12-08 Werner Lemberg <wl@gnu.org>
700
701 * builds/toplevel.mk (dist): Extract version number from freetype.h.
702
Werner Lemberg15c29502006-12-09 07:29:54 +00007032006-12-08 Vladimir Volovich <vvv@vsu.ru>
704
705 * src/tools/apinames (State): Remove final comma in structure -- xlc
706 v5 under AIX 4.3 doesn't like this.
707
David Turnerdbf3b432006-12-07 21:18:09 +00007082006-12-07 David Turner <david@freetype.org>
709
Werner Lemberg256a3512006-12-08 06:49:33 +0000710 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
711 to the spacing of auto-fitted glyphs. This only impacts rare
712 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000713
Werner Lemberg11171312006-12-03 09:43:40 +00007142006-12-03 Werner Lemberg <wl@gnu.org>
715
716 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
717
Werner Lemberg960ba592006-12-01 08:20:47 +00007182006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000719
Werner Lemberg960ba592006-12-01 08:20:47 +0000720 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
721 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
722 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000723
David Turner80658e52006-11-28 08:09:20 +0000724
Werner Lemberg960ba592006-12-01 08:20:47 +0000725 * include/freetype/ftxf86.h: Fix and extend comment so that it
726 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000727
Werner Lemberg960ba592006-12-01 08:20:47 +0000728 * include/freetype/ftchapters.h: Add `font_format' section.
729
730
731 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
732 to TOC in index page.
733
7342006-11-28 David Turner <david@freetype.org>
735
736 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
737 trying to render into a zero-width/height bitmap, not an error code.
738
739 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
740
741 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
742 ones instead.
743
744 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
745 variable.
David Turner80658e52006-11-28 08:09:20 +0000746
Werner Lemberg8636c292006-11-26 22:28:13 +00007472006-11-26 Pierre Hanser <hanser@club-internet.fr>
748
749 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
750
Werner Lemberg960ba592006-12-01 08:20:47 +00007512006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000752
Werner Lemberg960ba592006-12-01 08:20:47 +0000753 * src/autofit/afhints.c (af_glyph_hints_dump_points,
754 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
755 Add stubs to link the `ftgrid' test program when debugging is
756 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000757
Werner Lemberg960ba592006-12-01 08:20:47 +00007582006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000759
760 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000761 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
762
763 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
764 Emit more sensible information.
765
766 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
767
768 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
769 rounding of blue values.
770 (af_latin_hints_compute_segments): Hint segment heights.
771 (af_latin_hints_link_segments): Reduce `len_score' value.
772 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
773 value and use `height' member for comparisons.
774 (af_latin_hint_edges): Extend logging message.
775 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000776
Werner Lemberg91959bf2006-11-22 10:36:55 +00007772006-11-22 Werner Lemberg <wl@gnu.org>
778
779 Fix Savannah bug #15553.
780
781 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
782 program after a change from mono to grayscaling (and vice versa).
783 Use correct constant for comparison to get `exec->grayscale'.
784
Werner Lemberg913a3652006-11-19 09:19:17 +00007852006-11-18 Werner Lemberg <wl@gnu.org>
786
787 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000788 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000789 This patch fixes Savannah bug #18301.
790
791 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
792 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
793 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
794 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
795 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
796 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
797 (FNT_Load_Glyph): Check validity of `glyph_index'.
798
David Turner7bab6ae2006-11-13 11:25:06 +00007992006-11-13 David Turner <david@freetype.org>
800
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000801 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
802 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000803
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000804 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
805 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
806 when building the library to change the default LCD filter to be
807 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000808
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000809 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000810
David Turner8765c712006-11-10 16:49:42 +00008112006-11-10 David Turner <david@freetype.org>
812
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000813 * src/smooth/ftsmooth.c: API change for the LCD
814 filter. The FT_LcdFilter value is an enumeration describing which
815 filter to apply, with new values FT_LCD_FILTER_LIGHT and
816 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
817 algorithm which produces strong color fringes for everything
818 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000819
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000820 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
821 second parameter to an enum type.
822
823 * src/base/ftlcdfil.c (USE_LEGACY): Define.
824 (_ft_lcd_filter): Rename to...
825 (_ft_lcd_filter_fir): This.
826 Update parameters.
827 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
828 (FT_Library_Set_LcdFilter): Update parameters.
829 Handle new filter modes.
830
831 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
832 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
833 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
834 callback and update other fields.
835
836 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
837 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
838 Other minor improvements.
839
840 * src/autofit/aflatin.c: Various tiny improvements that drastically
841 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
842 (af_latin_hints_compute_edges): Fix typo.
843 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000844
David Turner4e9cc3c2006-11-09 16:31:52 +00008452006-11-09 David Turner <david@freetype.org>
846
Werner Lemberg49c77a82006-11-09 21:51:57 +0000847 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
848 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000849
Werner Lemberg5e430892006-11-07 09:35:03 +00008502006-11-07 Zhe Su <james.su@gmail.com>
851
852 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
853 also.
854
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008552006-11-03 Werner Lemberg <wl@gnu.org>
856
857 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
858
David Turner40604742006-11-02 16:37:35 +00008592006-11-02 David Turner <david@freetype.org>
860
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000861 Add a few tweaks to better handle serif fonts.
862 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000863
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000864 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
865 segments that are less than 1.5 pixels high. This gets rid of
866 *many* corner cases with serifs.
867 (af_latin_align_linked_edge): Add logging message.
868 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
869 Add logging messages.
870 Handle AF_EDGE_FLAG flag specially.
871
872 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
873 _af_debug_disable_blue_hints, and _af_debug_hints variables.
874
875 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
876 Update external declarations.
877 (af_corner_orientation, af_corner_is_flat): Replaced by...
878
879 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
880 ft_corner_is_flat): These declarations.
881
882 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
883 Comment out. Replaced by...
884
885 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
886 These functions. Update all callers.
887 (FT_Add64) [!FT_LONG64]: Simplify.
888
889 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
890 (af_direction_compute): Add a missing FT_ABS call. This bug caused
891 production of garbage by missing lots of segments.
892
893 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
894
895 * src/autofit/afloader.c (af_loader_init, af_loader_done)
896 [AF_DEBUG]: Set _af_debug_hints.
897
898
899 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
900 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
901 and ft_corner_orientation.
902
903
904 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000905
Werner Lemberge88c5262006-10-24 05:46:26 +00009062006-10-24 Werner Lemberg <wl@gnu.org>
907
908 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
909
910 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
911 as argument.
912
David Turnera1861392006-10-23 16:00:59 +00009132006-10-23 Zhe Su <zsu@novell.com>
914
Werner Lemberg715e96e2006-10-24 05:28:45 +0000915 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
916 better deal with broken Asian fonts with strange glyphs, having
917 self-intersections and other peculiarities. The used algorithm is
918 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000919
David Turnere140f142006-10-23 08:56:57 +00009202006-10-23 David Turner <david@freetype.org>
921
Werner Lemberg715e96e2006-10-24 05:28:45 +0000922 Speed up the CFF font loader. With some large CFF fonts,
923 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000924
Werner Lemberg715e96e2006-10-24 05:28:45 +0000925 * src/cff/cffload.c (cff_get_offset): Removed.
926 (cff_new_index): Inline functionality of `cff_get_offset'.
927 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
928 (cff_charset_done): Call `cff_charset_free_cids'.
929 (cff_charset_load): Call `cff_charset_compute_cids'.
930 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
931
932 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
933 with FT_NEXT_XXX.
934
935
936 Speed up the Postscript hinter, with more than 100% speed increase
937 on my machine.
938
939 * src/pshinter/pshalgo.c (psh_corner_is_flat,
940 psh_corner_orientation): New functions.
941 (psh_glyph_compute_inflections): Merge loops for efficiency.
942 Use `psh_corner_orientation'.
943 (psh_glyph_init): Use `psh_corner_is_flat'.
944 (psh_hint_table_find_strong_point): Renamed to...
945 (psh_hint_table_find_strong_points): This.
946 Rewrite, adding argument to handle all points at once.
947 Update all callers.
948 (PSH_MAX_STRONG_INTERNAL): New macro.
949 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000950
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009512006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
952
953 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000954 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000955
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009562006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
957
958 * docs/INSTALL.CROSS: New document file for cross-building.
959
960 * builds/unix/configure.raw: Preliminary cross-building support.
961 Find native C compiler and pass it by CC_BUILD, and
962 find suffix for native executable and pass it by EXEEXT_BUILD.
963 Also suffix for target executable is passed by EXEEXT.
964
Werner Lembergb9e6d692006-10-15 08:58:40 +0000965 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
966 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000967 CC_BUILD and EXEEXT_BUILD.
968
Werner Lembergb9e6d692006-10-15 08:58:40 +0000969 * builds/exports.mk (APINAMES_EXE): Change the extension for
970 apinames from the suffix for target (E) to that for building host
971 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000972
Werner Lemberg82a07e92006-10-12 06:20:44 +00009732006-10-12 Werner Lemberg <wl@gnu.org>
974
975 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
976 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
977 which reference those files.
978
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009792006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
980
Werner Lembergb9e6d692006-10-15 08:58:40 +0000981 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
982 embedded in freetype2.pc and freetype-config. Use it to record
983 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000984
985 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
986
987 * builds/unix/freetype-config.in: Ditto.
988
Werner Lemberg28e17d92006-10-11 17:27:47 +00009892006-10-11 Werner Lemberg <wl@gnu.org>
990
991 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
992 development.
993
Jens Claudius336d2292006-10-03 08:53:37 +00009942006-10-03 Jens Claudius <jens.claudius@yahoo.com>
995
996 * include/freetype/config/ftstdlib.h: Cast away volatileness from
997 argument to ft_setjmp.
998
999 * include/freetype/internal/ftvalid.h: Add comment that
1000 ft_validator_run must not be used.
1001
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010022006-10-01 Werner Lemberg <wl@gnu.org>
1003
1004 * src/base/ftbase.c: Undo change from 2006-09-30.
1005
1006 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1007
10082006-09-30 David Turner <david@freetype.org>
1009
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001010 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1011 s/unpatented_hinting/ignore_unpatented_hinter/.
1012 Update all callers.
1013
1014 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1015 auto-hinting shall be used or not.
1016
1017 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001018
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010192006-09-30 Werner Lemberg <wl@gnu.org>
1020
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001021 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1022 in use).
1023
1024 * src/base/ftbase.c: Include `ftlcdfil.c'.
1025
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010262006-09-29 Werner Lemberg <wl@gnu.org>
1027
1028 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1029 overlapping segments. Bug reported by Stefan Koch.
1030
David Turnerad830712006-09-27 16:20:59 +000010312006-09-28 David Turner <david@freetype.org>
1032
Werner Lemberg2c002e12006-09-29 21:31:53 +00001033 Fix a bug in the automatic unpatented hinting support which prevents
1034 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001035
Werner Lemberg2c002e12006-09-29 21:31:53 +00001036 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1037 s/force_autohint/unpatented_hinting/. Update all callers.
1038
1039 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1040
1041 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001042
David Turner8a317cf2006-09-27 07:52:48 +000010432006-09-27 David Turner <david@freetype.org>
1044
Werner Lemberg2c002e12006-09-29 21:31:53 +00001045 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001046
David Turner8a317cf2006-09-27 07:52:48 +00001047
David Turnere140f142006-10-23 08:56:57 +00001048 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001049 In a default build, the function `FT_Library_SetLcdFilter' returns
1050 `FT_Err_Unimplemented_Feature'; you need to #define
1051 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1052 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001053
Werner Lemberg2c002e12006-09-29 21:31:53 +00001054 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001055
Werner Lemberg2c002e12006-09-29 21:31:53 +00001056 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1057 typedef.
1058 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1059 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001060
Werner Lemberg2c002e12006-09-29 21:31:53 +00001061 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1062 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001063
Werner Lemberg2c002e12006-09-29 21:31:53 +00001064 Handle subpixel rendering.
1065 Simplify function.
1066 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1067 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1068
1069 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1070 pointing to <freetype/ftlcdfil.h>.
1071
1072 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1073 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1074
1075 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001076
Werner Lemberge20df4a2006-09-27 06:29:21 +000010772006-09-26 David Bustin
1078
1079 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1080 correctly. Reported as Savannah bug #17843.
1081
David Turner6f8c6222006-09-26 15:42:44 +000010822006-09-26 David Turner <david@freetype.org>
1083
Werner Lemberg110246c2006-09-26 21:55:44 +00001084 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1085 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1086 horizontal and vertical hinting for the purpose of debugging the
1087 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001088
Werner Lemberg110246c2006-09-26 21:55:44 +00001089 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1090 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001091
Werner Lemberg110246c2006-09-26 21:55:44 +00001092 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1093
1094 * include/freetype/config/ftoption.h, devel/ftoption.h
1095 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1096 we want to compile LCD-optimized rendering code (à la ClearType) or
1097 not. The macro *must* be disabled in default builds of the library
1098 for patent reasons.
1099
1100 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1101 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1102 isn't defined at compile time. This only changes the content of the
1103 rendered glyph to match the one of normal gray-level rendering,
1104 hence clients should not need to be modified.
1105
1106 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001107
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011082006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1109
1110 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1111 LWFN fails and both are available.
1112
David Turnerf3050052006-09-11 12:00:32 +000011132006-09-11 David Turner <david@freetype.org>
1114
Werner Lembergf9644552006-09-12 13:48:10 +00001115 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1116 report their English names through an Apple Roman
1117 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001118
Werner Lembergf9644552006-09-12 13:48:10 +00001119 If the font uses another name entry with language_id == English, it
1120 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001121
Werner Lembergf9644552006-09-12 13:48:10 +00001122 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1123 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001124
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011252006-09-05 Werner Lemberg <wl@gnu.org>
1126
1127 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001128 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001129 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1130 `HAN NOM B.ttf').
1131
1132 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1133
David Turner772e55d2006-09-05 09:45:15 +000011342006-09-05 David Turner <david@freetype.org>
1135
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001136 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001137
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001138 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1139 (TRaster): Remove `count_ex' and `count_ey'.
1140 (gray_find_cell): Remove 2nd and 3rd argument.
1141 (gray_alloc_cell): Merged with `gray_find_cell'.
1142 (gray_record_cell): Simplify.
1143 (gray_set_cell): Rewrite.
1144 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1145 (gray_render_span): Don't use FT_MEM_SET for small values.
1146 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1147 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1148 bitmap scanline.
1149 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001150
David Turneraa557a92006-09-04 16:42:44 +000011512006-09-04 David Turner <david@freetype.org>
1152
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001153 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1154 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001155
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011562006-09-03 Werner Lemberg <wl@gnu.org>
1157
1158 * devel/ftoption.h: Synchronize with
1159 include/freetype/config/ftoption.h.
1160
1161 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1162 variable declaration.
1163 (gray_convert_glyph): Fix compiler warnings.
1164
David Turner6d79f212006-09-01 14:09:35 +000011652006-09-01 David Turner <david@freetype.org>
1166
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001167 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1168 to recognize a few fonts that require the automatic unpatented
1169 loader.
David Turnerbd502952006-09-01 19:05:24 +00001170
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001171 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1172 rasterizer. The speed improvement is between 15% and 25%, depending
1173 on the font data.
1174
1175 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1176 (TCell): Redefine.
1177 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1178 (gray_init_cells): Updated.
1179 (gray_find_cell, gray_alloc_cell): New functions.
1180 (gray_record_cell): Rewritten to use `gray_find_cell' and
1181 `gray_alloc_cell'.
1182 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1183 QSORT_THRESHOLD):
1184 Removed.
1185 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1186 gray_dump_cells): Removed.
1187 (gray_sweep): Rewritten.
1188 (gray_convert_glyph): Rewrite code which used one of the sorting
1189 functions.
1190 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001191
Werner Lembergd898aed2006-08-29 09:50:34 +000011922006-08-29 Dr. Werner Fink <werner@suse.de>
1193
1194 * configure: Make it possible to handle configure options which
1195 have strings containing spaces.
1196
11972006-08-27 David Turner <david@freetype.org>
1198
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001199 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1200 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1201 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1202
1203 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1204 src/truetype/truetype.c, src/truetype/ttdriver.c,
1205 src/truetype/ttgload.c, src/truetype/ttgload.h,
1206 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1207 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1208 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1209
1210 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1211 member `force_autohint'.
1212
1213 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1214
1215 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1216 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001217
Jens Claudiusa787f452006-08-27 11:26:18 +000012182006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1219
1220 Fix miscellaneous compiler warnings.
1221
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001222 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1223 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001224
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001225 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1226 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1227 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001228
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001229 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1230 volatileness of argument to ft_longjmp. Spotted by Werner
1231 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001232
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001233 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1234 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001235
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001236 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1237 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001238
Werner Lembergc4c35b72006-08-27 08:03:46 +000012392006-08-27 Werner Lemberg <wl@gnu.org>
1240
1241 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1242 Reported by Jens.
1243
Jens Claudius088e44e2006-08-22 14:24:30 +000012442006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001245
Jens Claudius088e44e2006-08-22 14:24:30 +00001246 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001247 about addresses of volatile objects passed as function arguments as
1248 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001249
Werner Lembergc4c35b72006-08-27 08:03:46 +00001250 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1251 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001252
1253 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1254 argument `table' a pointer to a volatile object.
1255
1256 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1257 argument `table' a pointer to a volatile object.
1258
Jens Claudius2652bd52006-08-18 17:20:37 +000012592006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1260
1261 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1262 variable `_sfnt' as volatile since it must keep its value across
1263 a call to ft_setjmp.
1264 (gxv_validate): Same for local variables `memory' and `valid'.
1265 (classic_kern_validate): Same for local variables `memory',
1266 `ckern', and `valid'.
1267
1268 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1269 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1270 `jstf', and 'valid'.
1271
1272 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1273 local variable `cmap'.
1274
David Turner9fbfc6a2006-08-16 09:11:31 +000012752006-08-16 David Turner <david@freetype.org>
1276
Werner Lemberg12342992006-08-19 11:18:09 +00001277 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1278 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001279
Werner Lemberg12342992006-08-19 11:18:09 +00001280 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1281 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001282
David Turner33f5f242006-08-16 16:50:55 +00001283
Werner Lemberg12342992006-08-19 11:18:09 +00001284 Improvements to native TrueType hinting. This is a first try,
1285 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1286
1287 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1288 `extra_points2'.
1289
1290 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1291 `orus'.
1292
1293 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1294 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1295 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1296 handle `extra_points2'.
1297
1298 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1299 Remove compiler warning.
1300 (cur_to_arg): Remove macro.
1301 (TT_Hint_Glyph): Updated.
1302 (TT_Process_Simple_Glyph): Handle `orus'.
1303
1304 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1305 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1306 (LOC_Ins_IUP): Renamed to...
1307 (IUP_WorkerRec): This.
1308 Add `orus' member.
1309 (Shift): Renamed to...
1310 (_iup_worker_shift): This.
1311 Updated.
1312 (Interp): Renamed to...
1313 (_iup_worker_interpolate): This.
1314 Updated to handle `orus'.
1315 (Ins_IUP): Updated.
1316
1317 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1318 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001319
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013202006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1321
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001322 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001323 build ftvalid in ft2demos. This has been inadvertedly changed
1324 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001325
13262006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1327
Werner Lemberg12342992006-08-19 11:18:09 +00001328 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1329 Jens:
1330 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001331
Werner Lemberg12342992006-08-19 11:18:09 +00001332 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1333 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001334
1335 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1336
Jens Claudius9950adc2006-08-13 12:14:36 +000013372006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1338
Werner Lemberg12342992006-08-19 11:18:09 +00001339 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1340 T1_TOKEN_TYPE_KEY.
1341 (T1_FieldRec): Add `dict'.
1342 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1343 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1344 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001345
Werner Lemberg12342992006-08-19 11:18:09 +00001346 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1347 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001348
1349 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1350
1351 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001352 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1353 not T1_TOKEN_TYPE_ANY.
1354 (ps_parser_load_field): Make sure a token that should be a string or
1355 name is really a string or name.
1356 Avoid memory leak if a keyword has been already encountered and its
1357 value is overwritten.
1358 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1359 T1_FIELD_XXX.
1360 (parse_dict): Ignore keywords that occur in the wrong dictionary
1361 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001362
Werner Lemberg12342992006-08-19 11:18:09 +00001363 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1364 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001365
Werner Lemberg12342992006-08-19 11:18:09 +00001366 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1367 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001368
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013692006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1370
1371 Move creation of field `buildchar' of T1_DecoderRec out of
1372 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1373 of it.
1374
1375 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1376 and `T1_Compute_Max_Advance'.
1377
1378 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1379 Remove field `face', add `len_buildchar'.
1380
1381 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1382 field `buildchar'.
1383
1384 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1385 finisher for T1_Decoder.
1386 (cid_slot_load_glyph): Do not ignore failure when initializing the
1387 T1_Decoder.
1388
1389 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1390 Updated.
1391 (t1_decoder_init): Remove initialization of fields `buildchar' and
1392 `len_buildchar'.
1393 (t1_decoder_done): Remove deallocation of field `buildchar'.
1394
1395 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1396 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1397 T1_Decoder.
1398 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1399 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1400 case of error.
1401
1402 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1403 `buildchar' of T1_FaceRec.
1404
1405 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1406 `buildchar' of T1_FaceRec.
1407
Werner Lemberg1a380e02006-07-14 18:28:08 +000014082006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1409
1410 * freetype2/include/freetype/internal/psaux.h: New macros
1411 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1412 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1413 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1414 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1415 (T1_DecoderRec): New fields `buildchar' and `face'.
1416 (IS_PS_TOKEN): New macro.
1417
1418 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1419 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1420
1421 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1422 `default_design_vector' and `num_default_design_vector'.
1423
1424 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1425 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1426 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1427
1428 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1429 `token' argument to be NULL if we want only to count the number of
1430 tokens.
1431 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1432 want to skip the array.
1433 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1434 want to skip the array.
1435
1436 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1437 support for (partially commented out) othersubrs 19-25, 27, and 28.
1438 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1439 (t1_decoder_done): Release new field `buildchar'.
1440
1441 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1442 functions.
1443 (t1_keywords): Register them.
1444 (t1_allocate_blend): Updated.
1445 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1446 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1447 (parse_dict): Remove `keyword_flags' argument.
1448 Use new macro IS_PS_TOKEN.
1449 Changed function so that later PostScript definitions override
1450 earlier ones.
1451 (t1_init_loader): Initialize new field `keywords_encountered'.
1452 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1453 `len_buildchar'.
1454 Remove `keywords_flags'.
1455
1456 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1457 `keywords_encountered'.
1458 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1459
1460 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1461 New entries for parsing /NDV, /CDV, and /DesignVector.
1462
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014632006-07-07 Werner Lemberg <wl@gnu.org>
1464
1465 Add many checks to protect against malformed PCF files.
1466
1467 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1468 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1469
1470 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1471 data and check that tables don't overlap (using a simple
1472 bubblesort).
1473 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1474 New macros which give the size of data structures in the data
1475 stream.
1476 (pcf_get_properties): Use rough estimates to get array size limits.
1477 Assign `face->nprops' and `face->properties' earlier so that a call
1478 to PCF_Face_Done can do the clean-up in case of error.
1479 Protect against invalid string offsets.
1480 (pcf_get_metrics): Clean up code.
1481 Adjust tracing message levels.
1482 Use rough estimate to get array size limit.
1483 (pcf_get_bitmaps): Clean up code.
1484 Adjust tracing message levels.
1485 Use rough estimates to get offset limits.
1486 (pcf_get_encodings): Adjust tracing message level.
1487 (pcf_get_accel): Clean up code.
1488
Werner Lemberg8eb05252006-06-27 06:20:01 +000014892006-06-26 Werner Lemberg <wl@gnu.org>
1490
1491 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1492 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1493
Werner Lemberg24703f82006-06-26 19:12:51 +000014942006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1495
1496 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1497 (t1_decoder_parse_charstrings): Operator with
1498 opcode 15 pops its two arguments.
1499 Handle the case where the pops of an othersubr may be part of a
1500 subroutine.
1501 Handle unknown othersubrs gracefully: count their operands and let
1502 the following pop operators push the operands as the results onto
1503 the Type1 stack.
1504 Improve handling of setcurrentpoint opcode.
1505
Werner Lembergc011f4c2006-06-26 09:40:00 +000015062006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1507
1508 The Type 1 parser now skips over top-level procedures as required
1509 for a `Simplified Parser'. This makes the parser more robust as it
1510 doesn't poke around in PostScript code. Additionally, it makes the
1511 FontDirectory hackery in src/type1/t1load.c unnecessary.
1512
1513 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1514 (skip_literal_string): Add FT_Error as return value.
1515 Handle escapes better.
1516 (skip_string): Add FT_Error as return value.
1517 Don't set `parser->error' but return error code directly.
1518 (skip_procedure): New function.
1519 (ps_parser_skip_PS_token): Handle procedures.
1520 Update code.
1521 (ps_parser_to_token): Update code.
1522 (ps_parser_load_field_table): Handle bbox entries also.
1523
1524 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1525 Add commented-out code for synthetic fonts.
1526
Werner Lemberga2da05c2006-06-25 06:27:27 +000015272006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1528
1529 Fix two hinting bugs as reported in
1530 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1531
1532 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1533 `first_point' member.
1534
1535 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1536 `first_point'.
1537 (TT_Process_Composite_Glyph): Always untouch points.
1538
1539 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1540 `first_point' and `last_point' in case of composite glyphs.
1541 (Ins_IUP): Fix computation of `end_point'.
1542
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015432006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1544
Werner Lembergef3d2c22006-06-25 06:07:14 +00001545 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1546 Mac. The original patch was written by David Sachitano and Lawrence
1547 Coopet, and modified by Sean McBride for MPW compatibility. Only
1548 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001549
Werner Lembergef3d2c22006-06-25 06:07:14 +00001550 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1551 Mac OS X platforms.
1552 (OS_INLINE): Undefine before definition.
1553 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1554 FontAssociation table in FOND resource.
1555 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1556 and fontSize at each entry of FontAssociation table in FOND
1557 resource.
1558 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1559 ffStylOff of FamilyRecord header of FOND resource, the header,
1560 fontSize, fontID at each entry of FontAssociation table, and
1561 StyleMapping table.
1562 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001563
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015642006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1565
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001566 Public API of TrueTypeGX, OpenType, and classic kern table validator
1567 should return `FT_Err_Unimplemented_Feature' if validation service
1568 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001569 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001570 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1571
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001572 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1573 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1574 unavailable.
1575 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1576 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001577
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001578 * src/base/ftotval.c (FT_OpenType_Validate): Return
1579 FT_Err_Unimplemented_Feature if OpenType validation service is
1580 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001581
Werner Lembergb10e45a2006-06-08 07:32:56 +000015822006-06-08 Werner Lemberg <wl@gnu.org>
1583
1584 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1585 errors.
1586
David Turner5f1f7502006-06-07 05:11:50 +000015872006-06-07 David Turner <david@freetype.org>
1588
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001589 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1590 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1591 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001592
David Turner457b4a82006-06-06 08:14:14 +000015932006-06-06 David Turner <david@freetype.org>
1594
Werner Lemberg4836f952006-06-06 12:54:08 +00001595 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001596
Werner Lemberg4836f952006-06-06 12:54:08 +00001597 We change `ps_unicodes_init' so that it also takes a
1598 `free_glyph_name' callback to release the glyph names returned by
1599 `get_glyph_name'
1600
1601 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1602 Renamed to ...
1603 (PS_GetGlyphNameFunc): This.
1604 (PS_FreeGlyphNameFunc): New typedef.
1605 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1606
1607 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1608 argument.
1609 (cff_sid_free_glyph_name): New function.
1610 (cff_cmap_unicode_init): Updated.
1611
1612 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1613
1614 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1615 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001616
1617
David Turner09717352006-06-04 14:33:08 +000016182006-06-04 David Turner <david@freetype.org>
1619
Werner Lembergd724f202006-06-04 15:17:41 +00001620 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1621 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001622 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001623
Werner Lembergd724f202006-06-04 15:17:41 +00001624 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1625 of `face->num_glyphs' which missed the last glyph, due to
1626 the offset-by-1 computation, since the PFR format doesn't
1627 guarantee that glyph index 0 corresponds to the `missing
1628 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001629
Werner Lemberg33779662006-05-26 06:30:05 +000016302006-05-25 Werner Lemberg <wl@gnu.org>
1631
1632 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1633 `-no-undefined'. Reported by Christian Biesinger.
1634
Werner Lemberg24773d62006-05-20 08:53:13 +000016352006-05-19 Brian Weed <bw@imaginengine.com>
1636
1637 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1638 have debug information, and debug libraries use `C7 compatible'
1639 debug info.
1640
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016412006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1642
Werner Lemberga6523a62006-05-20 08:47:01 +00001643 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001644 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001645
Werner Lemberga6523a62006-05-20 08:47:01 +00001646 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1647 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001648
1649 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001650 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001651
16522006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1653
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001654 * build/unix/configure.raw: Add a fallback to disable Carbon
1655 dependency, if configured with no options on Mac OS X.
1656
16572006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1658
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001659 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001660 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001661 the second part of Savannah bug #16590.
1662
Werner Lemberg545c4e52006-05-17 22:55:04 +000016632006-05-18 Werner Lemberg <wl@gnu.org>
1664
1665 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1666 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1667
David Turnerdc3ff312006-05-17 12:59:35 +000016682006-05-17 David Turner <david@freetype.org>
1669
Werner Lemberg545c4e52006-05-17 22:55:04 +00001670 This is a major patch used to drastically improve the performance of
1671 loading glyphs. This both speeds up loading the glyph vectors
1672 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001673
Werner Lemberg545c4e52006-05-17 22:55:04 +00001674 We now use inline assembler code with GCC to implement `FT_MulFix',
1675 which is probably the most important function related to the
1676 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001677
Werner Lemberg545c4e52006-05-17 22:55:04 +00001678 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001679
1680
Werner Lemberg545c4e52006-05-17 22:55:04 +00001681 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1682 `cursor' and `limit'.
1683
1684 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1685 New functions.
1686 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1687 [TEST]: Remove.
1688
1689 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1690 code.
1691
1692 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1693 `FT_ZERO'
1694 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1695 (af_glyph_hints_reload: Rewrite recognition of weak points.
1696
1697 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1698 constant values out of the loops.
1699
1700 * src/autofit/aftypes.h: Updated.
1701
1702 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1703
1704 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1705 product to get orientation.
1706
1707 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1708 (FT_Stream_OpenGzip): Use it to handle small files directly in
1709 memory.
1710
1711 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1712 Improve performance.
1713
1714 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1715 `limit'.
1716
1717 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1718 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1719 exceedingly large values of number of contours. Speed up by
1720 reducing the number of loops.
1721
1722 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1723
1724
1725 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1726 used to detect rogue clients from 4 to 16. This is to prevent some
1727 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1728 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001729
Werner Lembergde2d90a2006-05-17 08:54:30 +000017302007-05-17 Werner Lemberg <wl@gnu.org>
1731
1732 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001733 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001734
17352006-05-16 Werner Lemberg <wl@gnu.org>
1736
1737 * docs/PROBLEMS: Updated icl issues.
1738
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001739----------------------------------------------------------------------------
1740
Werner Lemberg42b63b22007-01-21 21:01:33 +00001741Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001742David Turner, Robert Wilhelm, and Werner Lemberg.
1743
1744This file is part of the FreeType project, and may only be used, modified,
1745and distributed under the terms of the FreeType project license,
1746LICENSE.TXT. By continuing to use, modify, or distribute this file you
1747indicate that you have read the license and understand and accept it
1748fully.
1749
1750
1751Local Variables:
1752version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001753coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001754End: