blob: 91de82af1b0624ad830c6288ab666eef066e0051 [file] [log] [blame]
David Turner3b242d32007-03-26 12:03:04 +000012007-03-26 David Turner <david@freetype.org>
2
3 * src/truetype/ttinterp.c: last fix for the MD instruction bytecode and
4 remove the FIX_BYTECODE macros from the sources. Woot, this looks good.
5
David Turnerf58caa02007-03-26 12:39:25 +00006 * src/autofit/aflatin.c (af_latin_metrics_init_blues): fix blues computations
7 in order to ignore 1-point contours. These are never rasterized and in certain
8 fonts correspond to mark-attach points that are very far from the glyph's
9 real outline, ruining the computation.
10
Suzuki, Toshiya (鈴木俊哉)86a3ee72007-03-26 05:40:55 +0000112007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
12
13 * builds/unix/ftconfig.in: disable Carbon framework dependency on
14 64bit ABI on Mac OS X 10.4.x (ppc & i386), found by Sean McBride.
15 * builds/vms/ftconfig.h: Ditto.
16 * include/freetype/config/ftconfig.h: Ditto.
17
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +0000182007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
19
Werner Lemberg14ffe092007-03-22 06:12:43 +000020 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
21 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
Suzuki, Toshiya (鈴木俊哉)dabf0532007-03-22 05:23:53 +000022 proposed by Sean McBride:
23 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
24
252007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
26
Suzuki, Toshiya (鈴木俊哉)4bcf9572007-03-22 04:53:45 +000027 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
28 setjmp, proposed by Sean McBride:
29 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
30
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +0000312007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
32
Werner Lembergc9f6c662007-03-21 13:30:14 +000033 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
34 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
35 bug or undocumented behaviour of autoconf.
Suzuki, Toshiya (鈴木俊哉)6fb74f62007-03-19 06:30:26 +000036
David Turner74c34eb2007-03-18 07:19:31 +0000372007-03-18 David Turner <david@freetype.org>
38
Werner Lembergc9f6c662007-03-21 13:30:14 +000039 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
40 fix; testing still needed.
David Turner74c34eb2007-03-18 07:19:31 +000041
Werner Lembergc9f6c662007-03-21 13:30:14 +000042 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
David Turner64a9ef22007-03-18 07:35:08 +000043
David Turner89020d92007-03-17 17:48:57 +0000442007-03-17 David Turner <david@freetype.org>
45
Werner Lembergc9f6c662007-03-21 13:30:14 +000046 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
47 (undocumented) twilight zone special case.
David Turner89020d92007-03-17 17:48:57 +000048
Werner Lemberg25d592a2007-03-09 07:59:35 +0000492007-03-09 Werner Lemberg <wl@gnu.org>
50
51 * Version 2.3.2 released.
52 =========================
53
54
55 Tag sources with `VER-2-3-2'.
56
57 * builds/win32/visualc/index.html,
58 builds/win32/visualc/freetype.dsp,
59 builds/win32/visualc/freetype.vcproc, README: s/2.3.1/2.3.2/,
60 s/231/232/.
61
David Turner3a51afa2007-03-08 10:50:38 +0000622007-03-08 David Turner <david@freetype.org>
63
Werner Lemberg25d592a2007-03-09 07:59:35 +000064 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
David Turner121cad52007-03-08 16:43:50 +000065
Werner Lemberg25d592a2007-03-09 07:59:35 +000066 * builds/unix/configure.raw (version_info): Set to 9:13:3.
67
68 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
69
70 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
David Turner121cad52007-03-08 16:43:50 +000071
Werner Lemberg1e259de2007-03-08 15:39:21 +000072 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
73 function to work properly, over-writing user-provided buffers in
74 some cases. Reported by James Cloos <cloos@jhcloos.com>.
David Turner3a51afa2007-03-08 10:50:38 +000075
David Turner121cad52007-03-08 16:43:50 +000076
Werner Lemberg3d92f082007-03-06 11:59:24 +0000772007-03-05 Werner Lemberg <wl@gnu.org>
78
79 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
80 macro for `strstr'.
81
82 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
83 `trick_names', as suggested by Ivan Nincic.
84
David Turner085bc6e2007-03-05 17:40:03 +0000852007-03-05 David Turner <david@freetype.org>
86
Werner Lembergd112cf02007-03-06 12:06:56 +000087 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
88 case FT_Init_FreeType fails for some reason. Problem reported by
89 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
David Turnerdddd0682007-03-05 18:23:25 +000090
Werner Lembergd112cf02007-03-06 12:06:56 +000091 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
92 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
93 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
94 <daniel-gl@gmx.net>.
David Turner91aaf322007-03-05 18:18:52 +000095
Werner Lembergd112cf02007-03-06 12:06:56 +000096 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
97 signed values, not unsigned ones. Problem reported by Johannes
98 Walther <joh_walt@yahoo.de>.
David Turner085bc6e2007-03-05 17:40:03 +000099
David Turner601aefe2007-02-21 16:47:49 +00001002007-02-21 David Turner <david@freetype.org>
101
Werner Lembergde5e6862007-02-25 21:06:43 +0000102 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
103 of small and ghost stems in the Postscript interpreter.
David Turner601aefe2007-02-21 16:47:49 +0000104
Suzuki, Toshiya (鈴木俊哉)b68e0252007-02-20 02:37:36 +00001052007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
106
107 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
108 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
109 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
110
Werner Lemberga0915172007-02-16 08:12:50 +00001112007-02-16 Werner Lemberg <wl@gnu.org>
112
113 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
114 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
115
David Turner2c4500e2007-02-14 15:08:47 +00001162007-02-14 David Turner <david@freetype.org>
117
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000118 It seems that the following changes fix most of the known
119 interpreter problems with my fonts, but more testing is needed,
120 though.
121
122 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
123 (TT_MulFix14): Rewrite.
124 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
125 (Ins_MIRP): Ditto.
David Turner2c4500e2007-02-14 15:08:47 +0000126
Werner Lembergc6a14082007-02-12 22:08:15 +00001272007-02-12 Werner Lemberg <wl@gnu.org>
128
129 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
130 warnings.
131
132 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
133 (bdf_interpret_style): Ditto.
134
David Turnerc0f9c4a2007-02-12 14:55:03 +00001352007-02-12 David Turner <david@freetype.org>
136
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000137 Simplify projection and dual-projection code interface.
138
Werner Lemberg406d25f2007-02-12 22:01:18 +0000139 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
140 FT_Vector' as argument type.
141 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
142 Updated.
143 (CUR_fast_project, CUR_fast_dualproj): New macros.
144 (Project, Dual_Project, Project_x, Project_y): Updated.
145 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
146 macros.
147
148
149 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
150 adjustments for the non-light auto-hinted modes. Gets rid of
151 `inter-letter spacing is too wide' problems.
David Turner72a0dd22007-02-12 15:24:51 +0000152
Werner Lemberg3cd6cc22007-02-16 08:10:17 +0000153 * src/autofit/aflatin.c (af_latin_hints_link_segments,
154 af_latin_hints_compute_edges): Slight optimization of the segment
155 linker and better handling of serif segments to get rid of broken
156 `9' in Arial at 9pt (96dpi).
Werner Lembergeb3d1fd2007-02-13 08:19:49 +0000157
David Turnerc0f9c4a2007-02-12 14:55:03 +0000158
Werner Lemberg442bfb82007-02-12 21:44:10 +0000159 Introduce new string functions and the corresponding macros to get
160 rid of various uses of strcpy and other `evil' functions, as well as
161 to simplify a few things.
162
163 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
164 ft_mem_strcpyn): New declarations.
165 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
166 macros.
167 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
168 functions.
169
170 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
171 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
172 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
173 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
174 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
175 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
176 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
177 t42_get_name_index): Use new functions and simplify code.
David Turner2ef3e0f2007-02-12 21:28:21 +0000178
Werner Lemberg406d25f2007-02-12 22:01:18 +0000179 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
180
Werner Lemberg582067d2007-02-11 15:03:05 +00001812007-02-11 Werner Lemberg <wl@gnu.org>
182
183 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
184 non-spacing glyphs.
185
Werner Lemberg8f474532007-02-07 08:31:01 +00001862007-02-07 Tom Parker <palfrey@tevp.net>
187
188 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
189 pointer.
190
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00001912007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
192
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000193 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
194 Introduce __attribute((deprecated))__ to warn functions
Werner Lembergdcbb7082007-02-08 08:54:09 +0000195 which use non-ANSI data types in its interfaces.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000196 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
197 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
198 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
199 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000200
201 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
202 to avoid warning in building FreeType.
Suzuki, Toshiya (鈴木俊哉)f223df62007-02-05 04:07:46 +0000203 * builds/mac/ftmac.c: Ditto.
204
2052007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
206
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000207 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
Werner Lembergdcbb7082007-02-08 08:54:09 +0000208 `--with-fsspec' etc. Replace #include "ftmac.c" with
Suzuki, Toshiya (鈴木俊哉)beebb332007-02-05 03:44:27 +0000209 #include <ftmac.c>.
210
2112007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
212
Suzuki, Toshiya (鈴木俊哉)4827e9b2007-02-05 03:28:29 +0000213 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
214 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
215 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
216 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
217 FT_GetFilePath_From_Mac_ATS_Name.
218 * builds/mac/ftmac.c: Ditto.
219
2202007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
221
Werner Lembergdcbb7082007-02-08 08:54:09 +0000222 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
Suzuki, Toshiya (鈴木俊哉)da5ada52007-02-05 02:46:27 +0000223 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
224 for passing to FT_New_Face_From_FSSpec.
225
2262007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
227
Werner Lembergdcbb7082007-02-08 08:54:09 +0000228 * builds/unix/configure.raw: Check whether Mac OS X system headers
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000229 can be built under ANSI C mode.
Werner Lembergdcbb7082007-02-08 08:54:09 +0000230
231 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
232 compatible to ANSI C in case system headers are ANSI C incompatible.
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +0000233 * builds/mac/ftmac.c (OS_INLINE): Ditto.
234
Werner Lemberg313d7772007-02-01 08:10:45 +00002352007-02-01 Werner Lemberg <wl@gnu.org>
236
237 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
238 Explain why applications shouldn't use it. Found by Alexei.
239
Suzuki, Toshiya (鈴木俊哉)b8128d92007-02-05 02:31:34 +00002402007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
Werner Lemberg4b2e83d2007-02-01 07:58:02 +0000241
242 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
243 message.
244
245 * src/gxvalid/gxvmort1.c
246 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
247 message.
248
Werner Lemberg53935932007-01-31 08:53:02 +00002492007-01-31 Werner Lemberg <wl@gnu.org>
250
251
252 * Version 2.3.1 released.
253 =========================
254
255
256 Tag sources with `VER-2-3-1-FINAL'.
257
258 * builds/win32/visualc/freetype.dsp,
259 builds/win32/visualc/freetype.vcproj: s/230/231/.
260 * builds/win32/visualc/index.html: s/221/231/.
261
262 * vms_make.com: Add `ftgasp'.
263
David Turnera7ee6082007-01-30 10:33:53 +00002642007-01-30 David Turner <david@freetype.org>
265
Werner Lemberg53935932007-01-31 08:53:02 +0000266 Tag sources with VER-2-3-1 to prepare release.
David Turner3eaef6c2007-01-30 10:40:23 +0000267
Werner Lemberg53935932007-01-31 08:53:02 +0000268 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
David Turner3eaef6c2007-01-30 10:40:23 +0000269
Werner Lemberg25d592a2007-03-09 07:59:35 +0000270 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
Werner Lemberg53935932007-01-31 08:53:02 +0000271 s/2.3.0/2.3.1/.
272
273 * builds/unix/configure.raw (version_info): Set to 9:12:3.
274
275
276 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
277 (af_loader_load_g): Disable the warper (i.e., the light hinting
278 improvements) to make a 2.3.1 bugfix release before introducing a
279 new feature. This should give us more time to tune and improve the
280 warper for the next release.
281
282 * docs/CHANGES: Update accordingly.
David Turnera7ee6082007-01-30 10:33:53 +0000283
David Turnerd91eebd2007-01-26 15:05:41 +00002842007-01-25 David Turner <david@freetype.org>
285
Werner Lembergbf241762007-01-26 16:08:49 +0000286 For light auto-hinting, improve glyph advance widths and resurrect
287 normal/full hinting to its normal quality.
288
289 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
290 and `xmax_delta'.
291 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
292 and `xmax_delta'.
293
294 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
295 preprocessor conditional with if-clause, handling both light and
296 normal mode.
297
298 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
299 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
David Turnerd91eebd2007-01-26 15:05:41 +0000300
Werner Lemberg3b3f2ba2007-01-25 22:14:40 +00003012007-01-25 Werner Lemberg <wl@gnu.org>
302
303 * docs/release: Updated -- Savannah uses a new uploading scheme.
304
David Turnera42567b2007-01-25 12:23:37 +00003052007-01-25 David Turner <david@freetype.org>
306
Werner Lembergd7855662007-01-25 13:53:56 +0000307 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
David Turnera42567b2007-01-25 12:23:37 +0000308
Werner Lembergd7855662007-01-25 13:53:56 +0000309 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
310 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
311 functions.
David Turnera42567b2007-01-25 12:23:37 +0000312
Werner Lembergd7855662007-01-25 13:53:56 +0000313 * docs/CHANGES: Document light auto-hinting improvement.
David Turnera42567b2007-01-25 12:23:37 +0000314
Werner Lembergb1be9e82007-01-25 11:50:00 +00003152007-01-25 Werner Lemberg <wl@gnu.org>
316
317 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
Werner Lembergd7855662007-01-25 13:53:56 +0000318 correctly in a sanity check. Since this function is only used to
319 load local and global functions, any charstring that called the last
320 local/global function would fail otherwise. This fixes Savannah bug
321 #18867.
Werner Lembergb1be9e82007-01-25 11:50:00 +0000322
323 * docs/CHANGES: Document it.
324
David Turnerb6de8d12007-01-23 15:51:50 +00003252007-01-23 David Turner <david@freetype.org>
326
Werner Lembergb1be9e82007-01-25 11:50:00 +0000327 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
328 prevented compilation when disabling both the unpatented and the
329 bytecode interpreter in the TrueType font driver.
David Turner741a17e2007-01-23 16:14:38 +0000330
Werner Lembergb1be9e82007-01-25 11:50:00 +0000331
332 Fix and enable the warper to improve `light' hinting mode. This is
333 not necessarily a final version, but it seems to work well.
334
335 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
336 Disable code.
337 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
338 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
339
340 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
341 (af_warper_compute_line_best): Fix array size of `scores'.
342 (af_warper_compute): Better handling of border cases.
343 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
344 and `X2'.
David Turnerb6de8d12007-01-23 15:51:50 +0000345
Werner Lemberg011d1112007-01-21 09:36:00 +00003462007-01-21 Werner Lemberg <wl@gnu.org>
347
Werner Lemberg42b63b22007-01-21 21:01:33 +0000348 * ChangeLog: Split off older entries into...
349 * ChangeLog.22: This new file.
350
3512007-01-21 Werner Lemberg <wl@gnu.org>
352
Werner Lemberg555258f2007-01-21 09:46:37 +0000353 * docs/CHANGES: Document SHZ fix.
354
3552007-01-21 George Williams <gww@silcom.com>
356
357 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
358 points.
359
3602007-01-21 Werner Lemberg <wl@gnu.org>
361
Werner Lemberg011d1112007-01-21 09:36:00 +0000362 * src/sfnt/ttmtx.c (tt_face_get_metrics)
363 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
364
Werner Lemberg87a5a432007-01-17 12:44:39 +00003652007-01-17 Werner Lemberg <wl@gnu.org>
366
Werner Lembergb8003292007-01-17 12:56:25 +0000367
368 * Version 2.3.0 released.
369 =========================
370
371
372 Tag sources with `VER-2-3-0-FINAL'.
373
3742007-01-17 Werner Lemberg <wl@gnu.org>
375
Werner Lemberg87a5a432007-01-17 12:44:39 +0000376 * docs/release: Updated.
377
David Turner22122722007-01-16 20:06:44 +00003782007-01-16 David Turner <david@freetype.org>
379
Werner Lemberg87a5a432007-01-17 12:44:39 +0000380 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
381 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
382 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
383 warnings.
David Turner22122722007-01-16 20:06:44 +0000384
Werner Lemberg267e1d72007-01-15 07:48:09 +00003852007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
386
387 * builds/amiga/makefile, builds/amiga/makefile.os4,
388 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
389
390 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
391
Werner Lemberg8c4120d2007-01-15 06:42:40 +00003922007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
393
394 Fix various compiler warnings.
395
396 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
397 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
398 s/index/strike_index/.
399 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
400
401 * src/gxvalid/gxvmorx5.c
402 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
403
404 * src/truetype/ttinterp.c (Compute_Point_Displacement),
405 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
406 uninitialized variables.
407
Werner Lemberg6164a9d2007-01-13 23:01:36 +00004082007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
409
410 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
411
Werner Lemberg281c1482007-01-13 22:50:51 +00004122007-01-13 Werner Lemberg <wl@gnu.org>
413
414 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
415 versions up to 0x3FF without complaining.
416
Werner Lembergac250b22007-01-13 14:01:36 +00004172007-01-13 Derek Clegg <dclegg@apple.com>
418
419 Add FT_Get_PS_Font_Info interface to CFF driver.
420
421 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
422 (CFF_FontRec): Add `font_info' field.
423
424 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
425 (cff_font_done): Free font->font_info if necessary.
426
427 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
428 (cff_service_ps_info): Register cff_ps_get_font_info.
429
Werner Lemberg23df31a2007-01-13 08:45:00 +00004302007-01-13 Werner Lemberg <wl@gnu.org>
431
432 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
433 with C++ compiler.
434
435 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
436 af_glyph_hints_dump_edges): Ditto.
437
438 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
439 `modules.cfg').
440
441 * src/sfnt/ttsbit0.h: Remove.
442
443 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
444
Werner Lemberg27cf9de2007-01-13 07:34:23 +00004452007-01-12 David Turner <david@freetype.org>
446
447 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
448 bug in the bitmap emboldener if the pitch of the source bitmap is
449 much larger than its width.
450
451 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
452 compilation warning.
453
Werner Lemberg6d96d312007-01-12 10:30:19 +00004542007-01-12 Werner Lemberg <wl@gnu.org>
455
456 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
457 `automake' CVS module from sources.redhat.com.
458
Werner Lemberg17432b52007-01-12 09:28:44 +00004592007-01-11 Werner Lemberg <wl@gnu.org>
460
461 * src/type1/t1load.c (is_space): Removed.
462 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
463 (parse_charstrings): Use IS_PS_TOKEN.
464
465
466 * autogen.sh: Avoid bash specific syntax.
467
David Turner038ace22007-01-11 15:00:59 +00004682007-01-11 David Turner <david@freetype.org>
469
Werner Lemberg17432b52007-01-12 09:28:44 +0000470 * docs/CHANGES: Small update.
David Turner490503a2007-01-11 15:29:41 +0000471
Werner Lemberg17432b52007-01-12 09:28:44 +0000472 * builds/unix/configure.raw (version_info): Set to 9:11:3.
David Turner2c7a7fb2007-01-11 15:14:16 +0000473
Werner Lemberg17432b52007-01-12 09:28:44 +0000474 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
475 crash with some Mac OS X .dfont files. Submitted by Masatake
Yamato, Masatake (大和正武)9f9bc2b2007-01-13 06:38:56 +0000476 Yamato.
David Turner7a3c5642007-01-11 15:09:01 +0000477
Werner Lemberg17432b52007-01-12 09:28:44 +0000478 * autogen.sh: Small fix to get it working on Mac OS X properly:
479 The issue is that GNU libtool is called `glibtool' on this platform,
480 and we must call `glibtoolize', since `libtoolize' doesn't exist.
David Turner038ace22007-01-11 15:00:59 +0000481
David Turner2628ea92007-01-10 13:15:56 +00004822007-01-10 David Turner <david@freetype.org>
483
Werner Lemberg17432b52007-01-12 09:28:44 +0000484 * all-sources: Tag all sources with VER-2-3-0-RC1 and
485 VER-2-3-0.
David Turner72011082007-01-10 14:33:18 +0000486
Werner Lemberg17432b52007-01-12 09:28:44 +0000487 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
488 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
489 version number to 2.3.0.
490
491 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
492 (FREETYPE_PATCH): Set to 0.
David Turnerd5ca7472007-01-10 14:18:15 +0000493
494 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
Werner Lemberg17432b52007-01-12 09:28:44 +0000495 include/freetype/ftlcdfil.h: Update reference documentation with
496 GASP support and LCD filtering sections.
David Turnerd5ca7472007-01-10 14:18:15 +0000497
Werner Lemberg17432b52007-01-12 09:28:44 +0000498 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
499 which created an endless loop with some malformed font files.
David Turner2628ea92007-01-10 13:15:56 +0000500
Werner Lembergbf02d392007-01-10 07:07:37 +00005012007-01-10 Derek Clegg <dclegg@apple.com>
502
503 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
504 values.
505
David Turnerf48b60e2007-01-08 15:15:32 +00005062007-01-08 David Turner <david@freetype.org>
507
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000508 * docs/CHANGES: Updated.
David Turner4f7496e2007-01-09 09:21:16 +0000509
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000510 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
511 a new API `FT_Get_Gasp' to return entries of the `gasp' table
David Turnerf48b60e2007-01-08 15:15:32 +0000512 corresponding to a given character pixel size.
513
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000514 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
515 `gasp' table, in order to avoid potential problems with later
516 versions.
David Turnerf48b60e2007-01-08 15:15:32 +0000517
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000518 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
519 <freetype/ftgasp.h>.
David Turnerf48b60e2007-01-08 15:15:32 +0000520
Werner Lembergcc7f12a2007-01-09 10:37:36 +0000521 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
522 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
523 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
524 default build.
David Turnerf48b60e2007-01-08 15:15:32 +0000525
Werner Lemberge6b6f372007-01-07 00:06:47 +00005262007-01-07 Werner Lemberg <wl@gnu.org>
527
Werner Lembergb8004d22007-01-07 09:13:38 +0000528 * src/cid/cidparse.c (cid_parser_new): Improve error message for
529 Type 11 fonts.
530 Scan for `/sfnts' token.
531
5322007-01-07 Werner Lemberg <wl@gnu.org>
533
534 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
Werner Lemberge6b6f372007-01-07 00:06:47 +0000535
Werner Lembergbe5f7972007-01-06 07:51:48 +00005362007-01-06 Werner Lemberg <wl@gnu.org>
537
538 * src/cff/cffload.c (cff_index_init): Remove unused variable.
539 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
540
David Turnera8cf42b2007-01-04 16:46:46 +00005412007-01-04 David Turner <david@freetype.org>
542
Werner Lembergf6294392007-01-06 07:47:45 +0000543 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
544 correctly. This fixes Savannah bug #17876.
David Turner34fcd0b2007-01-05 15:55:59 +0000545
Werner Lembergf6294392007-01-06 07:47:45 +0000546
547 Do not allocate interpreter-specific tables in memory if we are not
548 going to load glyphs with the bytecode interpreter anyway.
549
550 * src/truetype/ttgload.c (tt_loader_init): Load execution context
551 only if glyph is hinted.
552 Updated.
553 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
554 and `cvs_ready'.
555 Add `tt_size_ready_bytecode' declaration.
556 * src/truetype/ttobjs.c (tt_size_done_bytecode,
557 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
558 (tt_size_init): Move most code into `tt_size_init_bytecode'.
559 (tt_size_done): Move most code into `tt_size_done_bytecode'.
560 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000561
David Turner91a34022007-01-05 14:47:08 +0000562
Werner Lembergf6294392007-01-06 07:47:45 +0000563 Don't extract the metrics table from the SFNT font file. Instead,
564 reparse it on each glyph load. The runtime difference is not
565 noticeable, and it can save a lot of heap memory when memory-mapped
566 files are not used.
David Turnera3a3c5d2007-01-05 13:15:29 +0000567
Werner Lembergf6294392007-01-06 07:47:45 +0000568 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
569 `horz_metrics_offset' and `vert_metrics_ofset'.
570 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
571 Updated.
572
573
574 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
575
576
577 Do not load the CFF index offsets into memory, since this wastes a
578 *lot* of heap memory with large Asian CFF fonts. There is no
579 significant performance loss.
580
581 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
582 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
583 `data_size'.
584 (CFF_CharsetRec): Add field `num_glyphs'.
585
586 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
587 cff_charset_cid_to_gindex): New functions.
588 (cff_new_index): Renamed to...
589 (cff_index_init): This. Update all callers.
590 Updated -- some code has been moved to `cff_index_load_offsets'.
591 (cff_done_index): Renamed to...
592 (cff_index_done): This. Update all callers.
593 (cff_index_get_pointers, cff_index_access_element): Updated to use
594 stream offsets.
595 (cff_charset_compute_cids): Set `num_glyphs' field.
596 (cff_encoding_load): Updated.
597
598 * src/cff/cffgload.c (cff_slot_load): Updated.
David Turner3a2131a2007-01-05 10:51:56 +0000599
6002007-01-04 David Turner <david@freetype.org>
601
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000602 * docs/INSTALL.UNIX: Simplify some parts, add reference to
603 autogen.sh and pointer to README.CVS.
David Turnerf1c7e382007-01-04 23:16:37 +0000604
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000605 * README.CVS: Add common problem description and solution
606 when running autogen.sh.
David Turnerf1c7e382007-01-04 23:16:37 +0000607
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000608 * docs/INSTALL: Add reference to MacOS X.
David Turnerf1c7e382007-01-04 23:16:37 +0000609
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000610 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
David Turnerf1c7e382007-01-04 23:16:37 +0000611
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000612 * docs/TODO: Remove obsolete items.
David Turnerf1c7e382007-01-04 23:16:37 +0000613
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000614 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
615 (TWorker): This.
616 Remove `count_table' and `memory'.
617 Make `grays' a pointer.
618 (TRaster): New structure.
619 (count_table): New static array.
620 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
621 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
622 ft_black_set_mode, ft_black_render): Updated.
623 (ft_black_init): Don't initialize `count_table'.
624 (ft_black_reset): Use the render pool. This saves about 6KB of
625 heap space for each FT_Library instance.
David Turner38d10022007-01-04 18:50:12 +0000626
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000627 * src/smooth/ftgrays.c (TRaster): Replaced with...
628 (TWorker): This.
629 Remove `memory'.
630 (TRaster): New structure.
631
632 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
633 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
634 gray_render_span, gray_raster_render): Updated.
635 (gray_raster_reset): Use the render pool. This saves about 6KB of
636 heap space for each FT_Library instance.
David Turner91bd5dd2007-01-04 18:00:14 +0000637
David Turner8a6c44e2007-01-04 17:03:11 +0000638 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
639 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000640 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
641 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
642 the optimization is no longer experimental.
David Turner8a6c44e2007-01-04 17:03:11 +0000643
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000644 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
645 Remove a typo that results in no hinting and a memory leak with some
646 large Asian CFF fonts.
David Turnera8cf42b2007-01-04 16:46:46 +0000647
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000648 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
David Turner9d7d50f2007-01-05 13:17:15 +0000649 which happens when FT_Done_Library is called with still opened
Werner Lemberg4ea0a7f2007-01-05 09:03:31 +0000650 CFF_Faces in it. We need to close all faces before destroying the
651 modules, or else some bad things (memory leaks) may happen.
David Turnera8cf42b2007-01-04 16:46:46 +0000652
Werner Lemberg6b87e6f2007-01-02 19:20:08 +00006532007-01-02 Werner Lemberg <wl@gnu.org>
654
655 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
656 Remove compiler warning.
657
David Turner9207e002007-01-02 16:58:13 +00006582007-01-02 David Turner <david@freetype.org>
659
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000660 * src/sfnt/sfobjs.c: Add documentation comment.
David Turner9207e002007-01-02 16:58:13 +0000661
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +00006622006-12-31 Masatake YAMATO <jet@gyve.org>
663
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000664 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
665 function.
666 Check uniqueness of the gid pairs.
Werner Lemberg9b774e22007-01-16 06:11:27 +0000667 (gxv_kern_subtable_fmt0_validate): Move some code to
Yamato, Masatake (大和正武)d5d3e412006-12-30 20:17:30 +0000668 `gxv_kern_subtable_fmt0_pairs_validate'.
669
David Turner115b4422006-12-22 11:37:05 +00006702006-12-22 David Turner <david@freetype.org>
671
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000672 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
673 warnings.
David Turner115b4422006-12-22 11:37:05 +0000674
Werner Lemberg6b87e6f2007-01-02 19:20:08 +0000675 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
676 to avoid deprecation warnings with Visual C++ 8.
David Turner115b4422006-12-22 11:37:05 +0000677
Werner Lemberg4755bf72006-12-16 08:58:44 +00006782006-12-16 Anders Kaseorg <anders@kaseorg.com>
679
680 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
681 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
682
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +00006832006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
684
Werner Lemberg9b774e22007-01-16 06:11:27 +0000685 * include/freetype/internal/services/svotval.h: Add `volatile' to
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000686 sync with the modification by Jens Claudius on 2006-08-22; cf.
687 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 +0000688
6892006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
690
691 * src/base/ftmac.c: Specialized for Mac OS X only.
692 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
693 * builds/unix/configure.raw: Ditto. When explicit switches for
694 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
695 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
696
6972006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
698
699 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
700 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
701 instead of src/base/ftmac.c
702 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
703 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
704 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
705 that cannot be built at present.
706
7072006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
708
Werner Lemberg0fd08bd2006-12-16 02:57:46 +0000709 * src/base/ftobjs.c: Improvement of resource fork handler for
710 POSIX, cf.
711 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
Suzuki, Toshiya (鈴木俊哉)7a7d4032006-12-15 14:47:42 +0000712 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
713 format or .dfont, to simulate the face index number counted by ftmac.c.
714 (IsMacResource): Return the number of scalable faces correctly.
715
Werner Lembergec5b4502006-12-10 07:51:38 +00007162006-12-10 Werner Lemberg <wl@gnu.org>
717
718 * builds/toplevel.mk (version): Protect against `distclean' target.
719
Werner Lembergb26b3142006-12-09 20:01:43 +00007202006-12-09 Werner Lemberg <wl@gnu.org>
721
722 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
723 or `type'.
724
725 * builds/freetype.mk (version): Extracted from freetype.h, using
726 GNU make's built-in string functions.
727 (refdoc): Use $(version) instead of static version number.
728
Werner Lemberg4e1d6c02006-12-09 08:20:37 +00007292006-12-08 Werner Lemberg <wl@gnu.org>
730
731 * builds/toplevel.mk (dist): Extract version number from freetype.h.
732
Werner Lemberg15c29502006-12-09 07:29:54 +00007332006-12-08 Vladimir Volovich <vvv@vsu.ru>
734
735 * src/tools/apinames (State): Remove final comma in structure -- xlc
736 v5 under AIX 4.3 doesn't like this.
737
David Turnerdbf3b432006-12-07 21:18:09 +00007382006-12-07 David Turner <david@freetype.org>
739
Werner Lemberg256a3512006-12-08 06:49:33 +0000740 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
741 to the spacing of auto-fitted glyphs. This only impacts rare
742 cases (e.g., Arial Bold at rather small character sizes).
David Turnerdbf3b432006-12-07 21:18:09 +0000743
Werner Lemberg11171312006-12-03 09:43:40 +00007442006-12-03 Werner Lemberg <wl@gnu.org>
745
746 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
747
Werner Lemberg960ba592006-12-01 08:20:47 +00007482006-12-01 Werner Lemberg <wl@gnu.org>
David Turner80658e52006-11-28 08:09:20 +0000749
Werner Lemberg960ba592006-12-01 08:20:47 +0000750 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
751 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
752 (tt_name_entry_ascii_from_ucs4): Removed.
David Turner3a18c5e2006-11-28 08:38:31 +0000753
David Turner80658e52006-11-28 08:09:20 +0000754
Werner Lemberg960ba592006-12-01 08:20:47 +0000755 * include/freetype/ftxf86.h: Fix and extend comment so that it
756 appears in the documentation.
David Turner80658e52006-11-28 08:09:20 +0000757
Werner Lemberg960ba592006-12-01 08:20:47 +0000758 * include/freetype/ftchapters.h: Add `font_format' section.
759
760
761 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
762 to TOC in index page.
763
7642006-11-28 David Turner <david@freetype.org>
765
766 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
767 trying to render into a zero-width/height bitmap, not an error code.
768
769 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
770
771 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
772 ones instead.
773
774 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
775 variable.
David Turner80658e52006-11-28 08:09:20 +0000776
Werner Lemberg8636c292006-11-26 22:28:13 +00007772006-11-26 Pierre Hanser <hanser@club-internet.fr>
778
779 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
780
Werner Lemberg960ba592006-12-01 08:20:47 +00007812006-11-25 David Turner <david@freetype.org>
David Turner1bd6c472006-11-25 01:30:40 +0000782
Werner Lemberg960ba592006-12-01 08:20:47 +0000783 * src/autofit/afhints.c (af_glyph_hints_dump_points,
784 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
785 Add stubs to link the `ftgrid' test program when debugging is
786 disabled in the auto-hinter.
David Turner1bd6c472006-11-25 01:30:40 +0000787
Werner Lemberg960ba592006-12-01 08:20:47 +00007882006-11-23 David Turner <david@freetype.org>
David Turner81e725f2006-11-23 14:49:48 +0000789
790 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
Werner Lemberg960ba592006-12-01 08:20:47 +0000791 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
792
793 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
794 Emit more sensible information.
795
796 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
797
798 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
799 rounding of blue values.
800 (af_latin_hints_compute_segments): Hint segment heights.
801 (af_latin_hints_link_segments): Reduce `len_score' value.
802 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
803 value and use `height' member for comparisons.
804 (af_latin_hint_edges): Extend logging message.
805 Improve handling of remaining edges.
David Turner81e725f2006-11-23 14:49:48 +0000806
Werner Lemberg91959bf2006-11-22 10:36:55 +00008072006-11-22 Werner Lemberg <wl@gnu.org>
808
809 Fix Savannah bug #15553.
810
811 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
812 program after a change from mono to grayscaling (and vice versa).
813 Use correct constant for comparison to get `exec->grayscale'.
814
Werner Lemberg913a3652006-11-19 09:19:17 +00008152006-11-18 Werner Lemberg <wl@gnu.org>
816
817 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
David Turner81e725f2006-11-23 14:49:48 +0000818 test for a valid glyph index must be deferred to the font drivers.
Werner Lemberg913a3652006-11-19 09:19:17 +0000819 This patch fixes Savannah bug #18301.
820
821 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
822 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
823 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
824 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
825 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
826 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
827 (FNT_Load_Glyph): Check validity of `glyph_index'.
828
David Turner7bab6ae2006-11-13 11:25:06 +00008292006-11-13 David Turner <david@freetype.org>
830
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000831 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
832 `enhancements' are still too buggy for general use.
David Turner7bab6ae2006-11-13 11:25:06 +0000833
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000834 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
835 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
836 when building the library to change the default LCD filter to be
837 used. This is only useful for experimentation.
David Turner29c191c2006-11-13 13:03:48 +0000838
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000839 * include/freetype/ftlcdfil.h: Update documentation.
David Turnera95e5c62006-11-13 13:24:30 +0000840
David Turner8765c712006-11-10 16:49:42 +00008412006-11-10 David Turner <david@freetype.org>
842
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000843 * src/smooth/ftsmooth.c: API change for the LCD
844 filter. The FT_LcdFilter value is an enumeration describing which
845 filter to apply, with new values FT_LCD_FILTER_LIGHT and
846 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
847 algorithm which produces strong color fringes for everything
848 except very-well hinted text).
David Turner8765c712006-11-10 16:49:42 +0000849
Werner Lemberg0d0d78d2006-11-14 10:37:10 +0000850 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
851 second parameter to an enum type.
852
853 * src/base/ftlcdfil.c (USE_LEGACY): Define.
854 (_ft_lcd_filter): Rename to...
855 (_ft_lcd_filter_fir): This.
856 Update parameters.
857 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
858 (FT_Library_Set_LcdFilter): Update parameters.
859 Handle new filter modes.
860
861 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
862 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
863 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
864 callback and update other fields.
865
866 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
867 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
868 Other minor improvements.
869
870 * src/autofit/aflatin.c: Various tiny improvements that drastically
871 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
872 (af_latin_hints_compute_edges): Fix typo.
873 (af_latin_compute_stem_width): Take better care of diagonal stems.
David Turner8765c712006-11-10 16:49:42 +0000874
David Turner4e9cc3c2006-11-09 16:31:52 +00008752006-11-09 David Turner <david@freetype.org>
876
Werner Lemberg49c77a82006-11-09 21:51:57 +0000877 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
878 typo which created a variable-used-before-initialized bug.
David Turner4e9cc3c2006-11-09 16:31:52 +0000879
Werner Lemberg5e430892006-11-07 09:35:03 +00008802006-11-07 Zhe Su <james.su@gmail.com>
881
882 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
883 also.
884
Werner Lemberg111b5ae2006-11-03 09:40:12 +00008852006-11-03 Werner Lemberg <wl@gnu.org>
886
887 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
888
David Turner40604742006-11-02 16:37:35 +00008892006-11-02 David Turner <david@freetype.org>
890
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000891 Add a few tweaks to better handle serif fonts.
892 Add more debugging messages.
David Turner91b44e62006-11-02 23:28:09 +0000893
Werner Lemberg111b5ae2006-11-03 09:40:12 +0000894 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
895 segments that are less than 1.5 pixels high. This gets rid of
896 *many* corner cases with serifs.
897 (af_latin_align_linked_edge): Add logging message.
898 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
899 Add logging messages.
900 Handle AF_EDGE_FLAG flag specially.
901
902 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
903 _af_debug_disable_blue_hints, and _af_debug_hints variables.
904
905 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
906 Update external declarations.
907 (af_corner_orientation, af_corner_is_flat): Replaced by...
908
909 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
910 ft_corner_is_flat): These declarations.
911
912 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
913 Comment out. Replaced by...
914
915 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
916 These functions. Update all callers.
917 (FT_Add64) [!FT_LONG64]: Simplify.
918
919 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
920 (af_direction_compute): Add a missing FT_ABS call. This bug caused
921 production of garbage by missing lots of segments.
922
923 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
924
925 * src/autofit/afloader.c (af_loader_init, af_loader_done)
926 [AF_DEBUG]: Set _af_debug_hints.
927
928
929 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
930 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
931 and ft_corner_orientation.
932
933
934 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
David Turner40604742006-11-02 16:37:35 +0000935
Werner Lemberge88c5262006-10-24 05:46:26 +00009362006-10-24 Werner Lemberg <wl@gnu.org>
937
938 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
939
940 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
941 as argument.
942
David Turnera1861392006-10-23 16:00:59 +00009432006-10-23 Zhe Su <zsu@novell.com>
944
Werner Lemberg715e96e2006-10-24 05:28:45 +0000945 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
946 better deal with broken Asian fonts with strange glyphs, having
947 self-intersections and other peculiarities. The used algorithm is
948 based on the nonzero winding rule.
David Turnera1861392006-10-23 16:00:59 +0000949
David Turnere140f142006-10-23 08:56:57 +00009502006-10-23 David Turner <david@freetype.org>
951
Werner Lemberg715e96e2006-10-24 05:28:45 +0000952 Speed up the CFF font loader. With some large CFF fonts,
953 FT_Open_Face is now more than three times faster.
David Turner29873a02006-10-23 10:23:17 +0000954
Werner Lemberg715e96e2006-10-24 05:28:45 +0000955 * src/cff/cffload.c (cff_get_offset): Removed.
956 (cff_new_index): Inline functionality of `cff_get_offset'.
957 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
958 (cff_charset_done): Call `cff_charset_free_cids'.
959 (cff_charset_load): Call `cff_charset_compute_cids'.
960 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
961
962 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
963 with FT_NEXT_XXX.
964
965
966 Speed up the Postscript hinter, with more than 100% speed increase
967 on my machine.
968
969 * src/pshinter/pshalgo.c (psh_corner_is_flat,
970 psh_corner_orientation): New functions.
971 (psh_glyph_compute_inflections): Merge loops for efficiency.
972 Use `psh_corner_orientation'.
973 (psh_glyph_init): Use `psh_corner_is_flat'.
974 (psh_hint_table_find_strong_point): Renamed to...
975 (psh_hint_table_find_strong_points): This.
976 Rewrite, adding argument to handle all points at once.
977 Update all callers.
978 (PSH_MAX_STRONG_INTERNAL): New macro.
979 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
David Turnere140f142006-10-23 08:56:57 +0000980
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +00009812006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
982
983 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
Werner Lembergb9e6d692006-10-15 08:58:40 +0000984 `error' with FT_Err_Ok.
Suzuki, Toshiya (鈴木俊哉)07088262006-10-15 07:15:28 +0000985
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00009862006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
987
988 * docs/INSTALL.CROSS: New document file for cross-building.
989
990 * builds/unix/configure.raw: Preliminary cross-building support.
991 Find native C compiler and pass it by CC_BUILD, and
992 find suffix for native executable and pass it by EXEEXT_BUILD.
993 Also suffix for target executable is passed by EXEEXT.
994
Werner Lembergb9e6d692006-10-15 08:58:40 +0000995 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
996 build `apinames' which runs on building system. They are set by
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +0000997 CC_BUILD and EXEEXT_BUILD.
998
Werner Lembergb9e6d692006-10-15 08:58:40 +0000999 * builds/exports.mk (APINAMES_EXE): Change the extension for
1000 apinames from the suffix for target (E) to that for building host
1001 (E_BUILD).
Suzuki, Toshiya (鈴木俊哉)bfe872d2006-10-14 13:08:05 +00001002
Werner Lemberg82a07e92006-10-12 06:20:44 +000010032006-10-12 Werner Lemberg <wl@gnu.org>
1004
1005 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1006 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1007 which reference those files.
1008
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +000010092006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1010
Werner Lembergb9e6d692006-10-15 08:58:40 +00001011 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1012 embedded in freetype2.pc and freetype-config. Use it to record
1013 Carbon dependency of MacOSX.
Suzuki, Toshiya (鈴木俊哉)9d499612006-10-12 01:35:54 +00001014
1015 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1016
1017 * builds/unix/freetype-config.in: Ditto.
1018
Werner Lemberg28e17d92006-10-11 17:27:47 +000010192006-10-11 Werner Lemberg <wl@gnu.org>
1020
1021 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1022 development.
1023
Jens Claudius336d2292006-10-03 08:53:37 +000010242006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1025
1026 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1027 argument to ft_setjmp.
1028
1029 * include/freetype/internal/ftvalid.h: Add comment that
1030 ft_validator_run must not be used.
1031
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010322006-10-01 Werner Lemberg <wl@gnu.org>
1033
1034 * src/base/ftbase.c: Undo change from 2006-09-30.
1035
1036 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1037
10382006-09-30 David Turner <david@freetype.org>
1039
Werner Lemberg046bf8b2006-10-03 08:43:42 +00001040 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1041 s/unpatented_hinting/ignore_unpatented_hinter/.
1042 Update all callers.
1043
1044 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1045 auto-hinting shall be used or not.
1046
1047 * src/truetype/ttobjs.c (tt_face_init): Ditto.
David Turnere140f142006-10-23 08:56:57 +00001048
Werner Lemberg2863cfa2006-10-01 17:04:00 +000010492006-09-30 Werner Lemberg <wl@gnu.org>
1050
Werner Lemberg1e4402e2006-09-29 22:10:36 +00001051 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1052 in use).
1053
1054 * src/base/ftbase.c: Include `ftlcdfil.c'.
1055
Werner Lemberg9b15ea32006-09-29 18:22:11 +000010562006-09-29 Werner Lemberg <wl@gnu.org>
1057
1058 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1059 overlapping segments. Bug reported by Stefan Koch.
1060
David Turnerad830712006-09-27 16:20:59 +000010612006-09-28 David Turner <david@freetype.org>
1062
Werner Lemberg2c002e12006-09-29 21:31:53 +00001063 Fix a bug in the automatic unpatented hinting support which prevents
1064 normal bytecode hinting to work properly.
David Turnerad830712006-09-27 16:20:59 +00001065
Werner Lemberg2c002e12006-09-29 21:31:53 +00001066 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1067 s/force_autohint/unpatented_hinting/. Update all callers.
1068
1069 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1070
1071 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
David Turnerad830712006-09-27 16:20:59 +00001072
David Turner8a317cf2006-09-27 07:52:48 +000010732006-09-27 David Turner <david@freetype.org>
1074
Werner Lemberg2c002e12006-09-29 21:31:53 +00001075 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
David Turner8a317cf2006-09-27 07:52:48 +00001076
David Turner8a317cf2006-09-27 07:52:48 +00001077
David Turnere140f142006-10-23 08:56:57 +00001078 Add a new API to support color filtering of subpixel glyph bitmaps.
Werner Lemberg2c002e12006-09-29 21:31:53 +00001079 In a default build, the function `FT_Library_SetLcdFilter' returns
1080 `FT_Err_Unimplemented_Feature'; you need to #define
1081 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1082 real implementation.
David Turner8a317cf2006-09-27 07:52:48 +00001083
Werner Lemberg2c002e12006-09-29 21:31:53 +00001084 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
David Turner8a317cf2006-09-27 07:52:48 +00001085
Werner Lemberg2c002e12006-09-29 21:31:53 +00001086 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1087 typedef.
1088 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1089 `lcd_filter_weights' and `lcd_filter'.
David Turner26bb2e22006-09-27 07:58:43 +00001090
Werner Lemberg2c002e12006-09-29 21:31:53 +00001091 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1092 `hmul' and `vmul'.
Werner Lemberg715e96e2006-10-24 05:28:45 +00001093
Werner Lemberg2c002e12006-09-29 21:31:53 +00001094 Handle subpixel rendering.
1095 Simplify function.
1096 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1097 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1098
1099 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1100 pointing to <freetype/ftlcdfil.h>.
1101
1102 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1103 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1104
1105 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
David Turner87e4b332006-09-27 08:45:49 +00001106
Werner Lemberge20df4a2006-09-27 06:29:21 +000011072006-09-26 David Bustin
1108
1109 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1110 correctly. Reported as Savannah bug #17843.
1111
David Turner6f8c6222006-09-26 15:42:44 +000011122006-09-26 David Turner <david@freetype.org>
1113
Werner Lemberg110246c2006-09-26 21:55:44 +00001114 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1115 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1116 horizontal and vertical hinting for the purpose of debugging the
1117 auto-fitter.
David Turner6f8c6222006-09-26 15:42:44 +00001118
Werner Lemberg110246c2006-09-26 21:55:44 +00001119 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1120 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
David Turnere3d6e942006-09-26 16:58:21 +00001121
Werner Lemberg110246c2006-09-26 21:55:44 +00001122 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1123
1124 * include/freetype/config/ftoption.h, devel/ftoption.h
1125 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1126 we want to compile LCD-optimized rendering code (à la ClearType) or
1127 not. The macro *must* be disabled in default builds of the library
1128 for patent reasons.
1129
1130 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1131 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1132 isn't defined at compile time. This only changes the content of the
1133 rendered glyph to match the one of normal gray-level rendering,
1134 hence clients should not need to be modified.
1135
1136 * docs/CHANGES: Updated.
David Turnere3d6e942006-09-26 16:58:21 +00001137
Werner Lemberg745ff2c2006-09-19 05:48:02 +000011382006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1139
1140 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1141 LWFN fails and both are available.
1142
David Turnerf3050052006-09-11 12:00:32 +000011432006-09-11 David Turner <david@freetype.org>
1144
Werner Lembergf9644552006-09-12 13:48:10 +00001145 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1146 report their English names through an Apple Roman
1147 (platform,encoding) pair, with language_id != English.
David Turnerf3050052006-09-11 12:00:32 +00001148
Werner Lembergf9644552006-09-12 13:48:10 +00001149 If the font uses another name entry with language_id == English, it
1150 will be selected correctly, though.
David Turnerf3050052006-09-11 12:00:32 +00001151
Werner Lembergf9644552006-09-12 13:48:10 +00001152 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1153 selection for `mingli.ttf'.
David Turnerf3050052006-09-11 12:00:32 +00001154
Werner Lemberg36d2eab2006-09-05 19:24:34 +000011552006-09-05 Werner Lemberg <wl@gnu.org>
1156
1157 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
Werner Lembergf9644552006-09-12 13:48:10 +00001158 values which have the upper two bytes set to 0xFF instead of 0x00
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001159 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1160 `HAN NOM B.ttf').
1161
1162 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1163
David Turner772e55d2006-09-05 09:45:15 +000011642006-09-05 David Turner <david@freetype.org>
1165
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001166 Minor source cleanups and optimizations.
David Turnerc7bc9b72006-09-05 12:17:38 +00001167
Werner Lemberg36d2eab2006-09-05 19:24:34 +00001168 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1169 (TRaster): Remove `count_ex' and `count_ey'.
1170 (gray_find_cell): Remove 2nd and 3rd argument.
1171 (gray_alloc_cell): Merged with `gray_find_cell'.
1172 (gray_record_cell): Simplify.
1173 (gray_set_cell): Rewrite.
1174 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1175 (gray_render_span): Don't use FT_MEM_SET for small values.
1176 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1177 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1178 bitmap scanline.
1179 (gray_convert_glyph): Fix speed-up.
David Turner772e55d2006-09-05 09:45:15 +00001180
David Turneraa557a92006-09-04 16:42:44 +000011812006-09-04 David Turner <david@freetype.org>
1182
Werner Lembergd1fc7d42006-09-05 07:55:42 +00001183 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1184 64bit processors.
David Turneraa557a92006-09-04 16:42:44 +00001185
Werner Lemberg2d8629b2006-09-03 06:18:45 +000011862006-09-03 Werner Lemberg <wl@gnu.org>
1187
1188 * devel/ftoption.h: Synchronize with
1189 include/freetype/config/ftoption.h.
1190
1191 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1192 variable declaration.
1193 (gray_convert_glyph): Fix compiler warnings.
1194
David Turner6d79f212006-09-01 14:09:35 +000011952006-09-01 David Turner <david@freetype.org>
1196
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001197 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1198 to recognize a few fonts that require the automatic unpatented
1199 loader.
David Turnerbd502952006-09-01 19:05:24 +00001200
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001201 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1202 rasterizer. The speed improvement is between 15% and 25%, depending
1203 on the font data.
1204
1205 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1206 (TCell): Redefine.
1207 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1208 (gray_init_cells): Updated.
1209 (gray_find_cell, gray_alloc_cell): New functions.
1210 (gray_record_cell): Rewritten to use `gray_find_cell' and
1211 `gray_alloc_cell'.
1212 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1213 QSORT_THRESHOLD):
1214 Removed.
1215 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1216 gray_dump_cells): Removed.
1217 (gray_sweep): Rewritten.
1218 (gray_convert_glyph): Rewrite code which used one of the sorting
1219 functions.
1220 (gray_raster_render): Updated.
David Turner6d79f212006-09-01 14:09:35 +00001221
Werner Lembergd898aed2006-08-29 09:50:34 +000012222006-08-29 Dr. Werner Fink <werner@suse.de>
1223
1224 * configure: Make it possible to handle configure options which
1225 have strings containing spaces.
1226
12272006-08-27 David Turner <david@freetype.org>
1228
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001229 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1230 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1231 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1232
1233 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1234 src/truetype/truetype.c, src/truetype/ttdriver.c,
1235 src/truetype/ttgload.c, src/truetype/ttgload.h,
1236 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1237 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1238 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1239
1240 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1241 member `force_autohint'.
1242
1243 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1244
1245 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1246 against a list of font names which need the bytecode interpreter.
Werner Lembergd898aed2006-08-29 09:50:34 +00001247
Jens Claudiusa787f452006-08-27 11:26:18 +000012482006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1249
1250 Fix miscellaneous compiler warnings.
1251
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001252 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1253 `*/' to avoid `/* in comment' compiler warning.
Jens Claudiusa787f452006-08-27 11:26:18 +00001254
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001255 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1256 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1257 64-bit platforms void* is larger than FT_UInt32.
Jens Claudiusa787f452006-08-27 11:26:18 +00001258
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001259 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1260 volatileness of argument to ft_longjmp. Spotted by Werner
1261 `Putzfrau' Lemberg.
Jens Claudiusa787f452006-08-27 11:26:18 +00001262
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001263 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1264 variable `lineno'.
Jens Claudiusa787f452006-08-27 11:26:18 +00001265
Werner Lemberg2d8629b2006-09-03 06:18:45 +00001266 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1267 variable `error' as volatile.
Jens Claudiusa787f452006-08-27 11:26:18 +00001268
Werner Lembergc4c35b72006-08-27 08:03:46 +000012692006-08-27 Werner Lemberg <wl@gnu.org>
1270
1271 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1272 Reported by Jens.
1273
Jens Claudius088e44e2006-08-22 14:24:30 +000012742006-08-22 Jens Claudius <jens.claudius@yahoo.com>
Werner Lembergc4c35b72006-08-27 08:03:46 +00001275
Jens Claudius088e44e2006-08-22 14:24:30 +00001276 Fix for previous commit, which caused many compiler warnings/errors
Werner Lembergc4c35b72006-08-27 08:03:46 +00001277 about addresses of volatile objects passed as function arguments as
1278 non-volatile pointers.
Jens Claudius088e44e2006-08-22 14:24:30 +00001279
Werner Lembergc4c35b72006-08-27 08:03:46 +00001280 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1281 typedef a pointer to a volatile object.
Jens Claudius088e44e2006-08-22 14:24:30 +00001282
1283 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1284 argument `table' a pointer to a volatile object.
1285
1286 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1287 argument `table' a pointer to a volatile object.
1288
Jens Claudius2652bd52006-08-18 17:20:37 +000012892006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1290
1291 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1292 variable `_sfnt' as volatile since it must keep its value across
1293 a call to ft_setjmp.
1294 (gxv_validate): Same for local variables `memory' and `valid'.
1295 (classic_kern_validate): Same for local variables `memory',
1296 `ckern', and `valid'.
1297
1298 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1299 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1300 `jstf', and 'valid'.
1301
1302 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1303 local variable `cmap'.
1304
David Turner9fbfc6a2006-08-16 09:11:31 +000013052006-08-16 David Turner <david@freetype.org>
1306
Werner Lemberg12342992006-08-19 11:18:09 +00001307 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1308 warnings.
David Turner9fbfc6a2006-08-16 09:11:31 +00001309
Werner Lemberg12342992006-08-19 11:18:09 +00001310 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1311 buggy by design. Always return -1.
David Turner2b21a932006-08-16 09:24:32 +00001312
David Turner33f5f242006-08-16 16:50:55 +00001313
Werner Lemberg12342992006-08-19 11:18:09 +00001314 Improvements to native TrueType hinting. This is a first try,
1315 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1316
1317 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1318 `extra_points2'.
1319
1320 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1321 `orus'.
1322
1323 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1324 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1325 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1326 handle `extra_points2'.
1327
1328 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
1329 Remove compiler warning.
1330 (cur_to_arg): Remove macro.
1331 (TT_Hint_Glyph): Updated.
1332 (TT_Process_Simple_Glyph): Handle `orus'.
1333
1334 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
1335 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
1336 (LOC_Ins_IUP): Renamed to...
1337 (IUP_WorkerRec): This.
1338 Add `orus' member.
1339 (Shift): Renamed to...
1340 (_iup_worker_shift): This.
1341 Updated.
1342 (Interp): Renamed to...
1343 (_iup_worker_interpolate): This.
1344 Updated to handle `orus'.
1345 (Ins_IUP): Updated.
1346
1347 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
1348 Handle `orus'.
David Turner33f5f242006-08-16 16:50:55 +00001349
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +000013502006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1351
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001352 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
Werner Lemberg12342992006-08-19 11:18:09 +00001353 build ftvalid in ft2demos. This has been inadvertedly changed
1354 2006-08-13.
Suzuki, Toshiya (鈴木俊哉)f1e96062006-08-15 17:02:47 +00001355
13562006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1357
Werner Lemberg12342992006-08-19 11:18:09 +00001358 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
1359 Jens:
1360 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001361
Werner Lemberg12342992006-08-19 11:18:09 +00001362 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
1363 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
Suzuki, Toshiya (鈴木俊哉)e261f422006-08-15 17:00:43 +00001364
1365 * freetype2/src/gxvalid/gxvmod.c: Ditto.
1366
Jens Claudius9950adc2006-08-13 12:14:36 +000013672006-08-13 Jens Claudius <jens.claudius@yahoo.com>
1368
Werner Lemberg12342992006-08-19 11:18:09 +00001369 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1370 T1_TOKEN_TYPE_KEY.
1371 (T1_FieldRec): Add `dict'.
1372 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1373 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1374 keyword is expected as an additional argument.
Jens Claudius9950adc2006-08-13 12:14:36 +00001375
Werner Lemberg12342992006-08-19 11:18:09 +00001376 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1377 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001378
1379 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1380
1381 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
Werner Lemberg12342992006-08-19 11:18:09 +00001382 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1383 not T1_TOKEN_TYPE_ANY.
1384 (ps_parser_load_field): Make sure a token that should be a string or
1385 name is really a string or name.
1386 Avoid memory leak if a keyword has been already encountered and its
1387 value is overwritten.
1388 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1389 T1_FIELD_XXX.
1390 (parse_dict): Ignore keywords that occur in the wrong dictionary
1391 (e.g., in `Private' instead of `FontDict').
Jens Claudius9950adc2006-08-13 12:14:36 +00001392
Werner Lemberg12342992006-08-19 11:18:09 +00001393 * freetype2/src/type1/t1tokens.h: Adjust invocations of
1394 T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001395
Werner Lemberg12342992006-08-19 11:18:09 +00001396 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1397 invocations of T1_FIELD_XXX.
Jens Claudius9950adc2006-08-13 12:14:36 +00001398
Werner Lemberga4d6a1c2006-07-19 09:54:56 +000013992006-07-18 Jens Claudius <jens.claudius@yahoo.com>
1400
1401 Move creation of field `buildchar' of T1_DecoderRec out of
1402 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1403 of it.
1404
1405 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1406 and `T1_Compute_Max_Advance'.
1407
1408 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1409 Remove field `face', add `len_buildchar'.
1410
1411 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1412 field `buildchar'.
1413
1414 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1415 finisher for T1_Decoder.
1416 (cid_slot_load_glyph): Do not ignore failure when initializing the
1417 T1_Decoder.
1418
1419 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1420 Updated.
1421 (t1_decoder_init): Remove initialization of fields `buildchar' and
1422 `len_buildchar'.
1423 (t1_decoder_done): Remove deallocation of field `buildchar'.
1424
1425 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1426 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1427 T1_Decoder.
1428 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1429 `len_buildchar'; make sure to call finisher for T1_Decoder even in
1430 case of error.
1431
1432 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1433 `buildchar' of T1_FaceRec.
1434
1435 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1436 `buildchar' of T1_FaceRec.
1437
Werner Lemberg1a380e02006-07-14 18:28:08 +000014382006-07-14 Jens Claudius <jens.claudius@yahoo.com>
1439
1440 * freetype2/include/freetype/internal/psaux.h: New macros
1441 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1442 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1443 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1444 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1445 (T1_DecoderRec): New fields `buildchar' and `face'.
1446 (IS_PS_TOKEN): New macro.
1447
1448 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1449 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1450
1451 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1452 `default_design_vector' and `num_default_design_vector'.
1453
1454 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1455 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1456 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1457
1458 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1459 `token' argument to be NULL if we want only to count the number of
1460 tokens.
1461 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1462 want to skip the array.
1463 (ps_tofixedarray): Allow `values' argument to be NULL if we just
1464 want to skip the array.
1465
1466 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1467 support for (partially commented out) othersubrs 19-25, 27, and 28.
1468 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1469 (t1_decoder_done): Release new field `buildchar'.
1470
1471 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1472 functions.
1473 (t1_keywords): Register them.
1474 (t1_allocate_blend): Updated.
1475 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1476 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1477 (parse_dict): Remove `keyword_flags' argument.
1478 Use new macro IS_PS_TOKEN.
1479 Changed function so that later PostScript definitions override
1480 earlier ones.
1481 (t1_init_loader): Initialize new field `keywords_encountered'.
1482 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1483 `len_buildchar'.
1484 Remove `keywords_flags'.
1485
1486 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1487 `keywords_encountered'.
1488 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1489
1490 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1491 New entries for parsing /NDV, /CDV, and /DesignVector.
1492
Werner Lemberg4af3c4d2006-07-08 21:31:24 +000014932006-07-07 Werner Lemberg <wl@gnu.org>
1494
1495 Add many checks to protect against malformed PCF files.
1496
1497 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1498 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1499
1500 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1501 data and check that tables don't overlap (using a simple
1502 bubblesort).
1503 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1504 New macros which give the size of data structures in the data
1505 stream.
1506 (pcf_get_properties): Use rough estimates to get array size limits.
1507 Assign `face->nprops' and `face->properties' earlier so that a call
1508 to PCF_Face_Done can do the clean-up in case of error.
1509 Protect against invalid string offsets.
1510 (pcf_get_metrics): Clean up code.
1511 Adjust tracing message levels.
1512 Use rough estimate to get array size limit.
1513 (pcf_get_bitmaps): Clean up code.
1514 Adjust tracing message levels.
1515 Use rough estimates to get offset limits.
1516 (pcf_get_encodings): Adjust tracing message level.
1517 (pcf_get_accel): Clean up code.
1518
Werner Lemberg8eb05252006-06-27 06:20:01 +000015192006-06-26 Werner Lemberg <wl@gnu.org>
1520
1521 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1522 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
1523
Werner Lemberg24703f82006-06-26 19:12:51 +000015242006-06-26 Jens Claudius <jens.claudius@yahoo.com>
1525
1526 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1527 (t1_decoder_parse_charstrings): Operator with
1528 opcode 15 pops its two arguments.
1529 Handle the case where the pops of an othersubr may be part of a
1530 subroutine.
1531 Handle unknown othersubrs gracefully: count their operands and let
1532 the following pop operators push the operands as the results onto
1533 the Type1 stack.
1534 Improve handling of setcurrentpoint opcode.
1535
Werner Lembergc011f4c2006-06-26 09:40:00 +000015362006-06-25 Jens Claudius <jens.claudius@yahoo.com>
1537
1538 The Type 1 parser now skips over top-level procedures as required
1539 for a `Simplified Parser'. This makes the parser more robust as it
1540 doesn't poke around in PostScript code. Additionally, it makes the
1541 FontDirectory hackery in src/type1/t1load.c unnecessary.
1542
1543 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1544 (skip_literal_string): Add FT_Error as return value.
1545 Handle escapes better.
1546 (skip_string): Add FT_Error as return value.
1547 Don't set `parser->error' but return error code directly.
1548 (skip_procedure): New function.
1549 (ps_parser_skip_PS_token): Handle procedures.
1550 Update code.
1551 (ps_parser_to_token): Update code.
1552 (ps_parser_load_field_table): Handle bbox entries also.
1553
1554 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1555 Add commented-out code for synthetic fonts.
1556
Werner Lemberga2da05c2006-06-25 06:27:27 +000015572006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
1558
1559 Fix two hinting bugs as reported in
1560 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1561
1562 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1563 `first_point' member.
1564
1565 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1566 `first_point'.
1567 (TT_Process_Composite_Glyph): Always untouch points.
1568
1569 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1570 `first_point' and `last_point' in case of composite glyphs.
1571 (Ins_IUP): Fix computation of `end_point'.
1572
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +000015732006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1574
Werner Lembergef3d2c22006-06-25 06:07:14 +00001575 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1576 Mac. The original patch was written by David Sachitano and Lawrence
1577 Coopet, and modified by Sean McBride for MPW compatibility. Only
1578 required data are converted; unused data are left in big endian.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001579
Werner Lembergef3d2c22006-06-25 06:07:14 +00001580 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1581 Mac OS X platforms.
1582 (OS_INLINE): Undefine before definition.
1583 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1584 FontAssociation table in FOND resource.
1585 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1586 and fontSize at each entry of FontAssociation table in FOND
1587 resource.
1588 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1589 ffStylOff of FamilyRecord header of FOND resource, the header,
1590 fontSize, fontID at each entry of FontAssociation table, and
1591 StyleMapping table.
1592 (count_faces): Call `HUnlock' after all FOND utilization.
Suzuki, Toshiya (鈴木俊哉)52311972006-06-22 02:34:27 +00001593
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +000015942006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1595
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001596 Public API of TrueTypeGX, OpenType, and classic kern table validator
1597 should return `FT_Err_Unimplemented_Feature' if validation service
1598 is unavailable (disabled in `modules.cfg'). It is originally
David Turner9fbfc6a2006-08-16 09:11:31 +00001599 suggested by David Turner, cf.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001600 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1601
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001602 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1603 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1604 unavailable.
1605 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1606 classic kern table validation service is unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001607
Werner Lemberg67d2f3a2006-06-16 06:50:36 +00001608 * src/base/ftotval.c (FT_OpenType_Validate): Return
1609 FT_Err_Unimplemented_Feature if OpenType validation service is
1610 unavailable.
Suzuki, Toshiya (鈴木俊哉)817831f2006-06-15 09:05:41 +00001611
Werner Lembergb10e45a2006-06-08 07:32:56 +000016122006-06-08 Werner Lemberg <wl@gnu.org>
1613
1614 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1615 errors.
1616
David Turner5f1f7502006-06-07 05:11:50 +000016172006-06-07 David Turner <david@freetype.org>
1618
Werner Lemberg7d48cb02006-06-08 06:00:08 +00001619 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1620 (T1_Read_Metrics): Fix memory leak which happened when the metrics
1621 file doesn't have kerning pairs. This fixes Savannah bug #16768.
David Turner5f1f7502006-06-07 05:11:50 +00001622
David Turner457b4a82006-06-06 08:14:14 +000016232006-06-06 David Turner <david@freetype.org>
1624
Werner Lemberg4836f952006-06-06 12:54:08 +00001625 Fix memory leak described in Savannah bug #16759.
David Turner457b4a82006-06-06 08:14:14 +00001626
Werner Lemberg4836f952006-06-06 12:54:08 +00001627 We change `ps_unicodes_init' so that it also takes a
1628 `free_glyph_name' callback to release the glyph names returned by
1629 `get_glyph_name'
1630
1631 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1632 Renamed to ...
1633 (PS_GetGlyphNameFunc): This.
1634 (PS_FreeGlyphNameFunc): New typedef.
1635 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1636
1637 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1638 argument.
1639 (cff_sid_free_glyph_name): New function.
1640 (cff_cmap_unicode_init): Updated.
1641
1642 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1643
1644 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1645 PS_FreeGlyphNameFunc and use it.
David Turner457b4a82006-06-06 08:14:14 +00001646
1647
David Turner09717352006-06-04 14:33:08 +000016482006-06-04 David Turner <david@freetype.org>
1649
Werner Lembergd724f202006-06-04 15:17:41 +00001650 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1651 `item_size == 0' as well -- though this sounds weird, it can
Werner Lemberg4b2e83d2007-02-01 07:58:02 +00001652 theoretically happen. This fixes Savannah bug #16669.
David Turnerea4547c2006-06-04 14:50:57 +00001653
Werner Lembergd724f202006-06-04 15:17:41 +00001654 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1655 of `face->num_glyphs' which missed the last glyph, due to
1656 the offset-by-1 computation, since the PFR format doesn't
1657 guarantee that glyph index 0 corresponds to the `missing
1658 glyph. This fixes Savannah bug #16668.
David Turner09717352006-06-04 14:33:08 +00001659
Werner Lemberg33779662006-05-26 06:30:05 +000016602006-05-25 Werner Lemberg <wl@gnu.org>
1661
1662 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1663 `-no-undefined'. Reported by Christian Biesinger.
1664
Werner Lemberg24773d62006-05-20 08:53:13 +000016652006-05-19 Brian Weed <bw@imaginengine.com>
1666
1667 * builds/win32/visualc/freetype.dsp: Release libraries no longer
1668 have debug information, and debug libraries use `C7 compatible'
1669 debug info.
1670
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +000016712006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1672
Werner Lemberga6523a62006-05-20 08:47:01 +00001673 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
Werner Lembergd724f202006-06-04 15:17:41 +00001674 resource fork handler. This fixes Savannah bug #16631.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001675
Werner Lemberga6523a62006-05-20 08:47:01 +00001676 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1677 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001678
1679 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
Werner Lemberga6523a62006-05-20 08:47:01 +00001680 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
Suzuki, Toshiya (鈴木俊哉)de0a96c2006-05-19 23:16:12 +00001681
16822006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1683
Suzuki, Toshiya (鈴木俊哉)8cfa8bd2006-05-19 22:11:50 +00001684 * build/unix/configure.raw: Add a fallback to disable Carbon
1685 dependency, if configured with no options on Mac OS X.
1686
16872006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1688
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001689 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
Werner Lemberga6523a62006-05-20 08:47:01 +00001690 its content cannot be parsed as supported font. This fixes
Suzuki, Toshiya (鈴木俊哉)47200602006-05-19 10:48:42 +00001691 the second part of Savannah bug #16590.
1692
Werner Lemberg545c4e52006-05-17 22:55:04 +000016932006-05-18 Werner Lemberg <wl@gnu.org>
1694
1695 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1696 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1697
David Turnerdc3ff312006-05-17 12:59:35 +000016982006-05-17 David Turner <david@freetype.org>
1699
Werner Lemberg545c4e52006-05-17 22:55:04 +00001700 This is a major patch used to drastically improve the performance of
1701 loading glyphs. This both speeds up loading the glyph vectors
1702 themselves and the auto-fitter module.
David Turner281679d2006-05-17 13:34:21 +00001703
Werner Lemberg545c4e52006-05-17 22:55:04 +00001704 We now use inline assembler code with GCC to implement `FT_MulFix',
1705 which is probably the most important function related to the
1706 engine's performance.
David Turner281679d2006-05-17 13:34:21 +00001707
Werner Lemberg545c4e52006-05-17 22:55:04 +00001708 The resulting speed-up is about 25%.
David Turner281679d2006-05-17 13:34:21 +00001709
1710
Werner Lemberg545c4e52006-05-17 22:55:04 +00001711 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1712 `cursor' and `limit'.
1713
1714 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1715 New functions.
1716 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1717 [TEST]: Remove.
1718
1719 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1720 code.
1721
1722 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1723 `FT_ZERO'
1724 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1725 (af_glyph_hints_reload: Rewrite recognition of weak points.
1726
1727 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1728 constant values out of the loops.
1729
1730 * src/autofit/aftypes.h: Updated.
1731
1732 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1733
1734 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1735 product to get orientation.
1736
1737 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1738 (FT_Stream_OpenGzip): Use it to handle small files directly in
1739 memory.
1740
1741 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1742 Improve performance.
1743
1744 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1745 `limit'.
1746
1747 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1748 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
1749 exceedingly large values of number of contours. Speed up by
1750 reducing the number of loops.
1751
1752 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1753
1754
1755 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1756 used to detect rogue clients from 4 to 16. This is to prevent some
1757 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1758 comes from the Japanese Adobe Reader Asian Font pack.
David Turnerdc3ff312006-05-17 12:59:35 +00001759
Werner Lembergde2d90a2006-05-17 08:54:30 +000017602007-05-17 Werner Lemberg <wl@gnu.org>
1761
1762 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
David Turner281679d2006-05-17 13:34:21 +00001763 fixes the first part of Savannah bug #16590.
Werner Lembergde2d90a2006-05-17 08:54:30 +00001764
17652006-05-16 Werner Lemberg <wl@gnu.org>
1766
1767 * docs/PROBLEMS: Updated icl issues.
1768
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001769----------------------------------------------------------------------------
1770
Werner Lemberg42b63b22007-01-21 21:01:33 +00001771Copyright 2006, 2007 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001772David Turner, Robert Wilhelm, and Werner Lemberg.
1773
1774This file is part of the FreeType project, and may only be used, modified,
1775and distributed under the terms of the FreeType project license,
1776LICENSE.TXT. By continuing to use, modify, or distribute this file you
1777indicate that you have read the license and understand and accept it
1778fully.
1779
1780
1781Local Variables:
1782version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00001783coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00001784End: