blob: 425dcb9f92fdfe6c4fdc462a45ace24dc399f22d [file] [log] [blame]
David Turner3a51afa2007-03-08 10:50:38 +000012007-03-08 David Turner <david@freetype.org>
2
Werner Lemberg1e259de2007-03-08 15:39:21 +00003 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
4 function to work properly, over-writing user-provided buffers in
5 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +00006
Werner Lemberg3d92f082007-03-06 11:59:24 +000072007-03-05 Werner Lemberg <wl@gnu.org>
8
9 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
10 macro for `strstr'.
11
12 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
13 `trick_names', as suggested by Ivan Nincic.
14
David Turner085bc6e2007-03-05 17:40:03 +0000152007-03-05 David Turner <david@freetype.org>
16
Werner Lembergd112cf02007-03-06 12:06:56 +000017 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
18 case FT_Init_FreeType fails for some reason. Problem reported by
19 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000020
Werner Lembergd112cf02007-03-06 12:06:56 +000021 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
22 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
23 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
24 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000025
Werner Lembergd112cf02007-03-06 12:06:56 +000026 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
27 signed values, not unsigned ones. Problem reported by Johannes
28 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000029
David Turner601aefe2007-02-21 16:47:49 +0000302007-02-21 David Turner <david@freetype.org>
31
Werner Lembergde5e6862007-02-25 21:06:43 +000032 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
33 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000034
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000352007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
36
37 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
38 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
39 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
40
Werner Lemberga0915172007-02-16 08:12:50 +0000412007-02-16 Werner Lemberg <wl@gnu.org>
42
43 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
44 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
45
David Turner2c4500e2007-02-14 15:08:47 +0000462007-02-14 David Turner <david@freetype.org>
47
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000048 It seems that the following changes fix most of the known
49 interpreter problems with my fonts, but more testing is needed,
50 though.
51
52 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
53 (TT_MulFix14): Rewrite.
54 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
55 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +000056
Werner Lembergc6a14082007-02-12 22:08:15 +0000572007-02-12 Werner Lemberg <wl@gnu.org>
58
59 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
60 warnings.
61
62 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
63 (bdf_interpret_style): Ditto.
64
David Turnerc0f9c4a2007-02-12 14:55:03 +0000652007-02-12 David Turner <david@freetype.org>
66
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000067 Simplify projection and dual-projection code interface.
68
Werner Lemberg406d25f2007-02-12 22:01:18 +000069 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
70 FT_Vector' as argument type.
71 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
72 Updated.
73 (CUR_fast_project, CUR_fast_dualproj): New macros.
74 (Project, Dual_Project, Project_x, Project_y): Updated.
75 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
76 macros.
77
78
79 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
80 adjustments for the non-light auto-hinted modes. Gets rid of
81 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +000082
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000083 * src/autofit/aflatin.c (af_latin_hints_link_segments,
84 af_latin_hints_compute_edges): Slight optimization of the segment
85 linker and better handling of serif segments to get rid of broken
86 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +000087
David Turnerc0f9c4a2007-02-12 14:55:03 +000088
Werner Lemberg442bfb82007-02-12 21:44:10 +000089 Introduce new string functions and the corresponding macros to get
90 rid of various uses of strcpy and other `evil' functions, as well as
91 to simplify a few things.
92
93 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
94 ft_mem_strcpyn): New declarations.
95 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
96 macros.
97 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
98 functions.
99
100 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
101 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
102 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
103 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
104 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
105 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
106 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
107 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000108
Werner Lemberg406d25f2007-02-12 22:01:18 +0000109 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
110
Werner Lemberg582067d2007-02-11 15:03:05 +00001112007-02-11 Werner Lemberg <wl@gnu.org>
112
113 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
114 non-spacing glyphs.
115
Werner Lemberg8f474532007-02-07 08:31:01 +00001162007-02-07 Tom Parker <palfrey@tevp.net>
117
118 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
119 pointer.
120
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001212007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
122
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000123 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
124 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000125 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000126 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
127 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
128 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
129 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000130
131 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
132 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000133 * builds/mac/ftmac.c: Ditto.
134
1352007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
136
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000137 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000138 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000139 #include <ftmac.c>.
140
1412007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
142
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000143 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
144 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
145 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
146 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
147 FT_GetFilePath_From_Mac_ATS_Name.
148 * builds/mac/ftmac.c: Ditto.
149
1502007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
151
Werner Lembergdcbb7082007-02-08 08:54:09 +0000152 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000153 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
154 for passing to FT_New_Face_From_FSSpec.
155
1562007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
157
Werner Lembergdcbb7082007-02-08 08:54:09 +0000158 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000159 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000160
161 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
162 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000163 * builds/mac/ftmac.c (OS_INLINE): Ditto.
164
Werner Lemberg313d7772007-02-01 08:10:45 +00001652007-02-01 Werner Lemberg <wl@gnu.org>
166
167 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
168 Explain why applications shouldn't use it. Found by Alexei.
169
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001702007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000171
172 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
173 message.
174
175 * src/gxvalid/gxvmort1.c
176 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
177 message.
178
Werner Lemberg53935932007-01-31 08:53:02 +00001792007-01-31 Werner Lemberg <wl@gnu.org>
180
181
182 * Version 2.3.1 released.
183 =========================
184
185
186 Tag sources with `VER-2-3-1-FINAL'.
187
188 * builds/win32/visualc/freetype.dsp,
189 builds/win32/visualc/freetype.vcproj: s/230/231/.
190 * builds/win32/visualc/index.html: s/221/231/.
191
192 * vms_make.com: Add `ftgasp'.
193
David Turnera7ee6082007-01-30 10:33:53 +00001942007-01-30 David Turner <david@freetype.org>
195
Werner Lemberg53935932007-01-31 08:53:02 +0000196 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000197
Werner Lemberg53935932007-01-31 08:53:02 +0000198 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000199
Werner Lemberg53935932007-01-31 08:53:02 +0000200 * docs/VERSION.DLL docs/release, README, Jamfile (RefDoc):
201 s/2.3.0/2.3.1/.
202
203 * builds/unix/configure.raw (version_info): Set to 9:12:3.
204
205
206 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
207 (af_loader_load_g): Disable the warper (i.e., the light hinting
208 improvements) to make a 2.3.1 bugfix release before introducing a
209 new feature. This should give us more time to tune and improve the
210 warper for the next release.
211
212 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000213
David Turnerd91eebd2007-01-26 15:05:41 +00002142007-01-25 David Turner <david@freetype.org>
215
Werner Lembergbf241762007-01-26 16:08:49 +0000216 For light auto-hinting, improve glyph advance widths and resurrect
217 normal/full hinting to its normal quality.
218
219 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
220 and `xmax_delta'.
221 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
222 and `xmax_delta'.
223
224 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
225 preprocessor conditional with if-clause, handling both light and
226 normal mode.
227
228 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
229 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000230
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002312007-01-25 Werner Lemberg <wl@gnu.org>
232
233 * docs/release: Updated -- Savannah uses a new uploading scheme.
234
David Turnera42567b2007-01-25 12:23:37 +00002352007-01-25 David Turner <david@freetype.org>
236
Werner Lembergd7855662007-01-25 13:53:56 +0000237 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000238
Werner Lembergd7855662007-01-25 13:53:56 +0000239 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
240 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
241 functions.
David Turnera42567b2007-01-25 12:23:37 +0000242
Werner Lembergd7855662007-01-25 13:53:56 +0000243 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000244
Werner Lembergb1be9e82007-01-25 11:50:00 +00002452007-01-25 Werner Lemberg <wl@gnu.org>
246
247 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000248 correctly in a sanity check. Since this function is only used to
249 load local and global functions, any charstring that called the last
250 local/global function would fail otherwise. This fixes Savannah bug
251 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000252
253 * docs/CHANGES: Document it.
254
David Turnerb6de8d12007-01-23 15:51:50 +00002552007-01-23 David Turner <david@freetype.org>
256
Werner Lembergb1be9e82007-01-25 11:50:00 +0000257 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
258 prevented compilation when disabling both the unpatented and the
259 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000260
Werner Lembergb1be9e82007-01-25 11:50:00 +0000261
262 Fix and enable the warper to improve `light' hinting mode. This is
263 not necessarily a final version, but it seems to work well.
264
265 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
266 Disable code.
267 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
268 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
269
270 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
271 (af_warper_compute_line_best): Fix array size of `scores'.
272 (af_warper_compute): Better handling of border cases.
273 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
274 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000275
Werner Lemberg011d1112007-01-21 09:36:00 +00002762007-01-21 Werner Lemberg <wl@gnu.org>
277
Werner Lemberg42b63b22007-01-21 21:01:33 +0000278 * ChangeLog: Split off older entries into...
279 * ChangeLog.22: This new file.
280
2812007-01-21 Werner Lemberg <wl@gnu.org>
282
Werner Lemberg555258f2007-01-21 09:46:37 +0000283 * docs/CHANGES: Document SHZ fix.
284
2852007-01-21 George Williams <gww@silcom.com>
286
287 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
288 points.
289
2902007-01-21 Werner Lemberg <wl@gnu.org>
291
Werner Lemberg011d1112007-01-21 09:36:00 +0000292 * src/sfnt/ttmtx.c (tt_face_get_metrics)
293 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
294
Werner Lemberg87a5a432007-01-17 12:44:39 +00002952007-01-17 Werner Lemberg <wl@gnu.org>
296
Werner Lembergb8003292007-01-17 12:56:25 +0000297
298 * Version 2.3.0 released.
299 =========================
300
301
302 Tag sources with `VER-2-3-0-FINAL'.
303
3042007-01-17 Werner Lemberg <wl@gnu.org>
305
Werner Lemberg87a5a432007-01-17 12:44:39 +0000306 * docs/release: Updated.
307
David Turner22122722007-01-16 20:06:44 +00003082007-01-16 David Turner <david@freetype.org>
309
Werner Lemberg87a5a432007-01-17 12:44:39 +0000310 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
311 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
312 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
313 warnings.
David Turner22122722007-01-16 20:06:44 +0000314
Werner Lemberg267e1d72007-01-15 07:48:09 +00003152007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
316
317 * builds/amiga/makefile, builds/amiga/makefile.os4,
318 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
319
320 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
321
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003222007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
323
324 Fix various compiler warnings.
325
326 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
327 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
328 s/index/strike_index/.
329 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
330
331 * src/gxvalid/gxvmorx5.c
332 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
333
334 * src/truetype/ttinterp.c (Compute_Point_Displacement),
335 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
336 uninitialized variables.
337
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003382007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
339
340 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
341
Werner Lemberg281c1482007-01-13 22:50:51 +00003422007-01-13 Werner Lemberg <wl@gnu.org>
343
344 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
345 versions up to 0x3FF without complaining.
346
Werner Lembergac250b22007-01-13 14:01:36 +00003472007-01-13 Derek Clegg <dclegg@apple.com>
348
349 Add FT_Get_PS_Font_Info interface to CFF driver.
350
351 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
352 (CFF_FontRec): Add `font_info' field.
353
354 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
355 (cff_font_done): Free font->font_info if necessary.
356
357 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
358 (cff_service_ps_info): Register cff_ps_get_font_info.
359
Werner Lemberg23df31a2007-01-13 08:45:00 +00003602007-01-13 Werner Lemberg <wl@gnu.org>
361
362 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
363 with C++ compiler.
364
365 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
366 af_glyph_hints_dump_edges): Ditto.
367
368 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
369 `modules.cfg').
370
371 * src/sfnt/ttsbit0.h: Remove.
372
373 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
374
Werner Lemberg27cf9de2007-01-13 07:34:23 +00003752007-01-12 David Turner <david@freetype.org>
376
377 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
378 bug in the bitmap emboldener if the pitch of the source bitmap is
379 much larger than its width.
380
381 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
382 compilation warning.
383
Werner Lemberg6d96d312007-01-12 10:30:19 +00003842007-01-12 Werner Lemberg <wl@gnu.org>
385
386 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
387 `automake' CVS module from sources.redhat.com.
388
Werner Lemberg17432b52007-01-12 09:28:44 +00003892007-01-11 Werner Lemberg <wl@gnu.org>
390
391 * src/type1/t1load.c (is_space): Removed.
392 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
393 (parse_charstrings): Use IS_PS_TOKEN.
394
395
396 * autogen.sh: Avoid bash specific syntax.
397
David Turner038ace22007-01-11 15:00:59 +00003982007-01-11 David Turner <david@freetype.org>
399
Werner Lemberg17432b52007-01-12 09:28:44 +0000400 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000401
Werner Lemberg17432b52007-01-12 09:28:44 +0000402 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000403
Werner Lemberg17432b52007-01-12 09:28:44 +0000404 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
405 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000406 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000407
Werner Lemberg17432b52007-01-12 09:28:44 +0000408 * autogen.sh: Small fix to get it working on Mac OS X properly:
409 The issue is that GNU libtool is called `glibtool' on this platform,
410 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000411
David Turner2628ea92007-01-10 13:15:56 +00004122007-01-10 David Turner <david@freetype.org>
413
Werner Lemberg17432b52007-01-12 09:28:44 +0000414 * all-sources: Tag all sources with VER-2-3-0-RC1 and
415 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000416
Werner Lemberg17432b52007-01-12 09:28:44 +0000417 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
418 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
419 version number to 2.3.0.
420
421 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
422 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000423
424 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000425 include/freetype/ftlcdfil.h: Update reference documentation with
426 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000427
Werner Lemberg17432b52007-01-12 09:28:44 +0000428 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
429 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000430
Werner Lembergbf02d392007-01-10 07:07:37 +00004312007-01-10 Derek Clegg <dclegg@apple.com>
432
433 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
434 values.
435
David Turnerf48b60e2007-01-08 15:15:32 +00004362007-01-08 David Turner <david@freetype.org>
437
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000438 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000439
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000440 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
441 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000442 corresponding to a given character pixel size.
443
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000444 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
445 `gasp' table, in order to avoid potential problems with later
446 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000447
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000448 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
449 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000450
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000451 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
452 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
453 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
454 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000455
Werner Lemberge6b6f372007-01-07 00:06:47 +00004562007-01-07 Werner Lemberg <wl@gnu.org>
457
Werner Lembergb8004d22007-01-07 09:13:38 +0000458 * src/cid/cidparse.c (cid_parser_new): Improve error message for
459 Type 11 fonts.
460 Scan for `/sfnts' token.
461
4622007-01-07 Werner Lemberg <wl@gnu.org>
463
464 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000465
Werner Lembergbe5f7972007-01-06 07:51:48 +00004662007-01-06 Werner Lemberg <wl@gnu.org>
467
468 * src/cff/cffload.c (cff_index_init): Remove unused variable.
469 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
470
David Turnera8cf42b2007-01-04 16:46:46 +00004712007-01-04 David Turner <david@freetype.org>
472
Werner Lembergf6294392007-01-06 07:47:45 +0000473 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
474 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000475
Werner Lembergf6294392007-01-06 07:47:45 +0000476
477 Do not allocate interpreter-specific tables in memory if we are not
478 going to load glyphs with the bytecode interpreter anyway.
479
480 * src/truetype/ttgload.c (tt_loader_init): Load execution context
481 only if glyph is hinted.
482 Updated.
483 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
484 and `cvs_ready'.
485 Add `tt_size_ready_bytecode' declaration.
486 * src/truetype/ttobjs.c (tt_size_done_bytecode,
487 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
488 (tt_size_init): Move most code into `tt_size_init_bytecode'.
489 (tt_size_done): Move most code into `tt_size_done_bytecode'.
490 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000491
David Turner91a34022007-01-05 14:47:08 +0000492
Werner Lembergf6294392007-01-06 07:47:45 +0000493 Don't extract the metrics table from the SFNT font file. Instead,
494 reparse it on each glyph load. The runtime difference is not
495 noticeable, and it can save a lot of heap memory when memory-mapped
496 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000497
Werner Lembergf6294392007-01-06 07:47:45 +0000498 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
499 `horz_metrics_offset' and `vert_metrics_ofset'.
500 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
501 Updated.
502
503
504 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
505
506
507 Do not load the CFF index offsets into memory, since this wastes a
508 *lot* of heap memory with large Asian CFF fonts. There is no
509 significant performance loss.
510
511 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
512 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
513 `data_size'.
514 (CFF_CharsetRec): Add field `num_glyphs'.
515
516 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
517 cff_charset_cid_to_gindex): New functions.
518 (cff_new_index): Renamed to...
519 (cff_index_init): This. Update all callers.
520 Updated -- some code has been moved to `cff_index_load_offsets'.
521 (cff_done_index): Renamed to...
522 (cff_index_done): This. Update all callers.
523 (cff_index_get_pointers, cff_index_access_element): Updated to use
524 stream offsets.
525 (cff_charset_compute_cids): Set `num_glyphs' field.
526 (cff_encoding_load): Updated.
527
528 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000529
5302007-01-04 David Turner <david@freetype.org>
531
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000532 * docs/INSTALL.UNIX: Simplify some parts, add reference to
533 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000534
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000535 * README.CVS: Add common problem description and solution
536 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000537
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000538 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000539
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000540 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000541
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000542 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000543
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000544 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
545 (TWorker): This.
546 Remove `count_table' and `memory'.
547 Make `grays' a pointer.
548 (TRaster): New structure.
549 (count_table): New static array.
550 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
551 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
552 ft_black_set_mode, ft_black_render): Updated.
553 (ft_black_init): Don't initialize `count_table'.
554 (ft_black_reset): Use the render pool. This saves about 6KB of
555 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000556
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000557 * src/smooth/ftgrays.c (TRaster): Replaced with...
558 (TWorker): This.
559 Remove `memory'.
560 (TRaster): New structure.
561
562 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
563 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
564 gray_render_span, gray_raster_render): Updated.
565 (gray_raster_reset): Use the render pool. This saves about 6KB of
566 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000567
David Turner8a6c44e2007-01-04 17:03:11 +0000568 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
569 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000570 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
571 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
572 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000573
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000574 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
575 Remove a typo that results in no hinting and a memory leak with some
576 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000577
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000578 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000579 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000580 CFF_Faces in it. We need to close all faces before destroying the
581 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000582
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00005832007-01-02 Werner Lemberg <wl@gnu.org>
584
585 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
586 Remove compiler warning.
587
David Turner9207e002007-01-02 16:58:13 +00005882007-01-02 David Turner <david@freetype.org>
589
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000590 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000591
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00005922006-12-31 Masatake YAMATO <jet@gyve.org>
593
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000594 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
595 function.
596 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000597 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000598 `gxv_kern_subtable_fmt0_pairs_validate'.
599
David Turner115b4422006-12-22 11:37:05 +00006002006-12-22 David Turner <david@freetype.org>
601
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000602 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
603 warnings.
David Turner115b4422006-12-22 11:37:05 +0000604
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000605 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
606 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000607
Werner Lemberg4755bf72006-12-16 08:58:44 +00006082006-12-16 Anders Kaseorg <anders@kaseorg.com>
609
610 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
611 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
612
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006132006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
614
Werner Lemberg9b774e22007-01-16 06:11:27 +0000615 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000616 sync with the modification by Jens Claudius on 2006-08-22; cf.
617 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 +0000618
6192006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
620
621 * src/base/ftmac.c: Specialized for Mac OS X only.
622 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
623 * builds/unix/configure.raw: Ditto. When explicit switches for
624 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
625 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
626
6272006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
628
629 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
630 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
631 instead of src/base/ftmac.c
632 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
633 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
634 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
635 that cannot be built at present.
636
6372006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
638
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000639 * src/base/ftobjs.c: Improvement of resource fork handler for
640 POSIX, cf.
641 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000642 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
643 format or .dfont, to simulate the face index number counted by ftmac.c.
644 (IsMacResource): Return the number of scalable faces correctly.
645
Werner Lembergec5b4502006-12-10 07:51:38 +00006462006-12-10 Werner Lemberg <wl@gnu.org>
647
648 * builds/toplevel.mk (version): Protect against `distclean' target.
649
Werner Lembergb26b3142006-12-09 20:01:43 +00006502006-12-09 Werner Lemberg <wl@gnu.org>
651
652 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
653 or `type'.
654
655 * builds/freetype.mk (version): Extracted from freetype.h, using
656 GNU make's built-in string functions.
657 (refdoc): Use $(version) instead of static version number.
658
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00006592006-12-08 Werner Lemberg <wl@gnu.org>
660
661 * builds/toplevel.mk (dist): Extract version number from freetype.h.
662
Werner Lemberg15c29502006-12-09 07:29:54 +00006632006-12-08 Vladimir Volovich <vvv@vsu.ru>
664
665 * src/tools/apinames (State): Remove final comma in structure -- xlc
666 v5 under AIX 4.3 doesn't like this.
667
David Turnerdbf3b432006-12-07 21:18:09 +00006682006-12-07 David Turner <david@freetype.org>
669
Werner Lemberg256a3512006-12-08 06:49:33 +0000670 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
671 to the spacing of auto-fitted glyphs. This only impacts rare
672 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000673
Werner Lemberg11171312006-12-03 09:43:40 +00006742006-12-03 Werner Lemberg <wl@gnu.org>
675
676 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
677
Werner Lemberg960ba592006-12-01 08:20:47 +00006782006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000679
Werner Lemberg960ba592006-12-01 08:20:47 +0000680 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
681 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
682 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000683
David Turner80658e52006-11-28 08:09:20 +0000684
Werner Lemberg960ba592006-12-01 08:20:47 +0000685 * include/freetype/ftxf86.h: Fix and extend comment so that it
686 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000687
Werner Lemberg960ba592006-12-01 08:20:47 +0000688 * include/freetype/ftchapters.h: Add `font_format' section.
689
690
691 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
692 to TOC in index page.
693
6942006-11-28 David Turner <david@freetype.org>
695
696 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
697 trying to render into a zero-width/height bitmap, not an error code.
698
699 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
700
701 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
702 ones instead.
703
704 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
705 variable.
David Turner80658e52006-11-28 08:09:20 +0000706
Werner Lemberg8636c292006-11-26 22:28:13 +00007072006-11-26 Pierre Hanser <hanser@club-internet.fr>
708
709 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
710
Werner Lemberg960ba592006-12-01 08:20:47 +00007112006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000712
Werner Lemberg960ba592006-12-01 08:20:47 +0000713 * src/autofit/afhints.c (af_glyph_hints_dump_points,
714 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
715 Add stubs to link the `ftgrid' test program when debugging is
716 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000717
Werner Lemberg960ba592006-12-01 08:20:47 +00007182006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000719
720 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000721 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
722
723 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
724 Emit more sensible information.
725
726 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
727
728 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
729 rounding of blue values.
730 (af_latin_hints_compute_segments): Hint segment heights.
731 (af_latin_hints_link_segments): Reduce `len_score' value.
732 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
733 value and use `height' member for comparisons.
734 (af_latin_hint_edges): Extend logging message.
735 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000736
Werner Lemberg91959bf2006-11-22 10:36:55 +00007372006-11-22 Werner Lemberg <wl@gnu.org>
738
739 Fix Savannah bug #15553.
740
741 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
742 program after a change from mono to grayscaling (and vice versa).
743 Use correct constant for comparison to get `exec->grayscale'.
744
Werner Lemberg913a3652006-11-19 09:19:17 +00007452006-11-18 Werner Lemberg <wl@gnu.org>
746
747 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000748 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000749 This patch fixes Savannah bug #18301.
750
751 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
752 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
753 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
754 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
755 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
756 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
757 (FNT_Load_Glyph): Check validity of `glyph_index'.
758
David Turner7bab6ae2006-11-13 11:25:06 +00007592006-11-13 David Turner <david@freetype.org>
760
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000761 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
762 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000763
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000764 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
765 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
766 when building the library to change the default LCD filter to be
767 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000768
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000769 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000770
David Turner8765c712006-11-10 16:49:42 +00007712006-11-10 David Turner <david@freetype.org>
772
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000773 * src/smooth/ftsmooth.c: API change for the LCD
774 filter. The FT_LcdFilter value is an enumeration describing which
775 filter to apply, with new values FT_LCD_FILTER_LIGHT and
776 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
777 algorithm which produces strong color fringes for everything
778 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000779
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000780 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
781 second parameter to an enum type.
782
783 * src/base/ftlcdfil.c (USE_LEGACY): Define.
784 (_ft_lcd_filter): Rename to...
785 (_ft_lcd_filter_fir): This.
786 Update parameters.
787 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
788 (FT_Library_Set_LcdFilter): Update parameters.
789 Handle new filter modes.
790
791 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
792 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
793 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
794 callback and update other fields.
795
796 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
797 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
798 Other minor improvements.
799
800 * src/autofit/aflatin.c: Various tiny improvements that drastically
801 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
802 (af_latin_hints_compute_edges): Fix typo.
803 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000804
David Turner4e9cc3c2006-11-09 16:31:52 +00008052006-11-09 David Turner <david@freetype.org>
806
Werner Lemberg49c77a82006-11-09 21:51:57 +0000807 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
808 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000809
Werner Lemberg5e430892006-11-07 09:35:03 +00008102006-11-07 Zhe Su <james.su@gmail.com>
811
812 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
813 also.
814
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008152006-11-03 Werner Lemberg <wl@gnu.org>
816
817 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
818
David Turner40604742006-11-02 16:37:35 +00008192006-11-02 David Turner <david@freetype.org>
820
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000821 Add a few tweaks to better handle serif fonts.
822 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000823
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000824 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
825 segments that are less than 1.5 pixels high. This gets rid of
826 *many* corner cases with serifs.
827 (af_latin_align_linked_edge): Add logging message.
828 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
829 Add logging messages.
830 Handle AF_EDGE_FLAG flag specially.
831
832 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
833 _af_debug_disable_blue_hints, and _af_debug_hints variables.
834
835 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
836 Update external declarations.
837 (af_corner_orientation, af_corner_is_flat): Replaced by...
838
839 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
840 ft_corner_is_flat): These declarations.
841
842 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
843 Comment out. Replaced by...
844
845 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
846 These functions. Update all callers.
847 (FT_Add64) [!FT_LONG64]: Simplify.
848
849 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
850 (af_direction_compute): Add a missing FT_ABS call. This bug caused
851 production of garbage by missing lots of segments.
852
853 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
854
855 * src/autofit/afloader.c (af_loader_init, af_loader_done)
856 [AF_DEBUG]: Set _af_debug_hints.
857
858
859 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
860 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
861 and ft_corner_orientation.
862
863
864 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000865
Werner Lemberge88c5262006-10-24 05:46:26 +00008662006-10-24 Werner Lemberg <wl@gnu.org>
867
868 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
869
870 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
871 as argument.
872
David Turnera1861392006-10-23 16:00:59 +00008732006-10-23 Zhe Su <zsu@novell.com>
874
Werner Lemberg715e96e2006-10-24 05:28:45 +0000875 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
876 better deal with broken Asian fonts with strange glyphs, having
877 self-intersections and other peculiarities. The used algorithm is
878 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000879
David Turnere140f142006-10-23 08:56:57 +00008802006-10-23 David Turner <david@freetype.org>
881
Werner Lemberg715e96e2006-10-24 05:28:45 +0000882 Speed up the CFF font loader. With some large CFF fonts,
883 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000884
Werner Lemberg715e96e2006-10-24 05:28:45 +0000885 * src/cff/cffload.c (cff_get_offset): Removed.
886 (cff_new_index): Inline functionality of `cff_get_offset'.
887 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
888 (cff_charset_done): Call `cff_charset_free_cids'.
889 (cff_charset_load): Call `cff_charset_compute_cids'.
890 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
891
892 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
893 with FT_NEXT_XXX.
894
895
896 Speed up the Postscript hinter, with more than 100% speed increase
897 on my machine.
898
899 * src/pshinter/pshalgo.c (psh_corner_is_flat,
900 psh_corner_orientation): New functions.
901 (psh_glyph_compute_inflections): Merge loops for efficiency.
902 Use `psh_corner_orientation'.
903 (psh_glyph_init): Use `psh_corner_is_flat'.
904 (psh_hint_table_find_strong_point): Renamed to...
905 (psh_hint_table_find_strong_points): This.
906 Rewrite, adding argument to handle all points at once.
907 Update all callers.
908 (PSH_MAX_STRONG_INTERNAL): New macro.
909 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000910
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009112006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
912
913 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000914 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000915
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009162006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
917
918 * docs/INSTALL.CROSS: New document file for cross-building.
919
920 * builds/unix/configure.raw: Preliminary cross-building support.
921 Find native C compiler and pass it by CC_BUILD, and
922 find suffix for native executable and pass it by EXEEXT_BUILD.
923 Also suffix for target executable is passed by EXEEXT.
924
Werner Lembergb9e6d692006-10-15 08:58:40 +0000925 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
926 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000927 CC_BUILD and EXEEXT_BUILD.
928
Werner Lembergb9e6d692006-10-15 08:58:40 +0000929 * builds/exports.mk (APINAMES_EXE): Change the extension for
930 apinames from the suffix for target (E) to that for building host
931 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000932
Werner Lemberg82a07e92006-10-12 06:20:44 +00009332006-10-12 Werner Lemberg <wl@gnu.org>
934
935 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
936 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
937 which reference those files.
938
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009392006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
940
Werner Lembergb9e6d692006-10-15 08:58:40 +0000941 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
942 embedded in freetype2.pc and freetype-config. Use it to record
943 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000944
945 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
946
947 * builds/unix/freetype-config.in: Ditto.
948
Werner Lemberg28e17d92006-10-11 17:27:47 +00009492006-10-11 Werner Lemberg <wl@gnu.org>
950
951 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
952 development.
953
Jens Claudius336d2292006-10-03 08:53:37 +00009542006-10-03 Jens Claudius <jens.claudius@yahoo.com>
955
956 * include/freetype/config/ftstdlib.h: Cast away volatileness from
957 argument to ft_setjmp.
958
959 * include/freetype/internal/ftvalid.h: Add comment that
960 ft_validator_run must not be used.
961
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009622006-10-01 Werner Lemberg <wl@gnu.org>
963
964 * src/base/ftbase.c: Undo change from 2006-09-30.
965
966 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
967
9682006-09-30 David Turner <david@freetype.org>
969
Werner Lemberg046bf8b2006-10-03 08:43:42 +0000970 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
971 s/unpatented_hinting/ignore_unpatented_hinter/.
972 Update all callers.
973
974 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
975 auto-hinting shall be used or not.
976
977 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +0000978
Werner Lemberg2863cfa2006-10-01 17:04:00 +00009792006-09-30 Werner Lemberg <wl@gnu.org>
980
Werner Lemberg1e4402e2006-09-29 22:10:36 +0000981 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
982 in use).
983
984 * src/base/ftbase.c: Include `ftlcdfil.c'.
985
Werner Lemberg9b15ea32006-09-29 18:22:11 +00009862006-09-29 Werner Lemberg <wl@gnu.org>
987
988 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
989 overlapping segments. Bug reported by Stefan Koch.
990
David Turnerad830712006-09-27 16:20:59 +00009912006-09-28 David Turner <david@freetype.org>
992
Werner Lemberg2c002e12006-09-29 21:31:53 +0000993 Fix a bug in the automatic unpatented hinting support which prevents
994 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +0000995
Werner Lemberg2c002e12006-09-29 21:31:53 +0000996 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
997 s/force_autohint/unpatented_hinting/. Update all callers.
998
999 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1000
1001 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001002
David Turner8a317cf2006-09-27 07:52:48 +000010032006-09-27 David Turner <david@freetype.org>
1004
Werner Lemberg2c002e12006-09-29 21:31:53 +00001005 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001006
David Turner8a317cf2006-09-27 07:52:48 +00001007
David Turnere140f142006-10-23 08:56:57 +00001008 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001009 In a default build, the function `FT_Library_SetLcdFilter' returns
1010 `FT_Err_Unimplemented_Feature'; you need to #define
1011 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1012 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001013
Werner Lemberg2c002e12006-09-29 21:31:53 +00001014 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001015
Werner Lemberg2c002e12006-09-29 21:31:53 +00001016 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1017 typedef.
1018 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1019 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001020
Werner Lemberg2c002e12006-09-29 21:31:53 +00001021 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1022 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001023
Werner Lemberg2c002e12006-09-29 21:31:53 +00001024 Handle subpixel rendering.
1025 Simplify function.
1026 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1027 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1028
1029 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1030 pointing to <freetype/ftlcdfil.h>.
1031
1032 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1033 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1034
1035 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001036
Werner Lemberge20df4a2006-09-27 06:29:21 +000010372006-09-26 David Bustin
1038
1039 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1040 correctly. Reported as Savannah bug #17843.
1041
David Turner6f8c6222006-09-26 15:42:44 +000010422006-09-26 David Turner <david@freetype.org>
1043
Werner Lemberg110246c2006-09-26 21:55:44 +00001044 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1045 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1046 horizontal and vertical hinting for the purpose of debugging the
1047 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001048
Werner Lemberg110246c2006-09-26 21:55:44 +00001049 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1050 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001051
Werner Lemberg110246c2006-09-26 21:55:44 +00001052 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1053
1054 * include/freetype/config/ftoption.h, devel/ftoption.h
1055 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1056 we want to compile LCD-optimized rendering code (à la ClearType) or
1057 not. The macro *must* be disabled in default builds of the library
1058 for patent reasons.
1059
1060 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1061 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1062 isn't defined at compile time. This only changes the content of the
1063 rendered glyph to match the one of normal gray-level rendering,
1064 hence clients should not need to be modified.
1065
1066 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001067
Werner Lemberg745ff2c2006-09-19 05:48:02 +000010682006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1069
1070 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1071 LWFN fails and both are available.
1072
David Turnerf3050052006-09-11 12:00:32 +000010732006-09-11 David Turner <david@freetype.org>
1074
Werner Lembergf9644552006-09-12 13:48:10 +00001075 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1076 report their English names through an Apple Roman
1077 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001078
Werner Lembergf9644552006-09-12 13:48:10 +00001079 If the font uses another name entry with language_id == English, it
1080 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001081
Werner Lembergf9644552006-09-12 13:48:10 +00001082 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1083 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001084
Werner Lemberg36d2eab2006-09-05 19:24:34 +000010852006-09-05 Werner Lemberg <wl@gnu.org>
1086
1087 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001088 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001089 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1090 `HAN NOM B.ttf').
1091
1092 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1093
David Turner772e55d2006-09-05 09:45:15 +000010942006-09-05 David Turner <david@freetype.org>
1095
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001096 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001097
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001098 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1099 (TRaster): Remove `count_ex' and `count_ey'.
1100 (gray_find_cell): Remove 2nd and 3rd argument.
1101 (gray_alloc_cell): Merged with `gray_find_cell'.
1102 (gray_record_cell): Simplify.
1103 (gray_set_cell): Rewrite.
1104 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1105 (gray_render_span): Don't use FT_MEM_SET for small values.
1106 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1107 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1108 bitmap scanline.
1109 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001110
David Turneraa557a92006-09-04 16:42:44 +000011112006-09-04 David Turner <david@freetype.org>
1112
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001113 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1114 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001115
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011162006-09-03 Werner Lemberg <wl@gnu.org>
1117
1118 * devel/ftoption.h: Synchronize with
1119 include/freetype/config/ftoption.h.
1120
1121 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1122 variable declaration.
1123 (gray_convert_glyph): Fix compiler warnings.
1124
David Turner6d79f212006-09-01 14:09:35 +000011252006-09-01 David Turner <david@freetype.org>
1126
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001127 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1128 to recognize a few fonts that require the automatic unpatented
1129 loader.
David Turnerbd502952006-09-01 19:05:24 +00001130
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001131 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1132 rasterizer. The speed improvement is between 15% and 25%, depending
1133 on the font data.
1134
1135 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1136 (TCell): Redefine.
1137 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1138 (gray_init_cells): Updated.
1139 (gray_find_cell, gray_alloc_cell): New functions.
1140 (gray_record_cell): Rewritten to use `gray_find_cell' and
1141 `gray_alloc_cell'.
1142 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1143 QSORT_THRESHOLD):
1144 Removed.
1145 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1146 gray_dump_cells): Removed.
1147 (gray_sweep): Rewritten.
1148 (gray_convert_glyph): Rewrite code which used one of the sorting
1149 functions.
1150 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001151
Werner Lembergd898aed2006-08-29 09:50:34 +000011522006-08-29 Dr. Werner Fink <werner@suse.de>
1153
1154 * configure: Make it possible to handle configure options which
1155 have strings containing spaces.
1156
11572006-08-27 David Turner <david@freetype.org>
1158
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001159 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1160 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1161 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1162
1163 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1164 src/truetype/truetype.c, src/truetype/ttdriver.c,
1165 src/truetype/ttgload.c, src/truetype/ttgload.h,
1166 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1167 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1168 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1169
1170 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1171 member `force_autohint'.
1172
1173 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1174
1175 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1176 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001177
Jens Claudiusa787f452006-08-27 11:26:18 +000011782006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1179
1180 Fix miscellaneous compiler warnings.
1181
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001182 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1183 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001184
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001185 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1186 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1187 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001188
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001189 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1190 volatileness of argument to ft_longjmp. Spotted by Werner
1191 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001192
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001193 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1194 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001195
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001196 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1197 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001198
Werner Lembergc4c35b72006-08-27 08:03:46 +000011992006-08-27 Werner Lemberg <wl@gnu.org>
1200
1201 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1202 Reported by Jens.
1203
Jens Claudius088e44e2006-08-22 14:24:30 +000012042006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001205
Jens Claudius088e44e2006-08-22 14:24:30 +00001206 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001207 about addresses of volatile objects passed as function arguments as
1208 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001209
Werner Lembergc4c35b72006-08-27 08:03:46 +00001210 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1211 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001212
1213 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1214 argument `table' a pointer to a volatile object.
1215
1216 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1217 argument `table' a pointer to a volatile object.
1218
Jens Claudius2652bd52006-08-18 17:20:37 +000012192006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1220
1221 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1222 variable `_sfnt' as volatile since it must keep its value across
1223 a call to ft_setjmp.
1224 (gxv_validate): Same for local variables `memory' and `valid'.
1225 (classic_kern_validate): Same for local variables `memory',
1226 `ckern', and `valid'.
1227
1228 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1229 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1230 `jstf', and 'valid'.
1231
1232 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1233 local variable `cmap'.
1234
David Turner9fbfc6a2006-08-16 09:11:31 +000012352006-08-16 David Turner <david@freetype.org>
1236
Werner Lemberg12342992006-08-19 11:18:09 +00001237 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1238 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001239
Werner Lemberg12342992006-08-19 11:18:09 +00001240 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1241 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001242
David Turner33f5f242006-08-16 16:50:55 +00001243
Werner Lemberg12342992006-08-19 11:18:09 +00001244 Improvements to native TrueType hinting. This is a first try,
1245 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1246
1247 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1248 `extra_points2'.
1249
1250 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1251 `orus'.
1252
1253 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1254 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1255 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1256 handle `extra_points2'.
1257
1258 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1259 Remove compiler warning.
1260 (cur_to_arg): Remove macro.
1261 (TT_Hint_Glyph): Updated.
1262 (TT_Process_Simple_Glyph): Handle `orus'.
1263
1264 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1265 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1266 (LOC_Ins_IUP): Renamed to...
1267 (IUP_WorkerRec): This.
1268 Add `orus' member.
1269 (Shift): Renamed to...
1270 (_iup_worker_shift): This.
1271 Updated.
1272 (Interp): Renamed to...
1273 (_iup_worker_interpolate): This.
1274 Updated to handle `orus'.
1275 (Ins_IUP): Updated.
1276
1277 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1278 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001279
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000012802006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1281
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001282 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001283 build ftvalid in ft2demos. This has been inadvertedly changed
1284 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001285
12862006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1287
Werner Lemberg12342992006-08-19 11:18:09 +00001288 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1289 Jens:
1290 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001291
Werner Lemberg12342992006-08-19 11:18:09 +00001292 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1293 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001294
1295 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1296
Jens Claudius9950adc2006-08-13 12:14:36 +000012972006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1298
Werner Lemberg12342992006-08-19 11:18:09 +00001299 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1300 T1_TOKEN_TYPE_KEY.
1301 (T1_FieldRec): Add `dict'.
1302 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1303 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1304 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001305
Werner Lemberg12342992006-08-19 11:18:09 +00001306 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1307 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001308
1309 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1310
1311 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001312 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1313 not T1_TOKEN_TYPE_ANY.
1314 (ps_parser_load_field): Make sure a token that should be a string or
1315 name is really a string or name.
1316 Avoid memory leak if a keyword has been already encountered and its
1317 value is overwritten.
1318 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1319 T1_FIELD_XXX.
1320 (parse_dict): Ignore keywords that occur in the wrong dictionary
1321 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001322
Werner Lemberg12342992006-08-19 11:18:09 +00001323 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1324 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001325
Werner Lemberg12342992006-08-19 11:18:09 +00001326 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1327 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001328
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013292006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1330
1331 Move creation of field `buildchar' of T1_DecoderRec out of
1332 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1333 of it.
1334
1335 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1336 and `T1_Compute_Max_Advance'.
1337
1338 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1339 Remove field `face', add `len_buildchar'.
1340
1341 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1342 field `buildchar'.
1343
1344 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1345 finisher for T1_Decoder.
1346 (cid_slot_load_glyph): Do not ignore failure when initializing the
1347 T1_Decoder.
1348
1349 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1350 Updated.
1351 (t1_decoder_init): Remove initialization of fields `buildchar' and
1352 `len_buildchar'.
1353 (t1_decoder_done): Remove deallocation of field `buildchar'.
1354
1355 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1356 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1357 T1_Decoder.
1358 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1359 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1360 case of error.
1361
1362 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1363 `buildchar' of T1_FaceRec.
1364
1365 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1366 `buildchar' of T1_FaceRec.
1367
Werner Lemberg1a380e02006-07-14 18:28:08 +000013682006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1369
1370 * freetype2/include/freetype/internal/psaux.h: New macros
1371 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1372 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1373 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1374 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1375 (T1_DecoderRec): New fields `buildchar' and `face'.
1376 (IS_PS_TOKEN): New macro.
1377
1378 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1379 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1380
1381 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1382 `default_design_vector' and `num_default_design_vector'.
1383
1384 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1385 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1386 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1387
1388 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1389 `token' argument to be NULL if we want only to count the number of
1390 tokens.
1391 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1392 want to skip the array.
1393 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1394 want to skip the array.
1395
1396 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1397 support for (partially commented out) othersubrs 19-25, 27, and 28.
1398 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1399 (t1_decoder_done): Release new field `buildchar'.
1400
1401 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1402 functions.
1403 (t1_keywords): Register them.
1404 (t1_allocate_blend): Updated.
1405 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1406 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1407 (parse_dict): Remove `keyword_flags' argument.
1408 Use new macro IS_PS_TOKEN.
1409 Changed function so that later PostScript definitions override
1410 earlier ones.
1411 (t1_init_loader): Initialize new field `keywords_encountered'.
1412 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1413 `len_buildchar'.
1414 Remove `keywords_flags'.
1415
1416 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1417 `keywords_encountered'.
1418 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1419
1420 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1421 New entries for parsing /NDV, /CDV, and /DesignVector.
1422
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014232006-07-07 Werner Lemberg <wl@gnu.org>
1424
1425 Add many checks to protect against malformed PCF files.
1426
1427 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1428 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1429
1430 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1431 data and check that tables don't overlap (using a simple
1432 bubblesort).
1433 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1434 New macros which give the size of data structures in the data
1435 stream.
1436 (pcf_get_properties): Use rough estimates to get array size limits.
1437 Assign `face->nprops' and `face->properties' earlier so that a call
1438 to PCF_Face_Done can do the clean-up in case of error.
1439 Protect against invalid string offsets.
1440 (pcf_get_metrics): Clean up code.
1441 Adjust tracing message levels.
1442 Use rough estimate to get array size limit.
1443 (pcf_get_bitmaps): Clean up code.
1444 Adjust tracing message levels.
1445 Use rough estimates to get offset limits.
1446 (pcf_get_encodings): Adjust tracing message level.
1447 (pcf_get_accel): Clean up code.
1448
Werner Lemberg8eb05252006-06-27 06:20:01 +000014492006-06-26 Werner Lemberg <wl@gnu.org>
1450
1451 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1452 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1453
Werner Lemberg24703f82006-06-26 19:12:51 +000014542006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1455
1456 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1457 (t1_decoder_parse_charstrings): Operator with
1458 opcode 15 pops its two arguments.
1459 Handle the case where the pops of an othersubr may be part of a
1460 subroutine.
1461 Handle unknown othersubrs gracefully: count their operands and let
1462 the following pop operators push the operands as the results onto
1463 the Type1 stack.
1464 Improve handling of setcurrentpoint opcode.
1465
Werner Lembergc011f4c2006-06-26 09:40:00 +000014662006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1467
1468 The Type 1 parser now skips over top-level procedures as required
1469 for a `Simplified Parser'. This makes the parser more robust as it
1470 doesn't poke around in PostScript code. Additionally, it makes the
1471 FontDirectory hackery in src/type1/t1load.c unnecessary.
1472
1473 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1474 (skip_literal_string): Add FT_Error as return value.
1475 Handle escapes better.
1476 (skip_string): Add FT_Error as return value.
1477 Don't set `parser->error' but return error code directly.
1478 (skip_procedure): New function.
1479 (ps_parser_skip_PS_token): Handle procedures.
1480 Update code.
1481 (ps_parser_to_token): Update code.
1482 (ps_parser_load_field_table): Handle bbox entries also.
1483
1484 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1485 Add commented-out code for synthetic fonts.
1486
Werner Lemberga2da05c2006-06-25 06:27:27 +000014872006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1488
1489 Fix two hinting bugs as reported in
1490 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1491
1492 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1493 `first_point' member.
1494
1495 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1496 `first_point'.
1497 (TT_Process_Composite_Glyph): Always untouch points.
1498
1499 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1500 `first_point' and `last_point' in case of composite glyphs.
1501 (Ins_IUP): Fix computation of `end_point'.
1502
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015032006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1504
Werner Lembergef3d2c22006-06-25 06:07:14 +00001505 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1506 Mac. The original patch was written by David Sachitano and Lawrence
1507 Coopet, and modified by Sean McBride for MPW compatibility. Only
1508 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001509
Werner Lembergef3d2c22006-06-25 06:07:14 +00001510 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1511 Mac OS X platforms.
1512 (OS_INLINE): Undefine before definition.
1513 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1514 FontAssociation table in FOND resource.
1515 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1516 and fontSize at each entry of FontAssociation table in FOND
1517 resource.
1518 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1519 ffStylOff of FamilyRecord header of FOND resource, the header,
1520 fontSize, fontID at each entry of FontAssociation table, and
1521 StyleMapping table.
1522 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001523
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015242006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1525
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001526 Public API of TrueTypeGX, OpenType, and classic kern table validator
1527 should return `FT_Err_Unimplemented_Feature' if validation service
1528 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001529 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001530 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1531
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001532 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1533 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1534 unavailable.
1535 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1536 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001537
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001538 * src/base/ftotval.c (FT_OpenType_Validate): Return
1539 FT_Err_Unimplemented_Feature if OpenType validation service is
1540 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001541
Werner Lembergb10e45a2006-06-08 07:32:56 +000015422006-06-08 Werner Lemberg <wl@gnu.org>
1543
1544 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1545 errors.
1546
David Turner5f1f7502006-06-07 05:11:50 +000015472006-06-07 David Turner <david@freetype.org>
1548
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001549 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1550 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1551 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001552
David Turner457b4a82006-06-06 08:14:14 +000015532006-06-06 David Turner <david@freetype.org>
1554
Werner Lemberg4836f952006-06-06 12:54:08 +00001555 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001556
Werner Lemberg4836f952006-06-06 12:54:08 +00001557 We change `ps_unicodes_init' so that it also takes a
1558 `free_glyph_name' callback to release the glyph names returned by
1559 `get_glyph_name'
1560
1561 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1562 Renamed to ...
1563 (PS_GetGlyphNameFunc): This.
1564 (PS_FreeGlyphNameFunc): New typedef.
1565 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1566
1567 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1568 argument.
1569 (cff_sid_free_glyph_name): New function.
1570 (cff_cmap_unicode_init): Updated.
1571
1572 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1573
1574 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1575 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001576
1577
David Turner09717352006-06-04 14:33:08 +000015782006-06-04 David Turner <david@freetype.org>
1579
Werner Lembergd724f202006-06-04 15:17:41 +00001580 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1581 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001582 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001583
Werner Lembergd724f202006-06-04 15:17:41 +00001584 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1585 of `face->num_glyphs' which missed the last glyph, due to
1586 the offset-by-1 computation, since the PFR format doesn't
1587 guarantee that glyph index 0 corresponds to the `missing
1588 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001589
Werner Lemberg33779662006-05-26 06:30:05 +000015902006-05-25 Werner Lemberg <wl@gnu.org>
1591
1592 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1593 `-no-undefined'. Reported by Christian Biesinger.
1594
Werner Lemberg24773d62006-05-20 08:53:13 +000015952006-05-19 Brian Weed <bw@imaginengine.com>
1596
1597 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1598 have debug information, and debug libraries use `C7 compatible'
1599 debug info.
1600
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016012006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1602
Werner Lemberga6523a62006-05-20 08:47:01 +00001603 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001604 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001605
Werner Lemberga6523a62006-05-20 08:47:01 +00001606 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1607 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001608
1609 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001610 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001611
16122006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1613
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001614 * build/unix/configure.raw: Add a fallback to disable Carbon
1615 dependency, if configured with no options on Mac OS X.
1616
16172006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1618
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001619 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001620 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001621 the second part of Savannah bug #16590.
1622
Werner Lemberg545c4e52006-05-17 22:55:04 +000016232006-05-18 Werner Lemberg <wl@gnu.org>
1624
1625 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1626 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1627
David Turnerdc3ff312006-05-17 12:59:35 +000016282006-05-17 David Turner <david@freetype.org>
1629
Werner Lemberg545c4e52006-05-17 22:55:04 +00001630 This is a major patch used to drastically improve the performance of
1631 loading glyphs. This both speeds up loading the glyph vectors
1632 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001633
Werner Lemberg545c4e52006-05-17 22:55:04 +00001634 We now use inline assembler code with GCC to implement `FT_MulFix',
1635 which is probably the most important function related to the
1636 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001637
Werner Lemberg545c4e52006-05-17 22:55:04 +00001638 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001639
1640
Werner Lemberg545c4e52006-05-17 22:55:04 +00001641 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1642 `cursor' and `limit'.
1643
1644 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1645 New functions.
1646 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1647 [TEST]: Remove.
1648
1649 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1650 code.
1651
1652 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1653 `FT_ZERO'
1654 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1655 (af_glyph_hints_reload: Rewrite recognition of weak points.
1656
1657 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1658 constant values out of the loops.
1659
1660 * src/autofit/aftypes.h: Updated.
1661
1662 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1663
1664 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1665 product to get orientation.
1666
1667 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1668 (FT_Stream_OpenGzip): Use it to handle small files directly in
1669 memory.
1670
1671 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1672 Improve performance.
1673
1674 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1675 `limit'.
1676
1677 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1678 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1679 exceedingly large values of number of contours. Speed up by
1680 reducing the number of loops.
1681
1682 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1683
1684
1685 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1686 used to detect rogue clients from 4 to 16. This is to prevent some
1687 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1688 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001689
Werner Lembergde2d90a2006-05-17 08:54:30 +000016902007-05-17 Werner Lemberg <wl@gnu.org>
1691
1692 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001693 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001694
16952006-05-16 Werner Lemberg <wl@gnu.org>
1696
1697 * docs/PROBLEMS: Updated icl issues.
1698
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001699----------------------------------------------------------------------------
1700
Werner Lemberg42b63b22007-01-21 21:01:33 +00001701Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001702David Turner, Robert Wilhelm, and Werner Lemberg.
1703
1704This file is part of the FreeType project, and may only be used, modified,
1705and distributed under the terms of the FreeType project license,
1706LICENSE.TXT. By continuing to use, modify, or distribute this file you
1707indicate that you have read the license and understand and accept it
1708fully.
1709
1710
1711Local Variables:
1712version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001713coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001714End: