blob: aa8b07e1ad5a052d0a31a3a2c46c0406067852a0 [file] [log] [blame]
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000012007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2
3 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
4 setjmp, proposed by Sean McBride:
5 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
6
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000072007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
8
Werner Lembergc9f6c662007-03-21 13:30:14 +00009 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
10 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
11 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000012
David Turner74c34eb2007-03-18 07:19:31 +0000132007-03-18 David Turner <david@freetype.org>
14
Werner Lembergc9f6c662007-03-21 13:30:14 +000015 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
16 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000017
Werner Lembergc9f6c662007-03-21 13:30:14 +000018 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000019
David Turner89020d92007-03-17 17:48:57 +0000202007-03-17 David Turner <david@freetype.org>
21
Werner Lembergc9f6c662007-03-21 13:30:14 +000022 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
23 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000024
Werner Lemberg25d592a2007-03-09 07:59:35 +0000252007-03-09 Werner Lemberg <wl@gnu.org>
26
27 * Version 2.3.2 released.
28 =========================
29
30
31 Tag sources with `VER-2-3-2'.
32
33 * builds/win32/visualc/index.html,
34 builds/win32/visualc/freetype.dsp,
35 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
36 s/231/232/.
37
David Turner3a51afa2007-03-08 10:50:38 +0000382007-03-08 David Turner <david@freetype.org>
39
Werner Lemberg25d592a2007-03-09 07:59:35 +000040 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000041
Werner Lemberg25d592a2007-03-09 07:59:35 +000042 * builds/unix/configure.raw (version_info): Set to 9:13:3.
43
44 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
45
46 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000047
Werner Lemberg1e259de2007-03-08 15:39:21 +000048 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
49 function to work properly, over-writing user-provided buffers in
50 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000051
David Turner121cad52007-03-08 16:43:50 +000052
Werner Lemberg3d92f082007-03-06 11:59:24 +0000532007-03-05 Werner Lemberg <wl@gnu.org>
54
55 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
56 macro for `strstr'.
57
58 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
59 `trick_names', as suggested by Ivan Nincic.
60
David Turner085bc6e2007-03-05 17:40:03 +0000612007-03-05 David Turner <david@freetype.org>
62
Werner Lembergd112cf02007-03-06 12:06:56 +000063 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
64 case FT_Init_FreeType fails for some reason. Problem reported by
65 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000066
Werner Lembergd112cf02007-03-06 12:06:56 +000067 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
68 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
69 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
70 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000071
Werner Lembergd112cf02007-03-06 12:06:56 +000072 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
73 signed values, not unsigned ones. Problem reported by Johannes
74 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000075
David Turner601aefe2007-02-21 16:47:49 +0000762007-02-21 David Turner <david@freetype.org>
77
Werner Lembergde5e6862007-02-25 21:06:43 +000078 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
79 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +000080
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +0000812007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
82
83 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
84 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
85 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
86
Werner Lemberga0915172007-02-16 08:12:50 +0000872007-02-16 Werner Lemberg <wl@gnu.org>
88
89 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
90 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
91
David Turner2c4500e2007-02-14 15:08:47 +0000922007-02-14 David Turner <david@freetype.org>
93
Werner Lemberg3cd6cc22007-02-16 08:10:17 +000094 It seems that the following changes fix most of the known
95 interpreter problems with my fonts, but more testing is needed,
96 though.
97
98 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
99 (TT_MulFix14): Rewrite.
100 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
101 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000102
Werner Lembergc6a14082007-02-12 22:08:15 +00001032007-02-12 Werner Lemberg <wl@gnu.org>
104
105 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
106 warnings.
107
108 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
109 (bdf_interpret_style): Ditto.
110
David Turnerc0f9c4a2007-02-12 14:55:03 +00001112007-02-12 David Turner <david@freetype.org>
112
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000113 Simplify projection and dual-projection code interface.
114
Werner Lemberg406d25f2007-02-12 22:01:18 +0000115 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
116 FT_Vector' as argument type.
117 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
118 Updated.
119 (CUR_fast_project, CUR_fast_dualproj): New macros.
120 (Project, Dual_Project, Project_x, Project_y): Updated.
121 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
122 macros.
123
124
125 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
126 adjustments for the non-light auto-hinted modes. Gets rid of
127 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000128
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000129 * src/autofit/aflatin.c (af_latin_hints_link_segments,
130 af_latin_hints_compute_edges): Slight optimization of the segment
131 linker and better handling of serif segments to get rid of broken
132 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000133
David Turnerc0f9c4a2007-02-12 14:55:03 +0000134
Werner Lemberg442bfb82007-02-12 21:44:10 +0000135 Introduce new string functions and the corresponding macros to get
136 rid of various uses of strcpy and other `evil' functions, as well as
137 to simplify a few things.
138
139 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
140 ft_mem_strcpyn): New declarations.
141 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
142 macros.
143 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
144 functions.
145
146 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
147 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
148 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
149 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
150 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
151 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
152 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
153 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000154
Werner Lemberg406d25f2007-02-12 22:01:18 +0000155 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
156
Werner Lemberg582067d2007-02-11 15:03:05 +00001572007-02-11 Werner Lemberg <wl@gnu.org>
158
159 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
160 non-spacing glyphs.
161
Werner Lemberg8f474532007-02-07 08:31:01 +00001622007-02-07 Tom Parker <palfrey@tevp.net>
163
164 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
165 pointer.
166
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001672007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
168
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000169 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
170 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000171 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000172 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
173 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
174 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
175 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000176
177 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
178 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000179 * builds/mac/ftmac.c: Ditto.
180
1812007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
182
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000183 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000184 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000185 #include <ftmac.c>.
186
1872007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
188
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000189 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
190 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
191 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
192 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
193 FT_GetFilePath_From_Mac_ATS_Name.
194 * builds/mac/ftmac.c: Ditto.
195
1962007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
197
Werner Lembergdcbb7082007-02-08 08:54:09 +0000198 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000199 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
200 for passing to FT_New_Face_From_FSSpec.
201
2022007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
203
Werner Lembergdcbb7082007-02-08 08:54:09 +0000204 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000205 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000206
207 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
208 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000209 * builds/mac/ftmac.c (OS_INLINE): Ditto.
210
Werner Lemberg313d7772007-02-01 08:10:45 +00002112007-02-01 Werner Lemberg <wl@gnu.org>
212
213 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
214 Explain why applications shouldn't use it. Found by Alexei.
215
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002162007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000217
218 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
219 message.
220
221 * src/gxvalid/gxvmort1.c
222 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
223 message.
224
Werner Lemberg53935932007-01-31 08:53:02 +00002252007-01-31 Werner Lemberg <wl@gnu.org>
226
227
228 * Version 2.3.1 released.
229 =========================
230
231
232 Tag sources with `VER-2-3-1-FINAL'.
233
234 * builds/win32/visualc/freetype.dsp,
235 builds/win32/visualc/freetype.vcproj: s/230/231/.
236 * builds/win32/visualc/index.html: s/221/231/.
237
238 * vms_make.com: Add `ftgasp'.
239
David Turnera7ee6082007-01-30 10:33:53 +00002402007-01-30 David Turner <david@freetype.org>
241
Werner Lemberg53935932007-01-31 08:53:02 +0000242 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000243
Werner Lemberg53935932007-01-31 08:53:02 +0000244 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000245
Werner Lemberg25d592a2007-03-09 07:59:35 +0000246 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000247 s/2.3.0/2.3.1/.
248
249 * builds/unix/configure.raw (version_info): Set to 9:12:3.
250
251
252 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
253 (af_loader_load_g): Disable the warper (i.e., the light hinting
254 improvements) to make a 2.3.1 bugfix release before introducing a
255 new feature. This should give us more time to tune and improve the
256 warper for the next release.
257
258 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000259
David Turnerd91eebd2007-01-26 15:05:41 +00002602007-01-25 David Turner <david@freetype.org>
261
Werner Lembergbf241762007-01-26 16:08:49 +0000262 For light auto-hinting, improve glyph advance widths and resurrect
263 normal/full hinting to its normal quality.
264
265 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
266 and `xmax_delta'.
267 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
268 and `xmax_delta'.
269
270 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
271 preprocessor conditional with if-clause, handling both light and
272 normal mode.
273
274 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
275 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000276
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00002772007-01-25 Werner Lemberg <wl@gnu.org>
278
279 * docs/release: Updated -- Savannah uses a new uploading scheme.
280
David Turnera42567b2007-01-25 12:23:37 +00002812007-01-25 David Turner <david@freetype.org>
282
Werner Lembergd7855662007-01-25 13:53:56 +0000283 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000284
Werner Lembergd7855662007-01-25 13:53:56 +0000285 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
286 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
287 functions.
David Turnera42567b2007-01-25 12:23:37 +0000288
Werner Lembergd7855662007-01-25 13:53:56 +0000289 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000290
Werner Lembergb1be9e82007-01-25 11:50:00 +00002912007-01-25 Werner Lemberg <wl@gnu.org>
292
293 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000294 correctly in a sanity check. Since this function is only used to
295 load local and global functions, any charstring that called the last
296 local/global function would fail otherwise. This fixes Savannah bug
297 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000298
299 * docs/CHANGES: Document it.
300
David Turnerb6de8d12007-01-23 15:51:50 +00003012007-01-23 David Turner <david@freetype.org>
302
Werner Lembergb1be9e82007-01-25 11:50:00 +0000303 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
304 prevented compilation when disabling both the unpatented and the
305 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000306
Werner Lembergb1be9e82007-01-25 11:50:00 +0000307
308 Fix and enable the warper to improve `light' hinting mode. This is
309 not necessarily a final version, but it seems to work well.
310
311 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
312 Disable code.
313 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
314 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
315
316 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
317 (af_warper_compute_line_best): Fix array size of `scores'.
318 (af_warper_compute): Better handling of border cases.
319 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
320 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000321
Werner Lemberg011d1112007-01-21 09:36:00 +00003222007-01-21 Werner Lemberg <wl@gnu.org>
323
Werner Lemberg42b63b22007-01-21 21:01:33 +0000324 * ChangeLog: Split off older entries into...
325 * ChangeLog.22: This new file.
326
3272007-01-21 Werner Lemberg <wl@gnu.org>
328
Werner Lemberg555258f2007-01-21 09:46:37 +0000329 * docs/CHANGES: Document SHZ fix.
330
3312007-01-21 George Williams <gww@silcom.com>
332
333 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
334 points.
335
3362007-01-21 Werner Lemberg <wl@gnu.org>
337
Werner Lemberg011d1112007-01-21 09:36:00 +0000338 * src/sfnt/ttmtx.c (tt_face_get_metrics)
339 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
340
Werner Lemberg87a5a432007-01-17 12:44:39 +00003412007-01-17 Werner Lemberg <wl@gnu.org>
342
Werner Lembergb8003292007-01-17 12:56:25 +0000343
344 * Version 2.3.0 released.
345 =========================
346
347
348 Tag sources with `VER-2-3-0-FINAL'.
349
3502007-01-17 Werner Lemberg <wl@gnu.org>
351
Werner Lemberg87a5a432007-01-17 12:44:39 +0000352 * docs/release: Updated.
353
David Turner22122722007-01-16 20:06:44 +00003542007-01-16 David Turner <david@freetype.org>
355
Werner Lemberg87a5a432007-01-17 12:44:39 +0000356 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
357 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
358 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
359 warnings.
David Turner22122722007-01-16 20:06:44 +0000360
Werner Lemberg267e1d72007-01-15 07:48:09 +00003612007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
362
363 * builds/amiga/makefile, builds/amiga/makefile.os4,
364 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
365
366 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
367
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003682007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
369
370 Fix various compiler warnings.
371
372 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
373 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
374 s/index/strike_index/.
375 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
376
377 * src/gxvalid/gxvmorx5.c
378 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
379
380 * src/truetype/ttinterp.c (Compute_Point_Displacement),
381 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
382 uninitialized variables.
383
Werner Lemberg6164a9d2007-01-13 23:01:36 +00003842007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
385
386 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
387
Werner Lemberg281c1482007-01-13 22:50:51 +00003882007-01-13 Werner Lemberg <wl@gnu.org>
389
390 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
391 versions up to 0x3FF without complaining.
392
Werner Lembergac250b22007-01-13 14:01:36 +00003932007-01-13 Derek Clegg <dclegg@apple.com>
394
395 Add FT_Get_PS_Font_Info interface to CFF driver.
396
397 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
398 (CFF_FontRec): Add `font_info' field.
399
400 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
401 (cff_font_done): Free font->font_info if necessary.
402
403 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
404 (cff_service_ps_info): Register cff_ps_get_font_info.
405
Werner Lemberg23df31a2007-01-13 08:45:00 +00004062007-01-13 Werner Lemberg <wl@gnu.org>
407
408 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
409 with C++ compiler.
410
411 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
412 af_glyph_hints_dump_edges): Ditto.
413
414 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
415 `modules.cfg').
416
417 * src/sfnt/ttsbit0.h: Remove.
418
419 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
420
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004212007-01-12 David Turner <david@freetype.org>
422
423 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
424 bug in the bitmap emboldener if the pitch of the source bitmap is
425 much larger than its width.
426
427 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
428 compilation warning.
429
Werner Lemberg6d96d312007-01-12 10:30:19 +00004302007-01-12 Werner Lemberg <wl@gnu.org>
431
432 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
433 `automake' CVS module from sources.redhat.com.
434
Werner Lemberg17432b52007-01-12 09:28:44 +00004352007-01-11 Werner Lemberg <wl@gnu.org>
436
437 * src/type1/t1load.c (is_space): Removed.
438 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
439 (parse_charstrings): Use IS_PS_TOKEN.
440
441
442 * autogen.sh: Avoid bash specific syntax.
443
David Turner038ace22007-01-11 15:00:59 +00004442007-01-11 David Turner <david@freetype.org>
445
Werner Lemberg17432b52007-01-12 09:28:44 +0000446 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000447
Werner Lemberg17432b52007-01-12 09:28:44 +0000448 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000449
Werner Lemberg17432b52007-01-12 09:28:44 +0000450 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
451 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000452 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000453
Werner Lemberg17432b52007-01-12 09:28:44 +0000454 * autogen.sh: Small fix to get it working on Mac OS X properly:
455 The issue is that GNU libtool is called `glibtool' on this platform,
456 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000457
David Turner2628ea92007-01-10 13:15:56 +00004582007-01-10 David Turner <david@freetype.org>
459
Werner Lemberg17432b52007-01-12 09:28:44 +0000460 * all-sources: Tag all sources with VER-2-3-0-RC1 and
461 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000462
Werner Lemberg17432b52007-01-12 09:28:44 +0000463 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
464 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
465 version number to 2.3.0.
466
467 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
468 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000469
470 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000471 include/freetype/ftlcdfil.h: Update reference documentation with
472 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000473
Werner Lemberg17432b52007-01-12 09:28:44 +0000474 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
475 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000476
Werner Lembergbf02d392007-01-10 07:07:37 +00004772007-01-10 Derek Clegg <dclegg@apple.com>
478
479 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
480 values.
481
David Turnerf48b60e2007-01-08 15:15:32 +00004822007-01-08 David Turner <david@freetype.org>
483
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000484 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000485
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000486 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
487 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000488 corresponding to a given character pixel size.
489
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000490 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
491 `gasp' table, in order to avoid potential problems with later
492 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000493
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000494 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
495 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000496
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000497 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
498 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
499 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
500 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000501
Werner Lemberge6b6f372007-01-07 00:06:47 +00005022007-01-07 Werner Lemberg <wl@gnu.org>
503
Werner Lembergb8004d22007-01-07 09:13:38 +0000504 * src/cid/cidparse.c (cid_parser_new): Improve error message for
505 Type 11 fonts.
506 Scan for `/sfnts' token.
507
5082007-01-07 Werner Lemberg <wl@gnu.org>
509
510 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000511
Werner Lembergbe5f7972007-01-06 07:51:48 +00005122007-01-06 Werner Lemberg <wl@gnu.org>
513
514 * src/cff/cffload.c (cff_index_init): Remove unused variable.
515 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
516
David Turnera8cf42b2007-01-04 16:46:46 +00005172007-01-04 David Turner <david@freetype.org>
518
Werner Lembergf6294392007-01-06 07:47:45 +0000519 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
520 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000521
Werner Lembergf6294392007-01-06 07:47:45 +0000522
523 Do not allocate interpreter-specific tables in memory if we are not
524 going to load glyphs with the bytecode interpreter anyway.
525
526 * src/truetype/ttgload.c (tt_loader_init): Load execution context
527 only if glyph is hinted.
528 Updated.
529 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
530 and `cvs_ready'.
531 Add `tt_size_ready_bytecode' declaration.
532 * src/truetype/ttobjs.c (tt_size_done_bytecode,
533 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
534 (tt_size_init): Move most code into `tt_size_init_bytecode'.
535 (tt_size_done): Move most code into `tt_size_done_bytecode'.
536 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000537
David Turner91a34022007-01-05 14:47:08 +0000538
Werner Lembergf6294392007-01-06 07:47:45 +0000539 Don't extract the metrics table from the SFNT font file. Instead,
540 reparse it on each glyph load. The runtime difference is not
541 noticeable, and it can save a lot of heap memory when memory-mapped
542 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000543
Werner Lembergf6294392007-01-06 07:47:45 +0000544 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
545 `horz_metrics_offset' and `vert_metrics_ofset'.
546 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
547 Updated.
548
549
550 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
551
552
553 Do not load the CFF index offsets into memory, since this wastes a
554 *lot* of heap memory with large Asian CFF fonts. There is no
555 significant performance loss.
556
557 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
558 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
559 `data_size'.
560 (CFF_CharsetRec): Add field `num_glyphs'.
561
562 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
563 cff_charset_cid_to_gindex): New functions.
564 (cff_new_index): Renamed to...
565 (cff_index_init): This. Update all callers.
566 Updated -- some code has been moved to `cff_index_load_offsets'.
567 (cff_done_index): Renamed to...
568 (cff_index_done): This. Update all callers.
569 (cff_index_get_pointers, cff_index_access_element): Updated to use
570 stream offsets.
571 (cff_charset_compute_cids): Set `num_glyphs' field.
572 (cff_encoding_load): Updated.
573
574 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000575
5762007-01-04 David Turner <david@freetype.org>
577
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000578 * docs/INSTALL.UNIX: Simplify some parts, add reference to
579 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000580
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000581 * README.CVS: Add common problem description and solution
582 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000583
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000584 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000585
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000586 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000587
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000588 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000589
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000590 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
591 (TWorker): This.
592 Remove `count_table' and `memory'.
593 Make `grays' a pointer.
594 (TRaster): New structure.
595 (count_table): New static array.
596 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
597 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
598 ft_black_set_mode, ft_black_render): Updated.
599 (ft_black_init): Don't initialize `count_table'.
600 (ft_black_reset): Use the render pool. This saves about 6KB of
601 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000602
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000603 * src/smooth/ftgrays.c (TRaster): Replaced with...
604 (TWorker): This.
605 Remove `memory'.
606 (TRaster): New structure.
607
608 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
609 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
610 gray_render_span, gray_raster_render): Updated.
611 (gray_raster_reset): Use the render pool. This saves about 6KB of
612 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000613
David Turner8a6c44e2007-01-04 17:03:11 +0000614 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
615 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000616 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
617 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
618 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000619
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000620 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
621 Remove a typo that results in no hinting and a memory leak with some
622 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000623
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000624 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000625 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000626 CFF_Faces in it. We need to close all faces before destroying the
627 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000628
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006292007-01-02 Werner Lemberg <wl@gnu.org>
630
631 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
632 Remove compiler warning.
633
David Turner9207e002007-01-02 16:58:13 +00006342007-01-02 David Turner <david@freetype.org>
635
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000636 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000637
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006382006-12-31 Masatake YAMATO <jet@gyve.org>
639
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000640 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
641 function.
642 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000643 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000644 `gxv_kern_subtable_fmt0_pairs_validate'.
645
David Turner115b4422006-12-22 11:37:05 +00006462006-12-22 David Turner <david@freetype.org>
647
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000648 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
649 warnings.
David Turner115b4422006-12-22 11:37:05 +0000650
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000651 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
652 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000653
Werner Lemberg4755bf72006-12-16 08:58:44 +00006542006-12-16 Anders Kaseorg <anders@kaseorg.com>
655
656 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
657 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
658
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006592006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
660
Werner Lemberg9b774e22007-01-16 06:11:27 +0000661 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000662 sync with the modification by Jens Claudius on 2006-08-22; cf.
663 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 +0000664
6652006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
666
667 * src/base/ftmac.c: Specialized for Mac OS X only.
668 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
669 * builds/unix/configure.raw: Ditto. When explicit switches for
670 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
671 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
672
6732006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
674
675 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
676 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
677 instead of src/base/ftmac.c
678 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
679 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
680 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
681 that cannot be built at present.
682
6832006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
684
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000685 * src/base/ftobjs.c: Improvement of resource fork handler for
686 POSIX, cf.
687 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000688 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
689 format or .dfont, to simulate the face index number counted by ftmac.c.
690 (IsMacResource): Return the number of scalable faces correctly.
691
Werner Lembergec5b4502006-12-10 07:51:38 +00006922006-12-10 Werner Lemberg <wl@gnu.org>
693
694 * builds/toplevel.mk (version): Protect against `distclean' target.
695
Werner Lembergb26b3142006-12-09 20:01:43 +00006962006-12-09 Werner Lemberg <wl@gnu.org>
697
698 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
699 or `type'.
700
701 * builds/freetype.mk (version): Extracted from freetype.h, using
702 GNU make's built-in string functions.
703 (refdoc): Use $(version) instead of static version number.
704
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007052006-12-08 Werner Lemberg <wl@gnu.org>
706
707 * builds/toplevel.mk (dist): Extract version number from freetype.h.
708
Werner Lemberg15c29502006-12-09 07:29:54 +00007092006-12-08 Vladimir Volovich <vvv@vsu.ru>
710
711 * src/tools/apinames (State): Remove final comma in structure -- xlc
712 v5 under AIX 4.3 doesn't like this.
713
David Turnerdbf3b432006-12-07 21:18:09 +00007142006-12-07 David Turner <david@freetype.org>
715
Werner Lemberg256a3512006-12-08 06:49:33 +0000716 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
717 to the spacing of auto-fitted glyphs. This only impacts rare
718 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000719
Werner Lemberg11171312006-12-03 09:43:40 +00007202006-12-03 Werner Lemberg <wl@gnu.org>
721
722 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
723
Werner Lemberg960ba592006-12-01 08:20:47 +00007242006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000725
Werner Lemberg960ba592006-12-01 08:20:47 +0000726 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
727 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
728 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000729
David Turner80658e52006-11-28 08:09:20 +0000730
Werner Lemberg960ba592006-12-01 08:20:47 +0000731 * include/freetype/ftxf86.h: Fix and extend comment so that it
732 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000733
Werner Lemberg960ba592006-12-01 08:20:47 +0000734 * include/freetype/ftchapters.h: Add `font_format' section.
735
736
737 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
738 to TOC in index page.
739
7402006-11-28 David Turner <david@freetype.org>
741
742 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
743 trying to render into a zero-width/height bitmap, not an error code.
744
745 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
746
747 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
748 ones instead.
749
750 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
751 variable.
David Turner80658e52006-11-28 08:09:20 +0000752
Werner Lemberg8636c292006-11-26 22:28:13 +00007532006-11-26 Pierre Hanser <hanser@club-internet.fr>
754
755 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
756
Werner Lemberg960ba592006-12-01 08:20:47 +00007572006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000758
Werner Lemberg960ba592006-12-01 08:20:47 +0000759 * src/autofit/afhints.c (af_glyph_hints_dump_points,
760 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
761 Add stubs to link the `ftgrid' test program when debugging is
762 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000763
Werner Lemberg960ba592006-12-01 08:20:47 +00007642006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000765
766 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000767 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
768
769 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
770 Emit more sensible information.
771
772 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
773
774 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
775 rounding of blue values.
776 (af_latin_hints_compute_segments): Hint segment heights.
777 (af_latin_hints_link_segments): Reduce `len_score' value.
778 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
779 value and use `height' member for comparisons.
780 (af_latin_hint_edges): Extend logging message.
781 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000782
Werner Lemberg91959bf2006-11-22 10:36:55 +00007832006-11-22 Werner Lemberg <wl@gnu.org>
784
785 Fix Savannah bug #15553.
786
787 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
788 program after a change from mono to grayscaling (and vice versa).
789 Use correct constant for comparison to get `exec->grayscale'.
790
Werner Lemberg913a3652006-11-19 09:19:17 +00007912006-11-18 Werner Lemberg <wl@gnu.org>
792
793 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000794 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000795 This patch fixes Savannah bug #18301.
796
797 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
798 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
799 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
800 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
801 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
802 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
803 (FNT_Load_Glyph): Check validity of `glyph_index'.
804
David Turner7bab6ae2006-11-13 11:25:06 +00008052006-11-13 David Turner <david@freetype.org>
806
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000807 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
808 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000809
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000810 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
811 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
812 when building the library to change the default LCD filter to be
813 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000814
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000815 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000816
David Turner8765c712006-11-10 16:49:42 +00008172006-11-10 David Turner <david@freetype.org>
818
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000819 * src/smooth/ftsmooth.c: API change for the LCD
820 filter. The FT_LcdFilter value is an enumeration describing which
821 filter to apply, with new values FT_LCD_FILTER_LIGHT and
822 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
823 algorithm which produces strong color fringes for everything
824 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000825
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000826 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
827 second parameter to an enum type.
828
829 * src/base/ftlcdfil.c (USE_LEGACY): Define.
830 (_ft_lcd_filter): Rename to...
831 (_ft_lcd_filter_fir): This.
832 Update parameters.
833 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
834 (FT_Library_Set_LcdFilter): Update parameters.
835 Handle new filter modes.
836
837 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
838 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
839 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
840 callback and update other fields.
841
842 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
843 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
844 Other minor improvements.
845
846 * src/autofit/aflatin.c: Various tiny improvements that drastically
847 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
848 (af_latin_hints_compute_edges): Fix typo.
849 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000850
David Turner4e9cc3c2006-11-09 16:31:52 +00008512006-11-09 David Turner <david@freetype.org>
852
Werner Lemberg49c77a82006-11-09 21:51:57 +0000853 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
854 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000855
Werner Lemberg5e430892006-11-07 09:35:03 +00008562006-11-07 Zhe Su <james.su@gmail.com>
857
858 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
859 also.
860
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008612006-11-03 Werner Lemberg <wl@gnu.org>
862
863 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
864
David Turner40604742006-11-02 16:37:35 +00008652006-11-02 David Turner <david@freetype.org>
866
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000867 Add a few tweaks to better handle serif fonts.
868 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000869
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000870 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
871 segments that are less than 1.5 pixels high. This gets rid of
872 *many* corner cases with serifs.
873 (af_latin_align_linked_edge): Add logging message.
874 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
875 Add logging messages.
876 Handle AF_EDGE_FLAG flag specially.
877
878 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
879 _af_debug_disable_blue_hints, and _af_debug_hints variables.
880
881 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
882 Update external declarations.
883 (af_corner_orientation, af_corner_is_flat): Replaced by...
884
885 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
886 ft_corner_is_flat): These declarations.
887
888 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
889 Comment out. Replaced by...
890
891 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
892 These functions. Update all callers.
893 (FT_Add64) [!FT_LONG64]: Simplify.
894
895 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
896 (af_direction_compute): Add a missing FT_ABS call. This bug caused
897 production of garbage by missing lots of segments.
898
899 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
900
901 * src/autofit/afloader.c (af_loader_init, af_loader_done)
902 [AF_DEBUG]: Set _af_debug_hints.
903
904
905 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
906 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
907 and ft_corner_orientation.
908
909
910 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000911
Werner Lemberge88c5262006-10-24 05:46:26 +00009122006-10-24 Werner Lemberg <wl@gnu.org>
913
914 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
915
916 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
917 as argument.
918
David Turnera1861392006-10-23 16:00:59 +00009192006-10-23 Zhe Su <zsu@novell.com>
920
Werner Lemberg715e96e2006-10-24 05:28:45 +0000921 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
922 better deal with broken Asian fonts with strange glyphs, having
923 self-intersections and other peculiarities. The used algorithm is
924 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000925
David Turnere140f142006-10-23 08:56:57 +00009262006-10-23 David Turner <david@freetype.org>
927
Werner Lemberg715e96e2006-10-24 05:28:45 +0000928 Speed up the CFF font loader. With some large CFF fonts,
929 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000930
Werner Lemberg715e96e2006-10-24 05:28:45 +0000931 * src/cff/cffload.c (cff_get_offset): Removed.
932 (cff_new_index): Inline functionality of `cff_get_offset'.
933 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
934 (cff_charset_done): Call `cff_charset_free_cids'.
935 (cff_charset_load): Call `cff_charset_compute_cids'.
936 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
937
938 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
939 with FT_NEXT_XXX.
940
941
942 Speed up the Postscript hinter, with more than 100% speed increase
943 on my machine.
944
945 * src/pshinter/pshalgo.c (psh_corner_is_flat,
946 psh_corner_orientation): New functions.
947 (psh_glyph_compute_inflections): Merge loops for efficiency.
948 Use `psh_corner_orientation'.
949 (psh_glyph_init): Use `psh_corner_is_flat'.
950 (psh_hint_table_find_strong_point): Renamed to...
951 (psh_hint_table_find_strong_points): This.
952 Rewrite, adding argument to handle all points at once.
953 Update all callers.
954 (PSH_MAX_STRONG_INTERNAL): New macro.
955 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000956
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009572006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
958
959 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000960 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000961
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009622006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
963
964 * docs/INSTALL.CROSS: New document file for cross-building.
965
966 * builds/unix/configure.raw: Preliminary cross-building support.
967 Find native C compiler and pass it by CC_BUILD, and
968 find suffix for native executable and pass it by EXEEXT_BUILD.
969 Also suffix for target executable is passed by EXEEXT.
970
Werner Lembergb9e6d692006-10-15 08:58:40 +0000971 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
972 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000973 CC_BUILD and EXEEXT_BUILD.
974
Werner Lembergb9e6d692006-10-15 08:58:40 +0000975 * builds/exports.mk (APINAMES_EXE): Change the extension for
976 apinames from the suffix for target (E) to that for building host
977 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000978
Werner Lemberg82a07e92006-10-12 06:20:44 +00009792006-10-12 Werner Lemberg <wl@gnu.org>
980
981 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
982 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
983 which reference those files.
984
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00009852006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
986
Werner Lembergb9e6d692006-10-15 08:58:40 +0000987 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
988 embedded in freetype2.pc and freetype-config. Use it to record
989 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +0000990
991 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
992
993 * builds/unix/freetype-config.in: Ditto.
994
Werner Lemberg28e17d92006-10-11 17:27:47 +00009952006-10-11 Werner Lemberg <wl@gnu.org>
996
997 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
998 development.
999
Jens Claudius336d2292006-10-03 08:53:37 +000010002006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1001
1002 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1003 argument to ft_setjmp.
1004
1005 * include/freetype/internal/ftvalid.h: Add comment that
1006 ft_validator_run must not be used.
1007
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010082006-10-01 Werner Lemberg <wl@gnu.org>
1009
1010 * src/base/ftbase.c: Undo change from 2006-09-30.
1011
1012 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1013
10142006-09-30 David Turner <david@freetype.org>
1015
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001016 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1017 s/unpatented_hinting/ignore_unpatented_hinter/.
1018 Update all callers.
1019
1020 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1021 auto-hinting shall be used or not.
1022
1023 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001024
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010252006-09-30 Werner Lemberg <wl@gnu.org>
1026
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001027 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1028 in use).
1029
1030 * src/base/ftbase.c: Include `ftlcdfil.c'.
1031
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010322006-09-29 Werner Lemberg <wl@gnu.org>
1033
1034 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1035 overlapping segments. Bug reported by Stefan Koch.
1036
David Turnerad830712006-09-27 16:20:59 +000010372006-09-28 David Turner <david@freetype.org>
1038
Werner Lemberg2c002e12006-09-29 21:31:53 +00001039 Fix a bug in the automatic unpatented hinting support which prevents
1040 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001041
Werner Lemberg2c002e12006-09-29 21:31:53 +00001042 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1043 s/force_autohint/unpatented_hinting/. Update all callers.
1044
1045 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1046
1047 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001048
David Turner8a317cf2006-09-27 07:52:48 +000010492006-09-27 David Turner <david@freetype.org>
1050
Werner Lemberg2c002e12006-09-29 21:31:53 +00001051 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001052
David Turner8a317cf2006-09-27 07:52:48 +00001053
David Turnere140f142006-10-23 08:56:57 +00001054 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001055 In a default build, the function `FT_Library_SetLcdFilter' returns
1056 `FT_Err_Unimplemented_Feature'; you need to #define
1057 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1058 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001059
Werner Lemberg2c002e12006-09-29 21:31:53 +00001060 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001061
Werner Lemberg2c002e12006-09-29 21:31:53 +00001062 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1063 typedef.
1064 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1065 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001066
Werner Lemberg2c002e12006-09-29 21:31:53 +00001067 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1068 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001069
Werner Lemberg2c002e12006-09-29 21:31:53 +00001070 Handle subpixel rendering.
1071 Simplify function.
1072 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1073 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1074
1075 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1076 pointing to <freetype/ftlcdfil.h>.
1077
1078 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1079 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1080
1081 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001082
Werner Lemberge20df4a2006-09-27 06:29:21 +000010832006-09-26 David Bustin
1084
1085 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1086 correctly. Reported as Savannah bug #17843.
1087
David Turner6f8c6222006-09-26 15:42:44 +000010882006-09-26 David Turner <david@freetype.org>
1089
Werner Lemberg110246c2006-09-26 21:55:44 +00001090 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1091 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1092 horizontal and vertical hinting for the purpose of debugging the
1093 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001094
Werner Lemberg110246c2006-09-26 21:55:44 +00001095 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1096 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001097
Werner Lemberg110246c2006-09-26 21:55:44 +00001098 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1099
1100 * include/freetype/config/ftoption.h, devel/ftoption.h
1101 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1102 we want to compile LCD-optimized rendering code la ClearType) or
1103 not. The macro *must* be disabled in default builds of the library
1104 for patent reasons.
1105
1106 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1107 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1108 isn't defined at compile time. This only changes the content of the
1109 rendered glyph to match the one of normal gray-level rendering,
1110 hence clients should not need to be modified.
1111
1112 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001113
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011142006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1115
1116 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1117 LWFN fails and both are available.
1118
David Turnerf3050052006-09-11 12:00:32 +000011192006-09-11 David Turner <david@freetype.org>
1120
Werner Lembergf9644552006-09-12 13:48:10 +00001121 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1122 report their English names through an Apple Roman
1123 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001124
Werner Lembergf9644552006-09-12 13:48:10 +00001125 If the font uses another name entry with language_id == English, it
1126 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001127
Werner Lembergf9644552006-09-12 13:48:10 +00001128 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1129 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001130
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011312006-09-05 Werner Lemberg <wl@gnu.org>
1132
1133 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001134 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001135 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1136 `HAN NOM B.ttf').
1137
1138 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1139
David Turner772e55d2006-09-05 09:45:15 +000011402006-09-05 David Turner <david@freetype.org>
1141
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001142 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001143
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001144 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1145 (TRaster): Remove `count_ex' and `count_ey'.
1146 (gray_find_cell): Remove 2nd and 3rd argument.
1147 (gray_alloc_cell): Merged with `gray_find_cell'.
1148 (gray_record_cell): Simplify.
1149 (gray_set_cell): Rewrite.
1150 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1151 (gray_render_span): Don't use FT_MEM_SET for small values.
1152 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1153 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1154 bitmap scanline.
1155 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001156
David Turneraa557a92006-09-04 16:42:44 +000011572006-09-04 David Turner <david@freetype.org>
1158
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001159 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1160 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001161
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011622006-09-03 Werner Lemberg <wl@gnu.org>
1163
1164 * devel/ftoption.h: Synchronize with
1165 include/freetype/config/ftoption.h.
1166
1167 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1168 variable declaration.
1169 (gray_convert_glyph): Fix compiler warnings.
1170
David Turner6d79f212006-09-01 14:09:35 +000011712006-09-01 David Turner <david@freetype.org>
1172
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001173 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1174 to recognize a few fonts that require the automatic unpatented
1175 loader.
David Turnerbd502952006-09-01 19:05:24 +00001176
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001177 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1178 rasterizer. The speed improvement is between 15% and 25%, depending
1179 on the font data.
1180
1181 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1182 (TCell): Redefine.
1183 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1184 (gray_init_cells): Updated.
1185 (gray_find_cell, gray_alloc_cell): New functions.
1186 (gray_record_cell): Rewritten to use `gray_find_cell' and
1187 `gray_alloc_cell'.
1188 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1189 QSORT_THRESHOLD):
1190 Removed.
1191 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1192 gray_dump_cells): Removed.
1193 (gray_sweep): Rewritten.
1194 (gray_convert_glyph): Rewrite code which used one of the sorting
1195 functions.
1196 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001197
Werner Lembergd898aed2006-08-29 09:50:34 +000011982006-08-29 Dr. Werner Fink <werner@suse.de>
1199
1200 * configure: Make it possible to handle configure options which
1201 have strings containing spaces.
1202
12032006-08-27 David Turner <david@freetype.org>
1204
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001205 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1206 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1207 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1208
1209 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1210 src/truetype/truetype.c, src/truetype/ttdriver.c,
1211 src/truetype/ttgload.c, src/truetype/ttgload.h,
1212 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1213 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1214 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1215
1216 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1217 member `force_autohint'.
1218
1219 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1220
1221 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1222 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001223
Jens Claudiusa787f452006-08-27 11:26:18 +000012242006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1225
1226 Fix miscellaneous compiler warnings.
1227
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001228 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1229 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001230
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001231 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1232 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1233 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001234
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001235 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1236 volatileness of argument to ft_longjmp. Spotted by Werner
1237 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001238
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001239 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1240 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001241
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001242 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1243 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001244
Werner Lembergc4c35b72006-08-27 08:03:46 +000012452006-08-27 Werner Lemberg <wl@gnu.org>
1246
1247 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1248 Reported by Jens.
1249
Jens Claudius088e44e2006-08-22 14:24:30 +000012502006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001251
Jens Claudius088e44e2006-08-22 14:24:30 +00001252 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001253 about addresses of volatile objects passed as function arguments as
1254 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001255
Werner Lembergc4c35b72006-08-27 08:03:46 +00001256 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1257 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001258
1259 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1260 argument `table' a pointer to a volatile object.
1261
1262 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1263 argument `table' a pointer to a volatile object.
1264
Jens Claudius2652bd52006-08-18 17:20:37 +000012652006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1266
1267 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1268 variable `_sfnt' as volatile since it must keep its value across
1269 a call to ft_setjmp.
1270 (gxv_validate): Same for local variables `memory' and `valid'.
1271 (classic_kern_validate): Same for local variables `memory',
1272 `ckern', and `valid'.
1273
1274 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1275 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1276 `jstf', and 'valid'.
1277
1278 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1279 local variable `cmap'.
1280
David Turner9fbfc6a2006-08-16 09:11:31 +000012812006-08-16 David Turner <david@freetype.org>
1282
Werner Lemberg12342992006-08-19 11:18:09 +00001283 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1284 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001285
Werner Lemberg12342992006-08-19 11:18:09 +00001286 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1287 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001288
David Turner33f5f242006-08-16 16:50:55 +00001289
Werner Lemberg12342992006-08-19 11:18:09 +00001290 Improvements to native TrueType hinting. This is a first try,
1291 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1292
1293 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1294 `extra_points2'.
1295
1296 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1297 `orus'.
1298
1299 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1300 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1301 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1302 handle `extra_points2'.
1303
1304 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1305 Remove compiler warning.
1306 (cur_to_arg): Remove macro.
1307 (TT_Hint_Glyph): Updated.
1308 (TT_Process_Simple_Glyph): Handle `orus'.
1309
1310 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1311 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1312 (LOC_Ins_IUP): Renamed to...
1313 (IUP_WorkerRec): This.
1314 Add `orus' member.
1315 (Shift): Renamed to...
1316 (_iup_worker_shift): This.
1317 Updated.
1318 (Interp): Renamed to...
1319 (_iup_worker_interpolate): This.
1320 Updated to handle `orus'.
1321 (Ins_IUP): Updated.
1322
1323 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1324 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001325
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013262006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1327
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001328 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001329 build ftvalid in ft2demos. This has been inadvertedly changed
1330 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001331
13322006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1333
Werner Lemberg12342992006-08-19 11:18:09 +00001334 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1335 Jens:
1336 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001337
Werner Lemberg12342992006-08-19 11:18:09 +00001338 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1339 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001340
1341 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1342
Jens Claudius9950adc2006-08-13 12:14:36 +000013432006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1344
Werner Lemberg12342992006-08-19 11:18:09 +00001345 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1346 T1_TOKEN_TYPE_KEY.
1347 (T1_FieldRec): Add `dict'.
1348 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1349 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1350 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001351
Werner Lemberg12342992006-08-19 11:18:09 +00001352 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1353 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001354
1355 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1356
1357 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001358 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1359 not T1_TOKEN_TYPE_ANY.
1360 (ps_parser_load_field): Make sure a token that should be a string or
1361 name is really a string or name.
1362 Avoid memory leak if a keyword has been already encountered and its
1363 value is overwritten.
1364 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1365 T1_FIELD_XXX.
1366 (parse_dict): Ignore keywords that occur in the wrong dictionary
1367 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001368
Werner Lemberg12342992006-08-19 11:18:09 +00001369 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1370 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001371
Werner Lemberg12342992006-08-19 11:18:09 +00001372 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1373 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001374
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013752006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1376
1377 Move creation of field `buildchar' of T1_DecoderRec out of
1378 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1379 of it.
1380
1381 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1382 and `T1_Compute_Max_Advance'.
1383
1384 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1385 Remove field `face', add `len_buildchar'.
1386
1387 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1388 field `buildchar'.
1389
1390 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1391 finisher for T1_Decoder.
1392 (cid_slot_load_glyph): Do not ignore failure when initializing the
1393 T1_Decoder.
1394
1395 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1396 Updated.
1397 (t1_decoder_init): Remove initialization of fields `buildchar' and
1398 `len_buildchar'.
1399 (t1_decoder_done): Remove deallocation of field `buildchar'.
1400
1401 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1402 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1403 T1_Decoder.
1404 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1405 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1406 case of error.
1407
1408 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1409 `buildchar' of T1_FaceRec.
1410
1411 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1412 `buildchar' of T1_FaceRec.
1413
Werner Lemberg1a380e02006-07-14 18:28:08 +000014142006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1415
1416 * freetype2/include/freetype/internal/psaux.h: New macros
1417 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1418 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1419 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1420 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1421 (T1_DecoderRec): New fields `buildchar' and `face'.
1422 (IS_PS_TOKEN): New macro.
1423
1424 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1425 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1426
1427 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1428 `default_design_vector' and `num_default_design_vector'.
1429
1430 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1431 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1432 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1433
1434 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1435 `token' argument to be NULL if we want only to count the number of
1436 tokens.
1437 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1438 want to skip the array.
1439 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1440 want to skip the array.
1441
1442 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1443 support for (partially commented out) othersubrs 19-25, 27, and 28.
1444 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1445 (t1_decoder_done): Release new field `buildchar'.
1446
1447 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1448 functions.
1449 (t1_keywords): Register them.
1450 (t1_allocate_blend): Updated.
1451 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1452 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1453 (parse_dict): Remove `keyword_flags' argument.
1454 Use new macro IS_PS_TOKEN.
1455 Changed function so that later PostScript definitions override
1456 earlier ones.
1457 (t1_init_loader): Initialize new field `keywords_encountered'.
1458 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1459 `len_buildchar'.
1460 Remove `keywords_flags'.
1461
1462 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1463 `keywords_encountered'.
1464 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1465
1466 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1467 New entries for parsing /NDV, /CDV, and /DesignVector.
1468
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014692006-07-07 Werner Lemberg <wl@gnu.org>
1470
1471 Add many checks to protect against malformed PCF files.
1472
1473 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1474 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1475
1476 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1477 data and check that tables don't overlap (using a simple
1478 bubblesort).
1479 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1480 New macros which give the size of data structures in the data
1481 stream.
1482 (pcf_get_properties): Use rough estimates to get array size limits.
1483 Assign `face->nprops' and `face->properties' earlier so that a call
1484 to PCF_Face_Done can do the clean-up in case of error.
1485 Protect against invalid string offsets.
1486 (pcf_get_metrics): Clean up code.
1487 Adjust tracing message levels.
1488 Use rough estimate to get array size limit.
1489 (pcf_get_bitmaps): Clean up code.
1490 Adjust tracing message levels.
1491 Use rough estimates to get offset limits.
1492 (pcf_get_encodings): Adjust tracing message level.
1493 (pcf_get_accel): Clean up code.
1494
Werner Lemberg8eb05252006-06-27 06:20:01 +000014952006-06-26 Werner Lemberg <wl@gnu.org>
1496
1497 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1498 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1499
Werner Lemberg24703f82006-06-26 19:12:51 +000015002006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1501
1502 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1503 (t1_decoder_parse_charstrings): Operator with
1504 opcode 15 pops its two arguments.
1505 Handle the case where the pops of an othersubr may be part of a
1506 subroutine.
1507 Handle unknown othersubrs gracefully: count their operands and let
1508 the following pop operators push the operands as the results onto
1509 the Type1 stack.
1510 Improve handling of setcurrentpoint opcode.
1511
Werner Lembergc011f4c2006-06-26 09:40:00 +000015122006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1513
1514 The Type 1 parser now skips over top-level procedures as required
1515 for a `Simplified Parser'. This makes the parser more robust as it
1516 doesn't poke around in PostScript code. Additionally, it makes the
1517 FontDirectory hackery in src/type1/t1load.c unnecessary.
1518
1519 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1520 (skip_literal_string): Add FT_Error as return value.
1521 Handle escapes better.
1522 (skip_string): Add FT_Error as return value.
1523 Don't set `parser->error' but return error code directly.
1524 (skip_procedure): New function.
1525 (ps_parser_skip_PS_token): Handle procedures.
1526 Update code.
1527 (ps_parser_to_token): Update code.
1528 (ps_parser_load_field_table): Handle bbox entries also.
1529
1530 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1531 Add commented-out code for synthetic fonts.
1532
Werner Lemberga2da05c2006-06-25 06:27:27 +000015332006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1534
1535 Fix two hinting bugs as reported in
1536 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1537
1538 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1539 `first_point' member.
1540
1541 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1542 `first_point'.
1543 (TT_Process_Composite_Glyph): Always untouch points.
1544
1545 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1546 `first_point' and `last_point' in case of composite glyphs.
1547 (Ins_IUP): Fix computation of `end_point'.
1548
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015492006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1550
Werner Lembergef3d2c22006-06-25 06:07:14 +00001551 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1552 Mac. The original patch was written by David Sachitano and Lawrence
1553 Coopet, and modified by Sean McBride for MPW compatibility. Only
1554 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001555
Werner Lembergef3d2c22006-06-25 06:07:14 +00001556 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1557 Mac OS X platforms.
1558 (OS_INLINE): Undefine before definition.
1559 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1560 FontAssociation table in FOND resource.
1561 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1562 and fontSize at each entry of FontAssociation table in FOND
1563 resource.
1564 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1565 ffStylOff of FamilyRecord header of FOND resource, the header,
1566 fontSize, fontID at each entry of FontAssociation table, and
1567 StyleMapping table.
1568 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001569
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015702006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1571
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001572 Public API of TrueTypeGX, OpenType, and classic kern table validator
1573 should return `FT_Err_Unimplemented_Feature' if validation service
1574 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001575 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001576 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1577
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001578 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1579 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1580 unavailable.
1581 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1582 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001583
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001584 * src/base/ftotval.c (FT_OpenType_Validate): Return
1585 FT_Err_Unimplemented_Feature if OpenType validation service is
1586 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001587
Werner Lembergb10e45a2006-06-08 07:32:56 +000015882006-06-08 Werner Lemberg <wl@gnu.org>
1589
1590 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1591 errors.
1592
David Turner5f1f7502006-06-07 05:11:50 +000015932006-06-07 David Turner <david@freetype.org>
1594
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001595 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1596 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1597 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001598
David Turner457b4a82006-06-06 08:14:14 +000015992006-06-06 David Turner <david@freetype.org>
1600
Werner Lemberg4836f952006-06-06 12:54:08 +00001601 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001602
Werner Lemberg4836f952006-06-06 12:54:08 +00001603 We change `ps_unicodes_init' so that it also takes a
1604 `free_glyph_name' callback to release the glyph names returned by
1605 `get_glyph_name'
1606
1607 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1608 Renamed to ...
1609 (PS_GetGlyphNameFunc): This.
1610 (PS_FreeGlyphNameFunc): New typedef.
1611 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1612
1613 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1614 argument.
1615 (cff_sid_free_glyph_name): New function.
1616 (cff_cmap_unicode_init): Updated.
1617
1618 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1619
1620 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1621 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001622
1623
David Turner09717352006-06-04 14:33:08 +000016242006-06-04 David Turner <david@freetype.org>
1625
Werner Lembergd724f202006-06-04 15:17:41 +00001626 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1627 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001628 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001629
Werner Lembergd724f202006-06-04 15:17:41 +00001630 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1631 of `face->num_glyphs' which missed the last glyph, due to
1632 the offset-by-1 computation, since the PFR format doesn't
1633 guarantee that glyph index 0 corresponds to the `missing
1634 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001635
Werner Lemberg33779662006-05-26 06:30:05 +000016362006-05-25 Werner Lemberg <wl@gnu.org>
1637
1638 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1639 `-no-undefined'. Reported by Christian Biesinger.
1640
Werner Lemberg24773d62006-05-20 08:53:13 +000016412006-05-19 Brian Weed <bw@imaginengine.com>
1642
1643 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1644 have debug information, and debug libraries use `C7 compatible'
1645 debug info.
1646
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016472006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1648
Werner Lemberga6523a62006-05-20 08:47:01 +00001649 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001650 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001651
Werner Lemberga6523a62006-05-20 08:47:01 +00001652 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1653 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001654
1655 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001656 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001657
16582006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1659
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001660 * build/unix/configure.raw: Add a fallback to disable Carbon
1661 dependency, if configured with no options on Mac OS X.
1662
16632006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1664
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001665 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001666 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001667 the second part of Savannah bug #16590.
1668
Werner Lemberg545c4e52006-05-17 22:55:04 +000016692006-05-18 Werner Lemberg <wl@gnu.org>
1670
1671 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1672 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1673
David Turnerdc3ff312006-05-17 12:59:35 +000016742006-05-17 David Turner <david@freetype.org>
1675
Werner Lemberg545c4e52006-05-17 22:55:04 +00001676 This is a major patch used to drastically improve the performance of
1677 loading glyphs. This both speeds up loading the glyph vectors
1678 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001679
Werner Lemberg545c4e52006-05-17 22:55:04 +00001680 We now use inline assembler code with GCC to implement `FT_MulFix',
1681 which is probably the most important function related to the
1682 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001683
Werner Lemberg545c4e52006-05-17 22:55:04 +00001684 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001685
1686
Werner Lemberg545c4e52006-05-17 22:55:04 +00001687 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1688 `cursor' and `limit'.
1689
1690 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1691 New functions.
1692 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1693 [TEST]: Remove.
1694
1695 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1696 code.
1697
1698 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1699 `FT_ZERO'
1700 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1701 (af_glyph_hints_reload: Rewrite recognition of weak points.
1702
1703 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1704 constant values out of the loops.
1705
1706 * src/autofit/aftypes.h: Updated.
1707
1708 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1709
1710 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1711 product to get orientation.
1712
1713 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1714 (FT_Stream_OpenGzip): Use it to handle small files directly in
1715 memory.
1716
1717 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1718 Improve performance.
1719
1720 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1721 `limit'.
1722
1723 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1724 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1725 exceedingly large values of number of contours. Speed up by
1726 reducing the number of loops.
1727
1728 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1729
1730
1731 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1732 used to detect rogue clients from 4 to 16. This is to prevent some
1733 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1734 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001735
Werner Lembergde2d90a2006-05-17 08:54:30 +000017362007-05-17 Werner Lemberg <wl@gnu.org>
1737
1738 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001739 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001740
17412006-05-16 Werner Lemberg <wl@gnu.org>
1742
1743 * docs/PROBLEMS: Updated icl issues.
1744
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001745----------------------------------------------------------------------------
1746
Werner Lemberg42b63b22007-01-21 21:01:33 +00001747Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001748David Turner, Robert Wilhelm, and Werner Lemberg.
1749
1750This file is part of the FreeType project, and may only be used, modified,
1751and distributed under the terms of the FreeType project license,
1752LICENSE.TXT. By continuing to use, modify, or distribute this file you
1753indicate that you have read the license and understand and accept it
1754fully.
1755
1756
1757Local Variables:
1758version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001759coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001760End: