blob: e7140429493b34913322a4e76c3e53e1d52d686d [file] [log] [blame]
David Turner74c34eb2007-03-18 07:19:31 +000012007-03-18 David Turner <david@freetype.org>
2
3 * src/truetype/ttinterp.c (Ins_MDRP): another bytecode
4 regression fix; testing still needed
5
David Turner64a9ef22007-03-18 07:35:08 +00006 * src/truetype/ttinterp.c (Ins_MD): another bytecode
7 regression fix
8
David Turner89020d92007-03-17 17:48:57 +000092007-03-17 David Turner <david@freetype.org>
10
11 * src/truetype/ttinterp.c (Ins_IP): fixing wrong handling
12 of the (undocumented) twilight zone special case.
13
Werner Lemberg25d592a2007-03-09 07:59:35 +0000142007-03-09 Werner Lemberg <wl@gnu.org>
15
16 * Version 2.3.2 released.
17 =========================
18
19
20 Tag sources with `VER-2-3-2'.
21
22 * builds/win32/visualc/index.html,
23 builds/win32/visualc/freetype.dsp,
24 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
25 s/231/232/.
26
David Turner3a51afa2007-03-08 10:50:38 +0000272007-03-08 David Turner <david@freetype.org>
28
Werner Lemberg25d592a2007-03-09 07:59:35 +000029 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000030
Werner Lemberg25d592a2007-03-09 07:59:35 +000031 * builds/unix/configure.raw (version_info): Set to 9:13:3.
32
33 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
34
35 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000036
Werner Lemberg1e259de2007-03-08 15:39:21 +000037 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
38 function to work properly, over-writing user-provided buffers in
39 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000040
David Turner121cad52007-03-08 16:43:50 +000041
Werner Lemberg3d92f082007-03-06 11:59:24 +0000422007-03-05 Werner Lemberg <wl@gnu.org>
43
44 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
45 macro for `strstr'.
46
47 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
48 `trick_names', as suggested by Ivan Nincic.
49
David Turner085bc6e2007-03-05 17:40:03 +0000502007-03-05 David Turner <david@freetype.org>
51
Werner Lembergd112cf02007-03-06 12:06:56 +000052 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
53 case FT_Init_FreeType fails for some reason. Problem reported by
54 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000055
Werner Lembergd112cf02007-03-06 12:06:56 +000056 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
57 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
58 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
59 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000060
Werner Lembergd112cf02007-03-06 12:06:56 +000061 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
62 signed values, not unsigned ones. Problem reported by Johannes
63 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000064
David Turner601aefe2007-02-21 16:47:49 +0000652007-02-21 David Turner <david@freetype.org>
66
Werner Lembergde5e6862007-02-25 21:06:43 +000067 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
68 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000069
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000702007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
71
72 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
73 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
74 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
75
Werner Lemberga0915172007-02-16 08:12:50 +0000762007-02-16 Werner Lemberg <wl@gnu.org>
77
78 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
79 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
80
David Turner2c4500e2007-02-14 15:08:47 +0000812007-02-14 David Turner <david@freetype.org>
82
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000083 It seems that the following changes fix most of the known
84 interpreter problems with my fonts, but more testing is needed,
85 though.
86
87 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
88 (TT_MulFix14): Rewrite.
89 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
90 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000091
Werner Lembergc6a14082007-02-12 22:08:15 +0000922007-02-12 Werner Lemberg <wl@gnu.org>
93
94 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
95 warnings.
96
97 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
98 (bdf_interpret_style): Ditto.
99
David Turnerc0f9c4a2007-02-12 14:55:03 +00001002007-02-12 David Turner <david@freetype.org>
101
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000102 Simplify projection and dual-projection code interface.
103
Werner Lemberg406d25f2007-02-12 22:01:18 +0000104 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
105 FT_Vector' as argument type.
106 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
107 Updated.
108 (CUR_fast_project, CUR_fast_dualproj): New macros.
109 (Project, Dual_Project, Project_x, Project_y): Updated.
110 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
111 macros.
112
113
114 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
115 adjustments for the non-light auto-hinted modes. Gets rid of
116 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000117
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000118 * src/autofit/aflatin.c (af_latin_hints_link_segments,
119 af_latin_hints_compute_edges): Slight optimization of the segment
120 linker and better handling of serif segments to get rid of broken
121 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000122
David Turnerc0f9c4a2007-02-12 14:55:03 +0000123
Werner Lemberg442bfb82007-02-12 21:44:10 +0000124 Introduce new string functions and the corresponding macros to get
125 rid of various uses of strcpy and other `evil' functions, as well as
126 to simplify a few things.
127
128 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
129 ft_mem_strcpyn): New declarations.
130 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
131 macros.
132 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
133 functions.
134
135 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
136 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
137 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
138 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
139 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
140 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
141 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
142 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000143
Werner Lemberg406d25f2007-02-12 22:01:18 +0000144 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
145
Werner Lemberg582067d2007-02-11 15:03:05 +00001462007-02-11 Werner Lemberg <wl@gnu.org>
147
148 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
149 non-spacing glyphs.
150
Werner Lemberg8f474532007-02-07 08:31:01 +00001512007-02-07 Tom Parker <palfrey@tevp.net>
152
153 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
154 pointer.
155
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001562007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
157
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000158 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
159 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000160 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000161 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
162 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
163 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
164 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000165
166 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
167 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000168 * builds/mac/ftmac.c: Ditto.
169
1702007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
171
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000172 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000173 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000174 #include <ftmac.c>.
175
1762007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
177
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000178 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
179 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
180 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
181 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
182 FT_GetFilePath_From_Mac_ATS_Name.
183 * builds/mac/ftmac.c: Ditto.
184
1852007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
186
Werner Lembergdcbb7082007-02-08 08:54:09 +0000187 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000188 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
189 for passing to FT_New_Face_From_FSSpec.
190
1912007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
192
Werner Lembergdcbb7082007-02-08 08:54:09 +0000193 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000194 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000195
196 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
197 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000198 * builds/mac/ftmac.c (OS_INLINE): Ditto.
199
Werner Lemberg313d7772007-02-01 08:10:45 +00002002007-02-01 Werner Lemberg <wl@gnu.org>
201
202 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
203 Explain why applications shouldn't use it. Found by Alexei.
204
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002052007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000206
207 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
208 message.
209
210 * src/gxvalid/gxvmort1.c
211 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
212 message.
213
Werner Lemberg53935932007-01-31 08:53:02 +00002142007-01-31 Werner Lemberg <wl@gnu.org>
215
216
217 * Version 2.3.1 released.
218 =========================
219
220
221 Tag sources with `VER-2-3-1-FINAL'.
222
223 * builds/win32/visualc/freetype.dsp,
224 builds/win32/visualc/freetype.vcproj: s/230/231/.
225 * builds/win32/visualc/index.html: s/221/231/.
226
227 * vms_make.com: Add `ftgasp'.
228
David Turnera7ee6082007-01-30 10:33:53 +00002292007-01-30 David Turner <david@freetype.org>
230
Werner Lemberg53935932007-01-31 08:53:02 +0000231 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000232
Werner Lemberg53935932007-01-31 08:53:02 +0000233 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000234
Werner Lemberg25d592a2007-03-09 07:59:35 +0000235 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000236 s/2.3.0/2.3.1/.
237
238 * builds/unix/configure.raw (version_info): Set to 9:12:3.
239
240
241 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
242 (af_loader_load_g): Disable the warper (i.e., the light hinting
243 improvements) to make a 2.3.1 bugfix release before introducing a
244 new feature. This should give us more time to tune and improve the
245 warper for the next release.
246
247 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000248
David Turnerd91eebd2007-01-26 15:05:41 +00002492007-01-25 David Turner <david@freetype.org>
250
Werner Lembergbf241762007-01-26 16:08:49 +0000251 For light auto-hinting, improve glyph advance widths and resurrect
252 normal/full hinting to its normal quality.
253
254 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
255 and `xmax_delta'.
256 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
257 and `xmax_delta'.
258
259 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
260 preprocessor conditional with if-clause, handling both light and
261 normal mode.
262
263 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
264 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000265
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002662007-01-25 Werner Lemberg <wl@gnu.org>
267
268 * docs/release: Updated -- Savannah uses a new uploading scheme.
269
David Turnera42567b2007-01-25 12:23:37 +00002702007-01-25 David Turner <david@freetype.org>
271
Werner Lembergd7855662007-01-25 13:53:56 +0000272 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000273
Werner Lembergd7855662007-01-25 13:53:56 +0000274 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
275 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
276 functions.
David Turnera42567b2007-01-25 12:23:37 +0000277
Werner Lembergd7855662007-01-25 13:53:56 +0000278 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000279
Werner Lembergb1be9e82007-01-25 11:50:00 +00002802007-01-25 Werner Lemberg <wl@gnu.org>
281
282 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000283 correctly in a sanity check. Since this function is only used to
284 load local and global functions, any charstring that called the last
285 local/global function would fail otherwise. This fixes Savannah bug
286 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000287
288 * docs/CHANGES: Document it.
289
David Turnerb6de8d12007-01-23 15:51:50 +00002902007-01-23 David Turner <david@freetype.org>
291
Werner Lembergb1be9e82007-01-25 11:50:00 +0000292 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
293 prevented compilation when disabling both the unpatented and the
294 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000295
Werner Lembergb1be9e82007-01-25 11:50:00 +0000296
297 Fix and enable the warper to improve `light' hinting mode. This is
298 not necessarily a final version, but it seems to work well.
299
300 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
301 Disable code.
302 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
303 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
304
305 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
306 (af_warper_compute_line_best): Fix array size of `scores'.
307 (af_warper_compute): Better handling of border cases.
308 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
309 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000310
Werner Lemberg011d1112007-01-21 09:36:00 +00003112007-01-21 Werner Lemberg <wl@gnu.org>
312
Werner Lemberg42b63b22007-01-21 21:01:33 +0000313 * ChangeLog: Split off older entries into...
314 * ChangeLog.22: This new file.
315
3162007-01-21 Werner Lemberg <wl@gnu.org>
317
Werner Lemberg555258f2007-01-21 09:46:37 +0000318 * docs/CHANGES: Document SHZ fix.
319
3202007-01-21 George Williams <gww@silcom.com>
321
322 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
323 points.
324
3252007-01-21 Werner Lemberg <wl@gnu.org>
326
Werner Lemberg011d1112007-01-21 09:36:00 +0000327 * src/sfnt/ttmtx.c (tt_face_get_metrics)
328 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
329
Werner Lemberg87a5a432007-01-17 12:44:39 +00003302007-01-17 Werner Lemberg <wl@gnu.org>
331
Werner Lembergb8003292007-01-17 12:56:25 +0000332
333 * Version 2.3.0 released.
334 =========================
335
336
337 Tag sources with `VER-2-3-0-FINAL'.
338
3392007-01-17 Werner Lemberg <wl@gnu.org>
340
Werner Lemberg87a5a432007-01-17 12:44:39 +0000341 * docs/release: Updated.
342
David Turner22122722007-01-16 20:06:44 +00003432007-01-16 David Turner <david@freetype.org>
344
Werner Lemberg87a5a432007-01-17 12:44:39 +0000345 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
346 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
347 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
348 warnings.
David Turner22122722007-01-16 20:06:44 +0000349
Werner Lemberg267e1d72007-01-15 07:48:09 +00003502007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
351
352 * builds/amiga/makefile, builds/amiga/makefile.os4,
353 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
354
355 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
356
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003572007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
358
359 Fix various compiler warnings.
360
361 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
362 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
363 s/index/strike_index/.
364 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
365
366 * src/gxvalid/gxvmorx5.c
367 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
368
369 * src/truetype/ttinterp.c (Compute_Point_Displacement),
370 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
371 uninitialized variables.
372
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003732007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
374
375 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
376
Werner Lemberg281c1482007-01-13 22:50:51 +00003772007-01-13 Werner Lemberg <wl@gnu.org>
378
379 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
380 versions up to 0x3FF without complaining.
381
Werner Lembergac250b22007-01-13 14:01:36 +00003822007-01-13 Derek Clegg <dclegg@apple.com>
383
384 Add FT_Get_PS_Font_Info interface to CFF driver.
385
386 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
387 (CFF_FontRec): Add `font_info' field.
388
389 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
390 (cff_font_done): Free font->font_info if necessary.
391
392 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
393 (cff_service_ps_info): Register cff_ps_get_font_info.
394
Werner Lemberg23df31a2007-01-13 08:45:00 +00003952007-01-13 Werner Lemberg <wl@gnu.org>
396
397 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
398 with C++ compiler.
399
400 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
401 af_glyph_hints_dump_edges): Ditto.
402
403 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
404 `modules.cfg').
405
406 * src/sfnt/ttsbit0.h: Remove.
407
408 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
409
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004102007-01-12 David Turner <david@freetype.org>
411
412 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
413 bug in the bitmap emboldener if the pitch of the source bitmap is
414 much larger than its width.
415
416 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
417 compilation warning.
418
Werner Lemberg6d96d312007-01-12 10:30:19 +00004192007-01-12 Werner Lemberg <wl@gnu.org>
420
421 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
422 `automake' CVS module from sources.redhat.com.
423
Werner Lemberg17432b52007-01-12 09:28:44 +00004242007-01-11 Werner Lemberg <wl@gnu.org>
425
426 * src/type1/t1load.c (is_space): Removed.
427 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
428 (parse_charstrings): Use IS_PS_TOKEN.
429
430
431 * autogen.sh: Avoid bash specific syntax.
432
David Turner038ace22007-01-11 15:00:59 +00004332007-01-11 David Turner <david@freetype.org>
434
Werner Lemberg17432b52007-01-12 09:28:44 +0000435 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000436
Werner Lemberg17432b52007-01-12 09:28:44 +0000437 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000438
Werner Lemberg17432b52007-01-12 09:28:44 +0000439 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
440 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000441 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000442
Werner Lemberg17432b52007-01-12 09:28:44 +0000443 * autogen.sh: Small fix to get it working on Mac OS X properly:
444 The issue is that GNU libtool is called `glibtool' on this platform,
445 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000446
David Turner2628ea92007-01-10 13:15:56 +00004472007-01-10 David Turner <david@freetype.org>
448
Werner Lemberg17432b52007-01-12 09:28:44 +0000449 * all-sources: Tag all sources with VER-2-3-0-RC1 and
450 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000451
Werner Lemberg17432b52007-01-12 09:28:44 +0000452 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
453 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
454 version number to 2.3.0.
455
456 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
457 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000458
459 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000460 include/freetype/ftlcdfil.h: Update reference documentation with
461 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000462
Werner Lemberg17432b52007-01-12 09:28:44 +0000463 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
464 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000465
Werner Lembergbf02d392007-01-10 07:07:37 +00004662007-01-10 Derek Clegg <dclegg@apple.com>
467
468 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
469 values.
470
David Turnerf48b60e2007-01-08 15:15:32 +00004712007-01-08 David Turner <david@freetype.org>
472
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000473 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000474
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000475 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
476 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000477 corresponding to a given character pixel size.
478
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000479 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
480 `gasp' table, in order to avoid potential problems with later
481 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000482
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000483 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
484 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000485
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000486 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
487 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
488 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
489 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000490
Werner Lemberge6b6f372007-01-07 00:06:47 +00004912007-01-07 Werner Lemberg <wl@gnu.org>
492
Werner Lembergb8004d22007-01-07 09:13:38 +0000493 * src/cid/cidparse.c (cid_parser_new): Improve error message for
494 Type 11 fonts.
495 Scan for `/sfnts' token.
496
4972007-01-07 Werner Lemberg <wl@gnu.org>
498
499 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000500
Werner Lembergbe5f7972007-01-06 07:51:48 +00005012007-01-06 Werner Lemberg <wl@gnu.org>
502
503 * src/cff/cffload.c (cff_index_init): Remove unused variable.
504 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
505
David Turnera8cf42b2007-01-04 16:46:46 +00005062007-01-04 David Turner <david@freetype.org>
507
Werner Lembergf6294392007-01-06 07:47:45 +0000508 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
509 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000510
Werner Lembergf6294392007-01-06 07:47:45 +0000511
512 Do not allocate interpreter-specific tables in memory if we are not
513 going to load glyphs with the bytecode interpreter anyway.
514
515 * src/truetype/ttgload.c (tt_loader_init): Load execution context
516 only if glyph is hinted.
517 Updated.
518 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
519 and `cvs_ready'.
520 Add `tt_size_ready_bytecode' declaration.
521 * src/truetype/ttobjs.c (tt_size_done_bytecode,
522 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
523 (tt_size_init): Move most code into `tt_size_init_bytecode'.
524 (tt_size_done): Move most code into `tt_size_done_bytecode'.
525 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000526
David Turner91a34022007-01-05 14:47:08 +0000527
Werner Lembergf6294392007-01-06 07:47:45 +0000528 Don't extract the metrics table from the SFNT font file. Instead,
529 reparse it on each glyph load. The runtime difference is not
530 noticeable, and it can save a lot of heap memory when memory-mapped
531 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000532
Werner Lembergf6294392007-01-06 07:47:45 +0000533 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
534 `horz_metrics_offset' and `vert_metrics_ofset'.
535 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
536 Updated.
537
538
539 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
540
541
542 Do not load the CFF index offsets into memory, since this wastes a
543 *lot* of heap memory with large Asian CFF fonts. There is no
544 significant performance loss.
545
546 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
547 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
548 `data_size'.
549 (CFF_CharsetRec): Add field `num_glyphs'.
550
551 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
552 cff_charset_cid_to_gindex): New functions.
553 (cff_new_index): Renamed to...
554 (cff_index_init): This. Update all callers.
555 Updated -- some code has been moved to `cff_index_load_offsets'.
556 (cff_done_index): Renamed to...
557 (cff_index_done): This. Update all callers.
558 (cff_index_get_pointers, cff_index_access_element): Updated to use
559 stream offsets.
560 (cff_charset_compute_cids): Set `num_glyphs' field.
561 (cff_encoding_load): Updated.
562
563 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000564
5652007-01-04 David Turner <david@freetype.org>
566
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000567 * docs/INSTALL.UNIX: Simplify some parts, add reference to
568 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000569
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000570 * README.CVS: Add common problem description and solution
571 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000572
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000573 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000574
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000575 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000576
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000577 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000578
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000579 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
580 (TWorker): This.
581 Remove `count_table' and `memory'.
582 Make `grays' a pointer.
583 (TRaster): New structure.
584 (count_table): New static array.
585 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
586 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
587 ft_black_set_mode, ft_black_render): Updated.
588 (ft_black_init): Don't initialize `count_table'.
589 (ft_black_reset): Use the render pool. This saves about 6KB of
590 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000591
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000592 * src/smooth/ftgrays.c (TRaster): Replaced with...
593 (TWorker): This.
594 Remove `memory'.
595 (TRaster): New structure.
596
597 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
598 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
599 gray_render_span, gray_raster_render): Updated.
600 (gray_raster_reset): Use the render pool. This saves about 6KB of
601 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000602
David Turner8a6c44e2007-01-04 17:03:11 +0000603 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
604 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000605 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
606 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
607 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000608
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000609 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
610 Remove a typo that results in no hinting and a memory leak with some
611 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000612
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000613 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000614 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000615 CFF_Faces in it. We need to close all faces before destroying the
616 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000617
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006182007-01-02 Werner Lemberg <wl@gnu.org>
619
620 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
621 Remove compiler warning.
622
David Turner9207e002007-01-02 16:58:13 +00006232007-01-02 David Turner <david@freetype.org>
624
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000625 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000626
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006272006-12-31 Masatake YAMATO <jet@gyve.org>
628
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000629 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
630 function.
631 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000632 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000633 `gxv_kern_subtable_fmt0_pairs_validate'.
634
David Turner115b4422006-12-22 11:37:05 +00006352006-12-22 David Turner <david@freetype.org>
636
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000637 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
638 warnings.
David Turner115b4422006-12-22 11:37:05 +0000639
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000640 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
641 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000642
Werner Lemberg4755bf72006-12-16 08:58:44 +00006432006-12-16 Anders Kaseorg <anders@kaseorg.com>
644
645 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
646 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
647
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006482006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
649
Werner Lemberg9b774e22007-01-16 06:11:27 +0000650 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000651 sync with the modification by Jens Claudius on 2006-08-22; cf.
652 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 +0000653
6542006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
655
656 * src/base/ftmac.c: Specialized for Mac OS X only.
657 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
658 * builds/unix/configure.raw: Ditto. When explicit switches for
659 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
660 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
661
6622006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
663
664 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
665 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
666 instead of src/base/ftmac.c
667 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
668 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
669 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
670 that cannot be built at present.
671
6722006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
673
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000674 * src/base/ftobjs.c: Improvement of resource fork handler for
675 POSIX, cf.
676 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000677 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
678 format or .dfont, to simulate the face index number counted by ftmac.c.
679 (IsMacResource): Return the number of scalable faces correctly.
680
Werner Lembergec5b4502006-12-10 07:51:38 +00006812006-12-10 Werner Lemberg <wl@gnu.org>
682
683 * builds/toplevel.mk (version): Protect against `distclean' target.
684
Werner Lembergb26b3142006-12-09 20:01:43 +00006852006-12-09 Werner Lemberg <wl@gnu.org>
686
687 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
688 or `type'.
689
690 * builds/freetype.mk (version): Extracted from freetype.h, using
691 GNU make's built-in string functions.
692 (refdoc): Use $(version) instead of static version number.
693
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006942006-12-08 Werner Lemberg <wl@gnu.org>
695
696 * builds/toplevel.mk (dist): Extract version number from freetype.h.
697
Werner Lemberg15c29502006-12-09 07:29:54 +00006982006-12-08 Vladimir Volovich <vvv@vsu.ru>
699
700 * src/tools/apinames (State): Remove final comma in structure -- xlc
701 v5 under AIX 4.3 doesn't like this.
702
David Turnerdbf3b432006-12-07 21:18:09 +00007032006-12-07 David Turner <david@freetype.org>
704
Werner Lemberg256a3512006-12-08 06:49:33 +0000705 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
706 to the spacing of auto-fitted glyphs. This only impacts rare
707 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000708
Werner Lemberg11171312006-12-03 09:43:40 +00007092006-12-03 Werner Lemberg <wl@gnu.org>
710
711 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
712
Werner Lemberg960ba592006-12-01 08:20:47 +00007132006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000714
Werner Lemberg960ba592006-12-01 08:20:47 +0000715 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
716 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
717 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000718
David Turner80658e52006-11-28 08:09:20 +0000719
Werner Lemberg960ba592006-12-01 08:20:47 +0000720 * include/freetype/ftxf86.h: Fix and extend comment so that it
721 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000722
Werner Lemberg960ba592006-12-01 08:20:47 +0000723 * include/freetype/ftchapters.h: Add `font_format' section.
724
725
726 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
727 to TOC in index page.
728
7292006-11-28 David Turner <david@freetype.org>
730
731 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
732 trying to render into a zero-width/height bitmap, not an error code.
733
734 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
735
736 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
737 ones instead.
738
739 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
740 variable.
David Turner80658e52006-11-28 08:09:20 +0000741
Werner Lemberg8636c292006-11-26 22:28:13 +00007422006-11-26 Pierre Hanser <hanser@club-internet.fr>
743
744 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
745
Werner Lemberg960ba592006-12-01 08:20:47 +00007462006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000747
Werner Lemberg960ba592006-12-01 08:20:47 +0000748 * src/autofit/afhints.c (af_glyph_hints_dump_points,
749 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
750 Add stubs to link the `ftgrid' test program when debugging is
751 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000752
Werner Lemberg960ba592006-12-01 08:20:47 +00007532006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000754
755 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000756 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
757
758 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
759 Emit more sensible information.
760
761 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
762
763 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
764 rounding of blue values.
765 (af_latin_hints_compute_segments): Hint segment heights.
766 (af_latin_hints_link_segments): Reduce `len_score' value.
767 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
768 value and use `height' member for comparisons.
769 (af_latin_hint_edges): Extend logging message.
770 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000771
Werner Lemberg91959bf2006-11-22 10:36:55 +00007722006-11-22 Werner Lemberg <wl@gnu.org>
773
774 Fix Savannah bug #15553.
775
776 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
777 program after a change from mono to grayscaling (and vice versa).
778 Use correct constant for comparison to get `exec->grayscale'.
779
Werner Lemberg913a3652006-11-19 09:19:17 +00007802006-11-18 Werner Lemberg <wl@gnu.org>
781
782 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000783 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000784 This patch fixes Savannah bug #18301.
785
786 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
787 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
788 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
789 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
790 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
791 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
792 (FNT_Load_Glyph): Check validity of `glyph_index'.
793
David Turner7bab6ae2006-11-13 11:25:06 +00007942006-11-13 David Turner <david@freetype.org>
795
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000796 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
797 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000798
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000799 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
800 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
801 when building the library to change the default LCD filter to be
802 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000803
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000804 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000805
David Turner8765c712006-11-10 16:49:42 +00008062006-11-10 David Turner <david@freetype.org>
807
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000808 * src/smooth/ftsmooth.c: API change for the LCD
809 filter. The FT_LcdFilter value is an enumeration describing which
810 filter to apply, with new values FT_LCD_FILTER_LIGHT and
811 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
812 algorithm which produces strong color fringes for everything
813 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000814
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000815 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
816 second parameter to an enum type.
817
818 * src/base/ftlcdfil.c (USE_LEGACY): Define.
819 (_ft_lcd_filter): Rename to...
820 (_ft_lcd_filter_fir): This.
821 Update parameters.
822 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
823 (FT_Library_Set_LcdFilter): Update parameters.
824 Handle new filter modes.
825
826 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
827 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
828 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
829 callback and update other fields.
830
831 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
832 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
833 Other minor improvements.
834
835 * src/autofit/aflatin.c: Various tiny improvements that drastically
836 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
837 (af_latin_hints_compute_edges): Fix typo.
838 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000839
David Turner4e9cc3c2006-11-09 16:31:52 +00008402006-11-09 David Turner <david@freetype.org>
841
Werner Lemberg49c77a82006-11-09 21:51:57 +0000842 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
843 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000844
Werner Lemberg5e430892006-11-07 09:35:03 +00008452006-11-07 Zhe Su <james.su@gmail.com>
846
847 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
848 also.
849
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008502006-11-03 Werner Lemberg <wl@gnu.org>
851
852 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
853
David Turner40604742006-11-02 16:37:35 +00008542006-11-02 David Turner <david@freetype.org>
855
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000856 Add a few tweaks to better handle serif fonts.
857 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000858
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000859 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
860 segments that are less than 1.5 pixels high. This gets rid of
861 *many* corner cases with serifs.
862 (af_latin_align_linked_edge): Add logging message.
863 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
864 Add logging messages.
865 Handle AF_EDGE_FLAG flag specially.
866
867 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
868 _af_debug_disable_blue_hints, and _af_debug_hints variables.
869
870 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
871 Update external declarations.
872 (af_corner_orientation, af_corner_is_flat): Replaced by...
873
874 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
875 ft_corner_is_flat): These declarations.
876
877 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
878 Comment out. Replaced by...
879
880 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
881 These functions. Update all callers.
882 (FT_Add64) [!FT_LONG64]: Simplify.
883
884 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
885 (af_direction_compute): Add a missing FT_ABS call. This bug caused
886 production of garbage by missing lots of segments.
887
888 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
889
890 * src/autofit/afloader.c (af_loader_init, af_loader_done)
891 [AF_DEBUG]: Set _af_debug_hints.
892
893
894 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
895 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
896 and ft_corner_orientation.
897
898
899 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000900
Werner Lemberge88c5262006-10-24 05:46:26 +00009012006-10-24 Werner Lemberg <wl@gnu.org>
902
903 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
904
905 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
906 as argument.
907
David Turnera1861392006-10-23 16:00:59 +00009082006-10-23 Zhe Su <zsu@novell.com>
909
Werner Lemberg715e96e2006-10-24 05:28:45 +0000910 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
911 better deal with broken Asian fonts with strange glyphs, having
912 self-intersections and other peculiarities. The used algorithm is
913 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000914
David Turnere140f142006-10-23 08:56:57 +00009152006-10-23 David Turner <david@freetype.org>
916
Werner Lemberg715e96e2006-10-24 05:28:45 +0000917 Speed up the CFF font loader. With some large CFF fonts,
918 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000919
Werner Lemberg715e96e2006-10-24 05:28:45 +0000920 * src/cff/cffload.c (cff_get_offset): Removed.
921 (cff_new_index): Inline functionality of `cff_get_offset'.
922 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
923 (cff_charset_done): Call `cff_charset_free_cids'.
924 (cff_charset_load): Call `cff_charset_compute_cids'.
925 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
926
927 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
928 with FT_NEXT_XXX.
929
930
931 Speed up the Postscript hinter, with more than 100% speed increase
932 on my machine.
933
934 * src/pshinter/pshalgo.c (psh_corner_is_flat,
935 psh_corner_orientation): New functions.
936 (psh_glyph_compute_inflections): Merge loops for efficiency.
937 Use `psh_corner_orientation'.
938 (psh_glyph_init): Use `psh_corner_is_flat'.
939 (psh_hint_table_find_strong_point): Renamed to...
940 (psh_hint_table_find_strong_points): This.
941 Rewrite, adding argument to handle all points at once.
942 Update all callers.
943 (PSH_MAX_STRONG_INTERNAL): New macro.
944 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000945
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009462006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
947
948 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000949 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000950
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009512006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
952
953 * docs/INSTALL.CROSS: New document file for cross-building.
954
955 * builds/unix/configure.raw: Preliminary cross-building support.
956 Find native C compiler and pass it by CC_BUILD, and
957 find suffix for native executable and pass it by EXEEXT_BUILD.
958 Also suffix for target executable is passed by EXEEXT.
959
Werner Lembergb9e6d692006-10-15 08:58:40 +0000960 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
961 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000962 CC_BUILD and EXEEXT_BUILD.
963
Werner Lembergb9e6d692006-10-15 08:58:40 +0000964 * builds/exports.mk (APINAMES_EXE): Change the extension for
965 apinames from the suffix for target (E) to that for building host
966 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000967
Werner Lemberg82a07e92006-10-12 06:20:44 +00009682006-10-12 Werner Lemberg <wl@gnu.org>
969
970 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
971 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
972 which reference those files.
973
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009742006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
975
Werner Lembergb9e6d692006-10-15 08:58:40 +0000976 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
977 embedded in freetype2.pc and freetype-config. Use it to record
978 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000979
980 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
981
982 * builds/unix/freetype-config.in: Ditto.
983
Werner Lemberg28e17d92006-10-11 17:27:47 +00009842006-10-11 Werner Lemberg <wl@gnu.org>
985
986 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
987 development.
988
Jens Claudius336d2292006-10-03 08:53:37 +00009892006-10-03 Jens Claudius <jens.claudius@yahoo.com>
990
991 * include/freetype/config/ftstdlib.h: Cast away volatileness from
992 argument to ft_setjmp.
993
994 * include/freetype/internal/ftvalid.h: Add comment that
995 ft_validator_run must not be used.
996
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009972006-10-01 Werner Lemberg <wl@gnu.org>
998
999 * src/base/ftbase.c: Undo change from 2006-09-30.
1000
1001 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1002
10032006-09-30 David Turner <david@freetype.org>
1004
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001005 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1006 s/unpatented_hinting/ignore_unpatented_hinter/.
1007 Update all callers.
1008
1009 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1010 auto-hinting shall be used or not.
1011
1012 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001013
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010142006-09-30 Werner Lemberg <wl@gnu.org>
1015
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001016 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1017 in use).
1018
1019 * src/base/ftbase.c: Include `ftlcdfil.c'.
1020
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010212006-09-29 Werner Lemberg <wl@gnu.org>
1022
1023 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1024 overlapping segments. Bug reported by Stefan Koch.
1025
David Turnerad830712006-09-27 16:20:59 +000010262006-09-28 David Turner <david@freetype.org>
1027
Werner Lemberg2c002e12006-09-29 21:31:53 +00001028 Fix a bug in the automatic unpatented hinting support which prevents
1029 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001030
Werner Lemberg2c002e12006-09-29 21:31:53 +00001031 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1032 s/force_autohint/unpatented_hinting/. Update all callers.
1033
1034 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1035
1036 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001037
David Turner8a317cf2006-09-27 07:52:48 +000010382006-09-27 David Turner <david@freetype.org>
1039
Werner Lemberg2c002e12006-09-29 21:31:53 +00001040 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001041
David Turner8a317cf2006-09-27 07:52:48 +00001042
David Turnere140f142006-10-23 08:56:57 +00001043 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001044 In a default build, the function `FT_Library_SetLcdFilter' returns
1045 `FT_Err_Unimplemented_Feature'; you need to #define
1046 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1047 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001048
Werner Lemberg2c002e12006-09-29 21:31:53 +00001049 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001050
Werner Lemberg2c002e12006-09-29 21:31:53 +00001051 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1052 typedef.
1053 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1054 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001055
Werner Lemberg2c002e12006-09-29 21:31:53 +00001056 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1057 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001058
Werner Lemberg2c002e12006-09-29 21:31:53 +00001059 Handle subpixel rendering.
1060 Simplify function.
1061 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1062 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1063
1064 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1065 pointing to <freetype/ftlcdfil.h>.
1066
1067 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1068 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1069
1070 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001071
Werner Lemberge20df4a2006-09-27 06:29:21 +000010722006-09-26 David Bustin
1073
1074 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1075 correctly. Reported as Savannah bug #17843.
1076
David Turner6f8c6222006-09-26 15:42:44 +000010772006-09-26 David Turner <david@freetype.org>
1078
Werner Lemberg110246c2006-09-26 21:55:44 +00001079 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1080 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1081 horizontal and vertical hinting for the purpose of debugging the
1082 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001083
Werner Lemberg110246c2006-09-26 21:55:44 +00001084 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1085 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001086
Werner Lemberg110246c2006-09-26 21:55:44 +00001087 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1088
1089 * include/freetype/config/ftoption.h, devel/ftoption.h
1090 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1091 we want to compile LCD-optimized rendering code la ClearType) or
1092 not. The macro *must* be disabled in default builds of the library
1093 for patent reasons.
1094
1095 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1096 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1097 isn't defined at compile time. This only changes the content of the
1098 rendered glyph to match the one of normal gray-level rendering,
1099 hence clients should not need to be modified.
1100
1101 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001102
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011032006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1104
1105 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1106 LWFN fails and both are available.
1107
David Turnerf3050052006-09-11 12:00:32 +000011082006-09-11 David Turner <david@freetype.org>
1109
Werner Lembergf9644552006-09-12 13:48:10 +00001110 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1111 report their English names through an Apple Roman
1112 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001113
Werner Lembergf9644552006-09-12 13:48:10 +00001114 If the font uses another name entry with language_id == English, it
1115 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001116
Werner Lembergf9644552006-09-12 13:48:10 +00001117 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1118 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001119
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011202006-09-05 Werner Lemberg <wl@gnu.org>
1121
1122 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001123 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001124 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1125 `HAN NOM B.ttf').
1126
1127 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1128
David Turner772e55d2006-09-05 09:45:15 +000011292006-09-05 David Turner <david@freetype.org>
1130
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001131 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001132
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001133 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1134 (TRaster): Remove `count_ex' and `count_ey'.
1135 (gray_find_cell): Remove 2nd and 3rd argument.
1136 (gray_alloc_cell): Merged with `gray_find_cell'.
1137 (gray_record_cell): Simplify.
1138 (gray_set_cell): Rewrite.
1139 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1140 (gray_render_span): Don't use FT_MEM_SET for small values.
1141 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1142 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1143 bitmap scanline.
1144 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001145
David Turneraa557a92006-09-04 16:42:44 +000011462006-09-04 David Turner <david@freetype.org>
1147
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001148 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1149 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001150
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011512006-09-03 Werner Lemberg <wl@gnu.org>
1152
1153 * devel/ftoption.h: Synchronize with
1154 include/freetype/config/ftoption.h.
1155
1156 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1157 variable declaration.
1158 (gray_convert_glyph): Fix compiler warnings.
1159
David Turner6d79f212006-09-01 14:09:35 +000011602006-09-01 David Turner <david@freetype.org>
1161
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001162 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1163 to recognize a few fonts that require the automatic unpatented
1164 loader.
David Turnerbd502952006-09-01 19:05:24 +00001165
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001166 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1167 rasterizer. The speed improvement is between 15% and 25%, depending
1168 on the font data.
1169
1170 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1171 (TCell): Redefine.
1172 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1173 (gray_init_cells): Updated.
1174 (gray_find_cell, gray_alloc_cell): New functions.
1175 (gray_record_cell): Rewritten to use `gray_find_cell' and
1176 `gray_alloc_cell'.
1177 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1178 QSORT_THRESHOLD):
1179 Removed.
1180 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1181 gray_dump_cells): Removed.
1182 (gray_sweep): Rewritten.
1183 (gray_convert_glyph): Rewrite code which used one of the sorting
1184 functions.
1185 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001186
Werner Lembergd898aed2006-08-29 09:50:34 +000011872006-08-29 Dr. Werner Fink <werner@suse.de>
1188
1189 * configure: Make it possible to handle configure options which
1190 have strings containing spaces.
1191
11922006-08-27 David Turner <david@freetype.org>
1193
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001194 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1195 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1196 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1197
1198 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1199 src/truetype/truetype.c, src/truetype/ttdriver.c,
1200 src/truetype/ttgload.c, src/truetype/ttgload.h,
1201 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1202 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1203 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1204
1205 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1206 member `force_autohint'.
1207
1208 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1209
1210 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1211 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001212
Jens Claudiusa787f452006-08-27 11:26:18 +000012132006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1214
1215 Fix miscellaneous compiler warnings.
1216
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001217 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1218 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001219
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001220 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1221 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1222 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001223
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001224 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1225 volatileness of argument to ft_longjmp. Spotted by Werner
1226 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001227
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001228 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1229 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001230
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001231 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1232 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001233
Werner Lembergc4c35b72006-08-27 08:03:46 +000012342006-08-27 Werner Lemberg <wl@gnu.org>
1235
1236 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1237 Reported by Jens.
1238
Jens Claudius088e44e2006-08-22 14:24:30 +000012392006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001240
Jens Claudius088e44e2006-08-22 14:24:30 +00001241 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001242 about addresses of volatile objects passed as function arguments as
1243 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001244
Werner Lembergc4c35b72006-08-27 08:03:46 +00001245 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1246 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001247
1248 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1249 argument `table' a pointer to a volatile object.
1250
1251 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1252 argument `table' a pointer to a volatile object.
1253
Jens Claudius2652bd52006-08-18 17:20:37 +000012542006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1255
1256 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1257 variable `_sfnt' as volatile since it must keep its value across
1258 a call to ft_setjmp.
1259 (gxv_validate): Same for local variables `memory' and `valid'.
1260 (classic_kern_validate): Same for local variables `memory',
1261 `ckern', and `valid'.
1262
1263 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1264 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1265 `jstf', and 'valid'.
1266
1267 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1268 local variable `cmap'.
1269
David Turner9fbfc6a2006-08-16 09:11:31 +000012702006-08-16 David Turner <david@freetype.org>
1271
Werner Lemberg12342992006-08-19 11:18:09 +00001272 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1273 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001274
Werner Lemberg12342992006-08-19 11:18:09 +00001275 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1276 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001277
David Turner33f5f242006-08-16 16:50:55 +00001278
Werner Lemberg12342992006-08-19 11:18:09 +00001279 Improvements to native TrueType hinting. This is a first try,
1280 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1281
1282 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1283 `extra_points2'.
1284
1285 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1286 `orus'.
1287
1288 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1289 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1290 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1291 handle `extra_points2'.
1292
1293 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1294 Remove compiler warning.
1295 (cur_to_arg): Remove macro.
1296 (TT_Hint_Glyph): Updated.
1297 (TT_Process_Simple_Glyph): Handle `orus'.
1298
1299 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1300 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1301 (LOC_Ins_IUP): Renamed to...
1302 (IUP_WorkerRec): This.
1303 Add `orus' member.
1304 (Shift): Renamed to...
1305 (_iup_worker_shift): This.
1306 Updated.
1307 (Interp): Renamed to...
1308 (_iup_worker_interpolate): This.
1309 Updated to handle `orus'.
1310 (Ins_IUP): Updated.
1311
1312 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1313 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001314
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013152006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1316
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001317 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001318 build ftvalid in ft2demos. This has been inadvertedly changed
1319 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001320
13212006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1322
Werner Lemberg12342992006-08-19 11:18:09 +00001323 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1324 Jens:
1325 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001326
Werner Lemberg12342992006-08-19 11:18:09 +00001327 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1328 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001329
1330 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1331
Jens Claudius9950adc2006-08-13 12:14:36 +000013322006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1333
Werner Lemberg12342992006-08-19 11:18:09 +00001334 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1335 T1_TOKEN_TYPE_KEY.
1336 (T1_FieldRec): Add `dict'.
1337 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1338 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1339 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001340
Werner Lemberg12342992006-08-19 11:18:09 +00001341 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1342 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001343
1344 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1345
1346 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001347 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1348 not T1_TOKEN_TYPE_ANY.
1349 (ps_parser_load_field): Make sure a token that should be a string or
1350 name is really a string or name.
1351 Avoid memory leak if a keyword has been already encountered and its
1352 value is overwritten.
1353 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1354 T1_FIELD_XXX.
1355 (parse_dict): Ignore keywords that occur in the wrong dictionary
1356 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001357
Werner Lemberg12342992006-08-19 11:18:09 +00001358 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1359 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001360
Werner Lemberg12342992006-08-19 11:18:09 +00001361 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1362 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001363
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013642006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1365
1366 Move creation of field `buildchar' of T1_DecoderRec out of
1367 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1368 of it.
1369
1370 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1371 and `T1_Compute_Max_Advance'.
1372
1373 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1374 Remove field `face', add `len_buildchar'.
1375
1376 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1377 field `buildchar'.
1378
1379 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1380 finisher for T1_Decoder.
1381 (cid_slot_load_glyph): Do not ignore failure when initializing the
1382 T1_Decoder.
1383
1384 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1385 Updated.
1386 (t1_decoder_init): Remove initialization of fields `buildchar' and
1387 `len_buildchar'.
1388 (t1_decoder_done): Remove deallocation of field `buildchar'.
1389
1390 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1391 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1392 T1_Decoder.
1393 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1394 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1395 case of error.
1396
1397 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1398 `buildchar' of T1_FaceRec.
1399
1400 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1401 `buildchar' of T1_FaceRec.
1402
Werner Lemberg1a380e02006-07-14 18:28:08 +000014032006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1404
1405 * freetype2/include/freetype/internal/psaux.h: New macros
1406 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1407 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1408 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1409 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1410 (T1_DecoderRec): New fields `buildchar' and `face'.
1411 (IS_PS_TOKEN): New macro.
1412
1413 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1414 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1415
1416 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1417 `default_design_vector' and `num_default_design_vector'.
1418
1419 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1420 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1421 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1422
1423 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1424 `token' argument to be NULL if we want only to count the number of
1425 tokens.
1426 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1427 want to skip the array.
1428 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1429 want to skip the array.
1430
1431 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1432 support for (partially commented out) othersubrs 19-25, 27, and 28.
1433 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1434 (t1_decoder_done): Release new field `buildchar'.
1435
1436 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1437 functions.
1438 (t1_keywords): Register them.
1439 (t1_allocate_blend): Updated.
1440 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1441 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1442 (parse_dict): Remove `keyword_flags' argument.
1443 Use new macro IS_PS_TOKEN.
1444 Changed function so that later PostScript definitions override
1445 earlier ones.
1446 (t1_init_loader): Initialize new field `keywords_encountered'.
1447 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1448 `len_buildchar'.
1449 Remove `keywords_flags'.
1450
1451 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1452 `keywords_encountered'.
1453 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1454
1455 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1456 New entries for parsing /NDV, /CDV, and /DesignVector.
1457
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014582006-07-07 Werner Lemberg <wl@gnu.org>
1459
1460 Add many checks to protect against malformed PCF files.
1461
1462 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1463 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1464
1465 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1466 data and check that tables don't overlap (using a simple
1467 bubblesort).
1468 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1469 New macros which give the size of data structures in the data
1470 stream.
1471 (pcf_get_properties): Use rough estimates to get array size limits.
1472 Assign `face->nprops' and `face->properties' earlier so that a call
1473 to PCF_Face_Done can do the clean-up in case of error.
1474 Protect against invalid string offsets.
1475 (pcf_get_metrics): Clean up code.
1476 Adjust tracing message levels.
1477 Use rough estimate to get array size limit.
1478 (pcf_get_bitmaps): Clean up code.
1479 Adjust tracing message levels.
1480 Use rough estimates to get offset limits.
1481 (pcf_get_encodings): Adjust tracing message level.
1482 (pcf_get_accel): Clean up code.
1483
Werner Lemberg8eb05252006-06-27 06:20:01 +000014842006-06-26 Werner Lemberg <wl@gnu.org>
1485
1486 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1487 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1488
Werner Lemberg24703f82006-06-26 19:12:51 +000014892006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1490
1491 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1492 (t1_decoder_parse_charstrings): Operator with
1493 opcode 15 pops its two arguments.
1494 Handle the case where the pops of an othersubr may be part of a
1495 subroutine.
1496 Handle unknown othersubrs gracefully: count their operands and let
1497 the following pop operators push the operands as the results onto
1498 the Type1 stack.
1499 Improve handling of setcurrentpoint opcode.
1500
Werner Lembergc011f4c2006-06-26 09:40:00 +000015012006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1502
1503 The Type 1 parser now skips over top-level procedures as required
1504 for a `Simplified Parser'. This makes the parser more robust as it
1505 doesn't poke around in PostScript code. Additionally, it makes the
1506 FontDirectory hackery in src/type1/t1load.c unnecessary.
1507
1508 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1509 (skip_literal_string): Add FT_Error as return value.
1510 Handle escapes better.
1511 (skip_string): Add FT_Error as return value.
1512 Don't set `parser->error' but return error code directly.
1513 (skip_procedure): New function.
1514 (ps_parser_skip_PS_token): Handle procedures.
1515 Update code.
1516 (ps_parser_to_token): Update code.
1517 (ps_parser_load_field_table): Handle bbox entries also.
1518
1519 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1520 Add commented-out code for synthetic fonts.
1521
Werner Lemberga2da05c2006-06-25 06:27:27 +000015222006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1523
1524 Fix two hinting bugs as reported in
1525 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1526
1527 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1528 `first_point' member.
1529
1530 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1531 `first_point'.
1532 (TT_Process_Composite_Glyph): Always untouch points.
1533
1534 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1535 `first_point' and `last_point' in case of composite glyphs.
1536 (Ins_IUP): Fix computation of `end_point'.
1537
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015382006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1539
Werner Lembergef3d2c22006-06-25 06:07:14 +00001540 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1541 Mac. The original patch was written by David Sachitano and Lawrence
1542 Coopet, and modified by Sean McBride for MPW compatibility. Only
1543 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001544
Werner Lembergef3d2c22006-06-25 06:07:14 +00001545 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1546 Mac OS X platforms.
1547 (OS_INLINE): Undefine before definition.
1548 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1549 FontAssociation table in FOND resource.
1550 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1551 and fontSize at each entry of FontAssociation table in FOND
1552 resource.
1553 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1554 ffStylOff of FamilyRecord header of FOND resource, the header,
1555 fontSize, fontID at each entry of FontAssociation table, and
1556 StyleMapping table.
1557 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001558
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015592006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1560
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001561 Public API of TrueTypeGX, OpenType, and classic kern table validator
1562 should return `FT_Err_Unimplemented_Feature' if validation service
1563 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001564 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001565 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1566
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001567 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1568 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1569 unavailable.
1570 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1571 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001572
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001573 * src/base/ftotval.c (FT_OpenType_Validate): Return
1574 FT_Err_Unimplemented_Feature if OpenType validation service is
1575 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001576
Werner Lembergb10e45a2006-06-08 07:32:56 +000015772006-06-08 Werner Lemberg <wl@gnu.org>
1578
1579 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1580 errors.
1581
David Turner5f1f7502006-06-07 05:11:50 +000015822006-06-07 David Turner <david@freetype.org>
1583
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001584 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1585 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1586 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001587
David Turner457b4a82006-06-06 08:14:14 +000015882006-06-06 David Turner <david@freetype.org>
1589
Werner Lemberg4836f952006-06-06 12:54:08 +00001590 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001591
Werner Lemberg4836f952006-06-06 12:54:08 +00001592 We change `ps_unicodes_init' so that it also takes a
1593 `free_glyph_name' callback to release the glyph names returned by
1594 `get_glyph_name'
1595
1596 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1597 Renamed to ...
1598 (PS_GetGlyphNameFunc): This.
1599 (PS_FreeGlyphNameFunc): New typedef.
1600 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1601
1602 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1603 argument.
1604 (cff_sid_free_glyph_name): New function.
1605 (cff_cmap_unicode_init): Updated.
1606
1607 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1608
1609 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1610 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001611
1612
David Turner09717352006-06-04 14:33:08 +000016132006-06-04 David Turner <david@freetype.org>
1614
Werner Lembergd724f202006-06-04 15:17:41 +00001615 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1616 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001617 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001618
Werner Lembergd724f202006-06-04 15:17:41 +00001619 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1620 of `face->num_glyphs' which missed the last glyph, due to
1621 the offset-by-1 computation, since the PFR format doesn't
1622 guarantee that glyph index 0 corresponds to the `missing
1623 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001624
Werner Lemberg33779662006-05-26 06:30:05 +000016252006-05-25 Werner Lemberg <wl@gnu.org>
1626
1627 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1628 `-no-undefined'. Reported by Christian Biesinger.
1629
Werner Lemberg24773d62006-05-20 08:53:13 +000016302006-05-19 Brian Weed <bw@imaginengine.com>
1631
1632 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1633 have debug information, and debug libraries use `C7 compatible'
1634 debug info.
1635
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016362006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1637
Werner Lemberga6523a62006-05-20 08:47:01 +00001638 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001639 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001640
Werner Lemberga6523a62006-05-20 08:47:01 +00001641 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1642 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001643
1644 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001645 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001646
16472006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1648
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001649 * build/unix/configure.raw: Add a fallback to disable Carbon
1650 dependency, if configured with no options on Mac OS X.
1651
16522006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1653
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001654 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001655 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001656 the second part of Savannah bug #16590.
1657
Werner Lemberg545c4e52006-05-17 22:55:04 +000016582006-05-18 Werner Lemberg <wl@gnu.org>
1659
1660 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1661 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1662
David Turnerdc3ff312006-05-17 12:59:35 +000016632006-05-17 David Turner <david@freetype.org>
1664
Werner Lemberg545c4e52006-05-17 22:55:04 +00001665 This is a major patch used to drastically improve the performance of
1666 loading glyphs. This both speeds up loading the glyph vectors
1667 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001668
Werner Lemberg545c4e52006-05-17 22:55:04 +00001669 We now use inline assembler code with GCC to implement `FT_MulFix',
1670 which is probably the most important function related to the
1671 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001672
Werner Lemberg545c4e52006-05-17 22:55:04 +00001673 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001674
1675
Werner Lemberg545c4e52006-05-17 22:55:04 +00001676 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1677 `cursor' and `limit'.
1678
1679 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1680 New functions.
1681 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1682 [TEST]: Remove.
1683
1684 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1685 code.
1686
1687 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1688 `FT_ZERO'
1689 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1690 (af_glyph_hints_reload: Rewrite recognition of weak points.
1691
1692 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1693 constant values out of the loops.
1694
1695 * src/autofit/aftypes.h: Updated.
1696
1697 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1698
1699 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1700 product to get orientation.
1701
1702 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1703 (FT_Stream_OpenGzip): Use it to handle small files directly in
1704 memory.
1705
1706 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1707 Improve performance.
1708
1709 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1710 `limit'.
1711
1712 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1713 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1714 exceedingly large values of number of contours. Speed up by
1715 reducing the number of loops.
1716
1717 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1718
1719
1720 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1721 used to detect rogue clients from 4 to 16. This is to prevent some
1722 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1723 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001724
Werner Lembergde2d90a2006-05-17 08:54:30 +000017252007-05-17 Werner Lemberg <wl@gnu.org>
1726
1727 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001728 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001729
17302006-05-16 Werner Lemberg <wl@gnu.org>
1731
1732 * docs/PROBLEMS: Updated icl issues.
1733
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001734----------------------------------------------------------------------------
1735
Werner Lemberg42b63b22007-01-21 21:01:33 +00001736Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001737David Turner, Robert Wilhelm, and Werner Lemberg.
1738
1739This file is part of the FreeType project, and may only be used, modified,
1740and distributed under the terms of the FreeType project license,
1741LICENSE.TXT. By continuing to use, modify, or distribute this file you
1742indicate that you have read the license and understand and accept it
1743fully.
1744
1745
1746Local Variables:
1747version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001748coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001749End: